»ö« 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!===Confusedat /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!===Confusedat /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 declaredat /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 = insteadat /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!===Confusedat /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) expectedcurrent 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 nameat /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 nameat /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 failedFAILED 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 failedFAILED 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 failedFAILED 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(' ').sayPotential 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
|