»ö« 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.
TimToady p6: gist.github.com/2847343 00:00
p6eval pugs: OUTPUT«*** No such subroutine: "&temp"␤ at /tmp/5zc0Kon5ul line 5, column 9-25␤»
..rakudo b2068e: OUTPUT«[[], [], [2, 4]]␤[[2], [], [1, 4]]␤[[3, 4], [], [1, 2]]␤[[4], [], [1, 3]]␤»
..niecza v18-1-gc86e3f0: OUTPUT«[[1, 2], [], [3, 4]]␤[[1, 3], [], [2, 4]]␤[[1, 4], [], [2, 3]]␤[[2, 3], [], [1, 4]]␤[[2, 4], [], [1, 3]]␤[[3, 4], [], [1, 2]]␤»
TimToady rakudo doesn't seem to like --temp @mask[$k]
diakopter phenny ask moritz what if rn: or nr: invoked both rakudo and niecza 00:01
phenny ask sorear what if rn: or nr: invoked both rakudo and niecza
jnthn TimToady: It looks weird to my eyes :P 00:02
TimToady well, it doesn't like temp @mask[$k] -= 1 either
sorear diakopter: you need more colons
jnthn That surprises me a bit more.
diakopter phenny: ask moritz what if rn: or nr: invoked both rakudo and niecza
phenny diakopter: I'll pass that on when moritz is around.
jnthn What does "doesn't like" mean?
TimToady see output above 00:03
niecza produces the correct output
jnthn r: my $x = 2; { temp $x -= 1; say $x; }; say $x
p6eval rakudo b2068e: OUTPUT«1␤2␤»
sorear diakopter: I proposed r: n: syntax once. I think I got assent but noone could be bothered to actually do it, including me
jnthn r: my @x = 1,2,3; { temp @x[1] -= 1; say @x[1]; }; say @x[1] 00:04
p6eval rakudo b2068e: OUTPUT«1␤2␤»
TimToady jnthn: it might have more to do with the semantics of the @mask is copy parameter
sorear I keep wanting to read that as @masak 00:05
jnthn sorear: Same!
TimToady: Maybe
TimToady sorear: yer the one wrote @mask first!
jnthn TimToady: I'm too tired to golf it righ tnow...
sorear also, I am somewhat amused that the algorithm I came up with looks rather different from what everyone else is doing 00:06
jnthn -> sleep 00:08
00:09 lestrrat left, lestrrat joined 00:10 cognominal_ joined 00:13 cognominal left 00:21 skids left 00:26 cognominal joined 00:28 cognominal_ left 00:38 skids joined 00:46 aesundstrom joined 01:01 scott_ joined, scott_ is now known as Guest48656 01:05 vlixes joined, aesundstrom left, fgomez left 01:08 thou left 01:39 Guest65270 left 01:45 fgomez joined 01:46 tokuhiro_ joined 02:10 vlixes left 02:11 immortal joined, immortal left, immortal joined, erkan left 02:23 aesundstrom joined 02:24 fgomez left
diakopter tries to golf it 02:26
02:26 alvis joined
dalek p: 0631f83 | duff++ | src/PAST/NQP.pir:
Add nqp::stat
nqp: 0d86ce0 | duff++ | src/PAST/NQP.pir:
nqp: Add nqp::does
02:28 dalek left
diakopter poor dalek 02:29
02:29 dalek joined
dalek kudo/nom: 4aea135 | duff++ | src/ (2 files):
kudo/nom: f4357fd | duff++ | src/ (4 files):
Use nqp::does

Start on release announcement for June
02:29 dalek left
diakopter poor dalek 02:29
too triggery happ
trigger happy
02:29 dalek joined, ChanServ sets mode: +v dalek
diakopter dalek: wb 02:30
as I golf it, I'll just assume niecza's behavior is consistently correct, and as long as rakudo differs, I'm still golfing 02:31
02:31 fgomez joined 02:43 xinming left, xinming joined 03:00 tokuhiro_ left 03:04 broquaint joined 03:06 masonkramer left 03:12 cognominal left 03:22 aesundstrom left 03:25 lestrrat left 03:26 lestrrat joined
diakopter TimToady: I golfed it 03:28
rakudo's LEAVE blocks aren't called enough
erm, I take that back 03:31
still not sure
03:53 odoacre joined 03:55 am0c left
04:46 estebann joined
TimToady wishes again that there were a .take form of take 05:04
would make gist.github.com/2847343 a bit cleaner 05:06
PerlJam you do wield the power of the spec ;) 05:07
TimToady well, .take already occurs twice in the spec 05:08
diakopter TimToady:
r: gist.github.com/2848989
p6eval rakudo 696a71: OUTPUT«c is 3 at depth 3␤c is 3 at depth 2␤c is 3 at depth 1␤»
TimToady S02:4822 for instance
diakopter n: gist.github.com/2848989 05:09
p6eval niecza v18-1-gc86e3f0: OUTPUT«c is 3 at depth 3␤c is 2 at depth 2␤c is 1 at depth 1␤»
diakopter I golfed your golf
niecza is right here, I assume 05:10
TimToady yes
05:10 woosley left, woosley joined
diakopter took me two hours of golfing, I dare confess. 05:11
TimToady it's a good think you only dared to confess it, and didn't really confess it
diakopter while sipping a frappucino listening to tinny music 05:14
*frappuccino 05:15
05:15 slavik1 left
TimToady as long as you weren't listening to frappuccini 05:16
05:16 birdwindupbird joined, birdwind1pbird joined
diakopter phenny: ask jnthn I golfed yer thingamabob. compare r: with n: gist.github.com/2848989 05:18
phenny diakopter: I'll pass that on when jnthn is around.
05:18 fhelmberger joined
diakopter so you want .take to be a method on Mu? 05:22
or a special form like .WHICH
whatever that uppercase special form is
TimToady I don't see why it has to be that special
PerlJam is waiting on his compile with method take { take self } in Mu 05:23
TimToady Take me! Take me!
dalek kudo/qrpa: 6e7868e | pmichaud++ | / (2 files):
QRPA: Add init, destroy, mark, elements, unshift_pmc, and some native variants.
kudo/qrpa: c42e429 | pmichaud++ | / (2 files):
Add defined_*, exists_*, and unshift_* for native types.
kudo/qrpa: 07ced37 | pmichaud++ | / (2 files):
QRPA: Add clone, get_iter, splice.
kudo/qrpa: f57053a | pmichaud++ | src/pmc/qrpa.pmc:
Add some useful optimizations.
diakopter I'm surprised dalek didn't get booted for that outburst
PerlJam whoa, someone left the Pm on tonight
TimToady or the dalek is in wayback mode 05:25
pmichaud it's the Pm 05:27
PerlJam pmichaud: is that everything a RPA replacement needs? It looks fairly complete. 05:28
05:28 cognominal joined
pmichaud I don't know if it's everything. When I try to switch List to use it, though, I get some weird exceptions. I'll work on it more tomorrow 05:30
TimToady pmichaud++
pmichaud There's certainly not much left to do if it's not complete. It should be a *ton* more performant for queue-like operations, which is what Lists and iterators basically are 05:31
diakopter tomorrow++
TimToady mañana, mañana, I love you, mañana, you're always a day away...
pmichaud I don't know why it didn't hit me before today that having a O(n) shift_pmc operation on RPA would be detrimental to our list model 05:32
I mean, I knew it at some level... but didn't really think it through properly.
diakopter "tomorrow's just a future yesterday..." -Craig Ferguson song
TimToady well, tomorrow is certainly unevenly distributed 05:33
well, except at midnight on the date line
I kinda think of iterator lists as Lisp cons lists with fancy car nodes for batched items 05:35
s/batched/batched or delegated/
but yeah, if it's expensive to shift, that's gonna bite 05:36
pmichaud yes, I think of it conceptually that way also
(cons lists and car nodes)
anyway, the new shift code replaces the O(n) memmove function with a couple of integer ops 05:37
we also get some performance improvements in splice and unshift in the process
moritz \o
phenny moritz: 00:02Z <diakopter> ask moritz what if rn: or nr: invoked both rakudo and niecza
TimToady o/
moritz phenny: tell diakopter +1 to rn|nr 05:38
phenny moritz: I'll pass that on when diakopter is around.
diakopter o/
phenny diakopter: 05:38Z <moritz> tell diakopter +1 to rn|nr
TimToady maybe p5: should just do that, and reserve perl5: for "everyone"
pmichaud hmmm, I remember "rn". Once used that program quite a lot :)
TimToady I've heard of that one
code was pretty grotty, I hear.... 05:39
diakopter read news?
PerlJam mumbles something about being doomed to repeat rn
TimToady sacrificed readability to get the bytes up on the screen faster...
funny thing is that I dropped rn in order to work on Perl because I thought I might rewrite rn in Perl to be able to do bitwise ops on article ranges better... 05:41
took a while before Perl got there though 05:42
diakopter n: ++temp .say 05:44
p6eval niecza v18-1-gc86e3f0: OUTPUT«Any()␤Internal error in exception dispatch: Writing to readonly scalar␤ at <unknown> line 0 (KERNEL Scalar.TEMP @ 0) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤»
diakopter r: ++temp .say
p6eval rakudo 696a71: ( no output )
diakopter on ho I feel a bout of fuzzing coming on 05:45
dalek kudo/nom: 50b77f3 | duff++ | src/core/Mu.pm:
Give TimToady .take
TimToady now if only temp worked... :)
diakopter n's error is cute 05:46
writing to readonly scalar in exception dispatch?
phenny: ask sorear try n: ++temp .say 05:47
phenny diakopter: I'll pass that on when sorear is around.
diakopter n: ++.say 05:48
p6eval niecza v18-1-gc86e3f0: OUTPUT«Any()␤Unhandled exception: Writing to readonly scalar␤ at /tmp/wXR4TZRS2R line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3910 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3911 (module-CORE @ 558) ␤ at /home/p6eval/niec…
diakopter oh.
r: say "alive"; my $a = let $a; 05:50
p6eval rakudo 696a71: ( no output )
diakopter erm
std: temp temp temp temp $_ 05:52
p6eval std f179a1b: OUTPUT«ok 00:00 41m␤»
dalek ast: fcd46f4 | duff++ | S04-statements/gather.t:
Added a test that uses .take
05:57 wtw joined
diakopter well that's odd. 05:58
rakudo just exits with no eror on that input
errorlevel/exitcode 0
05:59 kaleem joined
pmichaud goodnight, all -- bbt 05:59
PerlJam g'night pm
PerlJam didn't realize that p5p has also been talking about a 'safe deref' 06:04
diakopter PerlJam: did you merge nqp's pull request 06:05
PerlJam no, I didn't. 06:06
Didn't know there was one.
diakopter from kboga 06:07
adding nqp defined and such
PerlJam aye, I see it now
(I don't normally look at repos through the lens of github)
06:07 estebann left
diakopter hm it seems it conflicts with your commit 06:07
since it can't automatically be merged 06:08
PerlJam yeah, he used some slightly different names than I did
06:23 am0c joined, woosley left 06:43 Entonian joined 06:44 Entonian left
dalek p: b1fb4b3 | kboga++ | / (16 files):
pir::defined to nqp::defined, pir::find_not_cclass__Iisii to nqp::findnotcclass, pir::find_method__PPs to nqp::findmethod
06:57 lestrrat left 06:58 lestrrat joined 07:03 brrt joined 07:11 bbkr1 joined 07:31 terrence joined 07:35 immortal left, erkan joined 07:39 viji joined
viji hi 07:40
moritz hello viji
brrt hello viji
viji Hello
Hi guys, this is the first time joining 07:41
moritz welcome to #perl6 07:42
brrt i'm not going to repeat moritz :-) what brings you here?
viji I really don't know where I can start up with 07:43
moritz perl6.org/ has lots of good links 07:44
viji I have around 4 years of working experience in perl
Enthusiastic to explore more.
brrt thats good :-) 07:45
but as a word of warning, perl6 is much unlike perl 5 07:46
if you expect to learn it as a 'new' language you should be fine.. if you expect an 'extended perl5' then you might not 07:47
07:47 xinming left
viji Ok, I think starting step would be to go through the perl6 documentation. 07:47
brrt .. probably 07:48
there is a book
moritz the starting step should be to install a Perl 6 compiler, rakudo or niecza
and then get the 'Using Perl 6' book (pdf download is free), and start to play with it
07:48 kresike joined
kresike morning all you happy perl6 people 07:49
brrt small snippets of perl6 can also be sent to p6eval
(the irc bot)
as in: 07:50
p6: say 4 ~~ 1 .. 10;
p6eval rakudo 50b77f, niecza v18-1-gc86e3f0: OUTPUT«True␤»
..pugs: OUTPUT«␤»
moritz r: say <hello hi greetings>.roll, ', viji'
p6eval rakudo 50b77f: OUTPUT«hello, viji␤»
brrt i do like the roll method
07:51 woosley joined 07:52 fgomez left
viji When do you think full fledged perl6 version will be released. 07:54
brrt the question of the beast :-)
personally i have no idea 07:55
perl6 is positively huge
(the specification)
but most of it is 'usable' right now in the form of rakudo star releases
07:59 rafl joined
dalek albot: 683d255 | moritz++ | evalbot.pl:
install 'rn' and 'nr' aliases for rakudo+niecza

also refactor the aliasing mechanism to handle multiple implementations
moritz and niecza is often much faster at run time, though less of the ecosystem works with it
brrt oh, btw 08:01
i was under the impression that 'nom' was the new 'master'?
moritz well, the main development branch, yes 08:02
brrt so the documentation on rakudo.org is just old?
08:03 viji left
moritz it might be 08:03
what does it say?
ah, it still has the 'How to get Rakudo nom' links 08:04
moritz removes it 08:06
08:06 p6eval left, p6eval joined, ChanServ sets mode: +v p6eval
moritz rn: say "fast at {<run compile>.pick} time" 08:06
hm, first executiong after restart taking ages again 08:07
I'd really like to know what's going on there
p6eval rakudo 50b77f, niecza v18-1-gc86e3f0: OUTPUT«fast at compile time␤»
brrt hey, its fixed
rn: say "i'm quick" 08:08
p6eval rakudo 50b77f, niecza v18-1-gc86e3f0: OUTPUT«i'm quick␤»
brrt thats much faster
moritz curiously, I run two instances of p6eval, one for freenode, one for irc.perl.org
and only the freenode instance takes ages on the first execution
08:16 lestrrat left 08:18 lestrrat joined 08:38 Khisanth joined
jnthn morning o/ 08:42
phenny jnthn: 05:18Z <diakopter> ask jnthn I golfed yer thingamabob. compare r: with n: gist.github.com/2848989
jnthn I'm very happy folks are jumping on the pir -> nqp effort. This one can't live though: 08:44
That pir::does is nothing to do with 6model and calls down to Parrot's object system. Which we need to further eliminate our usage of, not abstract away. 08:45
moritz fwiw I hadn't done 'pir::defined' => 'nqp::defined', because I thought that maybe the repr_defined thing might be a better match
08:48 masonkramer joined
jnthn moritz: Yeah, I was wondering what to do on that one. 08:55
08:57 mucker joined 09:00 sergot joined
sergot hi o/ ! :) 09:00
09:01 am0c left
moritz \o sergot 09:03
tadzik hello #perl6 09:18
jnthn o/ sergot, tadzik 09:19
09:23 kaleem left 09:34 masonkramer left 09:57 mucker left, mucker joined 10:02 mucker left 10:05 mucker joined 10:08 snearch joined 10:10 woosley left 10:18 birdwind1pbird left, birdwindupbird left 10:23 JimmyZ joined 10:26 birdwindupbird joined, birdwind1pbird joined 10:28 snearch left, Guest48656 left 10:31 birdwind1pbird left, birdwindupbird left 10:46 birdwindupbird joined, birdwind1pbird joined 10:59 daxim joined 11:01 ab5tract joined 11:02 brrt left 11:04 MichalWriter joined
MichalWriter hello 11:04
11:06 bbkr1 left
MichalWriter Culd someone tell me where I can find some reliable history about perl6 and perl5, I would like to write some articles concerning How it came to being:) 11:07
11:10 kaleem joined
JimmyZ hello MichalWriter, I think most people are not here now. 11:14
11:19 kboga left
gfldex MichalWriter: you can read up on the early history here: blob.perl.org/perlweb/dev/perl6/ta...-Perl6.pdf 11:20
daxim MichalWriter, strangelyconsistent.org/blog/happy-...ary-perl-6 11:21
and for perl 5: history.perl.org/PerlTimeline.html perldoc.perl.org/perlhist.html socialtext.net/perl5/history www.shlomifish.org/lecture/Perl/New...slides.pdf
11:24 MichalWriter left 11:25 birdwindupbird left, birdwind1pbird left 11:26 kaleem left, kaleem joined, terrence left 11:27 terrence joined, cognominal left, cognominal joined 11:28 birdwindupbird joined 11:33 birdwind1pbird joined 11:37 snearch joined
pmichaud good morning, #perl6 11:41
terrence it's already evening in china :) 11:42
JimmyZ is in China :) 11:43
moritz good am, pm
jnthn o/ pmichaud 11:47
11:47 JimmyZ left, JimmyZ joined
dalek kudo/qrpa: 02b5ec6 | pmichaud++ | src/Perl6/Actions.pm:
Add nqp::qlist() to obtain QRPA instead of RPA.
kudo/qrpa: f4373c6 | pmichaud++ | src/pmc/qrpa.pmc:
QRPA: Fix pointer typo in QRPA.clone.
moritz so, how far along is qrpa? 11:49
pmichaud the PMC itself I think is pretty much complete. When I start trying to use it in List, though I get "WarningWarning" and everything stops. I'm just starting to look into that now. 11:50
jnthn Oh
There's an islist op iirc 11:51
pmichaud it checks directly for RPA?
jnthn Yeah
pmichaud oh, if it's perl6_is_list I can probably do something with that
jnthn I added it because I was tired of whatever was there before slowing down list guts. 11:52
(Change based on profile data.)
pmichaud yes, I'm also a little concerned that there may be other C code that is looking specifically for RPA 11:53
11:54 birdwindupbird left
dalek ast: b1c5468 | moritz++ | S09-autovivification/autovivification.t:
unfudge a few autovivification tests
moritz .. for rakudo.
moritz hates it when he fails to add information to commit messages, and finds out one second after 'git push'
11:54 skids left 11:55 krunen left
jnthn pmichaud: the type mapping stuff does 11:55
pmichaud: We may also need to teach the serializer about this new PMC.
pmichaud: But that'll be very easy.
pmichaud oh!
I forgot to write freeze/thaw
jnthn ?
pmichaud in qrpa 11:56
jnthn Oh, bs doesn't use freeze/thaw
You may get away with it :)
11:56 birdwind1pbird left, birdwindupbird joined 11:57 birdwind1pbird joined
pmichaud github.com/parrot/parrot/pull/778 # huh? wish parrot folks could make up their minds :-) :-) 12:01
moritz *shrug* not much effort remove a .loadlib line... 12:02
felher r: while True { say (0 but True); }
p6eval rakudo 50b77f: OUTPUT«(signal ABRT)0␤0␤0␤0␤0␤0␤0␤0␤»
felher :/
But at least i golfed it down :D
pmichaud [Coke]++ already noted that parrot went through a fair bit of effort to move the OS pmc to a dynpmc, now someone is moving it back. Weird. 12:03
felher: maybe that's just Rakudo's way of refusing to do contrived code. :-) :-)
moritz r: say (0 but True);
p6eval rakudo 50b77f: OUTPUT«0␤»
moritz r: loop { say (0 but True); } 12:04
p6eval rakudo 50b77f: OUTPUT«(signal ABRT)0␤0␤0␤0␤0␤0␤0␤0␤0␤»
felher pmichaud: :D
moritz felher++ # golfing segfaults
jnthn That's the same thing as the bool.t segv
pmichaud r: say (0 but True); say (0 but True); say (0 but True); say (0 but True); say (0 but True); say (0 but True); say (0 but True); say (0 but True); say (0 but True);
p6eval rakudo 50b77f: OUTPUT«(signal ABRT)0␤0␤0␤0␤0␤0␤0␤»
pmichaud looks like it always occurs on the eighth one. 12:05
jnthn It explodes during the GC run, I think.
It's not clear why :/
moritz r: for ^10 { say $_ but True }
p6eval rakudo 50b77f: OUTPUT«(signal ABRT)0␤1␤2␤3␤4␤5␤6␤»
jnthn I need to golf it further; "but" does quite a bit 12:06
felher On my maschine i can say it ~~ 200 times :)
jnthn Yeah, it's probabalistic-y.
Such is heap corruption.
It looks like it may be double-freeing of libtommath things
(Almost certainly the fault of P6opaque or P6bigint though)
moritz is glad to have a reproducable case 12:11
it seems that I've occasionally run into segfaults that then went away when unrelated stuff changed
like the one in qbootstrap that went away when merged into nom
r: role A { }; say 0 but A for ^20 12:12
p6eval rakudo 50b77f: OUTPUT«0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤»
moritz r: enum A <b c>; say 0 but A for ^20
p6eval rakudo 50b77f: OUTPUT«(signal ABRT)0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤»
jnthn r: say 0 but 'foo' for ^20 12:14
p6eval rakudo 50b77f: OUTPUT«(signal ABRT)foo␤foo␤foo␤foo␤foo␤foo␤foo␤»
jnthn r: say 'x' but 1 for ^20
p6eval rakudo 50b77f: OUTPUT«x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤»
jnthn r: say 'x' but 1 for ^2000
p6eval rakudo 50b77f: OUTPUT«x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x␤x
jnthn The target of the mixin has to be an Int. 12:15
moritz and it needs to be not a role, but something else 12:16
jnthn r: role A { }; say 0 but A for ^200 12:17
p6eval rakudo 50b77f: OUTPUT«0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0
jnthn Hmm.
12:18 ab5tract left 12:20 nwc10 joined 12:21 xinming joined 12:26 birdwind1pbird left, birdwindupbird left, birdwindupbird joined 12:27 birdwind1pbird joined 12:31 replore joined 12:32 fgomez joined 12:35 snearch left
[Coke] +# 05/31/2012 - rakudo++ (22355); niecza (91.47%); pugs (34.66%) 12:53
dalek kudo/qrpa: cf75879 | pmichaud++ | src/ops/perl6.ops:
QRPA: Update nqp::islist to be QRPA-aware.
13:02 birdwindupbird left 13:03 snearch joined 13:04 birdwind1pbird left 13:08 wtw left 13:10 Patterner left 13:12 Psyche^ joined, Psyche^ is now known as Patterner 13:13 replore left 13:14 kaleem left 13:17 replore_ joined 13:19 kaleem joined 13:22 kaleem left
dalek kudo/qrpa: 725acab | pmichaud++ | / (2 files):
QRPA: Add QRPA.get_number().
kudo/qrpa: 94483a2 | pmichaud++ | / (2 files):
QRPA: Add QRPA.get_bool, get_bool and get_number tests.
13:25 terrence left 13:28 thou joined 13:31 skids joined, terrence joined 13:34 kaleem joined
dalek p: bfea0f7 | duff++ | / (15 files):
Use new nqp ops

nqp::defined, nqp::typeof, nqp::rindex, nqp::find_not_cclass, nqp::open, nqp::new, nqp::isa, nqp::find_method, nqp::does, nqp::stat
pmichaud Hmmm.... I'm not sure there should be a nqp::new 13:37
actually, I'm not comfortable with several of those.
moritz nqp::defined is a bit suspicious because it's the parrot defined that's tested, not the repr thingy 13:38
pmichaud right
these are all too parrot-specific to be in the nqp:: space.
moritz and find_not_cclass depends on parrot-specific constants
pmichaud I'm going to request that one be reverted.
moritz find find_method violates the 'no underscore' principle
that we held up so far
pmichaud This is bringing the nqp:: namespace waaaaaaay too close to parrot.
moritz PerlJam: please revert :-) 13:39
pmichaud I also want those nqp:: opcodes to go away. If we're doing something Parrot specific, then pir:: is the proper place.
the nqp:: space should be reserved only for those things that are going to be vm-independent.
moritz +1 13:40
13:41 isBEKaml joined
pmichaud for example, the correct way to verify type in NQP is by using nqp::istype, not nqp::typeof 13:41
jnthn arrrghh...please everybody stop doing the nqp ops!!! 13:42
pmichaud yes, these are very wrong.
jnthn I'm going to have to revert half of this.
pmichaud well, someone needs to revert it, yes.
jnthn I want Parrot specific things taht I want to kill left looking Parrot specific.
pmichaud right -- see above 13:43
13:39 <pmichaud> I also want those nqp:: opcodes to go away. If we're doing something Parrot specific, then pir:: is the proper place.
jnthn Right.
pmichaud jnthn: out of curiosity, why did you add nqp::can, though?
jnthn pmichaud: Because nqp::can makes sense at a 6model level. 13:44
pmichaud as in, 6model properly implements vtable can?
jnthn pmichaud: Think so, but even looking to VMs beyond Parrot, I would want an nqp::can
moritz r: nqp::say pir::defined(Int)
p6eval rakudo 50b77f: OUTPUT«0␤»
moritz r: nqp::say pir::defined(1) 13:45
p6eval rakudo 50b77f: OUTPUT«1␤»
jnthn pmichaud: The alternative is to just expose an nqp::findmethod and then use nqp::isnull on the result or something
moritz it also seems that it implements the defined vtable :-)
jnthn pmichaud: But it's just too common.
moritz: It does...but I'm not too happy on that.
pmichaud I'm fine if there's an nqp::can, as long as it's consistent with 6model objects
moritz jnthn: I know
pmichaud for example, we also have nqp::clone which is the same way
jnthn pmichaud: clone I'm not happy with at the moment 13:46
pmichaud: 6model does not handle the clone vtable
pmichaud: There's a representation level clone operation.
pmichaud okay, so that one we might need some work on.
jnthn The problem we have at the moment is that half the things are 6model-y and half are not.
pmichaud Anyway, new/defined/typeof/etc all have to go.
jnthn In NQP land, that is.
13:47 mucker left
jnthn I appreciate the effort and intent behind these patches, but nqp:: needs careful design, not to be the same mess pir:: is. 13:47
13:48 felher left
pmichaud right... the purpose is not to simply make the word "pir" go away but keep all of its warts. 13:48
13:48 crazedpsyc left
jnthn *nod* 13:48
13:48 crazedpsyc joined
moritz so, we're all in violent agreement 13:48
jnthn :) 13:49
moritz and just have to tell PerlJam++ and kboga++
jnthn Aye.
pmichaud well, except the commits haven't been reverted yet. :-)
13:49 crazedpsyc is now known as Guest29889
jnthn Note that a bunch of the commits were OK 13:49
This latest one not, but kboga++ did many pir -> existing nqp ops that were sensible.
pmichaud as opposed to a full-scale revert, I propose simply removing the nqp:: opcodes we disagree with and then patch things to work again :-)
jnthn +1 13:50
13:50 felher joined
nwc10 I don't see any comment in src/PAST/NQP.pir explaining this policy 13:50
(the policy makes total sense to me. But that's not saying much, as I'm likely very out of context)
jnthn pmichaud: Hah! Guess how many gigabytes of RAM this allocates? 13:51
my $string = 'x' x 30000;
my @matches = $string.match(/./, :global);
13:51 terrence left
jnthn thinks he knows why too :) 13:51
pmichaud no guess
jnthn 4GB!
pmichaud only 4?