»ö« 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.
MikeFair [Coke]: Drop the pir in pirop 00:01
[Coke] MikeFair++ 00:02
MikeFair [Coke]: the math stuff seems have an _n
[Coke] sorear++
MikeFair token infix:sym<*> { <sym> <O('%multiplicative, :op<mul_n>')> } 00:03
add_n, sub_n, div_n
I'm asuming _n means number, but i could be gravely mistaken
sorear MikeFair... that's not a pirop 00:04
that's nqp::add_n 00:05
pirops look like add__NNN
benabik add_n is an nqp op, I think. 00:06
[Coke] wonders what :isdecl used to mean. also :viviself 00:08
00:08 lichtkind left
MikeFair isn't that what [Coke] was asking for? 00:08
What's the NQP way of saying the equivalent pirop 00:09
?
sorear MikeFair: 16:56 * [Coke] wonders what the replacement for PAST::Op(:pirop) is.
[Coke] so I used :op<pir::long_pir_op__PPS>
sorear and it worked? 00:10
[Coke] I'm just getting through the initial QAST errors here. Hopefully anyone using nqp for reals wouldn't have this old legacy code to update.
sorear: for some value of "worked", yes.
it started complaining about something else. 00:11
MikeFair [Coke]: Though they'd likely be looking at PAST based tutorials ;) 00:12
[Coke] (complained about using :isdecl on QAST::Var)
sorear [Coke]: I can tell you what :isdecl and :viviself used to mean 00:13
I don't know what the replacements are, though
:isdecl in PAST was how you declared variables. essentially, 'my $x' compiled to PAST::Var.new(:isdecl(1), :name('$x'), :scope('lexical'))
:viviself was part of the autoviv mechanism. not sure exactly how it worked, but it helped make hash accesses autovivify. 00:14
sorear recalls thinking that :isdecl was completely insane, hopes QAST has something better 00:15
00:16 spider-mario left
[Coke] viviself looks a little too complicated to just rip out. I'll wait for pmichaud or jnthn to help on that one, I guess. 00:20
in the meantime, most of the old code at least now /compiles/. (except the pointy blocks). 00:21
s/old/updated/
so, point blocks, then remaining PAST->QAST updates.
sorear++ 00:22
MikeFair how do you stage a "deleted" status? 00:24
err "not staged for commit" of "deleted" 00:25
There's no file to add/stage
sorear you can do it with git add -a
which stages all unstaged changes 00:26
MikeFair ahh
sorear you might also be able to do it with git add -p (piecemeal)
MikeFair well I seem to have -A (staged and untracked (I don't want not tracked stuff)) and -i interactive 00:28
so I'm thinking about trying -A -i
and if I bork it manually unstaging the not tracked stuff
sorear git reset HEAD # unstage everything 00:31
MikeFair -i got me into something that worked 00:32
sorear do not confuse git reset with git reset --hard, they are significantly different and you can lose work by mixing them up
MikeFair sorear: Well I still need to start getting into the practice of using branches instead of developing straight on master
00:33 sivoais left, sivoais joined 00:38 fgomez left, fgomez joined 00:40 fgomez left 00:43 fgomez joined 00:46 xinming left
MikeFair YAY!! ./installable_safire -e 'say 1+1' 00:47
2
00:51 xinming joined
sorear MikeFair: yay!! 00:57
MikeFair At the moment it's the simple things 00:58
For now I'll just accept that I kind of get why I was able to make that work :)
01:05 MikeFair left, thou joined, MikeFair joined 01:07 FROGGS__ left
diakopter sorear: as of a few weeks ago, QAST still has isdecl 01:08
01:09 FROGGS left, FROGGS__ joined 01:14 bluescreen10 joined 01:17 rk joined 01:19 gongyiliao joined
rk wow all these people working on perl6... :) 01:19
TimToady some of us are just playing :) 01:20
do you wanna work in it? :D 01:21
or play with it?
rk maybe...
01:21 FROGGS joined
rk what's it current state? 01:21
TimToady hmm, I can think of one person with the initials rk... 01:22
it's getting into late early adopter phase
rosettacode.org has over 450 working examples of common tasks
01:22 araujo joined
TimToady we can run on either .NET or on Parrot 01:23
rn: say "hi rk!" 01:24
p6eval rakudo 0ead9e, niecza v21-1-ga8aa70b: OUTPUT«hi rk!␤»
diakopter TimToady: btw, an index of those entries with short descriptions of the features each demonstrates would be cool - "infinite lists; on-demand calculation"
TimToady we put some description on some of 'em, but sometimes we get lazy
(royal we)
diakopter I was thinking of a page with a list of links to them with those descrptions, so someone could browse P6 features by example 01:26
sorta like a cookbook I suppose
rk nice.
TimToady diakopter: should really have a mouseover for "explain this" 01:27
diakopter s/.NET/CLR (.NET or mono)/
TimToady right
01:27 jaldhar left
rk ok, I downloading... let's see what I can do... 01:30
01:32 UncleFester6 left
TimToady you can also play with small examples here on the channel 01:32
rk is that the '+p6eval ?
TimToady n: constant @fib = 1, 1, *+* ... *; say @fib[^20] 01:33
p6eval niecza v21-1-ga8aa70b: OUTPUT«1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765␤»
TimToady yes
rk nice...
perl6 say 3 01:34
TimToady needs a colon 01:36
sorear welcome to #perl6 01:38
rk perl6: say 3
p6eval rakudo 0ead9e, niecza v21-1-ga8aa70b: OUTPUT«3␤»
01:43 flussence left, flussence joined 01:47 cognominal left
rk perl6: say '1..24'; 01:57
p6eval rakudo 0ead9e, niecza v21-1-ga8aa70b: OUTPUT«1..24␤»
01:58 cognominal joined
rk perl6: say 1..24 ; 01:58
p6eval rakudo 0ead9e, niecza v21-1-ga8aa70b: OUTPUT«1..24␤»
TimToady ranges act more like interval objects in Perl 6 02:00
perl6: say 1...24;
p6eval rakudo 0ead9e, niecza v21-1-ga8aa70b: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24␤»
02:00 jaldhar joined 02:01 sftp left
TimToady perl6: say 1..24.list; 02:01
p6eval rakudo 0ead9e, niecza v21-1-ga8aa70b: OUTPUT«1..1␤»
TimToady perl6: say (1..24).list;
p6eval rakudo 0ead9e, niecza v21-1-ga8aa70b: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24␤»
02:01 sftp joined
TimToady they only expand if forced into list context 02:01
perl6: say join ' ', 1..24
p6eval rakudo 0ead9e, niecza v21-1-ga8aa70b: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24␤»
diakopter perl6: say -1...-1...-1; 02:02
p6eval rakudo 0ead9e: OUTPUT«Cannot call 'infix:<...>'; none of these signatures match:␤:($a, $b)␤␤ in block at /tmp/YDMWO6GGZ6:1␤␤»
..niecza v21-1-ga8aa70b: OUTPUT«-1␤»
rk oh.
TimToady a range will behave like a sequence if you force it to, but often you just want to use the ... sequence operator 02:03
sorear rk: more questions would be nice :D
02:07 dbr left, whiteknight left
rk is this going to be a drop in replace for 5? will I just be able to update my '/usr/bin/perl' link to point to a perl6 executable? 02:07
diakopter maybe someday 02:08
oh hm, the Synopses are down :-( 02:09
this explains a bunch: github.com/perl6/specs/blob/master...erview.pod
rk how closely is this tied to the Parrot VM?
MikeFair diakopter: Happened yesterday actually
diakopter rakudo is currently pretty tightly tied to Parrot. Niecza doesn't use Parrot 02:10
MikeFair rk: Think of Parrot and Common Language Runtime as equivalent to Intel CPU and ARM CPU
rk: Rakudo runs on Parrot, Niecza runs on CLR
rk: Both implement Perl6
geekosaur rk, the work you may have noticed going on here on QAST is partly about making it more possible to retarget Rakudo to other VMs. but it's only a first step, I think
rk I see, 02:12
02:12 cognominal left
rk Jrakudo too ? 02:13
MikeFair rk: It's best at this point I think to think of Parrot as some other project that P6 happens to be using -- though given the nature of how the stack got built and the common set of people involved there's a lot of "cross-talk" that happens -- usually by me I think
diakopter rk: I don't think anyone's working on a JRakudo
MikeFair :)
though I've seen some others do it too :) 02:14
TimToady hope to have a jakudo in a year or so 02:15
rk so when we try something here it's being run on both rakudo and niecza ? 02:16
diakopter p6: die 1 02:17
p6eval niecza v21-1-ga8aa70b: OUTPUT«Unhandled exception: 1␤ at /home/p6eval/niecza/lib/CORE.setting line 1435 (die @ 5) ␤ at /tmp/P8fViLwzsy line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4138 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4139 (module-COR…
..rakudo 0ead9e: OUTPUT«1␤ in block at /tmp/5lTd5XMdrn:1␤␤»
diakopter see, two outputs
rk yep...
geekosaur hm, when did pugs get taken back out?
02:17 benabik left
TimToady when we got tired of seeing error messages a couple months ago 02:19
feel free to bring pugs back up to snuff :)
rk perl6: say 3.+(4);
p6eval rakudo 0ead9e: OUTPUT«===SORRY!===␤Cannot use .+ on a non-identifier method call at line 2, near ";"␤»
..niecza v21-1-ga8aa70b: OUTPUT«===SORRY!===␤␤Modified method calls can only be used with actual methods at /tmp/DEEm2v6ow5 line 1:␤------> say 3.+(4)⏏;␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1435 (die @…
sorear geekosaur: fwiw, there is 'rpn:' if you want to test all three. 02:20
all permutations are good
rk rpn: say 1; 02:21
p6eval rakudo 0ead9e, niecza v21-1-ga8aa70b, pugs: OUTPUT«1␤»
geekosaur wishes :(
rk r: say "Hello";
p6eval rakudo 0ead9e: OUTPUT«Hello␤»
rk p: say "Hello";
p6eval pugs: OUTPUT«Hello␤»
rk n: say "Hello";
p6eval niecza v21-1-ga8aa70b: OUTPUT«Hello␤»
rk rpn: say 'ok ', "\x31\x38"; 02:22
p6eval rakudo 0ead9e, niecza v21-1-ga8aa70b, pugs: OUTPUT«ok 18␤»
02:22 cognominal joined
TimToady r: 3. 02:23
p6eval rakudo 0ead9e: OUTPUT«===SORRY!===␤Confused␤at /tmp/YIdHYzOhN_:1␤»
TimToady n: 3.
p6eval niecza v21-1-ga8aa70b: OUTPUT«===SORRY!===␤␤Confused at /tmp/SxIsYqtKNJ line 1:␤------> 3⏏.␤␤Parse failed␤␤»
TimToady n: 3.;
p6eval niecza v21-1-ga8aa70b: OUTPUT«===SORRY!===␤␤Decimal point must be followed by digit at /tmp/WsWNCm7Zpc line 1:␤------> 3.⏏;␤␤Confused at /tmp/WsWNCm7Zpc line 1:␤------> 3⏏.;␤␤Parse failed␤␤»
TimToady r: 3.; 02:24
p6eval rakudo 0ead9e: OUTPUT«===SORRY!===␤Confused␤at /tmp/e6VQpN_Ofe:1␤»
sorear geekosaur: for what do you wish?
geekosaur tht I were in a position to hack on pugs :( 02:25
sorear s/f/F/
02:26 cognominal left 02:31 doy joined
sorear o/ doy 02:36
doy \o 02:39
02:41 Circlepuller joined
rk r: 1; 02:42
p6eval rakudo 0ead9e: ( no output )
rk r: say '1'; 02:43
p6eval rakudo 0ead9e: OUTPUT«1␤»
02:43 Circlepuller_ left
rk r: say "Hello World $ENV{PATH}" 02:45
p6eval rakudo 0ead9e: OUTPUT«===SORRY!===␤Variable $ENV is not declared␤at /tmp/X6VQlyf9Eg:1␤»
TimToady r: say "Hello World %*ENV<PATH>"
p6eval rakudo 0ead9e: OUTPUT«Hello World /home/p6eval/perl5/perlbrew/bin:/home/p6eval/perl5/perlbrew/perls/perl-5.14.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/games␤»
TimToady globals have a * twigil 02:46
rk r: a = 1 + 1 ; say "$a";
p6eval rakudo 0ead9e: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix = instead␤at /tmp/53Ag2gfMJT:1␤»
TimToady and P6 doesn't do magic inside {}, but uses <> instead for literals
rk Ok.
TimToady and you need a 'my $' there
diakopter std: say $().$() 02:48
p6eval std b87ea13: OUTPUT«ok 00:00 44m␤»
diakopter n: say $().$()
doy TimToady: i'm curious what your thoughts are on MAD these days
p6eval niecza v21-1-ga8aa70b: OUTPUT«Unhandled exception: Unable to resolve method ast in type Any␤ at /tmp/EZ6TF2nnAD line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4138 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4139 (module-CORE @ 571) ␤ at /home/p6e…
doy is that still something you want to pursue?
rk r: my $a = 1 + 1 ; say "$a";
p6eval rakudo 0ead9e: OUTPUT«2␤»
diakopter TimToady: what does $().$() mean 02:49
and it breaks niecza's ocmpiler
TimToady doy: at the moment I'm mostly working on P5 in P6
MAD has the potential to more accurately reflect exactly what P5 is thinking for translation purposes though
the P5 that P6 parses is kind of a cleaned up version at the moment 02:50
so it's not bug compatible
02:50 cognominal joined
TimToady diakopter: $() is supposed to mean $($/) or so 02:50
foo.$var means a hard ref in $var 02:51
so you're unlikely to get an appropriate hard ref to call from $()
diakopter ah, so it's not breaking niecza's compiler; the .ast thing is at runtime
TimToady well, it's not certain that niecza implements $() as $($/) in any case 02:52
it looks like it's trying to return undefined
diakopter n: say %(%7)
p6eval niecza v21-1-ga8aa70b: OUTPUT«Unhandled exception: Unmatched key in Hash.LISTSTORE␤ at /home/p6eval/niecza/lib/CORE.setting line 388 (Any.hash @ 3) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /tmp/n40PMrLLkt line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4138 …
diakopter o_O 02:53
TimToady n: %7
p6eval niecza v21-1-ga8aa70b: OUTPUT«Unhandled exception: Unmatched key in Hash.LISTSTORE␤ at /home/p6eval/niecza/lib/CORE.setting line 388 (Any.hash @ 3) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /tmp/m_3K7FSszg line 1 (mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4138 …
TimToady r: %7
p6eval rakudo 0ead9e: ( no output )
doy TimToady: so there's still value to keeping it in there then? 02:56
(:
TimToady seems to me someone else was using it too for some translator or compiler 02:59
diakopter what's MAD 03:00
03:01 cognominal left
TimToady miscellaneous attribute decorations on p5 parser nodes 03:02
doy really?
who?
TimToady if I remembered I'd've said rather than being vague :) 03:04
doy (:
03:08 fgomez left 03:31 cognominal joined 03:39 thou left 03:54 tokuhiro_ left 03:58 thou joined 04:11 gongyiliao left 04:16 daniel-s_ joined 04:17 daniel-s__ joined 04:20 daniel-s left, daniel-s_ left 04:25 daniel-s__ left 04:26 popl joined 04:27 bonsaikitten left 04:31 bonsaikitten joined 05:00 cognominal left, cognominal joined 06:07 cognominal left 06:14 lizmat left 06:20 cognominal joined 06:22 Chillance left
cognominal what is the way to get the signature of a method, or a metamethods given its name? 06:26
moritz r: say Int.^find_method('sqrt').signature 06:33
p6eval rakudo 0ead9e: OUTPUT«:(Int:D , Mu *%_)␤»
moritz that should be Int:D: 06:34
Signature.perl is still less than perfect
06:42 kaare__ joined
cognominal thx 06:42
that's not wrong either, only too verbose 06:43
dalek kudo/nom: 1374a97 | moritz++ | src/core/Signature.pm:
use : as invocant marker in Signature.perl
06:49
cognominal is there a convention in the shell to denote the value previously evaluated? 07:07
07:15 GlitchMr joined
sorear no. 07:24
07:24 popl left 07:29 daniel-s joined
cognominal r: say IO.gist.defined 07:31
p6eval rakudo 1374a9: OUTPUT«True␤»
cognominal r: say IO.defined 07:32
p6eval rakudo 1374a9: OUTPUT«False␤»
cognominal r: say (eval "IO.gist").defined 07:33
p6eval rakudo 1374a9: OUTPUT«True␤»
cognominal oops
r: say (eval O.gist).defined
p6eval rakudo 1374a9: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&O' called (line 1)␤»
cognominal r: say (eval IO.gist).defined
p6eval rakudo 1374a9: OUTPUT«IO is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting:2␤ in block at src/RESTRICTED.setting:18␤ in at src/gen/Metamodel.pm:2317␤ in any find_method_fallback at src/gen/Metamodel.pm:2305␤ in any find_method at src/gen/Metamodel.p…
cognominal sorry for the noise, I was utterly confused 07:34
07:37 raiph left
cognominal r: "toto".gist 07:41
p6eval rakudo 1374a9: ( no output )
cognominal r: say "toto".gist
p6eval rakudo 1374a9: OUTPUT«toto␤»
cognominal r: say "toto" 07:43
p6eval rakudo 1374a9: OUTPUT«toto␤»
cognominal ho, I am confusing .perl and .gist 07:44
I always confuse .Str, .perl and .gist :( 07:46
so .perl.eval is a noop. But what's the difference between .Str and .gist? 07:47
GlitchMr /usr/bin/ld: cannot find crt1.o: No such file or directory 07:48
Clang probably wants to annoy me
perl6: my %hash; %hash<future> = %hash; %hash.perl.say; 07:49
p6eval rakudo 1374a9, niecza v21-1-ga8aa70b: OUTPUT«(timeout)»
GlitchMr But I guess that infinite loop is better than something that doesn't do what you want (like in Python) 07:50
>>> a
{'future': {...}}
07:50 yarp joined
GlitchMr {...} is set containg one element (in Python 3) - ... 07:51
07:58 cognominal left 08:01 xinming left 08:06 xinming joined
FROGGS good morning 08:14
jnthn, arnsholt: if I have a pointer address stored in an int, how do I get a OpaquePointer from it? 08:16
jlaire pointers can be larger than ints :| 08:18
08:19 Psyche^ joined, cognominal joined
FROGGS well, depends on the system 08:20
if I have int64 than my pointer shouldn't be longer, right?
talking about unsigned ints of course 08:21
sorear there is at least one system that used 128-bit pointers
FROGGS which one? 08:22
sorear AS/40
yarp I can't install panda or use panda in simplifiy chinese win xp.
i am key in >perl6 bootstrap.pl
FROGGS sorear: and there are no integers of that size? thats weird somehow 08:23
yarp the output is :
==> Bootstrapping Panda
08:23 Patterner left, Psyche^ is now known as Patterner
sorear yarp: do you have spaces or non-ascii characters in the full name of the folder you're trying to install panda from? 08:23
08:23 thou left
sorear FROGGS: intmax_t and intptr_t are guaranteed to be large enough to hold a pointer. 08:23
FROGGS: int64_t is not. 08:24
yarp 'p' is not a system or outer command...
no space 08:25
FROGGS sorear: that int64 was an example for my amd64 system
sorear: if I use int, it should be either int32, int64 or even int128, whatever is there 08:26
sorear FROGGS: what do you mean?
yarp so size_t should be ok
sorear FROGGS: in what context are you using "int"? 08:27
yarp: not so, on segmented architectures the address space can be much larger than the maximum size of a single object
FROGGS in perl6, not in
C
sorear eg, 286 with the large memory model
yarp ohhh 08:28
FROGGS sorear: I get a packed C-structure as a CArray[int] in perl6, then I unpack it to get its members
sorear: some of them a like Sint16, some of them are pointer to other structures 08:29
sorear: these other structures I need to access
sorear: so I need a (nice) way to get a OpaquePointer instead an int, so I can call NativeCall on it 08:30
sorear yarp: now if you want to assume memory is a flat array of bytes possibly with holes... go for it. every processor made in the last ~20 years has supported that, true segmentation is dead, word-addressed architectures are dead, split I/D architectures are dead (for non-embedded systems) 08:31
FROGGS: there should be a way to do that, I'm not zavolaj-savvy enough to know it 08:32
but on amd64 linux I would expect CArray[int] to contain 32-bit elements, not 64-bit
even if Rakudo currently gets that wrong because of Parrot's deep-seated limitation of a single INTVAL type 08:33
FROGGS sorear: I am sure that more than 4-byte long ints 08:36
sorear Perl 6 has an int64 type which I would expect to represent an 8-byte int
amd64 gets a performance advantage for 4-byte ints, so int defaults to 4-byte on Linux 08:37
FROGGS see github.com/jnthn/zavolaj/
search for int32 in the readme 08:38
there is a table
sorear I'm in ... mode right now, trying to help you for the future without any regard for current implementations 08:39
masak morning, #perl6 08:45
sorear o/ masak 08:47
FROGGS sorear: its just a workaround for now, I basically expect in the future a better way to access and unpack structs from plain pointers 08:48
the main problem right now is that it cant handle sized ints, when that is done I guess the other stuff is done pretty fast 08:52
and I hope to be able to help them at this point
08:53 yarp left
FROGGS can I somehow get the list of named arguments a constructor expects? 08:54
sorear r: say DateTime.^attributes>>.name 08:59
p6eval rakudo 1374a9: OUTPUT«$!year $!month $!day $!hour $!minute $!second $!timezone &!formatter $!saved-offset␤»
FROGGS awesome!
sorear r: say DateTime.^attributes.grep(*.public)>>.name
p6eval rakudo 1374a9: OUTPUT«No such method 'public' for invocant of type 'Attribute'␤ in block at /tmp/CJ1vZ3qYPM:1␤␤»
sorear r: say DateTime.^attributes[0].^methods(:local)>>.name
p6eval rakudo 1374a9: OUTPUT«Unmarshallable foreign language value passed for parameter 'obj'␤ in method dispatch:<hyper> at src/gen/CORE.setting:895␤ in block at /tmp/bBifaNvlzi:1␤␤»
sorear r: say DateTime.^attributes[0].^methods(:local).map(*.name) 09:00
p6eval rakudo 1374a9: OUTPUT«Unmarshallable foreign language value passed for parameter '$x0'␤ in block at /tmp/ftkrEQNBGR:1␤␤»
sorear r: say DateTime.^attributes[0].^methods(:local)
p6eval rakudo 1374a9: OUTPUT«No such method 'gist' for invocant of type 'Sub'␤ in method gist at src/gen/CORE.setting:4730␤ in sub say at src/gen/CORE.setting:7143␤ in block at /tmp/NVLzSf86rl:1␤␤»
sorear mumble
FROGGS hmmm, doing it on OpaquePointer gives me nothing :/
sorear what happens if you do nqp::unbox_i() on an OpaquePointer? 09:01
FROGGS hold on
CPointer cannot unbox to a native int 09:03
I guess I'm going another crappy way and pass my int to a C-function, that gives me this as a pointer back 09:06
moritz r: r: say DateTime.^attributes.grep(*.has_accessor) 09:08
p6eval rakudo 1374a9: OUTPUT«===SORRY!===␤Confused␤at /tmp/QDcjvZsVcm:1␤»
moritz r: say DateTime.^attributes.grep(*.has_accessor)
p6eval rakudo 1374a9: OUTPUT«$!year $!month $!day $!hour $!minute $!second $!timezone &!formatter␤»
sorear r: for Attribute.^methods { say $_ }
p6eval rakudo 1374a9: OUTPUT«Unmarshallable foreign language value passed for parameter '$_'␤ in block at /tmp/w9X5f18tHo:1␤␤»
FROGGS no output for opaquepointer :/
sorear r: for Attribute.^methods -> Mu $x { say $x } 09:09
p6eval rakudo 1374a9: OUTPUT«Unmarshallable foreign language value passed for parameter '$x'␤ in block at /tmp/bw3cIBTURg:1␤␤»
sorear what, I can't even bind it to Mu?
r: for Attribute.^methods -> Mu $x is rw { say $x }
p6eval rakudo 1374a9: OUTPUT«Unmarshallable foreign language value passed for parameter '$x'␤ in block at /tmp/vrW5r_WT_A:1␤␤»
09:13 yarp joined 09:18 vsmid joined 09:40 leont joined 10:11 b_jonas left 10:15 spider-mario joined 10:23 MayDaniel joined 10:39 vsmid left 10:41 GlitchMr left 10:56 colomon joined 11:05 Su-Shee_ joined 11:09 Su-Shee left
spacebat I'm wondering about perl6 support in cperl-mode for emacs 11:09
11:10 cognominal left
spacebat renormalist wrote a cperl6-mode that was supposed to have been merged into cperl-mode proper, his website links to the page on github I already use for cperl-mode, but I don't see any support specific to perl6 11:11
masak I don't think there is specific support for it, no.
but what little I've used cperl-mode, I feel it does Perl 6 quite well.
its design is based on recovering from confusion, unlike many other highlighters.
and so it treats Perl 6 as confusion to be routed around :) 11:12
spacebat oh wait, there's a perl6-pugs branch there
defining things like cperl-looks-like-perl6 11:13
github.com/jrockway/cperl-mode/blo...rl-mode.el
I'll try that - always the way that I figure it out just after asking 11:14
masak ;) 11:16
best of luck.
feel free to report your findings, and we'll be able to answer better next time. 11:17
11:22 yarp left
spacebat thanks, cperl-mode is a bit of a beast but if I'm ever to really become familiar with perl6, it'll be using emacs and cperl is the best perl mode out there 11:23
11:30 cognominal joined
__sri if i write a little non-blocking web server benchmark comparing perl6 and perl5, would that be useful to anyone? 11:31
11:31 tokuhiro_ joined
__sri (initially perl6 would of course look pretty terrible due to the poll implementation) 11:32
masak tadzik has made similar benchmarks, ISTR.
not sure if they were non-blocking.
11:42 xdbr joined 11:46 xinming left 11:48 xinming joined
tadzik hm? 12:05
oh, you mean apache benchmark vs bailador?
hm. Any idea how to display RT tickets assigned to me? 12:30
moritz rt.perl.org/rt3/ shows "50 highest priority tickets I own" 12:31
if you have more than 50, you can click on the heading to get a "more" link 12:32
tadzik found 0 tickets. bah, I thought there are some Pod ones
moritz tadzik: should I assign them to you? :-)
tadzik moritz: that'd be good, thanks :) 12:33
moritz tadzik: what's your RT ID?
tadzik 'tadzik' I think
the only one I remember that with arbitrary <'s and >'s
in formatting codes
moritz hm, there's no tadzik there in the list of people to assign to
rt.perl.org/rt3/Ticket/Display.html?id=114510 12:34
rt.perl.org/rt3/Ticket/Display.html?id=114482
rt.perl.org/rt3/Ticket/Display.html?id=114480
tadzik Logged in as tadzik
moritz rt.perl.org/rt3/Ticket/Display.html?id=114478
tadzik: can you take such a ticket?
maybe if you own a ticket, your name appears there (/me clings to straws) 12:35
tadzik I don't see a way to do this
moritz in the second horizontal bar I have those links on the right: "Open
· Take
···
Mark Spam
··· 12:36
Comment
· Reply
· Resolve
eeks, c&p fail
tadzik I don't
tadzik shakes fist at RT
I'll just bookmark them :)
moritz you don't happen to be on the "public" view of those tickets?
tadzik I don't think so. I'm logged in at least 12:37
moritz well, you can get the "public" view when logged in too
those the links I gave you should be fine (ie not public)
[Coke], pmichaud: can you please check if tadzik has fewer permissions in RT than me, and if yes, fix it? (RT login names are also 'tadzik' and 'moritz') 12:38
tadzik: more: rt.perl.org/rt3/Ticket/Display.html?id=113924
12:42 JimmyZ joined 12:47 whiteknight joined 12:51 GlitchMr joined 12:56 tokuhiro_ left 13:04 Su-Shee_ is now known as Su-Shee 13:12 xinming left 13:14 xinming joined 13:23 tokuhiro_ joined 13:24 hoelzro|away is now known as hoelzro 13:27 yarp joined
[Coke] moritz: sure. 13:32
jnthn hello o/
jnthn is on le train
FROGGS hi jnthn 13:33
[Coke] login "tadzik" is not a p6bugadmin.
jnthn: how you feeling?
13:33 yarp left
leont Le train tends to be faster than the train, though 13:33
jnthn [Coke]: Like a bucket whose purpose is to transport phlegm around Sweden :/ 13:34
Albeit, I'm a bit better for the weekend's sleep
[Coke] tadzik: You are now a perl6 bugadmin.
jnthn We'll see what two days of teaching and 3 days of keynoting does to me. :)
[Coke] jnthn: ewwwwwww.
jnthn [Coke]: Yeah :/ 13:35
[Coke] moritz, tadzik: this might date from the "parrot" cleanup.
moritz [Coke]++ thanks! 13:42
13:44 orafu joined 13:48 hoelzro is now known as hoelzro|away 14:04 scottdwaer joined 14:09 scottdwaer left
cognominal in France, what will happen fast is 'le train de rigueur' :( 14:12
Socialism means taxes
14:13 JimmyZ left
jnthn Taxes are fine if they use them to do decent stuffs. 14:13
cognominal well, you know european taxes today is paying wall street betting against the euro, and interest to private bank who got the money with zero interest from central banks 14:14
people say economy has become a casino, it's more like a mondial three card monte. 14:15
And we got the capitalist version of socialism. More taxes for the middle class to avoid taxing the 1% 14:17
They are talking of 75% taxes for the upper bracket… but only for revenues from work. What a joke. 14:19
mst capital gains taxes are complicated 14:20
cognominal taxing the rich is complicated. 14:21
mst "congratulations, your stocks gained 50% ... now you have to sell 25% of them to cover the taxes" doesn't improve the incentives to invest
and sufficiently rich people can fairly easily move a lot of their money out of your reach if they feel over-taxed
so, yeah 14:22
liveware problems abound in this space :)
moritz well, one could always take takes only on *wins* from stock market
agree about the liveware problems
14:23 benabik joined 14:31 guarra6969 joined
gfldex there used to be a time without a capital gain tax. It was all included in income tax. 14:44
folk still bought shares on the stock exchange
jnthn Finally managed to scribble a block post: 6guts.wordpress.com/2012/09/09/the-...p-on-qast/
gfldex jnthn++ # for scribbleing 14:45
moritz jnthn++ # blogging 14:48
jnthn++ # hacking
jnthn Suspect I'll struggle for hacking time this next week.
moritz I seem to remember that it took about 200s to parse the setting on my laptop, the latest number is 163 14:49
jnthn Unless I get lots better. We'll see.
moritz that's ok, it's much more important that you recover than you hack
14:50 fgomez joined
tadzik jnthn: s/nteresting/interesting/ probably 14:55
jnthn probably :) 14:56
tadzik nice block post too, jnthn++ :) 14:57
jnthn fixed
moritz: Whe n was the 200s, ooc? 15:01
moritz: That is, was the improvement when we switched to the QAST based NQP, or more a longer improvement over time with many changes?
Seems a bit big for the first. 15:02
15:04 yeltzooo7 left
moritz jnthn: I don't know exactly, maybe two or three weeks ago 15:05
15:05 yeltzooo joined
jnthn ok :) 15:05
moritz or it might be that may memory is simply buggy :-)
jnthn Well, nice improvement :)
moritz or I'm confusing machines
or it actually did get faster :-)
jnthn Just need several more of them... :) 15:06
moritz jnthn: if you brain is not too squashy, I'd remind you that I'm still waiting for some review of the export-constant branch 15:07
jnthn moritz: I had forgotten. Thanks for the reminder. 15:08
moritz it's only one patch with 16 lines :-)
15:08 guarra6969 left
jnthn ah, we pass the symbol as an extra named arg 15:11
moritz aye
jnthn The patch looks fine, provided the extra named arg approach is fine.
moritz seemed to me "the simplest way that could possibly work"
jnthn Right. And I'm still not entirely convinced the "constants sorta kinda pretend to be types" approach can work. 15:12
moritz me neither 15:13
it would take some extra work to make constant a = 3; a === 3 return True
jnthn Anyway, I'm not too worried. People will write code that uses the trait. Less people will write traits themselves.
So if we change the implementation of the trait down the line, it won't affect much.
So I think I'm fine with it.
Shouldn't let the perfect be the enemy of the works fine. 15:14
moritz ok, then I'll cherry-pick tthat patch into nom 15:15
no need for a merge commit for one commit :-)
jnthn aye
Hm, build time is the best I've seen in a while on my laptop too :) 15:16
dalek kudo/nom: f488677 | moritz++ | / (3 files):
export trait for constants
15:17
moritz jnthn: fwiw I've tried the same approach to exporting variables 15:19
jnthn: and it sort of works, the variable and its type constraint make it into the code that does the importing
but the value isn't shared between the module and the importing location
any idea what might be going on? 15:20
gist.github.com/3685011 # that's the patch 15:21
and the code paths through the export traits up to $*W.install_package_symbol all use binding / no decontainerization 15:23
jnthn I've not much idea how that's gonna work
I mean, every time we enter a lexical scpoe, we get a new variable
If it's our-scoped we rebind what's in the package.
moritz hm, right
jnthn You end up exporting the thing in the proto-lexpad. 15:24
moritz that makes a lot of sense
jnthn Which is kinda fine if your trait does stuff to it that will be reflected in the clone of it we get per lexpad entry
moritz (from an implementation point of view)
jnthn But for exporting...hm
moritz well, one problem is that traits are run at compile time 15:25
jnthn I've no immediate idea how to make export do something sensible there.
Right.
moritz so my $x is export = 'foo' can only ever see the proto lexpad
jnthn That's not a problem, that's just how traits work.
Correct.
moritz well, in this case it's a problem, if I want variable exports to DWIM :-)
normally it's great :-)
ok, I don't want to do any hard design work on that 15:26
jnthn Maybe it should attach a LEAVE trait to the block the thing is declared in somehow.
moritz I just thought it might be a LHF, and tried it
jnthn And htat binds into EXPORT somehow
Dunno
moritz and after it didn't work, I wanted to know why
jnthn leaves it for somebody with a workinger brain :)
15:27 whiteknight left
jnthn ooh, not far from Stockholm... 15:28
15:30 tokuhiro_ left, pmurias joined
masak leaves for another train to Stockholm ;) 15:31
&
jnthn
.oO( We must travel on separate trains, for corporate continuity )
15:32
detrain & 15:33
pmurias is perlcabal.org/syn broken? 15:34
diakopter yes
15:35 cognominal left
pmurias how can I call a method from a parent class in nqp? 15:37
diakopter tries to fix apache on feather
there, fixed :) 15:40
pmurias: it's back up 15:41
15:42 xinming left 15:44 leont left, xinming joined 15:46 cognominal joined
diakopter nqp: class A { method c() { self.d }; method d() { say(4) } }; class B is A { method d() { say(5) } }; B.new.c; 15:50
p6eval nqp: OUTPUT«5␤»
15:51 colomon left
pmurias diakopter: I want something like SUPER in perl5 15:54
diakopter ah, by "from" you meant "of" 15:55
pmurias yes
diakopter I think I remember people discussing how to do that, but I don't remember how 15:57
afk&
GlitchMr Just wondering, does Perl 6 have something like golang.org/pkg/math/#Nextafter? 15:58
16:02 cognominal left 16:07 JimmyZ joined
JimmyZ pmurias: github.com/jnthn/rakudo-debugger/b...ug.nqp#L45 16:07
pmurias: or github.com/jnthn/rakudo-debugger/b...ug.nqp#L55 ? 16:08
JimmyZ doesn't know what's the difference 16:09
16:13 cognominal joined 16:16 JimmyZ left 16:31 fgomez left 16:35 raiph joined
raiph I just posted "Tracking Perl 6 development" perlmonks.org/?node_id=992603 # would someone plz reddit this for me? 16:39
16:39 thou joined 16:46 benabik left
masak oh hai from a train! \o/ 16:49
GlitchMr: no. not that I know. 16:51
GlitchMr: ooc, what's a use case for such a function?
iterating through the floating-point values very slowly? :)
nqp: class A {}; class B is A {}; .say for B.HOW.parents(:local) 16:55
p6eval nqp: OUTPUT«Confused at line 2, near ".say for B"␤current instr.: 'panic' pc 19998 (src/stage2/gen/NQPHLL.pir:7314) (src/stage2/gen/NQPHLL.pm:325)␤»
masak nqp: class A {}; class B is A {}; $_.say for B.HOW.parents(:local) 16:56
p6eval nqp: OUTPUT«too few positional arguments: 1 passed, 2 (or more) expected␤current instr.: 'parents' pc 11291 (src/stage2/gen/nqp-mo.pir:4972) (src/stage2/gen/nqp-mo.pm:1100)␤»
masak nqp: class A {}; class B is A {}; $_.say for B.HOW.parents(B, :local)
p6eval nqp: OUTPUT«Method 'say' not found for invocant of class 'A'␤current instr.: '' pc 223 ((file unknown):151941468) (/tmp/sQwtbotxGf:1)␤»
masak :)
nqp: class A {}; class B is A {}; say($_) for B.HOW.parents(B, :local)
p6eval nqp: OUTPUT«␤»
masak pmurias: something like that might give you access to the superclass. it's a bit... manual... but it works. 16:57
17:01 fgomez joined, benabik joined
GlitchMr masak: checking if value is close enough 17:02
But I guess it isn't really needed with rational numbers 17:03
17:03 Chillance joined
masak right. 17:03
how the heck would you use Nextafter to check if a value is close enough? I don't get it. 17:04
geekosaur I can see it, kinda automated error bars on floating point calculations thing 17:05
GlitchMr perl6: ${1} 17:08
p6eval rakudo f48867: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name␤at /tmp/OQQeKCU1zl:1␤»
..niecza v21-1-ga8aa70b: OUTPUT«===SORRY!===␤␤Unsupported use of ${1}; in Perl 6 please use $0 at /tmp/2HChVBghus line 1 (EOF):␤------> ${1}⏏<EOL>␤␤Parse failed␤␤»
GlitchMr "Unsupported use of ${1}; in Perl 6 please use $0"
What?
That is... nice feature 17:09
masak yeah. STD (and therefore Niecza) are good at informative error messages. 17:10
GlitchMr I was surprised to even see $0
But...
perl6: ${0}
p6eval niecza v21-1-ga8aa70b: OUTPUT«===SORRY!===␤␤Unsupported use of ${0}; in Perl 6 please use $(-1) at /tmp/L_0_1wZBFe line 1 (EOF):␤------> ${0}⏏<EOL>␤␤Parse failed␤␤»
..rakudo f48867: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name␤at /tmp/SvdiBPujoa:1␤»
GlitchMr $(-1) is not correct
17:11 tokuhiro_ joined
GlitchMr -1 means simply -1 17:11
Perhaps $*PROGRAM_NAME, but I'm not sure 17:12
masak n: ${0x10} 17:14
p6eval niecza v21-1-ga8aa70b: OUTPUT«===SORRY!===␤␤Unsupported use of ${0x10}; in Perl 6 please use $0x10 at /tmp/ztWrT3PQJQ line 1 (EOF):␤------> ${0x10}⏏<EOL>␤␤Parse failed␤␤»
masak n: ${1e3}
p6eval niecza v21-1-ga8aa70b: OUTPUT«===SORRY!===␤␤Unsupported use of ${1e3}; in Perl 6 please use $1e3 at /tmp/rv_GDbB3Z4 line 1 (EOF):␤------> ${1e3}⏏<EOL>␤␤Parse failed␤␤»
GlitchMr This looks like some sort of bug 17:15
masak yeah, but not a very serious one.
GlitchMr But, it doesn't matter much
${0x10} is invalid with use strict
niecza: $` 17:16
p6eval niecza v21-1-ga8aa70b: OUTPUT«===SORRY!===␤␤Non-declarative sigil is missing its name at /tmp/7jwQ2yEiU8 line 1:␤------> <BOL>⏏$`␤␤Confused at /tmp/7jwQ2yEiU8 line 1:␤------> <BOL>⏏$`␤␤Parse failed␤␤»
GlitchMr std: $`
p6eval std b87ea13: OUTPUT«===SORRY!===␤Unsupported use of $` variable; in Perl 6 please use explicit pattern before <( at /tmp/xyENMCge8K line 1:␤------> $`⏏<EOL>␤Parse failed␤FAILED 00:00 41m␤»
GlitchMr std: ${0x10}
p6eval std b87ea13: OUTPUT«===SORRY!===␤Unsupported use of ${0x10}; in Perl 6 please use $0x10 at /tmp/j7U_e9edMh line 1:␤------> ${0x10}⏏<EOL>␤Parse failed␤FAILED 00:00 41m␤»
GlitchMr But if STD proposes you to do something weird, it's a bug, isn't it? 17:17
masak arguably, yes. 17:19
GlitchMr std: @{$hello}{'world', 'is', 'nice'} 17:20
p6eval std b87ea13: OUTPUT«===SORRY!===␤Unsupported use of @{$hello}; in Perl 6 please use @($hello) at /tmp/AnxTkDh_eB line 1:␤------> @{$hello}⏏{'world', 'is', 'nice'}␤Parse failed␤FAILED 00:00 41m␤»
GlitchMr I guess that if "std" says you to convert hash reference slice to array hash reference slice something is wrong 17:22
17:26 tokuhiro_ left, cognominal left
masak no, that one looks OK to me. 17:26
17:35 cognominal joined 17:38 fgomez left 18:00 marmay joined 18:03 Guest3957 joined, Guest3957 left 18:13 dfaure joined
masak it's funny. I feel that both jQuery and Java's Collections Framework approach a really nice way to handle collections, but they don't go the whole way. 18:18
specifically, JCF's sublists are really powerful. Perl 6 does something similar. 18:19
Juerd Nobody ever goes the whole way. Those who do in one area, fail to finish the product. 18:20
masak r: my @a = 1..20; @a[4..14] .= reverse; say @a.perl
p6eval rakudo f48867: OUTPUT«Array.new(1, 2, 3, 4, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 16, 17, 18, 19, 20)␤»
masak stuff like this is what I'm talking about. 18:21
Juerd <3 .=
sorear good * #perl6 18:29
masak what jQuery gets right is a really natural way to make selections on trees. 18:30
pmichaud good afternoon, #perl6
masak sorear! \o/
pmichaud! \o/
sorear au! \o/
GlitchMr perl6: my @a = set 1..20; say @a[0]; # I know it won't work 18:31
p6eval rakudo f48867: OUTPUT«1␤»
..niecza v21-1-ga8aa70b: OUTPUT«set(16, 15, 14, 13, 20, 19, 18, 17, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)␤»
GlitchMr wait...
Sets are ordered?
18:34 thou left
masak they are not. 18:35
I prefer Niecza's answer there.
18:35 vs-midi joined
GlitchMr Yeah, I was surprised to see that sets are Positional 18:36
18:36 thou joined
GlitchMr I know that sets are Associative... but Positional? 18:37
perl6: my @a = set 1..20; say @a{2};
p6eval niecza v21-1-ga8aa70b: OUTPUT«Unhandled exception: Cannot use hash access on an object of type Array␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/lib/CORE.setting line 352 (Any.at_key @ 9) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /tmp/tfK22ttjI3 line 1 (mainli…
..rakudo f48867: OUTPUT«postcircumfix:<{ }> not defined for type Array␤ in method gist at src/gen/CORE.setting:9820␤ in sub say at src/gen/CORE.setting:7150␤ in block at /tmp/OIKzdnfA8Y:1␤␤»
GlitchMr perl6: my $a = set 1..20; say $a{2};
p6eval rakudo f48867, niecza v21-1-ga8aa70b: OUTPUT«True␤»
GlitchMr perl6: my $a = set 1..20; say $a[0];
p6eval rakudo f48867: OUTPUT«set(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)␤»
..niecza v21-1-ga8aa70b: OUTPUT«16␤»
GlitchMr Why sets are positional, anyways?
masak sets are not Positional. 18:38
r: say Set ~~ Positional
p6eval rakudo f48867: OUTPUT«False␤»
GlitchMr n: say Set ~~ Positional 18:40
p6eval niecza v21-1-ga8aa70b: OUTPUT«False␤»
GlitchMr But they act like positional, in Niecza
n: my $a = set 1..20; @a[4..8].join(' ').say
p6eval niecza v21-1-ga8aa70b: OUTPUT«===SORRY!===␤␤Variable @a is not predeclared at /tmp/dssWbWjOg_ line 1:␤------> my $a = set 1..20; ⏏@a[4..8].join(' ').say␤␤Potential difficulties:␤ $a is declared but not used at /tmp/dssWbWjOg_ line 1:␤------> my…
GlitchMr n: my $a = set 1..20; $a[4..8].join(' ').say
p6eval niecza v21-1-ga8aa70b: OUTPUT«20 19 18 17 1␤» 18:41
GlitchMr n: my $a = set 1..20; $a.join(' ').say
p6eval niecza v21-1-ga8aa70b: OUTPUT«16 15 14 13 20 19 18 17 1 2 3 4 5 6 7 8 9 10 11 12␤»
sorear r: my $a = set 1..20; $a[4..8].join(' ').say
p6eval rakudo f48867: OUTPUT«Index out of range. Is: 4, should be in 0..0␤ in method Str at src/gen/CORE.setting:9819␤ in method Stringy at src/gen/CORE.setting:742␤ in method join at src/gen/CORE.setting:1141␤ in block at /tmp/d69OV4i7iq:1␤␤»
18:41 dfaure left
sorear r: my $a = set 1..20; $a.list.[4..8].join(' ').say 18:41
p6eval rakudo f48867: OUTPUT«5 6 7 8 9␤»
sorear when I was learning perl 6, .[foo] was supposed to always act as if it were really .list.[foo] 18:42
pmichaud o_O
sorear dwim here: if an object isn't positional but you try to pretend it is, coerce it
GlitchMr That would make sense
In Python, I can do that too - it's just more explicit 18:43
>>> list({5, 1, 2, 8})
[8, 1, 2, 5]
pmichaud it's explicit in rakudo too, as sorear++ demonstrated above
19:02 vs-midi left 19:08 leont joined
marmay Does IO::Handle's .getc() method return a certain number of characters or bytes? 19:10
FROGGS should be one char/byte, no? 19:11
I believe there is a.getstring or so that returns everything till \0 19:12
masak can't find an IO::Handle in Rakudo's source 19:13
r: say !so IO::Handle 19:14
p6eval rakudo f48867: OUTPUT«Could not find symbol '&Handle'␤ in method <anon> at src/gen/CORE.setting:9825␤ in at src/gen/Metamodel.pm:2317␤ in any find_method_fallback at src/gen/Metamodel.pm:2305␤ in any find_method at src/gen/Metamodel.pm:859␤ in at src/gen/BOOTSTRAP.pm:826␤ in any…
pmurias why does nqp always have those horribly long stack traces on compiling errors?
FROGGS getting more info isnt bad IMO
masak those stacktraces add very little information. 19:15
they add text.
pmurias and I have to scroll a few screens 19:16
jnthn pmurias: It shows you the stack trace from the parse, which can be fairly deep. 19:18
In Rakudo, folks have invested time in making the developer experience here nicer. 19:19
moritz++ especially
NQP is fairly unloved there.
19:19 hoelzro|away is now known as hoelzro
FROGGS thats true, tell me another language where you get hints what you might do to fix the problem 19:19
19:20 hoelzro is now known as hoelzro|away
geekosaur ghc has been gettig better about such hints 19:20
19:23 marmay left
sorear masak: they add information when you're trying to debug the parser 19:24
masak conceded.
jnthn Yeah
masak which most end users aren't.
jnthn Which, let's face it, I have been plenty of times in the last year's NQP work :)
masak: I'm probably NQP's biggest end user. :)
masak heh. 19:25
masak avoids making a "biggest end" joke
masak .oO( big-endian users ) 19:26
jnthn :P 19:27
Anyway, I agree it's not optimal. Patches to make it better are welcome.
I hope I won't always be NQP's biggest (end user). :P
masak :P 19:32
srsly, nqp seems to be a fine piece of tech.
jnthn I agree.
masak I could easily imagine implementing large systems in it.
something like, I dunno, a compiler. 19:33
jnthn But, as I said in le blog post earlier, Rakudo tends to get the majority of the tuits.
masak aye.
it's a matter of priorities.
pmurias jnthn: does NQP have a intended use besides faster Perl6 dialect for writing Rakudo? 19:36
masak compiler toolkit. 19:37
jnthn What masak said. 19:39
.u heart 19:45
phenny U+2766 FLORAL HEART (❦)
jnthn wat
masak .u heartsuit 19:46
phenny masak: Sorry, no results for 'heartsuit'.
jnthn .u brokenheart
phenny jnthn: Sorry, no results for 'brokenheart'.
masak .u heart suit 19:47
phenny U+2661 WHITE HEART SUIT (♡)
masak .u black heart suit
phenny U+2665 BLACK HEART SUIT (♥)
tadzik .u perl
phenny tadzik: Sorry, no results for 'perl'.
masak .u heart bullet
phenny U+2767 ROTATED FLORAL HEART BULLET (❧)
masak .u heavy heart
phenny U+2764 HEAVY BLACK HEART (❤)
masak :) 19:48
tadzik .u heavy metal
phenny tadzik: Sorry, no results for 'heavy metal'.
jnthn
.oO( mercury, aluminum, iron... )
19:49
19:56 GlitchMr left
leont .u camel 19:59
phenny leont: Sorry, no results for 'camel'.
leont What version of unicode is that running? 20:00
pmurias masak: what are it's advantages over Perl6 besides speed? 20:02
moritz the compiler toolikit 20:05
arnsholt One of the goals is to be simpler (particularly in terms of implementation) than full Perl 6, IIRC 20:06
moritz another thing is that you can easily pass non-Perl 6 objects into nqp subroutines, but not into Perl 6 20:07
20:25 Moukeddar joined 20:27 Circlepuller_ joined 20:30 Circlepuller__ joined, Circlepuller left 20:32 Circlepuller_ left, kaare__ left
pmurias jnthn: any ideas when dumping QAST for a given code snippet will be supported? 20:32
jnthn pmurias: When somebody implements it. It ain't hard to do, but I'm gonna be mostly tuitless for the next week or so :( 20:33
pmurias wouldn't having nqp add a .perl method to each class (or some metaclass trickery) solve that? 20:34
jnthn Well, thing is, we already can dump NQPMatch, afaik.
So I guess looking at how that works is a good start.
mst grins 20:36
switched to my own packaging tools, now going to end up with a better Rakudo::Star
pmurias mst: you are taking over packaging Rakudo::Star? ;) 20:38
leont would have done that too, but his packaging tools are very different from mst's
mst pmurias: I'm building Rakudo::Star as a cpan module
pmurias: because it's funny
jnthn likes mst++'s sense of humor :) 20:41
mst jnthn: trout.me.uk/perl/Rakudo-Star-2012.08002.tar.gz
I'm checking that builds on my machine, then I'll cpan it 20:42
gah
wait
no, I am right
I did remember to start at 000
mst unpanics
leont: mine are grumpy and minimalist ... go figure :) 20:44
20:45 Moukeddar left
leont can sympathize with that, my first Build.PL involvement started with a script that responded to the build test and install commands, because handrolling that seemed easier than taming Module::Build 20:45
mst Distar: just enough release automation people stop asking me to use dzil 20:46
moritz masak: IO::Handle is still just called IO in Rakudo 20:47
20:47 Chillance left
leont will write his own authoring tool when he's done writing his install tool. He does think he can do better than dzil though. 20:48
moritz if leaner is better, you probably can :-)
leont Well, that's certainly a factor 20:49
But the whole plugin system it uses is fundamentally broken too 20:50
moritz fwiw I decided to try Mojolicious while waiting for 'cpanm Catalyst' to finish :-)
leont The one thing make got right and everyone who does it differently is inversion of control. Make's dependencies are IoC in their own unique way, dzil's phases are no replacement for that. 20:51
20:51 ifim joined
mst leont: also, 'make -n' 20:51
leont: which I guess flows from that
leont That flows more from separating planning from execution, which is another good idea
mst right 20:52
those two things are what nothing else I've used has provided well enough to keep me from going back to make
leont It's something surprisingly difficult to do right
mst right, and for everything about make that drives me insane ... those two are addictive 20:54
masak detrain & 21:02
21:05 MayDaniel left 21:07 ifim left
pmurias there's a bug in rakudo's Test.pm 21:12
21:13 leont left
pmurias if I set the PERL6_TEST_TIMES env variable and don't call plan a variable doesn't get initialised 21:13
cognominal What is the overhead of gc in rakudo? 21:22
21:29 Liz joined, Liz is now known as Guest20758, Guest20758 is now known as lizmat 21:37 benabik left, Circlepuller__ left 21:38 Circlepuller__ joined
jnthn sleep & 21:38
21:38 benabik joined 21:39 whiteknight joined, pmurias left 21:46 pmurias joined 21:51 PacoAir left
[Coke] waves at pmichaud 21:59
22:08 crab2313 joined 22:21 cognominal left 22:28 crab2313 left 22:36 lizmat left 22:57 tokuhiro_ joined 23:14 pmurias left, araujo left, Khisanth left, BlueT_ left, phenny left, Pleiades` left, Util left, [Coke] left, BlueT_ joined, Pleiades` joined, Khisanth joined 23:15 pmurias joined, araujo joined, phenny joined, Util joined, [Coke] joined
thou rn: gist.github.com/3687899 23:22
p6eval rakudo f48867, niecza v21-1-ga8aa70b: OUTPUT«(timeout)Before .perl␤»
thou is that a known behavior? (.perl doesn't handle recursive structures) 23:23
23:26 pmurias left
sorear yes. 23:26
23:31 thou left 23:35 benabik left 23:40 araujo left 23:43 integral left 23:44 spider-mario left 23:45 araujo joined, integral joined, integral left, integral joined 23:47 benabik joined