Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-07-19

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 fgomez joined #perl6
00:02 colomon joined #perl6
00:05 * tadzik waves from Oslo
00:05 * colomon waves from Midland
00:06 tadzik The World of Perl 6
00:11 perigrin Midgard?
00:12 timotimo tadzik: the release has been done by moritz and lizmat. how are you feeling? travel went fine?
00:15 colomon perigrin: yes?
00:17 colomon perigrin: but we hope to make it to Camelhalla some day.
00:22 tadzik timotimo: yeah, just long-ish :)
00:22 tadzik moritz++ lizmat++
00:22 timotimo this release is giving me butterflies in my stomach :P
00:22 tadzik heheh
00:23 tadzik sleep time, o/
00:23 colomon \o
00:23 timotimo have a good rest & week, tadzik!
01:08 Vlavv joined #perl6
01:21 kingbeast joined #perl6
01:28 pecastro joined #perl6
01:36 FROGGS_ joined #perl6
01:42 fridim__ joined #perl6
02:52 nebuchadnezzar joined #perl6
02:53 abnorman joined #perl6
02:56 orafu joined #perl6
02:56 orafu joined #perl6
03:44 fridim__ joined #perl6
03:51 skids joined #perl6
04:12 Ayiko joined #perl6
04:23 stevan_ joined #perl6
04:28 Psyche^_ joined #perl6
04:32 lizmat good *, #perl6!
04:36 stevan_ joined #perl6
04:43 birdwindupbird joined #perl6
04:43 sorear o/
04:46 cibs joined #perl6
05:00 SamuraiJack joined #perl6
05:30 moritz \o
05:30 sorear o/
05:30 moritz lizmat++ # suddenly release manager
05:30 lizmat :-)
05:31 sorear lizmat++
05:35 lizmat I guess the next release will become more involved, as it would need to check both parakudo and jakudo
05:36 sorear you didn't have to check jakudo for this one?
05:38 lizmat not according to the release guide
05:38 lizmat and I followed that to the letter  :-)
05:40 lizmat fwiw, I wouldn't have been able to release otherwise, as I don't do jakudo just yet
05:59 lizmat Why would a naive implementation of List.uniq:
05:59 lizmat method uniq() { my %seen;  grep { %seen.exists($_) ?? False !! %seen{$_} = 1 }, @.list;}
06:00 lizmat work everywhere, except when being used in an "is_deeply", and thus fail the test
06:02 lizmat https://gist.github.com/lizmat/6036979
06:05 sorear lizmat: try uniq([], []) with both the current impl and your proposal
06:05 sorear r: say uniq([], []).perl
06:05 camelia rakudo 099f0b: OUTPUT«([], []).list␤»
06:05 sorear the current impl uses WHICH, which provides === semantics
06:05 sorear your proposal uses a Str-keyed hash, which provides eq semantics
06:06 lizmat aha...
06:06 lizmat the plot thickens
06:06 sorear r: say uniq(1, "1").perl
06:06 camelia rakudo 099f0b: OUTPUT«(1, "1").list␤»
06:06 sorear r: say uniq(1, 1).perl
06:06 camelia rakudo 099f0b: OUTPUT«(1,).list␤»
06:07 lizmat r: say squish( [],[] ).perl # I assume squish() is then wrong here
06:07 camelia rakudo 099f0b: OUTPUT«([], []).list␤»
06:07 * sorear would like to request that people "simplifying" code test for performance regressions if they don't already
06:08 sorear one big problem with rakudo is that people implement abstractions in terms of other abstractions
06:08 sorear I guess because it's a bit prettier to use grep instead of explicit loops
06:08 sorear but what winds up happening is that { foo => 1, bar => 2 } makes >50 function calls
06:09 lizmat FWIW, I *was* going to test performance
06:10 sorear lizmat++
06:10 JimmyZ or method inlineing?
06:14 sorear eh.  I haven't been able to contribute this week so I shouldn't be calling people out
06:14 JimmyZ :P
06:15 lizmat sorear: I think you have enough cred with anybody involved here, to be allowed to do so  :-)
06:15 JimmyZ aye
06:19 abnorman joined #perl6
06:20 sorear JimmyZ: you should not assume that optimizations will reduce costs *to zero*.
06:22 JimmyZ sorear: sorry, I didn't mean that
06:22 sorear JimmyZ: i'm in a very moralistic mood right now.  "sloppy kids making excuses, expecting other people to clean up after them" :(
06:22 sorear not a good state of mind for making rational arguments
06:24 PacoAir joined #perl6
06:24 JimmyZ sorear: my english is not good enough, sometimes I can't follow the context
06:29 * lizmat hopes someone will point it out to her if she's been sloppy
06:30 lizmat we're all human and lazy  :-)
06:35 FROGGS_ joined #perl6
06:35 lizmat breakfast&
06:43 ingy any guinea pigs around?
06:43 ingy I have some new ingyware to pimp!
06:43 * ingy takes off his underware
06:47 ingy lizmat: come back!
06:48 ingy maybe sorear is ready to take a test drive :)
06:48 GlitchMr joined #perl6
06:49 ingy sigh
06:49 domidumont joined #perl6
06:51 FROGGS_ morning o/
06:52 kaleem joined #perl6
06:52 JimmyZ morning, FROGGS
06:54 sorear o/ FROGGS
06:54 FROGGS morning JimmyZ
06:54 FROGGS morning sorear
06:54 FROGGS :o)
06:54 * FROGGS gets coffee
06:54 * sorear sees ingy waving his underware and *runs*
07:04 sorear sleep&
07:04 JimmyZ good night, sorear
07:05 FROGGS gnight sorear
07:07 lizmat gnight soreare!
07:10 domidumont joined #perl6
07:12 rindolf joined #perl6
07:14 domidumont joined #perl6
07:21 dalek rakudo/nom: 624ff76 | (Elizabeth Mattijsen)++ | src/core/List.pm:
07:21 dalek rakudo/nom: Rewrite of List.(uniq|squish) using map()
07:21 dalek rakudo/nom:
07:21 dalek rakudo/nom: For "my @a=1..100000; my @b= @a.(uniq|squish) the improvements were:
07:21 dalek rakudo/nom:   uniq:   CPU from 0m23.214s to 0m10.107s  (aka 56% less CPU)
07:21 dalek rakudo/nom:   squish: CPU from 0m10.911s to 0m7.790s   (aka 28% less CPU)
07:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/624ff76ca6
07:22 moritz \o/
07:22 domidumont joined #perl6
07:23 moritz lizmat: wouldn't .grep be a better choice than .map?
07:23 lizmat grep is implemented in terms of map
07:23 lizmat this removes one level of indirection
07:23 lizmat squish() originally was just a grep
07:24 moritz lizmat: I'm mostly worried because the patch relies on the now-deprecated usage of Nil as empty list
07:24 moritz lizmat: so by removing a level of indirection, you create more code to correct later on
07:24 lizmat I was wondering about that myself
07:24 lizmat thing is, if I put () instead of Nil (which I tried), the tests currently fail
07:25 lizmat FWIW, these changes are on my radar: as soon as $jnthn has implemented variable traits, specifically "is default"
07:25 moritz because they don't flatten out
07:26 lizmat oddly enough, in grep they *do* flatten out
07:26 moritz r: say (1, 2, 3).map({()}).perl
07:26 camelia rakudo 099f0b: OUTPUT«((), (), ()).list␤»
07:26 moritz r: say (1, 2, 3).map({()}).list.perl
07:26 camelia rakudo 099f0b: OUTPUT«((), (), ()).list␤»
07:26 moritz r: say (1, 2, 3).map({()}).flat.perl
07:26 camelia rakudo 099f0b: OUTPUT«().list␤»
07:26 * moritz wonders if .grep itself flattens
07:27 lizmat r: say (1, 2, 3).grep({False}).list.perl
07:27 camelia rakudo 099f0b: OUTPUT«().list␤»
07:27 moritz r: say ((1, 2), (3, 4)).grep({1}).perl
07:27 camelia rakudo 099f0b: OUTPUT«(1, 2, 3, 4).list␤»
07:27 moritz yes, grep flattens
07:27 lizmat but grep is just: self.map({ $_ if $_ ~~ $test });
07:27 moritz r: my $c = 0; say ((1, 2), (3, 4)).grep({++$c; 1}).perl; say $c
07:27 camelia rakudo 099f0b: OUTPUT«(1, 2, 3, 4).list␤4␤»
07:27 moritz and it flattens before running too
07:28 lizmat map is: MapIter.new(self, $block, Bool::True).list
07:32 lizmat so are you saying grep shouldn't flatten?
07:32 moritz I have no idea
07:32 moritz there are a ton of list methods, and no clear guidance on which should flatten which shouldn't
07:33 lizmat S32/Containers:217 doesn't say anything about flattening
07:34 pochi joined #perl6
07:34 lizmat tadzik: synopsebot doesn't seem to handle S32 yet :)
07:35 lizmat so I guess I cannot map a value to nothing without flattening >
07:35 lizmat ?
07:35 FROGGS S32:217
07:35 synopsebot Link: http://perlcabal.org/syn/S32.html#line_217
07:35 lizmat 404 not found
07:36 FROGGS yeah
07:38 hoelzro hmm
07:38 hoelzro I just had a thought
07:38 hoelzro so Rakudo is adding all of these nice compiler warnings
07:38 hoelzro ex. "did you mean self?"
07:38 hoelzro maybe certain warnings could be enabled with certain switches?
07:39 hoelzro (on the other hand, that would make the code a nightmare)
07:39 lizmat I think that is on the "todo"  :-)
07:39 hoelzro sweeet
07:39 hoelzro I thought of a feature that would come in handy for Java devs
07:39 hoelzro who type 'Int $foo = 7' or some such
07:40 iSlug joined #perl6
07:41 kaleem joined #perl6
07:47 FROGGS good point
07:48 hoelzro FROGGS: don't implement it!
07:48 hoelzro let me try first =)
07:48 hoelzro I submitted my first PR to the actual compiler last night
07:48 FROGGS hoelzro: I wont :o)
07:49 FROGGS I'm not going to steel anybodies idea :o)
07:50 hoelzro what other examples would case "Two terms in a row"?
07:50 moritz r: 1 1
07:50 camelia rakudo 099f0b: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Two terms in a rowâ�¤at /tmp/Zylc5Jngw2:1â�¤------> [32m1 [33mâ��[31m1[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix or meta-infixâ�¤        statement endâ�¤        statement modifierâ�¤        statement modifie…
07:51 hoelzro ah ha
07:51 FROGGS r: sub a { } sub b { }
07:51 camelia rakudo 099f0b: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Two terms in a rowâ�¤at /tmp/s5GMwt0msf:1â�¤------> [32msub a { } [33mâ��[31msub b { }[0mâ�¤    expecting any of:â�¤        statement listâ�¤        horizontal whitespaceâ�¤        postfixâ�¤        infix stopperâ�¤        infix or meta-infixâ�¤     …
07:51 moritz hoelzro: lots of syntax errors are acutually "two terms in a row" under the hood
07:51 hoelzro hmm
07:52 tadzik lizmat: oh well, it's not a very smart bot :)
07:52 hoelzro so I have to do some fancy detection for what I want
07:52 tadzik S999:123
07:52 synopsebot Link: http://perlcabal.org/syn/S999.html#line_123
07:59 hoelzro in typed_exception (Perl6::World), is it possible to see what terms are the "two terms in a row"?
08:01 moritz r: try eval '1 1'; say $!
08:01 camelia rakudo 099f0b: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Two terms in a rowâ�¤at eval_0:1â�¤------> [32m1 [33mâ��[31m1[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix or meta-infixâ�¤        statement endâ�¤        statement modifierâ�¤        statement modifier loopâ�¤Â»â€¦
08:01 moritz r: try eval '1 1'; say $!.perl
08:01 camelia rakudo 099f0b: OUTPUT«X::Syntax::Confused.new(reason => "Two terms in a row", filename => "eval_0", line => 1, column => Any, modules => Array.new(), is-compile-time => 1, pre => "1 ", post => "1", highexpect => Array.new("postfix", "infix stopper", "infix or meta-infix", "statement end…
08:04 hoelzro moritz++ # helping newbies
08:06 cbk joined #perl6
08:08 lizmat cycling for a few hours while the weather outside is still more or less bearable&
08:11 * moritz occasionally takes the bycicle to work -- about 12km one way, that's quite tough if you're not used it :-)
08:22 sciurius joined #perl6
08:27 iSlug joined #perl6
08:42 jnthn Morning, #perl6
08:43 moritz \o jnthn
08:44 FROGGS hi jnthn
08:45 jnthn lizmat++ # optimization
08:50 Rotwang joined #perl6
09:05 donaldh joined #perl6
09:10 dalek nqp: 644fc3a | (Donald Hunter)++ | src/vm/jvm/ (2 files):
09:10 dalek nqp: Added chdir with helpful error message for JVM
09:10 dalek nqp: review: https://github.com/perl6/nqp/commit/644fc3a095
09:12 kaleem joined #perl6
09:35 daxim joined #perl6
09:49 tokuhirom joined #perl6
10:01 pmurias joined #perl6
10:06 hoelzro is there an nqp::dump or something similar?
10:06 hoelzro I swear I found something like it yesterday...
10:06 hoelzro or maybe I'm thinking about nqp::say($/.dump())
10:10 dmol joined #perl6
10:22 donaldh QAST nodes have a dump method
10:24 hoelzro ah ha
10:24 hoelzro %opts isn't a 6MO?
10:24 hoelzro (in NQP land)
10:25 moritz no, a parrot hash
10:27 fhelmberger joined #perl6
10:28 hoelzro I see
10:28 hoelzro does it support any sort of dump method =)
10:34 tokuhirom joined #perl6
10:39 colomon joined #perl6
10:41 donaldh jnthn: what toolchain do you use on Windows for jvm development?
10:43 moritz nqp: my %h = hash(a => 1, b => 2); nqp::say(nqp::join(' ', nqp::keys(%h)))
10:43 camelia nqp: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 2, near " hash(a =>"␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤»
10:43 moritz nqp: my %h := hash(a => 1, b => 2); nqp::say(nqp::join(' ', nqp::keys(%h)))
10:43 camelia nqp: OUTPUT«Error while compiling block : Error while compiling op say (source text: "nqp::say(nqp::join(' ', nqp::keys(%h)))"): Error while compiling op join (source text: "nqp::join(' ', nqp::keys(%h))"): Error while compiling op keys (source text: "nqp::keys(%h)"): No registered oper…
10:43 dmol joined #perl6
10:44 jnthn donaldh: Originally was using Eclipse; these days just an editor and "make" :)
10:45 donaldh which make?
10:45 jnthn nmake
10:45 jnthn (The one that comes with VS)
10:45 donaldh oh, compatibility is good.
10:46 * jnthn chuckles at using an MS build tool to compile NQP/Rakudo on JVM :)
10:46 jnthn s/compile/build/
10:46 FROGGS nqp: my %h := hash(a => 1, b => 2); nqp::say($_.key ~ ' => ' ~ $_.value) for %h
10:46 camelia nqp: OUTPUT«a => 1␤b => 2␤»
10:46 donaldh Just wanting to test on Windows and cygwin support would require some work.
10:47 donaldh jnthn: which perl ?
10:47 jnthn ActivePerl
10:47 FROGGS cygwin? does really somebody use that except for debugging ports to cygwin?
10:48 FROGGS yeah, strawberryperl doesnt work well sadly
10:48 jnthn Well, I think some of the problem if building Rakudo/NQP on Parrot on Windows using the MS toolchain is that it takes Perl 5's configuration values.
10:49 colomon I used to use cygwin quite heavily, before I wised up and switched to OS X.
10:49 jnthn And ActivePerl is built on the MS toolchain.
10:49 donaldh yeah, I use cygwin a lot in my $dayjob. Not as a target, just a unix tool environment.
10:49 jnthn MoarVM doesn't try to grab stuff out of Perl 5's configuration, so I'm hopeful we get less issues tehre.
10:49 jnthn *there
10:50 FROGGS that is a sane choice
10:51 donaldh The fun with JVM + Cygwin is that you get Unix path separators but the JVM insists on Windows conventions
10:52 donaldh so it's an ugly hybrid
10:54 colomon weird message in the smoker tester log: https://gist.github.com/colomon/6038314
10:56 moritz colomon: ignore it
10:57 moritz the source is that we check out specific commits for nqp
10:57 moritz so we end up in a, whatitscalledagain, the state where you are not a branch
10:58 moritz so git warns that you might lose those commits, because they aren't in a local branch
10:58 moritz but they are in remote branches, so no need to worry
11:04 dmol joined #perl6
11:08 colomon joined #perl6
11:08 colomon moritz++
11:25 YoungFrog "detached head", aka zombie mode :)
11:28 moritz YoungFrog: thanks
11:31 cognominal joined #perl6
11:31 daxim no, dullahan‎, not zombie
11:42 tokuhirom joined #perl6
11:43 jnthn .oO( how the heck could a zombie eat brains without a head? )
11:53 daxim exactly!
12:17 timotimo no announcement on r/perl yet? let's bring some negativity in!
12:36 ajr joined #perl6
12:49 colomon joined #perl6
12:53 konundra joined #perl6
12:55 dalek Perlito: aff9748 | (Flavio S. Glock)++ | / (4 files):
12:55 dalek Perlito: Perlito5 - integrate Perlito5/Grammar/Print.pm - indirect syntax for print
12:55 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/aff9748fc8
12:55 dalek Perlito: f461b57 | (Flavio S. Glock)++ | / (2 files):
12:55 dalek Perlito: Perlito5 - recompile
12:55 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/f461b57fc5
13:00 timotimo should L<#Some Heading> be the correct way to refer to a section in pod6?
13:01 timotimo ah, yes, it should
13:01 * timotimo patches Pod::To::HTML a little bit
13:03 timotimo oh, huh.
13:06 kaare__ joined #perl6
13:09 colomon joined #perl6
13:10 benabik joined #perl6
13:14 timotimo S26 refers to "doc:perlpod"; should Pod::To::HTML gain knowledge of doc: links and generate a proper hyperlink or should the source text be given an actual http link?
13:21 timotimo ah, right. it specifies that.
13:27 dalek specs: 82f60b2 | (Timo Paulssen)++ | S26-documentation.pod:
13:27 dalek specs: fix an internal crosslink missing its #
13:27 dalek specs: review: https://github.com/perl6/specs/commit/82f60b2e6b
13:28 timotimo could someone be so kind and either upload my local rendering of S26 or generate a new one with the latest rakudo release and the latest Pod::To::HTML?
13:31 moritz timotimo: I think I can upload it for you
13:31 moritz timotimo: where is it?
13:31 timotimo i'll supply it to you momentarily
13:32 timotimo http://t.h8.lv/S26-documentation.pod.html - here
13:33 moritz timotimo: http://perlcabal.org/syn/S26.html does that look updated to you?
13:34 timotimo not yet
13:34 moritz sadpanda :(
13:34 timotimo it should read "see Declarator blocks." instead of "see #Declarator blocks."
13:34 timotimo oh wait
13:34 timotimo it was just cached, now it's updated
13:34 timotimo thanks! :)
13:34 moritz \o/
13:34 moritz gladpanda!
13:35 moritz for the record, the file is /home/pugscode/syn/S26.html
13:35 timotimo gladpandos :)
13:35 moritz so anybody with feather1 root can updated it
13:40 ajr joined #perl6
13:44 timotimo i'm trying to figure out how to handle code blocks (and other blocks that may have virtual left margin in addition to their =begin and =end tags) that start with a line that has more whitespace in front than the rest (like the WHY/WHEREFORE diagram for example)
13:44 timotimo couldn't find anything in the spec for pod6 so far.
13:44 timotimo maybe it warrants a spec ticket
13:45 timotimo oh, hold on, you're allowed to specify a character to be used for the left margin, right?
13:45 timotimo like a | or something
13:46 timotimo that is _so_ unsupported :D
13:49 timotimo i'm thinking the pod parsing could/should be fundamentally simplified. the nesting should be more pronounced in the code. as in: when a block starts, it finds its own end and then parses its content while removing its beginning, end and especially all white and non-space to the left of it.
13:49 timotimo i wonder if that'll fly
13:50 TimToady hmm, smells of multi-pass parsing
13:50 timotimo oh. yes, that it does
13:50 * timotimo drops the idea in the trash can
13:51 * TimToady the Bearer of Bad News when he wakes up :)
13:51 timotimo then again, tables kind of require multi-pass parsing; or at least multiple independent parsers at the same time (for formatting codes that span lines inside cells)
13:51 timotimo well, i guess that can be emulated with single-pass parsing just fine
13:52 TimToady that tends to be a little more work, but worth it in the long run
13:53 timotimo table cell parsing is magical to me anyway :)
13:53 TimToady that being said, pod is...special...insofar as it's line oriented
13:54 TimToady p5eval: say $]
13:54 p5eval TimToady: 5.0180001
13:54 * colomon 's jakudo build is taking an extraordinarily long time...
13:56 TimToady .oO(oh, great, we'll just "fix" the p5 fractional version goof by adding more 0's in there...)
13:58 * TimToady the Grump, waiting for the anti-depressive aspects of his coffee to kick in...
13:58 diakopter did Windows 3.11 really mean 3.1.1?
13:59 TimToady well, Perl 4 meant "we have a book now"
14:01 * timotimo would still really like to know why in the world p6doc's htmlify now uses up so darn much RAM :(
14:01 * TimToady avoids making a pun on EWE gross.
14:02 timotimo maybe it's because for each single character in a pod string there's one match result? (that really struck me as an odd decision when i read the code)
14:02 timotimo but those ASTs and match objects should be discarded once the module is parsed, right?
14:03 timotimo or do they live on in $=pod for some reason?
14:03 TimToady lovely word, "should"
14:03 timotimo "would be sad if something were to happen to it"? :)
14:04 * TimToady was thinking more as a linguist than as a mobster, but I suppose they aren't all that different...
14:05 colomon hmmm… so how can rakudo detect that an argument passed to it is a rakudo object and not something else?
14:05 timotimo "a rakudo object"?
14:06 timotimo maybe you mean something like "from the setting"?
14:06 FROGGS colomon: do you mean if it is an P6opaque? in contrast to a native int/str/num?
14:06 timotimo Perl6/Optimizer.nqp has a "is_from_core" or "find_in_setting" method or so
14:06 colomon FROGGS: perhaps?
14:06 PacoAir joined #perl6
14:06 colomon I'm working on how to get sprintf to smartly handle Rakudo types
14:07 colomon P6opaque might be the ticket
14:07 bluescreen10 joined #perl6
14:08 FROGGS colomon: I've learned that if you have an Int, it will be a P6opaque containing a P6bigint
14:08 colomon that sounds promising
14:08 colomon how do you detect that in rakudo?
14:08 FROGGS and the native types are P6int/P6num/P6str, which you declare like: my str $a
14:08 * colomon considers it might be as simple as ~~ Int
14:10 colomon …. err, is P6opaque entirely NQP?
14:11 FROGGS r: my $x = 42; say $x.REPR
14:11 camelia rakudo 624ff7: OUTPUT«P6opaque␤»
14:11 FROGGS colomon: yes, 6model belongs to nqp
14:11 FROGGS r: my int $x = 42; say $x.REPR
14:11 camelia rakudo 624ff7: OUTPUT«P6opaque␤»
14:11 FROGGS :/
14:11 colomon r: my $x = 42; say $x.REPR
14:11 camelia rakudo 624ff7: OUTPUT«P6opaque␤»
14:12 FROGGS r: my int $x := 42; say $x.REPR
14:12 camelia rakudo 624ff7: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Cannot bind to natively typed variable '$x'; use assignment insteadâ�¤at /tmp/NXnjG4PeG0:1â�¤------> [32mmy int $x := 42[33mâ��[31m; say $x.REPR[0mâ�¤    expecting any of:â�¤        postfixâ�¤Â»
14:14 colomon r: my $x = 42; say $x.REPR eq "P6opaque"
14:14 camelia rakudo 624ff7: OUTPUT«True␤»
14:14 jnthn FROGGS: If you call a method on a native type you force it to be boxed so there's an object to call the method on.
14:15 jnthn (Which applies to macro-ish things like .REPR too)
14:15 FROGGS yeah, I was thinking that something like this happens...
14:15 FROGGS r: my $x = 42; say($x.HOW.name($x));
14:15 camelia rakudo 624ff7: OUTPUT«Int␤»
14:17 colomon jnthn: so, I'm trying to make a method sprintf can call to ask "Should this handler handle this argument"?
14:17 colomon just tried $x.REPR eq "P6opaque" and it fails miserably
14:17 FROGGS colomon: you can try to print this on the thing you get: say($x.HOW.name($x));
14:17 jnthn colomon: In NQP?
14:17 FROGGS in sprintf.nqp I suppose
14:18 jnthn Well, trouble is that on JVM everything is a 6model object; on Parrot it may not be...
14:18 colomon …. well, sprintf in NQP.  I've been trying to write said method in full p6, assuming sprintf can call back to it.
14:18 jnthn .REPR may not be in NQP
14:18 jnthn nqp::reprname(...) is the underlying op though.
14:19 colomon nqp::reprname seems like it might do the trick?
14:19 colomon nqp::reprname($x) eq "P6opaque"
14:21 colomon so given $x.Int (rakudo), how do I get to the P6bigint?
14:21 FROGGS colomon: you dont I think, just use the bigint ops it it is a Int
14:22 jnthn Right, you can use the bigint ops directly on a P6opaque with a P6bigint inside of it
14:22 colomon trying now...
14:23 * colomon finds the full recompile kind of slow...
14:24 FROGGS colomon: come to #moarvm :P
14:24 colomon FROGGS: jvm is important to my plans for world domination
14:25 FROGGS ahh, I see
14:25 colomon or could I actually develop rakudo's nqp sprintf on MoarVM?  It isn't that far along yet, is it?
14:25 * TimToady pictures the world falling like dominoes
14:25 colomon bwah-ha-HA-ha
14:26 FROGGS colomon: I'm trying to merge sprintf.nqp in right now
14:27 colomon FROGGS: but the important bit of what I'm working on is getting Rakudo variables to work in sprintf.nqp
14:27 FROGGS yeah, and this will work everywhere :o)
14:27 FROGGS so you're really working for (at least) three backends at once
14:28 colomon :)
14:28 colomon as far as I know, the only place it actually works now is JVM.  (And that's for a very loose definition of works, else I'd be done!)
14:29 colomon but yes, hitting all the backends is certainly a goal.
14:30 * colomon is going to run out of laptop battery before his son runs out of (morning) tennis camp
14:30 colomon r: say 2**100
14:30 camelia rakudo 624ff7: OUTPUT«1267650600228229401496703205376␤»
14:30 colomon sweet!!!!!
14:30 TimToady bet that took a lot of electrons...
14:31 colomon r: say (2 ** 100) / 3
14:31 camelia rakudo 624ff7: OUTPUT«422550200076076467165567735125.333333␤»
14:31 colomon those both just worked correctly in my test.  \o/
14:31 dalek Perlito: c8c5ad5 | (Flavio S. Glock)++ | src5/lib/Perlito5/Grammar/Print.pm:
14:31 dalek Perlito: Perlito5 - indirect syntax for print - tweak
14:31 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/c8c5ad5aa3
14:31 dalek Perlito: 1e5c22a | (Flavio S. Glock)++ | / (2 files):
14:31 dalek Perlito: Perlito5 - recompile
14:31 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/1e5c22a43c
14:32 colomon jnthn: okay, I can write an argument handler for sprintf and it works.  where should I pass it in Rakudo?
14:32 * colomon expected much greater difficultly making this work.  nqp++
14:36 ajr joined #perl6
14:38 Bzek joined #perl6
14:40 colomon Do we have a Rakudo-specific namespace?
14:43 skids joined #perl6
14:43 colomon Error while constructing error object:Could not locate compile-time value for symbol Syntax::Confused
14:43 colomon Error while compiling, type X::Syntax::Confused
14:49 timotimo it's a followup from a Syntax::Confused error being thrown in the setting before it reaches the point where Syntax::Confused gets declared
14:49 timotimo oh wait
14:49 timotimo haha, that's amusing :)
14:54 * colomon is going to run out of battery power before this compile finishes...
14:55 timotimo that's why i always ssh to my desktop at home. it has 2x the ram, 2x the cores and each core is faster and in addition, it doesn't heat my laptop up and is connected directly to the wall :)
14:55 colomon timotimo: yeah, I should have thought of that two hours ago.
14:56 colomon I got used to working without an internet connection last week.
14:58 timotimo i can only reach my desktop from places where i have ipv6 connectivity, so it's not perfect either ;)
14:58 hoelzro $*W.is_name($*W.dissect_longnam​e('Int').type_name_parts('type name')) # 0
14:58 hoelzro wtf?
14:58 hoelzro timotimo: you don't have a VPN? =)
15:07 timotimo i don't. i have a fritzbox which has some strange proprietary vpn thing built in that i can't seem to access properly from the outside. haven't tried too thoroughly though
15:08 hoelzro bummer =/
15:08 timotimo but you're right. i should probably set up proper firewall rules on my router
15:08 timotimo it seems like my cups is showing to the outside world
15:08 timotimo luckily i don't have printers.
15:08 hoelzro haha
15:09 flussence doesn't it still have "print to PDF" though?
15:09 konundra joined #perl6
15:09 timotimo i think that's only for local. but what do i know?
15:10 timotimo i don't expect many attacks to come through ipv6 yet
15:10 timotimo but that's a very bad reason to not run a firewall.
15:10 timotimo very, very, very bad.
15:10 flussence I don't have any printers either, but stupid java has a hard dep on cups...
15:10 hoelzro timotimo: your ipv6 traffic is all open?
15:11 timotimo not any more
15:12 timotimo i guess i didn't think about how dumb that was until now :)
15:15 hoelzro heh
15:16 timotimo but it's just so nice ... no need to nat, just have all the ports open and you can reach the machine from everywhere!
15:16 hoelzro yeah
15:16 hoelzro it *is* nice =)
15:16 * hoelzro misses his desktop
15:17 kaare_ joined #perl6
15:25 colomon joined #perl6
15:32 colomon t/spec/S32-str/sprintf.rakudo.jvm (Wstat: 0 Tests: 126 Failed: 0)
15:32 colomon TODO passed:   43-62
15:32 FROGGS ohh cool
15:32 FROGGS colomon++
15:33 timotimo wow, pretty great! :)
15:33 colomon still needs some cleanup, but this feels like a great start.
15:33 colomon :)
15:33 timotimo that's 0 failed, are any skipped? probably some missing?
15:33 FROGGS sprintf has 255 tests imo
15:35 timotimo 'k
15:35 colomon there are definitely some skipped / todo'd.  (not just in JVM, I should add)
15:35 colomon FROGGS: nope, 126
15:35 FROGGS hmmm
15:36 FROGGS ahh, nqp's sprintf.t has 255 tests
15:36 FROGGS pretty cool :o)
15:37 colomon afk # nom pickup
15:43 notjack joined #perl6
15:49 colomon joined #perl6
15:50 jnthn TimToady: Is a buf8 etc. considered a form of "native" type?
15:51 jnthn TimToady: But another way, do we expect buf8 to directly be a buffer of memory, or do we expect it to be a P6opaque that contains one?
15:51 diakopter jnthn: you're thinking it's kindof a .NET value type?
15:51 diakopter (each size/length its own "type")
15:51 jnthn TimToady: The first meaning that we get to optimize it a bunch more, the second meaning you could mix in to it...
15:52 * diakopter assumed you meant you preferred the former. :)
15:52 colomon woah, those 20 passing tests I just got don't pass in parrakudo!
15:52 diakopter probably flukes
15:52 diakopter ;)
15:52 jnthn diakopter: More about if you do my $a = buf8.new(), does it have repr VMArray or P6opaque :)
15:53 jnthn s/But/Put/ above
15:53 diakopter right; I just meant for optimization purposes (possibly allocated on teh stack like .NET)
15:53 diakopter er, definitely allocated on the stack
15:53 diakopter since it's always copied
15:54 jnthn int[] a; /* not allocated on the stack :-) */
15:54 diakopter jnthn: I meant C# struct foo { int a,b,c,d,e,f,g,h,i,j,etc; }
15:54 jnthn ah, ok
15:55 diakopter (one struct "type" for each length/width)
15:55 diakopter optimize all teh things.
15:56 diakopter jnthn: but couldn't it be also mixed into the other way? (so ones that are mixed into could be references, and the others not?)
15:57 diakopter I mean, the compiler is always going to know whether it's definitely value-type-able or not
15:58 jnthn Mixins are runtime
15:58 jnthn We don't know statically whether it will happen.
16:00 diakopter jnthn: I guess I meant for non-"statically typed" variables that the optimizer can determine will never be mixed in like that
16:02 GlitchMr rn: class Foo { has $!shyguy = 42; } my Foo $foo .= new; say $foo.^attributes.first('$!​shyguy').get_value($foo);
16:02 camelia niecza v24-88-g1f87209: OUTPUT«[31m===[0mSORRY![31m===[0m��Strange text after block (missing comma, semicolon, comment marker?) at /tmp/m3Os0EBP4T line 1:�------> [32mclass Foo { has $!shyguy = 42; }[33m�[31m my Foo $foo .= new; say $foo.^attribute[0m��Parse failed��»…
16:02 camelia ..rakudo 624ff7: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Two terms in a rowâ�¤at /tmp/T73yvzTyeh:1â�¤------> [32mclass Foo { has $!shyguy = 42; } [33mâ��[31mmy Foo $foo .= new; say $foo.^attributes[0mâ�¤    expecting any of:â�¤        postfixâ�¤        statement endâ�¤        statement modifierâ�¤     …
16:02 GlitchMr rn: class Foo { has $!shyguy = 42; }; my Foo $foo .= new; say $foo.^attributes.first('$!​shyguy').get_value($foo);
16:02 camelia rakudo 624ff7: OUTPUT«42␤»
16:02 camelia ..niecza v24-88-g1f87209: OUTPUT«Unhandled exception: Unable to resolve method attributes in type ClassHOW␤  at /tmp/KlTjF9Mm7X line 1 (mainline @ 8) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4579 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4580 (module-CORE @ 576) ␤ …
16:02 GlitchMr Sounds like a hacky way of accessing private properties.
16:02 jnthn Yes, it's not meant to be pleasant to do so.
16:03 bluescreen100 joined #perl6
16:04 GlitchMr But still possible, right?
16:04 kaleem joined #perl6
16:04 jnthn Right.
16:05 jnthn "Make ... the hard things possible" :)
16:10 GlitchMr By the way, I'm not sure whatever it's bug or not, but in Rakudo, when you "use" some unknown module, the "===SORRY!===" doesn't have colors
16:13 grondilu joined #perl6
16:17 vk_ joined #perl6
16:19 havenwood joined #perl6
16:26 FROGGS joined #perl6
16:34 nebuchadnezzar joined #perl6
16:38 kaare__ joined #perl6
16:42 colomon rn: say (5.6).fmt('%f')
16:42 camelia rakudo 624ff7, niecza v24-88-g1f87209: OUTPUT«5.600000␤»
16:44 colomon rn: printf("%f", 5.6)
16:44 camelia rakudo 624ff7, niecza v24-88-g1f87209: OUTPUT«5.600000»
16:44 kaleem joined #perl6
16:45 dalek roast: 19624e1 | (Solomon Foster)++ | S02-names-vars/fmt.t:
16:45 dalek roast: Fix broken %f tests and unfudge them.
16:45 dalek roast: review: https://github.com/perl6/roast/commit/19624e1c1f
16:47 GlitchMr std: for $nonsense {}
16:47 camelia std c2215f0: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Variable $nonsense is not predeclared at /tmp/6lpLteh64f line 1:â�¤------> [32mfor [33mâ��[31m$nonsense {}[0mâ�¤Potential difficulties:â�¤  'for $nonsense' will never flatten a $ variable;â�¤    to force list interpolation, please use either 'fo…
16:47 GlitchMr std: my $nonsense; for $nonsense[] {}
16:47 camelia std c2215f0: OUTPUT«ok 00:00 45m␤»
16:47 GlitchMr std: my $nonsense; for $nonsense<a> {}
16:47 camelia std c2215f0: OUTPUT«ok 00:00 44m␤»
16:47 GlitchMr ok
16:54 Rotwang joined #perl6
16:57 GlitchMr std: use Use::No::Colors::In::Error
16:57 camelia std c2215f0: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Cannot locate module Use::No::Colors::In::Error at /tmp/STKinO2jny line 1 (EOF):â�¤------> [32muse Use::No::Colors::In::Error[​33mâ��[31m<EOL>[0mâ�¤Check failedâ�¤FAILED 00:00 41mâ�¤Â»
16:58 GlitchMr r: use Use::No::Colors::In::Error
16:58 camelia rakudo 624ff7: OUTPUT«===SORRY!===␤Could not find Use::No::Colors::In::Error in any of: /home/p6eval/nom-inst/lib/parrot/5.​5.0-devel/languages/perl6/site/lib, /home/p6eval/nom-inst/lib/parrot/5.5​.0-devel/languages/perl6/vendor/lib, /home/p6eval/nom-inst/lib/pa​rrot/5.5.0-devel/languages/…
16:58 GlitchMr No colors in ===SORRY!===
16:59 lizmat good *, #perl6!
16:59 jnthn o/ lizmat
16:59 lizmat r: .say.WHAT for (1,(2,3),4)  # sort of expected Int, Parcel, Int here
16:59 camelia rakudo 624ff7: OUTPUT«1␤2␤3␤4␤»
17:00 spider-mario joined #perl6
17:00 lizmat r: .WHAT.say for (1,(2,3),4)  # sort of expected Int, Parcel, Int here
17:00 camelia rakudo 624ff7: OUTPUT«(Int)␤(Int)␤(Int)␤(Int)␤»
17:00 jnthn lizmat: Parcels flatten in list context.
17:00 lizmat aha!
17:05 GlitchMr .WHAT.say for (1,(2,3),4).tree
17:05 GlitchMr r: .WHAT.say for (1,(2,3),4).tree
17:05 camelia rakudo 624ff7: OUTPUT«(Int)␤(Parcel)␤(Int)␤»
17:05 GlitchMr Here
17:05 GlitchMr This is probably what you wanted
17:11 timotimo oh, huh
17:11 timotimo >>.WHAT isn't nodal, it's ... scalal
17:12 moritz .WHAT is not a method call
17:12 timotimo it's a macro, yes?
17:12 moritz yes
17:14 lizmat r: my @b :=  map { 0 ?? $_ !! () }, 1,2,3; say @b.perl   # according to spec, this should be ().list, right
17:14 camelia rakudo 624ff7: OUTPUT«((), (), ()).list␤»
17:14 dalek nqp: b16ca35 | (Solomon Foster)++ | src/ (2 files):
17:14 dalek nqp: Add sprintfAddHandler and use it.
17:14 dalek nqp:
17:14 dalek nqp: This allows you to register a handler which knows how to convert types NQP doesn't know about to bigints.  (Eventually I hope to expand it to floating point values and strings as well.)
17:14 dalek nqp:
17:14 dalek nqp: I'm not particularly attached to the name sprintfAddHandler, if someone has a better suggestion.
17:14 dalek nqp: review: https://github.com/perl6/nqp/commit/b16ca356ad
17:14 lizmat r: my @b :=  map { 0 ?? $_ !! Nil }, 1,2,3; say @b.perl   # according to spec, this should be (Nil,Nil,Nil).list, right ?
17:14 camelia rakudo 624ff7: OUTPUT«().list␤»
17:15 timotimo n: my @b :=  map { 0 ?? $_ !! Nil }, 1,2,3; say @b.perl
17:15 camelia niecza v24-88-g1f87209: OUTPUT«().list␤»
17:15 timotimo at least both are equally wrong/right :)
17:15 jnthn colomon: op names tend to be lowercase
17:15 jnthn colomon: also, add handler for...what? ;)
17:15 lizmat r: my @b :=  map { $_ if 0 }, 1,2,3; say @b.perl  # internally, this currently has the Nil behaviour
17:15 camelia rakudo 624ff7: OUTPUT«().list␤»
17:16 lizmat moritz: it would seem to me that grep currently also depends on the wrong Nil behaviour
17:17 timotimo it should use () instead, is that correct?
17:17 moritz lizmat: most likely, yes
17:18 jnthn lizmat: I suspect an awful lot of things do
17:18 colomon afk # would post next bit, but "You must pretend you're an AT-AT!"
17:18 lizmat then I will not change current squish/uniq implementations  :-)
17:18 timotimo aaw, kids
17:21 lizmat my roadmap in that respect is: get var traits in (jnthn++), get is_default working, get Nil assignment working, check all of the code for incorrect Nil usage and fix that,
17:22 * jnthn will try to get to var traits soon :)
17:22 jnthn Got a lot of things I want to attack, Buf amongst 'em.
17:22 lizmat jnthn: at your convenience, getting jakudo to 100% is much more important
17:23 jnthn Well, currently I'm looking at Buf stuff
17:23 jnthn But I want to get Buf righter rather than today's hack.
17:23 timotimo so tell me. if i have =begin code ... =end code and the code inside it is indented, but only exactly to be flush with the = signs
17:23 timotimo the code should *not* end up with spaces in front of it in every line, right?
17:24 timotimo as in: every space that's in front of the =begin should be stripped from the rest as well, yes?
17:24 moritz timotimo: I think so, yes
17:24 * timotimo runs off to fix that
17:25 colomon argh
17:26 timotimo there is already code in there that is supposed to chop off spaces from the beginning of every line
17:26 jnthn Turns out that the stuff I need to do in order to get Buf in place in a better way is also the foundation stuff for native arrays...
17:28 timotimo nqp: my $spaces := "    "; my $first := "    foo\n    bar\n    baz\n"; nqp::say(subst($first, /\n$spaces/, :global));
17:28 camelia nqp: OUTPUT«too few positional arguments: 2 passed, 3 (or more) expected␤current instr.: 'subst' pc 1014 (src/stage2/gen/NQPCORE.setting.pir:484) (src/stage2/NQPCORE.setting:701)␤»
17:28 timotimo nqp: my $spaces := "    "; my $first := "    foo\n    bar\n    baz\n"; nqp::say(subst($first, /\n$spaces/, "\n", :global));
17:28 camelia nqp: OUTPUT«    foo␤bar␤baz␤␤»
17:28 lizmat jnthn: that sounds like excellent news, actually
17:28 colomon \o/
17:30 domidumont joined #perl6
17:32 grondilu rn: say my $σ = 4; # testing a unicode variable name
17:32 camelia rakudo 624ff7: OUTPUT«4␤»
17:32 camelia ..niecza v24-88-g1f87209: OUTPUT«Potential difficulties:â�¤  $σ is declared but not used at /tmp/gA5J7Om1Vd line 1:â�¤------> [32msay my [33mâ��[31m$σ = 4; # testing a unicode variable nam[0mâ�¤â�¤4â�¤Â»
17:35 grondilu rn: my $σ0 = 4; say $σ0  # testing a unicode variable name with a numeric suffix
17:35 camelia rakudo 624ff7, niecza v24-88-g1f87209: OUTPUT«4␤»
17:35 dalek nqp: e4dc9d2 | (Solomon Foster)++ | src/HLL/sprintf.nqp:
17:35 dalek nqp: Fix sprintfAddHandler return value.
17:35 dalek nqp:
17:35 dalek nqp: I deleted the return value just before pushing the last patch.  Turns out it was important.  Whoops.
17:35 dalek nqp: review: https://github.com/perl6/nqp/commit/e4dc9d29de
17:35 dalek rakudo/rebuf: 56bde21 | jnthn++ | / (8 files):
17:35 dalek rakudo/rebuf: Start preparing MOP for Buf[T] and native arrays.
17:35 dalek rakudo/rebuf: review: https://github.com/rakudo/rakudo/commit/56bde21c3c
17:35 dalek rakudo/nom: ba6da77 | (Solomon Foster)++ | src/core/Cool.pm:
17:35 dalek rakudo/nom: Initialize sprintf argument handler when needed.
17:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ba6da77a74
17:36 prammer joined #perl6
17:38 grondilu rn: my $σ0 = 4; say $σ0  # I get a "two terms in a row" with this on my machine :/
17:38 camelia rakudo 624ff7, niecza v24-88-g1f87209: OUTPUT«4␤»
17:38 grondilu yet I'm running 624ff7.   Weird.
17:39 sahadev joined #perl6
17:42 timotimo interestingly, it seems like pod_textcontent:sym<code> is not being called when i have a =begin code ... =end code
17:47 moritz grondilu: maybe REPL vs. one-line vs. program from file?
17:48 timotimo i must say the pod parsing code looks a bit like kraut and rüben.
17:51 timotimo =o
17:51 timotimo i put debug outputs into both textcontent variants, code and regular. neither gets output when i parse my =begin code ... =end code *or* the =begin pod ... =end pod i optionally put around it
17:53 dalek Perlito: 78f005a | (Flavio S. Glock)++ | src5/ (5 files):
17:53 dalek Perlito: Perlito5 - js - move all I/O to IO.pm
17:53 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/78f005ac76
17:53 dalek Perlito: fc831b6 | (Flavio S. Glock)++ | / (3 files):
17:53 dalek Perlito: Perlito5 - js - move all I/O to IO.pm
17:53 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/fc831b6d9f
18:01 dalek rakudo/nom: 45d4473 | (Elizabeth Mattijsen)++ | src/core/Any.pm:
18:01 dalek rakudo/nom: Make {@keys}:k use slighlty less CPU
18:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/45d4473b61
18:03 fgomez joined #perl6
18:05 timotimo i'm now convinced rakudo is trying to troll me and i will not investigate further today.
18:06 dalek rakudo-star-daily: 942836f | coke++ | log/ (5 files):
18:06 dalek rakudo-star-daily: today (automated commit)
18:06 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/942836f178
18:06 dalek rakudo-star-daily: 00efa50 | coke++ | log/ (5 files):
18:06 dalek rakudo-star-daily: today (automated commit)
18:06 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/00efa506bf
18:06 dalek rakudo-star-daily: 5098ee3 | coke++ | log/ (5 files):
18:06 dalek rakudo-star-daily: today (automated commit)
18:06 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/5098ee3547
18:06 jnthn trolololol
18:07 jnthn huh, 3 updates? :)
18:07 jnthn oh, rakudo *star* faily!
18:07 jnthn *daily
18:07 jnthn !!
18:07 jnthn [Coke]++
18:07 timotimo cool!
18:08 bbkr joined #perl6
18:09 timotimo i wonder if it would be nice to have a filter run over the outputs that will round the time taken to the next 10 and remove the parenthesized parts? so that there's not so much noies?
18:09 timotimo noise*
18:10 [Coke] jnthn: right now it's just doing a star build out of the repo. need to make it smarter and try to grab latest rakudo.parrot and latest repository variants.
18:10 timotimo good idea
18:10 [Coke] Testing modules/perl6-File-Tools...
18:10 [Coke] Testing modules/perl6-File-Tools...
18:10 [Coke] is failing.
18:10 [Coke] t/02-shell-command.t is failing
18:11 [Coke] looks like quite a bit is failing, actually: https://github.com/coke/rakudo-star-d​aily/blob/master/log/test-modules.log
18:11 timotimo yeah. isn't that from a version mismatch of rakudo and the tools?
18:11 timotimo r: dir()[0].copy
18:11 camelia rakudo 624ff7: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤  in method copy at src/gen/CORE.setting:11846␤  in block  at /tmp/IZp3_NEy76:1␤␤»
18:11 timotimo r: dir()[0].WHAT.say
18:11 camelia rakudo 624ff7: OUTPUT«(IO::Path)␤»
18:11 timotimo because IO::Path does have a copy method.
18:12 [Coke] I'm pretty sure it's the fixed version of rakudo and the modules that are listed in the star repo that are used.
18:12 [Coke] so perhaps we need to bump those versions.
18:12 timotimo that sounds like the problem, yeah
18:13 [Coke] I hesitate to always "get latest" on the star build, because that may not be what the stable is. might be nice to have a tag or a sha1 somewhere to indicate "please use this latest version" in the ecosystem somewhere.
18:14 timotimo that sounds good. a "star" branch for every project; if no star branch exists, pull in the newest master each time?
18:15 [Coke] or maybe I can generate the list of sha1s used when I do the run, and whoever packages up star can check to see what the latest one that worked was.
18:15 SamuraiJack joined #perl6
18:15 [Coke] (that's something I can easily control, anyway)
18:15 timotimo that's a good idea, too
18:16 kaleem joined #perl6
18:17 fgomez joined #perl6
18:20 raiph joined #perl6
18:21 grondilu moritz: (about the unicode variable)  No, I've just checked in the REPL. Fails too.  I've tried in a file, on the command line with -e, and in the REPL.  Always failed.  Maybe my terminal has a bad config.
18:23 timotimo it turns out that pod_textcontent:sym<code> isn't even used. instead, pod_block:sym<delimited_raw> seems to be.
18:23 raiph looks like i'm permabanned from /r/perl: http://www.reddit.com/r/perl/comments/1id0r0​/rakudo_jvm_news_more_tests_plus_thread_and/
18:25 timotimo what makes you think that?
18:25 timotimo because nobody is commenting?
18:25 raiph that post was never visible from the main page
18:26 raiph same happened to my last post, for one day, then it appeared
18:28 raiph but this one has not appeared and it's been 3 days since i submitted it
18:30 raiph i'm not bothered by the ban, just intrigued
18:30 konundra joined #perl6
18:34 dalek roast: 5e490ab | (Solomon Foster)++ | S32-str/sprintf.t:
18:34 dalek roast: Unfudge tests in JVM.
18:34 dalek roast: review: https://github.com/perl6/roast/commit/5e490ab55a
18:35 [Coke] jvm run seems much slower today
18:35 [Coke] dunno if it's just me.
18:37 lizmat r: my %h; %h<bar><baz> := 'zoom'  # rakudobug ?
18:37 camelia rakudo 45d447: OUTPUT«No such method 'bind_key' for invocant of type 'Any'␤  in method postcircumfix:<{ }> at src/gen/CORE.setting:1748␤  in method postcircumfix:<{ }> at src/gen/CORE.setting:1733␤  in block  at /tmp/ZuZrMkeTU0:1␤␤»
18:37 lizmat n: my %h; %h<bar><baz> := 'zoom'  # rakudobug ?
18:37 camelia niecza v24-88-g1f87209:  ( no output )
18:38 lizmat n: my %h; %h<bar><baz> := 'zoom'; say %h<bar>baz>
18:38 camelia niecza v24-88-g1f87209: OUTPUT«[31m===[0mSORRY![31m===[0m��Two terms in a row at /tmp/3yBFogCR4p line 1:�------> [32m %h; %h<bar><baz> := 'zoom'; say %h<bar>[33m�[31mbaz>[0m��Parse failed��»
18:38 lizmat n: my %h; %h<bar><baz> := 'zoom'; say %h<bar><baz>
18:38 camelia niecza v24-88-g1f87209: OUTPUT«zoom␤»
18:38 * lizmat files rakudobug
18:41 lizmat p: my %h; %h<bar><baz> := 'zoom'; say %h<bar><baz>
18:41 camelia pugs: OUTPUT«zoom␤»
18:41 diakopter r: my %h; (%h<bar>={})<baz> := 'zoom'
18:41 camelia rakudo 45d447:  ( no output )
18:41 diakopter r: my %h; (%h<bar>={})<baz> := 'zoom'; say %h<bar><baz>
18:41 camelia rakudo 45d447: OUTPUT«zoom␤»
18:42 diakopter hrm
18:42 lizmat p: my %h; %h<bar><baz>; say %h<bar>
18:42 camelia pugs: OUTPUT«␤»
18:42 diakopter r: my %h; (%h<bar>:={})<baz> := 'zoom'; say %h<bar><baz>
18:42 lizmat n: my %h; %h<bar><baz>; say %h<bar>
18:42 camelia rakudo 45d447: OUTPUT«zoom␤»
18:42 camelia niecza v24-88-g1f87209: OUTPUT«(Any)␤»
18:43 diakopter r: my %h; (%h<bar>:=%h)<baz> := 'zoom'; say %h<bar><baz>  # LOLOLOLOLOLOL
18:43 camelia rakudo 45d447: OUTPUT«zoom␤»
18:43 diakopter (lol b/c it's bound)
18:45 dalek roast: 9254143 | (Elizabeth Mattijsen)++ | S02-types/hash.t:
18:45 dalek roast: Some more basic hash tests, found one problem (#118947)
18:45 dalek roast: review: https://github.com/perl6/roast/commit/9254143445
18:46 diakopter rnp: my %h; %h<bar> := %h; %h<bar> := {}; say keys %h
18:46 camelia pugs: OUTPUT«barbar␤»
18:46 camelia ..rakudo 45d447, niecza v24-88-g1f87209: OUTPUT«bar␤»
18:46 diakopter rnp: my %h; %h<bar> := %h; %h<bar> = {}; say keys %h
18:46 camelia pugs: OUTPUT«*** Can't modify constant item: VList []␤    at /tmp/9CKQOnm0Fz line 1, column 23-35␤»
18:46 camelia ..rakudo 45d447, niecza v24-88-g1f87209: OUTPUT«␤»
18:46 diakopter heh.
18:46 TimToady jnthn: yes, buf8 is a native type, and cannot be mixed into; it might, however, be generic in the binding sense, so that a routine can handle any length of buf8, for instance, as a parameter
18:46 diakopter barbar indeed
18:47 diakopter note NO keys on the 2nd one above for rakudo and niecza
18:47 diakopter talk about action at a distance
18:48 TimToady any given native type has a descriptor somewhere (at least notionally, even if the compiler throws it out) that carries the type on behalf of the native location, and passing around such a descriptor has the appearance of mutating the type where it is bound
18:49 TimToady the purpose buf8 is primarily to represent a chunk of memory
18:49 TimToady *of
18:49 lizmat r: my %h; %h<bar> := %h; %h<bar> = {}; say keys %h; say keys %h<bar>  # but apparently something's still in %h<bar>
18:49 camelia rakudo 45d447: OUTPUT«␤0␤»
18:50 TimToady this is why it's mutable, for instance
18:50 diakopter lizmat: whoa!
18:50 lizmat r: my %h; say keys %h<foo>  # same
18:50 camelia rakudo 45d447: OUTPUT«0␤»
18:50 diakopter oh.
18:51 diakopter r: my %h; %h<bar> := %h; %h<bar> = {}; say keys %h; say keys %h<bar>; say keys %h
18:51 camelia rakudo 45d447: OUTPUT«␤0␤␤»
18:51 lizmat r: say Any.keys
18:51 camelia rakudo 45d447: OUTPUT«0␤»
18:51 lizmat r: say Any.list.keys
18:51 camelia rakudo 45d447: OUTPUT«0␤»
18:51 lizmat r: say Any.list
18:51 camelia rakudo 45d447: OUTPUT«(Any)␤»
18:52 diakopter r: my %h; %h<bar> := %h; %h<bar> = {}; say keys %h; say keys %h<bar>; say keys %h<bar><bar>; say keys %h<bar><bar><bar>; say keys %h<bar><bar><bar><bar>
18:52 TimToady it's the 0 from the .kv of a 1 element list, I guess
18:52 camelia rakudo 45d447: OUTPUT«␤0␤0␤0␤0␤»
18:53 TimToady r: say keys Any,Any,Any
18:53 camelia rakudo 45d447: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'keys' will never work with argument types (Any, Any, Any) (lines 1, 1)␤    Expected any of:␤    :($x)␤»
18:54 diakopter rnp: my %h; %h<bar> := %h; %h<bar> = {bar=>%h}; say keys %h; say keys %h<bar>; say keys %h<bar><bar>; say keys %h<bar><bar><bar>; say keys %h<bar><bar><bar><bar>
18:54 camelia pugs: OUTPUT«*** Can't modify constant item: VList []␤    at /tmp/Z1ndHYaqkX line 1, column 23-42␤»
18:54 camelia ..rakudo 45d447, niecza v24-88-g1f87209: OUTPUT«bar␤bar␤bar␤bar␤bar␤»
18:54 TimToady r: say keys (Any,Any,Any)
18:54 camelia rakudo 45d447: OUTPUT«0 1 2␤»
18:54 lizmat r: say Any.list.end  # shouldn't this be -1 ?
18:54 camelia rakudo 45d447: OUTPUT«0␤»
18:54 TimToady it's a list of 1 element
18:54 TimToady Any !=== ()
18:55 lizmat r: say Any.list.elems # indeed
18:55 camelia rakudo 45d447: OUTPUT«1␤»
18:56 lizmat r: say Any.keys # still feels strange
18:56 camelia rakudo 45d447: OUTPUT«0␤»
18:56 TimToady not sure there's much to be done about--it's the WAT that goes with an important DWIM, and it's pretty well hidden, for a WAT
18:57 TimToady .oO(Masak's Law)
19:00 TimToady timotimo: the opposite of nodal is...leafal!
19:00 PerlJam .oO( I thought it was "dal" )
19:00 TimToady only in an Indian restaurant
19:00 [Coke] leafy
19:01 TimToady nodey?
19:01 lizmat lentilly?
19:01 TimToady branchy?
19:01 TimToady that would be lenticular :)
19:01 cooper joined #perl6
19:02 lizmat .oO( wonder if I can have my NaN and eat it too )
19:02 TimToady jnthn: yes, a buf8 is precisly a native array of int8
19:02 TimToady *cise
19:03 * lizmat still needs to get used to intX where X indicates the number of bits
19:08 bbkr1 joined #perl6
19:08 dalek specs: 43de78c | duff++ | S99-glossary.pod:
19:08 dalek specs: Change explanation of S99's purpose slightly
19:08 dalek specs: review: https://github.com/perl6/specs/commit/43de78ced4
19:08 dalek specs: a35523c | duff++ | S99-glossary.pod:
19:08 dalek specs: add WAT
19:08 dalek specs: review: https://github.com/perl6/specs/commit/a35523c521
19:09 [Coke] duff: what is point of adding WAT if you're not going to define it? :P
19:09 TimToady WAT!?!
19:09 lizmat well, I was wondering WAT as well
19:10 bbkr joined #perl6
19:10 PerlJam Coke: I'm not sure if WAT has taken on some more-specialized meaning in a #perl6 context or not.
19:10 PerlJam These things tend to happen you know.
19:11 TimToady According to Masak's Law, a WAT is the price you must pay for its corresponding DWIM.  :)
19:11 TimToady Or is that Mäsak's Law?
19:12 jnthn TimToady: OK, thanks :)
19:12 [Coke] so, unexpected behavior?
19:12 PerlJam (plus, I'm not sure what I would put if it hasn't.  "extreme expression of confusion or disbelief"? )
19:12 TimToady that's its meaning in the larger culture
19:12 lizmat ok, so WAT is more like .WHAT?
19:13 PerlJam lizmat: See https://www.destroyallsoftware.com/talks/wat
19:13 jnthn lizmat: WAT is https://www.destroyallsoftware.com/talks/wat
19:13 dalek perl6-roast-data: cef0386 | coke++ | / (5 files):
19:13 dalek perl6-roast-data: today (automated commit)
19:13 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/cef0386c01
19:13 TimToady maybe we should rename Nil to WAT
19:14 TimToady just to confuse people
19:14 lizmat 99.07 still
19:19 dalek specs: 5bed3c8 | (Elizabeth Mattijsen)++ | S99-glossary.pod:
19:19 dalek specs: This explains WAT: PerlJam++, jnthn++
19:19 dalek specs: review: https://github.com/perl6/specs/commit/5bed3c8d79
19:22 lizmat r: my $a; say $a.list.perl  # wonder if special casing Any.list to be () wouldn't make a lot of sense
19:22 camelia rakudo 45d447: OUTPUT«(Any,).list␤»
19:23 lizmat TimToady: fwiw, it doesn't fail any spectest if I do this for any undefined vakue
19:24 TimToady I'm sure such a DWIM would have its own WAT
19:24 TimToady probably better to leave the current WAT in place
19:25 PerlJam lizmat: what would  my Dog $fido; $fido.list.perl;  be in that hypothetical universe?
19:25 lizmat ().list
19:26 lizmat assuming Dog doesn't have its own .list and inherits from Any
19:26 lizmat and doesn't have any other .list in its ^mro
19:28 jnthn hmm...meta-programming is a bit fiddly sometimes...
19:29 colomon joined #perl6
19:30 lizmat anyway, this is the diff for that hypothetical universe, it passes all current spectests: https://gist.github.com/lizmat/6041763
19:32 colomon [Coke]: JVM seemed much slower to me too, but I assumed it was because I was doing other stuff in the background and running on battery.  huh.
19:33 jnthn Hm
19:33 PerlJam lizmat: I can imagine something like  @stuff ==> map { $mumble.list } ==> @other-stuff would be surprising if $mumble.list made an undefined $mumble disappear rather than putting an undefined thing in the resulting list.
19:33 PerlJam lizmat: (that's my only argument for keeping things the way they are :)
19:33 jnthn colomon: If you fancy working out what's to blame, that'd be helpful. I don't have any immediate guesses...
19:35 lizmat PerlJam: Well, if $mumble would be Nil, then that is exactly what would happen
19:35 lizmat however, unless $mumble is defined with "is default(Nil)", that will *never* happen
19:36 lizmat as the assignment of Nil to $mumble, will set that to whatever is the default for $mumble (usually Any)
19:36 timotimo TimToady: you have excluded a Third. in this case it's more like WholeTreeal
19:36 timotimo or Rootal
19:37 lizmat .oO( maybe we need a .weed method )
19:37 TimToady timotimo: eh, every node looks like a whole tree if you 'gnore its parent
19:37 colomon jnthn: I don't know that I have the time to work on it right now… I've got a 4-year-old who's wanting a lot of attention this afternoon.
19:38 timotimo hehe
19:42 colomon but I just compiled, (well, started), and stage parse is taking 53 seconds when I would swear it was just 20-something yesterday
19:42 jnthn Odd, it's about the same ehre
19:42 jnthn *here
19:42 jnthn Around 39s/40s
19:43 colomon trying a build on my Linux box, which hasn't been updated in a while
19:52 timotimo i haven't been able to create a raco condition with (^100).map({ async { $global = $global + 1 } })
19:53 TimToady you need to implement 'race' first :)
19:55 jnthn TimToady: Well, you must be getting far too lucky :P
19:55 jnthn uh, timotimo
19:56 * TimToady is always far too lucky, though sometimes the luck is bad.
20:01 lizmat timotimo: when you say, "no race condition" do you mean $global maintains its integrity, or that it didn't miss any of the +1's ?
20:04 TimToady jnthn has a race condition in his autocompleter
20:08 colomon jnthn: you'll be happy to know I didn't see any slowdown at all comparing the July 5th version to the latest (on my Linux box)
20:08 jnthn ok
20:09 * jnthn is still a little unnerved that colomon and [Coke] sensed there was one on some boxes...
20:09 colomon yes, it still might be worth investigating.  here are the numbers I got on my linux box: https://gist.github.com/colomon/6042000
20:10 lizmat going to see some Pacific Rim&
20:10 colomon Hmm, is [Coke] running on OS X too?
20:10 timotimo lizmat: $global ends up being exactly 100 in each test i ran
20:11 jnthn colomon: memory size in the boxes?
20:12 colomon jnthn: boatloads more memory in my linux box
20:12 jnthn k
20:12 jnthn colomon: Hm, that looks like a small change there?
20:12 colomon 32 gigs versus 8
20:12 colomon small improvement, yes.
20:13 colomon very small
20:15 timotimo jnthn: is there some per-variable lock or something on the jvm?
20:16 jnthn No
20:17 timotimo strange.
20:17 timotimo in that case, these asyncs must in reality actually be sync :P
20:17 jnthn timotimo: There's no locking at present. I suspect all you are seeing is that when you do so little work inside of a promise the overhead of pulling the task from the queue and invoking it outweighs the cost.
20:17 timotimo right, good point.
20:17 TimToady or it's jitting to a single instruction
20:17 timotimo perl6 isn't a language for toy examples :P
20:17 jnthn TimToady: No, not unless it's a native or something...
20:18 TimToady it's a really *smart* jitter :)
20:18 jnthn True! :P
20:18 jnthn I'm not sure whether $x++ should be naturally atomic anyway.
20:18 colomon jnthn: just watched with top, and it looked like it got up to 1.8 gigs of memory used in a couple of spots during the compile.  that's not great, but it doesn't seem like it should be that bad on a machine with 8 gigs of ram.
20:18 diakopter .. but they always taught me to eliminate the jitter
20:19 TimToady wow, my heart is a-flutter
20:19 dalek rakudo/rebuf: 8237230 | jnthn++ | src/Perl6/ (6 files):
20:19 dalek rakudo/rebuf: Further MOP support for Buf and native arrays.
20:19 dalek rakudo/rebuf:
20:19 dalek rakudo/rebuf: This gets us able to write parametric roles whose parameterization
20:19 dalek rakudo/rebuf: conveys the type to do layout with down to the VMArray REPR.
20:19 dalek rakudo/rebuf: review: https://github.com/rakudo/rakudo/commit/8237230136
20:20 jnthn That patch took more attempts to write than it shoulda...
20:22 moritz looks non-trivial to me.
20:23 [Coke] colomon: no, the daily jvm runs are not on os x
20:23 [Coke] a branch for Buf? excellent, it was over my paylevel.
20:24 [Coke] regarding chdir - even if the jvm doesn't support it, we can track CWD and pass that whenever doing things that assume a WD.
20:42 * grondilu solved an other Rosalind problem in P5, for P6 was too slow :(
20:43 grondilu http://rosalind.info/problems/gasm/
20:45 timotimo :(
20:45 timotimo did you try jakudo, too?
20:45 grondilu jakudo doesn't work well on my machine.
20:45 timotimo aaw :(
20:46 grondilu But on second thought I may improve the P6 code and have it pass.
20:46 grondilu because there is an aspect of the problem I only realized while writing the P5 code, and it shoud make the solution come up faster.
20:46 BenGoldberg joined #perl6
20:47 timotimo :)
20:47 grondilu I'm just not sure I'll have the courage to bother, now that I've posted the solution already.
20:47 * grondilu will though, eventually.
20:47 cognominal joined #perl6
20:50 jnthn my role Buf[::T = int8] does Positional[T] does Stringy is repr('VMArray') is array_type(T) {
20:50 jnthn ...now there's a type declaration...
20:53 diakopter wouldn't Stringy need a parameter too?
20:55 jnthn No
21:10 ajr joined #perl6
21:20 dalek doc: 293f229 | (Timo Paulssen)++ | htmlify.pl:
21:20 dalek doc: tables used to blow up while debugging (pod-gist)
21:20 dalek doc: review: https://github.com/perl6/doc/commit/293f229c02
21:20 dalek doc: 57f9247 | (Timo Paulssen)++ | / (2 files):
21:20 dalek doc: make indents for the classtut explicit again.
21:20 dalek doc: review: https://github.com/perl6/doc/commit/57f924765d
21:21 dalek rakudo/rebuf: 34e8703 | jnthn++ | src/Perl6/ (2 files):
21:21 dalek rakudo/rebuf: Avoid a couple of checking/reporting explosions.
21:21 dalek rakudo/rebuf: review: https://github.com/rakudo/rakudo/commit/34e8703309
21:21 dalek rakudo/rebuf: fa3ec02 | jnthn++ | / (4 files):
21:21 dalek rakudo/rebuf: Start replacing Buf.
21:21 dalek rakudo/rebuf:
21:21 dalek rakudo/rebuf: Buf is now a role, as per spec. We also provide buf8, buf16, buf32 and
21:21 dalek rakudo/rebuf: buf64 symbols in the setting, which are instantiations of it. However,
21:21 dalek rakudo/rebuf: VMArray isn't quite smart enough to pack those as it should yet. Much
21:21 dalek rakudo/rebuf: previous Buf functionality is still missing; it will be added back
21:21 dalek rakudo/rebuf: before this branch is merged.
21:21 dalek rakudo/rebuf: review: https://github.com/rakudo/rakudo/commit/fa3ec0245c
21:23 konundra joined #perl6
21:23 timotimo hmm. wait a second.
21:23 colomon joined #perl6
21:24 timotimo if i have an indented raw block, should it keep the indentation in the output by virtue of being nested inside the tree structure or by having actual spaces in it?
21:26 raiph joined #perl6
21:27 timotimo https://github.com/rakudo/rakudo/pull/184 - please advise on the behavior of nested raw blocks
21:29 lue I would like indented bare code blocks to keep their leading whitespace, relative to normal text's virtual margin /me comments on pull request
21:29 timotimo In addition the =code, =item, =input, and =output blocks all have implicit nesting.  -  i guess it applies the same way to blocks that are just raw and put into outer blocks?
21:31 jnthn TimToady: From S02: "The utf8 type is derived from buf8, with the additional constraint that it may only contain validly encoded UTF-8." At what point(s) is that enforced? Any implementation hints? :)
21:31 vk_ joined #perl6
21:37 diakopter jnthn: we talked about that, ISTR
21:37 diakopter actually
21:38 lue .oO( utf8.new(0xE0).encode("ASCII") )
21:38 diakopter jnthn: TimToady will recall that's part of the larger question of Uni
21:39 jnthn diakopter: Uni is closer to Str, iirc, though? Just without a normalization commitment?
21:39 TimToady our current Str is really just Uni
21:39 diakopter ah
21:39 TimToady and NFD and NFC would have the same relationship to Uni that utf8 has to buf8, kinda
21:40 TimToady but I think mostly utf8 is a promise that either you know it's utf8, or someone you trust (a filehandle?) has told you it's utf8
21:40 TimToady not sure how that squares with being a mutable type, in the case of buf8
21:41 TimToady the goal is that Str only contain NFG eventually, not the current codepoint semantics
21:41 jnthn Well, I ain't gonna get the mutability in right off, 'cus I need to shave the natives/mutability yak still...
21:41 TimToady (that is, Uni)
21:41 jnthn Yeah, agree on Str being NFG only.
21:41 jnthn We just ain't there yet.
21:41 dalek nqp: 6b430e2 | (Donald Hunter)++ | ConfigureJVM.pl:
21:41 dalek nqp: Added --no-clean and updated usage.
21:41 dalek nqp: review: https://github.com/perl6/nqp/commit/6b430e2698
21:42 donaldh joined #perl6
21:42 TimToady possibly utf8 is an immutable version of native buf8
21:42 jnthn TimToady: iiuc, buf8.Str dies, utf8.Str is OK?
21:42 TimToady right
21:42 jnthn We could do it that way
21:42 jnthn I was gonna ask how Blob fits in with all of this.
21:42 TimToady in any case, when it says "derived", don't take that literally
21:43 jnthn Buf feels like a mutable Blog.
21:43 TimToady it's just something we think we know more about
21:43 jnthn uh, Blob.
21:43 jnthn utf8 could be a kind of Blob instead of a kind of Buf, perhaps?
21:43 TimToady yeah, I can see that
21:44 jnthn Is there any other Blob/Buf distinction that I've missed besides the mutability?
21:45 TimToady S02 sez:     Blob        An undifferentiated mass of ints, an immutable Buf
21:46 TimToady so maybe utf8 is a kind of blob8
21:47 jnthn That seems workable
21:47 TimToady and NFC/NFD is a notional blob32 that we maybe can compress to blob16/blob8 strands
21:49 TimToady $b.subblob($begblob,$blobettes)  :)
21:50 dalek nqp/make-install: a620765 | (Donald Hunter)++ | tools/build/ (2 files):
21:50 dalek nqp/make-install: Restructured install layout to resemble parrot install layout.
21:50 dalek nqp/make-install: review: https://github.com/perl6/nqp/commit/a620765086
21:50 TimToady well, they're all Stringy in some sense
21:50 jnthn :)
21:51 timotimo lue: answered to your thing on the pull request
21:51 donaldh I've pushed a branch with a proposal for a new install layout that's closer to the parrot install layout
21:51 jnthn So if you $str.encode('utf-8') you'll be getting back an (immutable) utf8.
21:52 jnthn donaldh++
21:52 donaldh comments please. I still need to make updates in rakudo to work with this.
21:53 jnthn donaldh: Would you prefer commetns before you do the Rakudo stuff?
21:53 TimToady presumably, which you then copy (notionally, at least) into a mutable buf8 that is doing, surprise, *buffering*!
21:53 jnthn Yeah, can even try and make that cheap.
21:53 TimToady probably worth having ways to encode directly into a buffer
21:54 jnthn .encode('utf-8', :buf) ? :)
21:54 donaldh jnthn; That would be great. I'm unlikely to have tuits over the weekend.
21:54 jnthn donaldh: ah, in that case I'll put it on my weekend todo list then :)
21:55 donaldh jnthn: also thinking about a script to pass the nqp build/run flags through to rakudo
21:56 jnthn donaldh: Maybe we can make nqp itself able to do that with the correct command line switch, so you can perl Configure.pl --with-nqp=... and it can obtain the location(s) from that.
21:56 donaldh would help to avoid downstream sync issues as features like NativeCall land in nqp
21:56 TimToady probably also want ways to cheat on the input side so that decoding a utf8 can just point into the buffer, if someone's willing to swear that the buffer is being treated immutably enough (disregarding the reads)
21:57 TimToady from p5 experience, cheating on input is very worthwhile for speed
21:57 donaldh jnthn: yeah sure. Flags or nqp module?
21:57 TimToady especially if the first thing we do is convert to NFG
21:57 jnthn donaldh: Module works if it's in the default install path.
21:57 TimToady no point in copying things twice
21:57 jnthn donaldh: And is probably preferable.
21:58 jnthn TimToady: Well, I was thinking if you .decode(...) on any of these things you're saying "I know what I'm doing" :)
21:58 * donaldh thinks that's easier to generate too.
21:58 jnthn TimToady: And if the decoder finds it invalid somewhere, you get an exception.
21:58 TimToady yes, "I promise" is an important concept in P6 :)
21:58 donaldh has there been any debate about the chdir problem on JVM ?
21:59 jnthn donaldh: [Coke]++ commented earlier
21:59 donaldh i.e. lack of
21:59 jnthn donaldh: I think we try to emulate-ish it
21:59 donaldh global or thread local ?
21:59 TimToady I always figured chdir would have to emulated on some platforms, especially any that are running separate "processes"
21:59 Moukeddar joined #perl6
21:59 jnthn donaldh: What Perl 6 spec says :P
21:59 diakopter it's not hard to emulate.. simply provide a native wrapper that chdir's into the right thing right between your shell-out or system call or whatever
22:00 diakopter er, then the wrapper invokes the thing you wanted to call
22:00 donaldh well it's more munging all the file ops.
22:00 jnthn TimToady: Is it thread local or process global? :)
22:00 diakopter donaldh: yes that too
22:00 jnthn donaldh: On the file ops, I'm not entirely happy with the current stuff. It was kinda my "make stuff work" solution.
22:00 donaldh well chdir is process global.
22:01 TimToady well, I always thought chdir should be dynamically scoped... :)
22:01 jnthn donaldh: Do you have any feelings for/against doing it with nio?
22:01 jnthn donaldh: I'm tempted towards it because I also want to get async IO in, and nio has a story on that...
22:01 donaldh yeah.
22:02 donaldh I guess it's a bit hairy but there's a manageable subset of nqp ops that would need to be aware of the logical CWD
22:02 TimToady see S16:182
22:02 synopsebot Link: http://perlcabal.org/syn/S16.html#line_182
22:02 jnthn Yeah, that's my guess. Hairy but possible.
22:02 TimToady so the concept of $*CWD is in the specs, if a bit handwavey
22:05 donaldh so should chdir modify the nqp equivalent of $^CWD and nothing more.
22:06 donaldh should the nqp runtime not in fact move itself around directories on _any_ of the backends?
22:06 donaldh s/move/teleport/
22:07 TimToady maybe &PROCESS::chdir is the real one
22:07 donaldh and that's just non-existent on JVM ?
22:07 TimToady right
22:08 TimToady or just sets $*CWD for every interpreter running under it somehow
22:08 TimToady seems not very useful though
22:09 donaldh Will need some kind of solution for panda. Alternatively refactor panda to not require chdir
22:11 TimToady maybe there's some policy that an interpreter's top-level $*CWD just tracks $PROCESS::CWD, so any single layer of chdir will tend to do the expected thing
22:12 TimToady or maybe that just falls out of it already, since * vars already search GLOBAL and then PROCESS
22:12 TimToady you'd only get into trouble if a dynamic chdir expects that to propagate back into its caller
22:12 jnthn TimToady: Should Buf support push/pop/shift/unshift?
22:13 jnthn Rakudo's today doesn't...
22:13 jnthn Don't see anything in the spec saying one way or t'other :)
22:13 lue joined #perl6
22:14 * donaldh will look into nio after the weekend hopefully
22:14 TimToady I dunno, most of that sort of stuff you'd do in the stringy realm
22:14 TimToady concat bufs and such
22:14 jnthn *nod*
22:14 jnthn Well, can add it later if somebody sees a need.
22:14 TimToady can always add 'em later if there's a good use case
22:14 jnthn hah
22:15 TimToady darn
22:15 donaldh at least that race condition didn't corrupt irc
22:15 jeffreykegler joined #perl6
22:15 jeffreykegler left #perl6
22:17 jeffreykegler joined #perl6
22:17 donaldh 'night o/
22:17 TimToady well, irc was invented by Finns, who are good at racing and shooting while under the influence of vodka
22:18 BenGoldberg joined #perl6
22:19 jnthn s/good .+ while// # also true if the Stockholm - Helsinki ferry is your sample :)
22:20 TimToady :D
22:20 * TimToady imagines racing gunboat ferries...
22:22 TimToady maybe they'd have to be icebreakers if we're talking biathlon
22:23 TimToady or iceboats
22:24 TimToady the cannons could double for propulsion when the wind dies down
22:27 colomon joined #perl6
22:28 jnthn Racing icebreakers!
22:32 colomon http://www.themackinaw.org/
22:32 skids joined #perl6
22:33 * colomon is embarrassed that it took him a minute to find via google because he thought it was Canadian.  Ah, life on the border...
22:35 lue rpn: say "ß".uc
22:35 camelia rakudo 45d447, niecza v24-88-g1f87209, pugs: OUTPUT«ß␤»
22:35 lue rpn: say "ẞ".lc.uc
22:35 camelia pugs: OUTPUT«ß␤»
22:35 camelia ..rakudo 45d447: OUTPUT«SS␤»
22:35 camelia ..niecza v24-88-g1f87209: OUTPUT«ẞ␤»
22:35 lue .oO(niecza's the only one that ever got it right)
22:37 colomon actually, I believe niecza's wrong there
22:38 colomon rpn: say "ẞ".lc
22:38 camelia niecza v24-88-g1f87209: OUTPUT«ẞ␤»
22:38 camelia ..rakudo 45d447, pugs: OUTPUT«ß␤»
22:38 colomon or maybe not.
22:38 colomon .u ẞ
22:38 colomon is that an upper-case ß ?
22:39 lue colomon: yes
22:39 lue .u ẞ
22:39 colomon niecza has that .lc wrong, then, doesn't it?
22:39 lue (your ß's are white-on-black somehow)
22:39 colomon weird, I'm just cutting and pasting
22:40 lue yes. ẞ.lc should be ß [ and ß.uc should be ẞ IMO :) ]
22:41 lue I'm actually more concerned about rakudo's inconsistent handling of ß
22:42 colomon no, that's right
22:42 lue r: my $a = "ẞ"; $a .= lc; say $a; $a .= uc; say $a;
22:42 camelia rakudo 45d447: OUTPUT«ß␤SS␤»
22:42 colomon ẞ is not the standard upper case of ß
22:42 lue r: my $a = "ß"; $a .= uc; say $a;
22:42 camelia rakudo 45d447: OUTPUT«ß␤»
22:43 lue If I come from ẞ, then .lc.uc converts (improperly to me) to SS. Starting with ß and doing .uc however does nothing.
22:43 lue colomon: it may not be standard but (I think) it's better :)
22:43 colomon your opinion does not matter to the Unicode people, alas.
22:45 * lue has the relatively more sound argument of "if I convert ß to uppercase and then lowercase again it's ss, which is blatant information loss."
22:45 colomon though the two different behaviors thing is a bit odd
22:45 colomon that would be why you don't uppercase and then lowercase.  If you want lowercase, you just call lowercase directly.
22:46 colomon that's why having a titlecase function is important
22:47 lue Like I said, my preferences aside, I'm concerned about rakudo's inconsistency there.
22:48 colomon rn: say "ß".ord; say "ẞ".lc.ord
22:48 camelia rakudo 45d447, niecza v24-88-g1f87209: OUTPUT«223␤22␤»
22:49 colomon errr… 22?
22:49 lue rn: say "ß".ord; say "ẞ".lc.ord
22:49 jnthn colomon: looks like you may have pasted a control char
22:49 camelia niecza v24-88-g1f87209: OUTPUT«223␤7838␤»
22:49 camelia ..rakudo 45d447: OUTPUT«223␤223␤»
22:49 lue rn: say "ß".ord; say "ẞ".lc
22:49 camelia niecza v24-88-g1f87209: OUTPUT«223␤ẞ␤»
22:49 camelia ..rakudo 45d447: OUTPUT«223␤ß␤»
22:51 * lue files rakudobug on inconsistency
22:51 timotimo i'm worried about the mass amount of $*W.add_constant and .compile_time_value that's going on in Perl6/Pod.nqp
22:52 timotimo not simply because i feel uneasy trying to modify a block configuration after it fell out of make_config, because it was serialize_object'd and it is made of a list of Pairs whose .key and .value have both been $*W.add_constant'd, too ...
22:53 timotimo but also because i think this all ought to be possible without the mass amounts of manual serialization work
22:56 timotimo shouldn't i be able to just put an $*W.add_constant at the very top and it would serialize everything inside properly?
22:57 timotimo and doesn't $*W.add_constant(foo bar).compile_time_value lose the reference to the object that's now stored in the world/SC?
22:58 jnthn Don't think so
22:58 jnthn Shouldn't; the object is now in the SC
23:02 timotimo OK
23:02 timotimo what about the rest?
23:03 dalek roast: 43db15c | (Solomon Foster)++ | S32-str/sprintf.t:
23:03 dalek roast: Test FatRat with %d.
23:03 dalek roast: review: https://github.com/perl6/roast/commit/43db15c8ab
23:04 colomon rn: say sprintf("%30s", 3.1.FatRat ** 27)
23:04 camelia rakudo 45d447, niecza v24-88-g1f87209: OUTPUT«18482713582824.0353​58817658752815923791711␤»
23:04 colomon rn: say sprintf("%50s", 3.1.FatRat ** 27)
23:04 camelia rakudo 45d447, niecza v24-88-g1f87209: OUTPUT«        18482713582824.035358817658752815923791711␤»
23:05 timotimo jnthn: but i will still have to add all the objects down to the last little Int or Str?
23:05 timotimo and there's probably no way to "remove" such an object properly from the serialization context if i make changes?
23:06 jnthn timotimo: You only need to add an object if you want a QAST::WVal reference to it.
23:06 jnthn timotimo: If you want a complex data structure and just to refer to the top of it, then you can just add the top level object and let the serializer walk it.
23:06 timotimo ah!
23:06 timotimo that's perfect!
23:06 timotimo i shall rewrite a big part of the Pod.nqp then :)
23:06 jnthn I think that serialization stuff didn't exist when tadzik++ first did Pod.nqp.
23:07 timotimo that would make sense
23:10 tadzik it was still A LOT better than pre-nom :)
23:10 dalek rakudo/rebuf: 6ab6d8d | jnthn++ | src/ (2 files):
23:10 dalek rakudo/rebuf: Add Blob, blob8 etc., utf8 etc.
23:10 dalek rakudo/rebuf:
23:10 dalek rakudo/rebuf: The utf8 type doesn't work yet, due to missing REPR data serialization
23:10 dalek rakudo/rebuf: in VMArray.
23:10 dalek rakudo/rebuf: review: https://github.com/rakudo/rakudo/commit/6ab6d8d60a
23:11 jnthn tadzik: For certain :)
23:11 jnthn tadzik: I'm not sure it woulda been possible pre-nom :)
23:12 jnthn OK, tomorrow I work on encode/decode for the new buf stuff, and look at putting back the ops
23:15 tadzik jnthn: well, the plan for pre-nom was to build PAST that'll generate objects in runtime... ;)
23:16 jnthn tadzik: eeek :)
23:16 tadzik it's actually more like ;o than ;)
23:16 grondilu joined #perl6
23:16 grondilu joined #perl6
23:16 jnthn Yes, Rakudo's architectur these days makes such things a LOT easier than pre-nom.
23:18 tadzik aye
23:20 timotimo i can only imagine :)
23:22 * jnthn pours himself a trashy blonde
23:23 * tadzik resits a plushy blonde joke
23:23 tadzik "tours himself" wouldn't sound right anyway ;)
23:24 jnthn TimToady: Hm, now Buf ~~ Blob, I realized I've got a subbuf method in Blob...
23:25 jnthn TimToady: Should subblob be in there, and subbuf in Buf and it gets subblob too?
23:26 tadzik time to geet some proper sleeps. Gnight #perl61
23:26 tadzik perl6! even
23:26 timotimo there is no real reason to use add_constant($the_type, 'type_new', ...) if i have the object already, right? $*W.add_object should make more sense, no?
23:26 jnthn 'night, tadzik
23:27 jnthn Aye
23:27 timotimo good night tadzik!
23:31 timotimo i had a visitor to my hackspace today who wore a yapc::eu perl5 shirt
23:32 timotimo i told him a bit more about perl6's current status and he built a rakudo.jvm now
23:33 jnthn nice :)
23:37 timotimo i'm not sure i made clear to him how objectively far along rakudo is nowadays
23:40 timotimo wow, it still works. that was way too easy.
23:40 timotimo time for a real stress test.
23:40 timotimo invoke() not implemented in class 'NQPMu' - yeah, that's where my luck ends
23:45 timotimo turns out when you remove a method and call that removed method from somewhere else, that doesn't work very well

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo