»ö« 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. |
|||
00:00
japhb left,
japhb joined
|
|||
dalek | atures: fcb972f | (Kris Shannon)++ | features.json: Fix link typo (Loop statements is in S04) |
00:02 | |
TimToady | whoops | 00:03 | |
obviously we should rename SETTING to CORE and then rename CORE to PEEL | 00:04 | ||
and then rename UNIT to SEED | 00:05 | ||
an incomplete setting could then be represented as an apple with a bite out of it... | 00:06 | ||
sorear | Let it be known that I actually like the CORE analogy better | ||
kshannon | Hmmm, where have I seen that before... | 00:07 | |
sorear | your program builds on top of the core, as so much of what we have here is built on the Earth's core | ||
-1 to using inside-out names | |||
TimToady | Completely Outside Real Execution | 00:08 | |
I was joking, by the way | |||
00:09
replore_ joined
|
|||
Woodi | hi ppls | 00:11 | |
tadzik | heuy Woodi | ||
Woodi | sorear: do you want to advertise niecza on freshmeat.net ? | 00:12 | |
I can try to keep it up to date | |||
sorear | does anyone still use that site? | 00:13 | |
(the answer is probably no) | 00:14 | ||
Woodi | today: Linux 3.2 and netbeans 7.1 :) | ||
and kde, etc | |||
00:16
tokuhirom joined
|
|||
cognominal___ | Woodi. TimToady does not want Perl to be niche. freshmeat is clearly niche diet-wise. | 00:20 | |
Woodi | no idea why such opinion... slashdot is outdated now too ? but ok, no my busines | 00:22 | |
...business ? | 00:23 | ||
cognominal___ | I should have added a smiley. | 00:24 | |
tadzik | Woodi: the latter I guess | ||
blog poast! ttjjss.wordpress.com/2012/01/06/sta...on-perl-6/ | 00:25 | ||
TimToady | tadzik++ wins the 1st Blog of 2011 Award | 00:29 | |
er, 2012 | |||
tadzik | \o/ | ||
dalek | ecza: 8ae217a | sorear++ | lib/ (5 files): Implement Mu.clone |
00:31 | |
00:31
kboga joined
|
|||
kboga | hey tadzik, cool blog post, but should s/new_post /new_paste/ ? | 00:32 | |
tadzik | ah, supposedly. Thanks, fixing | ||
kboga | oops, modulo that space, np :) | 00:33 | |
tadzik | Updated, kboga++ | ||
sorear | tadzik++ | ||
tadzik | question from #dancer which I know no answer for, why there can be no semicolons after the get() calls? Does } imply them or such? | 00:34 | |
sorear | tadzik: exactly | 00:36 | |
00:36
sorear left,
sorear joined
|
|||
Woodi | hmm, 'file' is better again: "Magic priorities have been adjusted, and magic has been added and improved." :) | 00:37 | |
kboga | tadzik++ #blog post | 00:38 | |
tadzik | sorear: does niecza have INET Sockets? | ||
kboga | -> sleep | ||
tadzik | g'night | ||
00:38
kboga left
|
|||
TimToady | tadzik: S04:218 discusses final } | 00:39 | |
sorear | tadzik: no (with the usual caveat about CLR library support) | ||
tadzik | TimToady: thanks, looking | ||
sorear | tadzik: do you think that Rakudo-compatible IO::Socket::INET would be a useful addition? | ||
in the near term | 00:40 | ||
00:40
sftp left
|
|||
tadzik | sorear: I'm thinking about any PSGI server available, and I know Perl 6 HTTP::Easy which I use on Rakudo depends on them as probably the only fancy feature. Bailador on niecza will enable me to write apps that ought to react faster than 1 second on request | 00:41 | |
00:42
sftp joined
|
|||
TimToady is tickled that the final-} rule did what tadzik++ expected without his expecting it... :) | 00:42 | ||
tadzik | I like being suprised by such little things :) | 00:43 | |
TimToady used to be surprised by little things all the time, but then they grew up... | 00:57 | ||
00:59
tokuhirom left
|
|||
sorear | niecza: sub () is rw { } | 01:20 | |
p6eval | niecza v13-130-g8ae217a: ( no output ) | ||
01:27
ashleydev left
01:35
lestrrat left
01:36
lestrrat joined
01:43
ashleydev joined
|
|||
[Coke] | colomon, sorear: gist.github.com/1476841 - 92.22% (from about an hour ago.) | 01:54 | |
looks like rakudo backslid 7 tests. WOOO! ;) | 01:55 | ||
niecza: say 18410*.95-16978 | 01:56 | ||
p6eval | niecza v13-130-g8ae217a: OUTPUT«511.5» | ||
02:01
gv left
|
|||
dalek | ecza: 7c7c034 | sorear++ | lib/ (4 files): Implement general does and but operators |
02:01 | |
[Coke] | does niecza have something fail like? | 02:04 | |
or should I just die for now? | |||
sorear | only die | ||
[Coke] | k. | 02:05 | |
sorear: where is a good place to put "method base" for Int and friends? | 02:09 | ||
(so I can avoid duplicating it.) | |||
sorear | [Coke]: which friends? | ||
role Numeric if you want Complex, Real if you don't | |||
[Coke] | Real, at least. | 02:10 | |
Real, then. Danke. | |||
shoudl I be able to do "my role Real ... { method ... }" ? | 02:12 | ||
sorear | yes | ||
"Any" is a placeholder | |||
02:13
unobe left
|
|||
sorear | (if you don't include the Any, the block tries to return Nil, which fails because Nil is not defined yet) | 02:13 | |
[Coke] | danke. | ||
b: 3.5.base(16).say | 02:15 | ||
p6eval | b 1b7dd1: OUTPUT«Method 'base' not found for invocant of class 'Rat' in main program body at line 22:/tmp/2Mh_jySPPa» | ||
02:15
leprevost joined
|
|||
[Coke] | b: 3.base(16).say | 02:15 | |
p6eval | b 1b7dd1: OUTPUT«3» | ||
[Coke] | b: 3333.base(16).say | 02:16 | |
p6eval | b 1b7dd1: OUTPUT«D05» | ||
[Coke] | Ah. I was cribbing from b, which int only anyway. | ||
dalek | ast: 447f31f | sorear++ | S14-roles/basic.t: [S14-roles/basic] Fudge for niecza, use evals/OUR in the parsing tests |
||
ast: 533b13b | sorear++ | S14-roles/anonymous.t: [S14-roles/anonymous] Fudge for niecza |
|||
ecza: 061e20a | sorear++ | lib/ (2 files): Fix "does" cloning, add class name to does-class error |
|||
ecza: 5f9938a | sorear++ | t/spectest.data: Run two new role tests |
|||
[Coke] | putting it in Int for now, since it only works on ints anyway. | 02:18 | |
sorear | niecza: say $?PERL | ||
p6eval | niecza v13-131-g7c7c034: OUTPUT«{"build-time" => 1325813284.547585, "name" => "niecza", "version" => "v13-131-g7c7c034"}» | ||
sorear | niecza: say time - $?PERL<build-time> | ||
p6eval | niecza v13-131-g7c7c034: OUTPUT«604.40679693222046» | ||
dalek | ast: 06048e3 | coke++ | S32-num/base.t: niecza fudge |
02:22 | |
02:23
hundskatt left
02:26
Lilpid left
02:27
replore_ left
02:40
packetknife joined
|
|||
ruoso | sorear: how far is niecza from having DESTROY working? | 02:44 | |
02:49
Guest95402 left
|
|||
sorear | ruoso: medium-small task, nobody's wanted it yet | 02:53 | |
ruoso | sorear: it's kind of a requisite for the feed-objectpipe thing | 02:58 | |
sorear: I could try and implement it, but I guess it requires more intimate knowledge of the CLR | 02:59 | ||
03:11
kaizhang joined
03:19
kaizhang left
03:23
bacek left
|
|||
dalek | ecza: f1d9cc6 | (Solomon Foster)++ | lib/CORE.setting: Implement rotate, core routine borrowed from Rakudo ng. |
03:31 | |
ecza: b4b14dd | (Solomon Foster)++ | t/spectest.data: Turn on S32-array/rotate.t. |
|||
ast: c56497a | (Solomon Foster)++ | S32-str/ (2 files): Unfudge tests that now work in Niecza. |
03:34 | ||
03:38
Psyche^ joined
03:39
satyavvd joined,
Patterner left,
Psyche^ is now known as Patterner
03:51
bacek joined
03:54
orafu left,
orafu joined
03:56
cooper left
03:59
cooper joined
04:00
wolfman2000 joined
04:15
replore_ joined
04:31
skids left
|
|||
dalek | ecza: 403c7c4 | (Daniel Ruoso)++ | / (3 files): First shot at implementing feeds It works! It does run in parallel! everything works as expected. But the semantics of the iterator are still a bit odd. |
04:33 | |
ruoso | use Threads; my $a <== map { print "a"; $_ }, 1..20; print "b" while (shift @($a)); $a.read.DESTROY; | ||
niecza: use Threads; my $a <== map { print "a"; $_ }, 1..20; print "b" while (shift @($a)); $a.read.DESTROY; | 04:34 | ||
p6eval | niecza v13-135-gb4b14dd: OUTPUT«Unhandled exception: Feed ops NYI at /home/p6eval/niecza/lib/CORE.setting line 1043 (die @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 2377 (infix:<<==> @ 3)  at /tmp/Tw_fU78Gps line 1 (mainline @ 2)  at /home/p6eval/niecza/lib/CORE.setting l… | ||
ruoso | I guess it takes a while to update the bot | ||
benabik | It definitely doesn't update instantaneously. | ||
sorear | niecza: say time - $*PERL<build-time> | 04:36 | |
p6eval | niecza v13-135-gb4b14dd: OUTPUT«Use of uninitialized value in numeric context at /home/p6eval/niecza/lib/CORE.setting line 902 (warn @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 204 (Any.Numeric @ 6)  at <unknown> line 0 (ExitRunloop @ 0)  at /tmp/CvL4n46FCa line 1 (mainli… | ||
sorear | last updated: in progress? | ||
niecza: say time - $?PERL<build-time> | |||
oh | |||
p6eval | niecza v13-135-gb4b14dd: OUTPUT«1689.6715090274811» | ||
sorear | niecza: say (time - $?PERL<build-time>) / 60 | 04:37 | |
p6eval | niecza v13-135-gb4b14dd: OUTPUT«28.422997951507568» | ||
04:38
stepnem left
|
|||
sorear | niecza: say time - $?PERL<build-time>) | 04:41 | |
p6eval | niecza v13-135-gb4b14dd: OUTPUT«===SORRY!===Unexpected closing bracket at /tmp/vfAn4YEb_R line 1:------> say time - $?PERL<build-time>⏏)Parse failed» | 04:42 | |
sorear | niecza: say time - $?PERL<build-time> | ||
p6eval | niecza v13-135-gb4b14dd: OUTPUT«1997.3410530090332» | ||
sorear | wait | ||
evalbot rebuild niecza | |||
p6eval | OK (started asynchronously) | ||
sorear | niecza: say time - $?PERL<build-time> | ||
p6eval | niecza v13-135-gb4b14dd: OUTPUT«2026.6928560733795» | ||
sorear | niecza: say time - $?PERL<build-time> | ||
p6eval | niecza v13-135-gb4b14dd: OUTPUT«2038.0123269557953» | ||
04:43
cognominal___ left
04:44
imarcusthis left,
cognominal joined
|
|||
ruoso | niecza: say time - $?PERL<build-time> | 04:44 | |
p6eval | niecza v13-135-gb4b14dd: OUTPUT«2165.9741249084473» | ||
ruoso | it seems to take a really long time to rebuild | 04:48 | |
sorear: the question now is how to make the iterator semantics sane... | |||
04:49
nnunley joined
|
|||
sorear | niecza: say time - $?PERL<build-time> | 04:49 | |
p6eval | niecza v13-135-gb4b14dd: OUTPUT«2440.5046210289» | ||
sorear | sounds to me like someone broke the build | ||
ruoso: what's insane about them? | |||
ruoso | if I do @b = @($a), it produces a different result then while ($c = shift @($a)) { push @b, $c } | 04:50 | |
it doesn try to consume the iterator | |||
sorear | shift @($a) won't work in general | 04:51 | |
@() is a coercion operator, which means it's allowed to create a new list | |||
which means that shift @($a) might not have any effect on $a | |||
niecza: my $a = { foo => 3, bar => 5 }; while shift @($a) -> $c { say $c } | 04:52 | ||
ruoso | Ok, so the problem seems to be that I'm not creating the list | ||
p6eval | niecza v13-135-gb4b14dd: OUTPUT«(timeout)"foo" => 3"foo" => 3"foo" => 3"foo" => 3"foo" => 3"foo" => 3"foo" => 3"foo" => 3"foo" => 3"foo" => 3"foo" => 3"foo" => 3"foo" => 3"foo" => 3"foo" => 3"foo" => 3"foo" => 3"foo" => 3"foo" => 3"foo" => 3"foo" => 3"foo" => 3"foo… | ||
ruoso | how can I create the list in the infix based on a custom iterator? | ||
sorear | niecza: use Threads; my $a <== map { print "a"; $_ }, 1..20; print "b" while (shift @($a)); $a.read.DESTROY; | ||
p6eval | niecza v13-135-gb4b14dd: OUTPUT«aaaaaaaaaaabbbbbbbbbbaaaaaaaaabbbbbbbbbb» | ||
sorear | ruoso: I couldn't understand that question. | 04:53 | |
ruoso | I am currently returning the iterator in infix <== | ||
04:53
imarcusthis joined
|
|||
sorear | What do you mean by an iterator? | 04:53 | |
ruoso | something that extends IterCursor and implements reify | 04:54 | |
Threads.pm6 line 158 | 04:55 | ||
sorear | that implementation of reify does not meet the invariants | ||
IterCursor subclasses are supposed to be immutable | |||
ruoso | I am fine if it is immutable... I used shift because it was the only thing that actually worked | 04:56 | |
(and it worked by creating a new mutable list from the iterator and modifying that list) | |||
sorear | your "iterator" defines a one-element list | 04:57 | |
ruoso | that means I didn't understand what reify does | 04:58 | |
*is supposed to do | |||
sorear | an IterCursor represents a span of a list that hasn't been expanded yet | 04:59 | |
.reify should return the items of the list, as a Parcel | |||
ruoso | all the items | ||
sorear | yes | ||
if you don't want to return all the items at once, include an IterCursor in the result | |||
niecza: my class Infinite is IterCursor { method reify() { 42, self } }; .say for @( Infinite, ) # example | 05:01 | ||
p6eval | niecza v13-135-gb4b14dd: OUTPUT«(timeout)42424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424 | ||
sorear | niecza: my class Infinite is IterCursor { has $.next; method reify() { $!next, self.clone(next => $!next + 1) } }; .say for @( Infinite.new(next => 0), ) # slightly more complicated example - note that $!next is not assigned to | 05:02 | |
p6eval | niecza v13-135-gb4b14dd: OUTPUT«(timeout)01234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787 | ||
ruoso | hah... it worked... | 05:03 | |
sorear | because iterating an ObjectPipe is destructive, it's a bit more complicated | ||
you'd have to model it on GatherIterator, which caches the result | 05:04 | ||
it's legal for .reify to be called more than once on the same iterator | |||
dalek | ecza: 8f0740b | (Daniel Ruoso)++ | / (2 files): fix ObjectPipeReadHandleIter semantics |
05:08 | |
ruoso | sorear: a feed is not supposed to cache the values | 05:09 | |
it's the assignment to a list that should | |||
I guess I need to implement infix:<<==> that generates a lazy list if it is being assigned to a list | 05:11 | ||
but... not right now... | |||
night & | |||
sorear | night | ||
TimToady: ping | 05:12 | ||
dalek | ecza: 862300b | (Daniel Ruoso)++ | lib/Threads.pm6: First attempt on map {} <== @a. |
05:21 | |
05:22
cognominal_ joined
|
|||
sorear | phenny: tell TimToady I am interested to understand some of the subtleties in term:identifier and term:name. For a start, why does only the latter try to parse role parameters? | 05:22 | |
phenny | sorear: I'll pass that on when TimToady is around. | ||
05:25
cognominal left
05:28
lutok left
05:56
Radvendii joined,
Radvendii left
06:04
radvendii joined
|
|||
radvendii | yo! | 06:04 | |
sjn | Q: prog21.dadgum.com/121.html is there an equivalent to "under" in Perl 6? | ||
hello, radvendii | 06:05 | ||
radvendii | woah. under sounds like an amazing idea! | 06:06 | |
they should totally do that in perl6 | 06:09 | ||
another idiom i was thinking about is "when" | |||
you use it like when $x==5 {} and then it gets tripped as soon as $x equals 5 | |||
with the flip flop it would be very powerful | 06:12 | ||
(im using a new chat client so i can't be certain you guys are getting these messages) | 06:15 | ||
06:17
radvendii left
06:18
kaleem joined
06:29
alim joined
06:36
alim left,
arlinius left
06:37
Chillance joined
06:38
arlinius joined
06:40
alim joined
06:45
Ingis joined
06:47
packetknife left
06:50
bacek left
06:53
leprevost left
06:56
nnunley left
|
|||
kshannon | Any nqp people awake? | 07:03 | |
07:05
leprevost joined
07:30
stepnem joined
07:47
vivian joined
07:55
lutok joined
07:58
alim left
08:00
Ingis left
08:16
vivian left
|
|||
sorear | sounds like radvendii has re-invented "computed COME FROM" | 08:21 | |
shachaf | sorear: I thoroughly hope that that's not an actual thing. | 08:26 | |
Hmm. That is an actual thing. | |||
geekosaur | it's from intercal. it's not supposed to be sane | 08:28 | |
08:29
shachaf left
08:32
shachaf joined
08:35
cognominal_ left,
cognominal_ joined
08:37
alim joined
08:47
zipf joined
08:48
zipf left
08:49
mj41 joined
08:51
snearch joined
08:59
Trashlord left
09:02
molaf joined
09:08
bacek joined
09:27
molaf left
|
|||
jnthn | mornin' | 09:28 | |
09:31
dbr_ joined
09:41
hundskatt joined
09:44
awoodland joined
09:45
snearch left
|
|||
moritz | \o | 09:49 | |
sorear | o/, jnthn, but ->sleep | 09:50 | |
09:53
morgon joined
09:55
replore_ left
09:57
Mowah joined
10:01
morgon left
|
|||
moritz | nom: sub foo(True) { say "OH HAI" }; foo(False) | 10:02 | |
p6eval | nom ae33c0: OUTPUT«OH HAI» | ||
jnthn | moritz: That's correct since False ~~ True is true. | 10:03 | |
moritz | jnthn: I know | ||
jnthn | ok. It confused me the first time I saw it :) | ||
moritz writes a test for it | 10:06 | ||
10:07
satyavvd left
|
|||
moritz | ... and needs to wait until the setting is compiled :( | 10:08 | |
jnthn | Hopefully we win a bit there once I get us using QRegex for parsing. | 10:10 | |
moritz | jnthn: probably requires a fixed nqp bootstrap. kshannon++ discovered that it was broken :/ | ||
jnthn | Yeah, I saw | 10:11 | |
Not sure how that's happened. | |||
(I mean, I know which commit, just not sure why it shoulda caused that problem.) | |||
moritz | I have a suspicion that the sha1 change somehow broke loading of modules when compiled with relative paths and loaded with absolute paths, or so | 10:12 | |
or maybe the other way round | |||
dalek | ast: 38f9286 | moritz++ | S06-multi/value-based.t: tests for RT #107348, sub f(True) could not be called s f(True) |
10:14 | |
kshannon | When it loads a module that it's compiling the SC exists but isn't properly initialized yet, but the :load sub which initializes it see's it exists and does nothing... | 10:15 | |
jnthn | oh.. | 10:17 | |
Hm. | |||
Yeah, I think I see the issue. Ugh. | 10:18 | ||
kshannon | The simplest answer I could see was to make sure that the SC handle was different. I whipped up a quick 4 line patch to add a --sc-prefix argument, but I'm not sure if we want to do that. | 10:19 | |
We only have to compile stage 1 with different handles to get past the bootstrap issue. | 10:20 | ||
jnthn | No, we don't want to do that really. | ||
But some kinda SC prefix probably could work. | 10:21 | ||
dalek | ast: 5ab3038 | moritz++ | S14-roles/bool.t: test boolification of roles (RT #107336) |
||
jnthn | We already use certain flags in module building. | ||
kshannon | I know it does. I've successfully done a full bootstrap cycle using my patch to add a prefix during stage1 | ||
dalek | kudo/nom: 11a0a93 | moritz++ | t/spectest.data: run role boolification tests |
10:22 | |
kshannon | The other option I can see is to add an extra line to all the stage1 source files (e.g. "### STAGE 1 ###") which will alter the SHA's | 10:23 | |
10:24
xinming left
10:29
xinming joined
|
|||
jnthn | kshannon: Wonder if --module-path=... could be used - we only use that in bootstrapping, afaik. | 10:29 | |
moritz | nom: say (2 + 2i) > (2 + 3i) | 10:30 | |
p6eval | nom ae33c0: OUTPUT«No applicable candidates found to dispatch to for 'Real'. Available candidates are::(\$v, Mu *%_) in method Real at src/gen/CORE.setting:654 in sub infix:<>> at src/gen/CORE.setting:2228 in sub infix:<>> at src/gen/CORE.setting:2228 in block <anon> at /tmp/j… | ||
jnthn | oh, but it only covers some of the cases. | ||
moritz | niecza: say (2 + 2i) > (2 + 3i) | ||
p6eval | niecza v13-135-gb4b14dd: OUTPUT«Unhandled exception: Complex numbers are not arithmetically ordered; use cmp if you want an arbitrary order at /tmp/r8W4Pdt0mU line 1 (mainline @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 2810 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setti… | ||
moritz | b: say (2 + 2i) > (2 + 3i) | ||
p6eval | b 1b7dd1: OUTPUT«Bool::False» | ||
moritz | nom: my Complex $x = 1 + 2i; say $x < $x | 10:31 | |
p6eval | nom ae33c0: OUTPUT«No applicable candidates found to dispatch to for 'Real'. Available candidates are::(\$v, Mu *%_) in method Real at src/gen/CORE.setting:654 in sub infix:<<> at src/gen/CORE.setting:2220 in sub infix:<<> at src/gen/CORE.setting:2220 in block <anon> at /tmp/H… | ||
10:32
fsergot joined
|
|||
fsergot | o/ :) | 10:33 | |
dalek | ast: 8ad1098 | moritz++ | S32-num/complex.t: test that Complex < Complex dies |
||
moritz | 3 tickets down, 713 to go... | 10:35 | |
kshannon | \o/ | 10:36 | |
jnthn | 90ish in testneeded ;) | ||
jnthn will try to pick off some more at the weekend. | |||
10:38
Mowah left
10:40
Mowah joined
|
|||
dalek | ast: 399972e | moritz++ | S03-operators/binding-arrays.t: re-fudge binding-arrays.t for rakudo; refactor the last test a bit |
10:44 | |
kudo/nom: 76ec4ee | moritz++ | t/spectest.data: run S03-operators/binding-arrays.t |
|||
10:45
morgon joined
10:46
morgon left
11:09
nebuchadnezzar left,
nebuchadnezzar joined
11:14
alim left
11:15
leprevost left
11:35
athomason left
|
|||
x3nU | is it possible to build 64-bit rakudo on 64-bit windows using windows sdk? | 11:39 | |
google says that many people had the same problems as me | |||
and they haven't fixed it | |||
jnthn | x3nU: Try giving Configure.pl --parrot-option=--intval="long long" | 11:41 | |
x3nU | thanks, i'll try | 11:42 | |
11:43
tokuhirom joined
|
|||
masak | 'morn'n, #perl6 | 11:44 | |
x3nU | hi masak | ||
11:45
birdwindupbird joined
|
|||
jnthn | no, masak, it's afternoon now :P | 11:47 | |
masak | dang! :P | 11:51 | |
jnthn | ;) | ||
masak | I think ravendii's idea about "when" is a worthy one -- just not in regular procedural programming. | ||
in an event-based system it might be pretty nice, for example. | 11:52 | ||
12:04
dbr__ joined,
dbr_ left
12:17
cooper left
12:18
xinming left
12:19
xinming joined
|
|||
tadzik | good morning! | 12:31 | |
masak | no, tadzik, it's definitely afternoon now :P | 12:33 | |
tadzik | oh, come on ;) | ||
masak | :P | 12:34 | |
tadzik | what a lovely morn...yeah, I know, cut it off | ||
anyone going to yapc::na maybe? | 12:35 | ||
masak | not I. don't have the budget for that this year. | ||
some day I will go there :) | |||
tadzik | I don't have it either, but ttjjss.wordpress.com/2012/01/06/sta.../#comments | 12:36 | |
masak | tadzik: same person emailed me a while ago. | 12:38 | |
tadzik | :) | ||
masak | tadzik: I wrote back "I'd love to come, but I don't have the budget for it. any chance you could help with that?" | ||
12:38
spine_ joined
|
|||
masak | reply was more or less "uuhn not at present, we'll let you know if anything comes up" | 12:38 | |
tadzik | :) | 12:39 | |
jnthn is pondering YAPC::EU and YAPC::Asia this year | 12:40 | ||
12:47
Lothbot is now known as Lothar
|
|||
x3nU | jnthn: well, your solution to my problem works fine | 12:48 | |
jnthn++ | |||
colomon | I'm probably going to yapc::na this year. | 12:59 | |
jnthn | x3nU: I'll see if I can work it into the Configure system or something. | 13:01 | |
13:04
xinming left
|
|||
x3nU | that would be cool :) | 13:04 | |
13:05
xinming joined
|
|||
tadzik | colomon: maybe you could talk about some funny stuff | 13:06 | |
colomon | tadzik: some funny stuff? | ||
dalek | ecza: 04caf92 | (Solomon Foster)++ | lib/CORE.setting: Add .pick and .roll for enums. |
||
tadzik | those guys seem to be pretty interested in what's happening in Perl 6's small world | ||
colomon | tadzik: sorry, I've just woken and I'm missing context. "those guys"? are the organizers already looking for p6 talks or something? | 13:09 | |
13:11
jaldhar left
|
|||
tadzik | colomon: it would seem so, they've already contacted me and masak | 13:11 | |
colomon | good for them! | ||
13:14
hundskatt left
|
|||
dalek | ast: 0ced986 | (Solomon Foster)++ | S (3 files): Add a couple of tests, unfudge for niecza. |
13:15 | |
[Coke] | tadzik: I /might/ be going to ::na this year. (though it's a little further away than usual.) | 13:16 | |
I'm happy to help give talks, though might need some pointers on what. ;) | 13:17 | ||
13:19
replore_ joined
13:22
am0c left
|
|||
[Coke] ponders setting up a gmail filter that automatically mutes any thread posted to by <some person> | 13:29 | ||
(sometime reading p5p is tiring.) | 13:30 | ||
13:31
Mowah left
13:33
Mowah joined
13:34
alim joined
13:38
dbr__ left
|
|||
x3nU | jnthn: one more question, now i'm trying to build 32-bit rakudo on 64-bit windows | 13:39 | |
32-bit rakudo build under 32-bit windows works fine | |||
but when i try do this under 64-bit windows | 13:40 | ||
i get following error | |||
pastebin.com/QEPJd94x | |||
i'm using windows sdk with setenv /x86 /xp /release | |||
jnthn | Oh wow, cmd.exe errors in Polish! | 13:41 | |
x3nU | i don't think that these are important | ||
but | |||
if you want i can switch | |||
to english language | |||
jnthn | No, actually I found them cute :) | ||
Anyway, I'm not quite sure what you'd need to do to make it work | 13:42 | ||
Though suggestions would be... | |||
On my machine I get to choose between the 32 or 64 bit visual studio command prompt | |||
BUT also Parrot config pulls a load of stuff from Perl 5 config. | |||
And I'm wondering if a 64-bit Perl 5 is being used for configuration flags. | 13:43 | ||
(And thus a 32-bit one would somehow make it work out.) | |||
x3nU | so you think i should try use 32-bit perl5? okay, i will try | ||
but to be honest, it's pain in ass | 13:44 | ||
jnthn | x3nU: Yeah, I always build 64-bit. | ||
My laptop has a 32-bit build if I want it. | |||
Well, only try it if you have a particular reason to want a 32-bit build ;) | |||
13:47
replore_ left
|
|||
x3nU | well, i wanted to use my 64-bit windows vps as build machine so i can build rakudo both for my laptop (which has 32-bit os) and vps itself. | 13:47 | |
dalek | ast: 78dff06 | (Solomon Foster)++ | S14-roles/mixin.t: Fudge for niecza. |
||
x3nU | it seems that i need to build 32-bit rakudo directly on my laptop | 13:48 | |
;( | |||
jnthn | Ah :( | ||
13:51
risou_awy is now known as risou
13:54
Mowah left
13:56
Mowah joined
|
|||
dalek | ast: b3e3b94 | kboga++ | / (4 files): unskip passing tests & noauto a test that passes for the wrong reasons |
14:08 | |
14:10
agentzh joined
|
|||
[Coke] | kboga++ | 14:13 | |
jnthn: I'm still getting those failures on my 32bit rakudo, btw. | |||
jnthn | [Coke]: Which failures in particular? | 14:14 | |
[Coke]: overflow.t, was it? | |||
[Coke] | I think so. | ||
gist.github.com/1476841 - rakudo's 28 failure minimum comes from that, IIRC. I can check which file is failing... | 14:15 | ||
yup, overflow. | 14:16 | ||
not that I wish rakudo to pass any more tests just now. ;) | |||
14:17
nnunley joined
|
|||
jnthn | [Coke]: er...that's a helpful attitude :/ | 14:17 | |
masak | yeah, heaven forbid Rakudo succeed at stuff right now :P | ||
14:18
Mowah left
|
|||
jnthn | overflow.t one is kinda icky - it doesn't 100% pass here on 64-bit Windows either. | 14:18 | |
Though it's better than it was before the bigint work. | 14:19 | ||
14:19
xinming left
|
|||
[Coke] | masak, jnthn: I'm just trying to get niecza's pass rate up at the moment. I'll get back to you shortly, no worries. | 14:19 | |
14:20
Mowah joined
|
|||
masak | jnthn: we gots to do something drastic to thwart these radical Nieczites! they're out of control! | 14:22 | |
quick, pass a lot of new tests! | 14:23 | ||
jnthn | masak: :P | ||
masak | I have to admit that I'm more of a bug report guy, so the process of actually getting more tests to pass is a bit hazy to me... | ||
dalek | ecza: 8fa1154 | coke++ | / (2 files): add Int.base(), run test. Cribbed from rakudo's ng branch. |
14:24 | |
masak | but I'm sure it's a completely trivial, automatable process... | ||
14:24
grondilu joined
|
|||
dalek | ast: 47d8f39 | coke++ | S (5 files): niecza (auto)unfudge |
14:24 | |
jnthn | masak: Well, tests that cover the 90+ testneeded items in RT would help ;) | ||
14:24
sayu joined
|
|||
grondilu | nom: constant x = <foo bar> | 14:25 | |
p6eval | nom 76ec4e: OUTPUT«===SORRY!===Cannot handle constant x with non-literal value yet at line 1, near "= <foo bar"» | ||
grondilu | niecza: constant x = <foo bar> | ||
p6eval | niecza v13-139-g04caf92: ( no output ) | ||
[Coke] | masak: especially if they're for things niecza already does! | ||
14:25
lateau_ joined
|
|||
grondilu | niecza: constant x = <foo bar>; x».say | 14:25 | |
p6eval | niecza v13-139-g04caf92: OUTPUT«foobar» | ||
14:28
kaleem left
14:30
xinming joined
|
|||
[Coke] thought I pushed Int.base() last night, whoops. | 14:32 | ||
14:32
grondilu left
14:35
Trashlord joined
|
|||
dalek | ast: ae09ae0 | kboga++ | / (4 files): untodo passing tests |
14:38 | |
14:39
kboga joined
|
|||
kboga | rt.perl.org/rt3/Public/Bug/Display...?id=105018 can be closed because the test passes again | 14:39 | |
14:40
tokuhirom left
|
|||
[Coke] | double checking... | 14:42 | |
14:45
proller__ left
14:46
birdwindupbird left
14:47
tokuhirom joined
|
|||
[Coke] | kboga++ #danke. | 14:52 | |
niecza: say 17099 / 18410 ; #assuming rakudo stands still from yesterday, which it isn't. | 14:54 | ||
p6eval | niecza v13-139-g04caf92: OUTPUT«0.92878870179250406» | ||
[Coke] | niecza: say 18410*.95 - 17099 ;# for colomon | 14:57 | |
p6eval | niecza v13-139-g04caf92: OUTPUT«390.5» | ||
14:58
kaleem joined
|
|||
kboga | [Coke]++ #double checking | 15:00 | |
15:10
benabik left
15:12
jerome_ left
15:14
bluescreen10 joined
15:22
SAASXSX joined,
zby_home_ left
15:26
agentzh left,
lateau_ left
15:27
kboga left
15:30
am0c joined
15:34
overrosy left
15:37
overrosy joined
15:38
Trashlord left
15:39
agentzh joined
15:44
overrosy left,
alim left
15:46
mkramer joined,
overrosy joined
15:50
jerome_ joined,
mkramer left
|
|||
TimToady | sjn: Perl 6 already has 'under' specced at perlcabal.org/syn/S06.html#Temporization, but it needs an implementation (or two :) to scope out the details | 15:50 | |
phenny | TimToady: 05:22Z <sorear> tell TimToady I am interested to understand some of the subtleties in term:identifier and term:name. For a start, why does only the latter try to parse role parameters? | ||
jnthn | term:identifier only ever parses something that should be compiled as a sub call, no? | 15:52 | |
TimToady | it appears that colon-less type names go through the identifier path as well, relying on the behavior of type objects to respond to .() (and presumably to .[] for role instantiations) | 15:53 | |
but it's probably kinda bogus | 15:54 | ||
might make more sense to fail term:identifier if we see a [ | |||
and if it's a known role name | |||
otherwise self[$ix] won't work | 15:55 | ||
jnthn | Rakudo spots the type case and mangles SomeType[...] to a call into meta-space. | ||
TimToady | or things of that ilk, if self is parsed elsewhere | ||
masak | I tend to write 'foo()[$ix]' as 'foo[$ix]' :) | ||
15:55
pochi joined
|
|||
TimToady | yes, and it should work | 15:55 | |
masak | oh phew | ||
TimToady | STD is laboring under an incomplete symbol table model, so has to guess from time to time | 15:56 | |
jnthn | *nod* | ||
TimToady | so role is being treated inconsistently | ||
jnthn | I think Rakudo gets self[$ix] just fine | ||
masak | aye, it does. | ||
TimToady | in :identifier as a type object | ||
jnthn | self() of course is treated as a sub call, and doesn't work out. | ||
TimToady | in :name as part of a name that could end in :: | ||
jnthn | (Unless you declared a sub self() { }) | 15:57 | |
masak | nom: class A { sub self { say "OH HAI" }; method foo { self() } }; A.new.foo | ||
p6eval | nom 76ec4e: OUTPUT«OH HAI» | ||
TimToady | Rat[Int,UInt]:: can conceivably be the name of the package for the instantiated role | ||
masak | \o/ | ||
TimToady | so :name is skipping over the [] to find the :: | ||
but :identifier is grabbing it, and just returning the Rat part | 15:58 | ||
(I think, just by inspection) | |||
whereas Rat::Mole[...]:: would hit :identifier instead | 15:59 | ||
15:59
cognominal_ left
|
|||
TimToady | sorear: so yes, it is an unfortunate inconsistency that needs fixing somehow | 15:59 | |
but that depends on how you actually lookup roles from the parser | 16:00 | ||
jnthn | Yes, symbol handling is the one bit of STD where I'd rather see it look more like Rakudo, rather than have Rakudo get closer to STD. ;) | ||
TimToady | one could either cause :identifier to fail over to :name, or add the role logic to :identifier | ||
or anything else that works :) | |||
16:00
overrosy left
16:01
cognominal joined
|
|||
colomon | 391 tests, eh? | 16:02 | |
moritz | nom: my @x of Int; @x[0] = 3; | 16:03 | |
16:03
overrosy joined
|
|||
p6eval | nom 76ec4e: ( no output ) | 16:03 | |
moritz | nom: my @x of Int; @x[0] = '3'; | ||
p6eval | nom 76ec4e: ( no output ) | ||
[Coke] | colomon: you can do it! ;) | 16:04 | |
though with jnthn back this is getting harder. ;) | |||
masak | oh, the excitement! | ||
jnthn | moritz: Didn't do the "of" bit yet (or any variable traits) | 16:05 | |
my Int @x; @x[0] = 3; | |||
nom: my Int @x; @x[0] = 3; | |||
p6eval | nom 76ec4e: ( no output ) | ||
jnthn | nom: my Int @x; @x[0] = '3'; | ||
p6eval | nom 76ec4e: OUTPUT«Type check failed in assignment to '$v'; expected 'Int' but got 'Str' in block <anon> at /tmp/VDlcltChhz:1 in <anon> at /tmp/VDlcltChhz:1» | ||
jnthn | Also I need to awesomize that error... :) | 16:06 | |
[Coke] | moritz++ # all the tools for finding passing tests on rakudo work great on niecza. ;) | ||
TimToady | let's hope the horses are converging rather than diverging, or [Coke]++ will be torn asunder :) | ||
[Coke] | ... I'm not divergent, I'm just drawn that way? | ||
TimToady | I assume you always root for the underdog. :) | 16:07 | |
16:09
agentzh left
|
|||
masak .oO( see you at the asymptote ) | 16:09 | ||
[Coke] | TimToady+ | ||
TimToady++, even. | |||
TimToady | oh, and radvendii's 'when' is just a watchpoint, really | ||
masak | yeah; BASIC has had that for ages :) | 16:10 | |
16:10
jerome_ left
|
|||
masak | Moose has triggers, etc. | 16:10 | |
TimToady | we could even build a switch with it: WATCH $a { when 5 {} } | ||
16:11
xinming left
|
|||
dalek | ast: 8c884c7 | (Solomon Foster)++ | S14-roles/instantiation.t: Fudge for niecza. |
16:12 | |
masak | ooh! | ||
16:13
xinming joined
|
|||
masak | TimToady: someone's bound to do a module doing that! | 16:13 | |
16:13
cognominal_ joined
|
|||
TimToady | which may be trickier for native $a than for boxed $a | 16:14 | |
masak | for some reason I keep wondering what the behaviour will be when such a WATCH block becomes re-entrant... | ||
dalek | ecza: b0b727f | (Solomon Foster)++ | t/spectest.data: Turn on two more roles test files. |
||
TimToady | well, if it's really a thrown warning (to be resumable), I expect it would depend on if there's another WATCH point up the dynamic stack | 16:15 | |
16:16
cognominal left
16:18
jerome_ joined,
xinming left
16:21
vlkv joined,
vlkv is now known as gv
16:24
tokuhirom left,
tokuhirom joined
|
|||
colomon | niecza: sub foo(5) { say "foo!"; }; foo(5) | 16:25 | |
p6eval | niecza v13-140-g8fa1154: OUTPUT«Use of uninitialized value in string context at /home/p6eval/niecza/boot/lib/CORE.setting line 806 (warn @ 2)  at /home/p6eval/niecza/boot/lib/CORE.setting line 170 (Mu.Str @ 9)  at <unknown> line 0 (ExitRunloop @ 0)  at /home/p6eval/niecza/src/ni… | ||
16:26
MayDaniel joined
|
|||
colomon | niecza: sub foo(5) { say "foo!"; }; | 16:26 | |
p6eval | niecza v13-140-g8fa1154: OUTPUT«Use of uninitialized value in string context at /home/p6eval/niecza/boot/lib/CORE.setting line 806 (warn @ 2)  at /home/p6eval/niecza/boot/lib/CORE.setting line 170 (Mu.Str @ 9)  at <unknown> line 0 (ExitRunloop @ 0)  at /home/p6eval/niecza/src/ni… | ||
masak | submit a nieczabug! | 16:28 | |
dalek | ecza: ed26908 | coke++ | t/spectest.data: run t/spec/S12-attributes/clone.t |
||
colomon | masak: already done. | ||
masak | colomon++ | ||
16:29
tokuhirom left
16:34
kaleem left
16:35
nnunley left
16:36
cognominal joined
16:38
cognominal left,
cognominal_ left
16:40
cognominal joined
16:48
xinming joined
|
|||
dalek | ast: 9955089 | moritz++ | S03-operators/increment.t: RT #74912, ++++$x |
16:49 | |
ast: 66e07a4 | moritz++ | S09-typed-arrays/arrays.t: refudge typed arrays tests for rakudo |
|||
kudo/nom: bbdc787 | moritz++ | t/spectest.data: run typed array tests |
16:50 | ||
colomon | and the race is on! ;) | 16:51 | |
tadzik | :) | ||
16:51
spine_ left
|
|||
moritz | colomon: I just wanted to supply test coverage to close a ticket :-) | 16:51 | |
16:51
kaleem joined
|
|||
jnthn | moritz++ # closing tickets | 16:53 | |
jnthn would love to get back below 700 :) | |||
dalek | ast: 182e758 | moritz++ | S12-introspection/can.t: test for RT #76584, return value of .can should stringify |
||
jnthn | moritz: I think rt.perl.org/rt3/Ticket/Display.html?id=106986 may be resolvable already | 16:54 | |
16:54
kaleem left,
kaleem joined
|
|||
moritz | jnthn: indeed it is | 16:56 | |
jnthn | moritz: done | 16:58 | |
moritz too | |||
race condition :-) | |||
TimToady | sorear, jnthn: I've pointed stevan++ at you guys to help him with his new MOP for P5 hoping that you'll encourage it from diverging needlessly from 6model | 16:59 | |
moritz | but mine took longer because I looked up the test location | ||
TimToady: encourage or discourage? | |||
last I talked to stevan, it sounded like his plans were quite different from 6model :/ | 17:00 | ||
TimToady | I had discourage, and then I thought it gave the wrong impression :) | ||
masak | TimToady: jnthn and stevan alredy seem to see eye-to-eye on many things. I heard them conspire at LPW :) | ||
moritz | nom: my $A::b = 3; say $A::b | 17:01 | |
p6eval | nom 76ec4e: OUTPUT«3» | ||
moritz | std: my $A::b | ||
masak | also, stevan++ for what I've seen so far of the p5 MOP. | ||
p6eval | std dc62e1d: OUTPUT«ok 00:01 119m» | ||
masak | it does diverge a bit from what we have in Perl 6, but it does so in, I have to say, very Perl5ish ways. | ||
TimToady | certainly, P5 will induce distortions, but I would like to see convergence where possible | ||
17:02
MayDaniel left
|
|||
masak | right. from what I've seen, stevan doesn't need to be told that explicitly. | 17:02 | |
TimToady | no, he doesn't, but accidents happen | ||
moritz | down to 706 open rakudo tickets | 17:03 | |
TimToady | and the 6model-related stuff is hard to spot from the synopsis level | ||
[Coke] | moritz++ | 17:04 | |
jnthn | moritz: yay | ||
TimToady | like the relationship between 6model and dispatchers and declarators | ||
dalek | ast: 901c278 | moritz++ | S29-context/eval.t: RT #77646, same &eval executed multiple times without outer block |
17:06 | |
moritz | rakudo: {}[-1] | 17:07 | |
p6eval | rakudo bbdc78: ( no output ) | ||
moritz | perl6: {}[-1] | ||
p6eval | niecza v13-140-g8fa1154: OUTPUT«===SORRY!===Unsupported use of [-1] subscript to access from end of array; in Perl 6 please use [*-1] at /tmp/BIzccGhJss line 1 (EOF):------> {}[-1]⏏<EOL>Parse failed» | ||
..pugs b927740, rakudo bbdc78: ( no output ) | |||
moritz | niecza: my $x = -1; say {}[$x] | 17:08 | |
p6eval | niecza v13-140-g8fa1154: OUTPUT«Any()» | ||
jnthn | TimToady: Well, 6model in a "core" sense mostly just does "as little as sanely possible" to support compile time meta-object handling. | ||
Which mostly boils down to "allow objects to be tagged with an SC somehow" | 17:09 | ||
TimToady | and stevan is also striving for minimalism, but it'd be nice if he hooked it up in a similar fashion to preserve P5/P6 interop as much as possible | ||
he's also mandating SI, which I have mixed feelings about | 17:10 | ||
jnthn | Hm | ||
Mandating in what sense? | 17:11 | ||
I'm fine with it as a default policy | |||
moritz | that means you can't easily port existing p5 code to the new model, which might be LTA | ||
jnthn | If it's impossible to implement MI though, e.g. as a pragma, then something is not flexible in a place it should be. | ||
Following 6model + mandating SI at a core level don't really go together. 6model core doesn't even know what inheritance is. :) | 17:14 | ||
jnthn puts aside $dayjob tasks for now so he can look at Perl 6 things a bit. | 17:15 | ||
dalek | ast: d8050fe | (Solomon Foster)++ | S (2 files): String-based tests for max and min. Props to Robert Burns. |
||
colomon | nom: say "alpha" min "beta" | 17:16 | |
p6eval | nom bbdc78: OUTPUT«alpha» | ||
17:17
carlin joined
|
|||
moritz | nom: say 'beta' min 'alpha' | 17:17 | |
p6eval | nom bbdc78: OUTPUT«alpha» | ||
colomon | moritz++ # good thing to test | 17:18 | |
masak | nom: say 'ɣ' min 'δ' | ||
p6eval | nom bbdc78: OUTPUT«ɣ» | ||
masak | nom: say 'gamma' min 'delta' | ||
p6eval | nom bbdc78: OUTPUT«delta» | ||
masak | :) | ||
jnthn | moritz: Do you know status of rt.perl.org/rt3/Ticket/Display.html?id=103178 ? | 17:19 | |
I think I saw a patch for it. | |||
moritz | rakudo: class A { has Int $.S = 0 }; say (A.new, A.new, A.new).min(*.S) | 17:20 | |
p6eval | rakudo bbdc78: OUTPUT«A.new(S => 0)» | ||
masak .oO( hey, that's my code! I recognize it! ) :) | 17:22 | ||
moritz | looks good | ||
jnthn | moritz: OK...will tag it test needed. | ||
17:23
Trashlord joined
|
|||
dalek | ast: 04d8876 | moritz++ | S12-class/augment-supersede.t: RT #71456 |
17:23 | |
carlin | rakudo: say callframe | 17:28 | |
p6eval | rakudo bbdc78: OUTPUT«CallFrame.new(level => Int, annotations => ("file" => "/tmp/wXy5EkGPnO", "line" => 1).hash, my => EnumMap.new("\$=POD", Array.new(), "GLOBALish", GLOBAL, "EXPORT", EXPORT, "\$?PACKAGE", GLOBAL, "\$_", Any, "\$/", Any, "\$!", Any, ))» | ||
carlin | rakudo: sub foo { callframe }; say foo | ||
p6eval | rakudo bbdc78: OUTPUT«Method 'perl' not found for invocant of class 'CallContext' in method reify at src/gen/CORE.setting:4350 in method reify at src/gen/CORE.setting:4255 in method reify at src/gen/CORE.setting:4255 in method gimme at src/gen/CORE.setting:4619 in method eager… | ||
17:28
mj41 left
|
|||
masak submits rakudobug | 17:29 | ||
17:29
stevan_ joined
|
|||
stevan_ | morning gents | 17:29 | |
masak | stevan_! \o/ | ||
geekosaur | (where? :p) | ||
stevan_ | so to clarify the "SI mandate" bit | 17:30 | |
jnthn | o/ stevan_ | ||
masak was just going to link stevan_ to the backlog, but concludes that that won't be necessary | |||
stevan_ | we decided (and I am still not 100% sold on this) that SI + roles was good enough | ||
masak: nope, TimToady already did :) | |||
masak | stevan_: SI + roles is plenty fine, except for backwards compat. | 17:31 | |
stevan_ | right | ||
masak | and for people who like pain for some reason. | ||
moritz | ... and except when it isn't :-) | ||
stevan_ | so at this stage we were planning on old style p5 classes | ||
as having a different metaclass then the new style classes | |||
and that metaclass would be MI friendly | |||
masak | right. | ||
stevan_ | so that we can keep the backcompat | ||
but the goal is actually less of "lets slap a mop onto p5" | 17:32 | ||
cause we did that with Moose and it is really ugly in a lot of ways | |||
the goal morphed into "lets build a new object system" | |||
and make sure the mop that new system is built on will handle compat with the old system | |||
PerlJam | stevan_: greetings! Good to see you here :) | 17:33 | |
stevan_ | I believe that doy (jesse luehrs, my co-conspirator on the p5-mop) has already a working sketch of the "package style class" metaclass | 17:34 | |
PerlJam: halloo | |||
dalek | kudo/nom: b05bbda | jnthn++ | src/Perl6/Actions.pm: Detect duplicate use of names for named parameters. Fixes #102362. |
||
TimToady | the P5 backcompat one will have to differ from P6's, of course, since P6 avoids packages assiduously for storing methods | 17:36 | |
stevan_ | yes | ||
the new p5 one also avoids packages :) | |||
jnthn | stevan_: (SI answer) sounds sane. | 17:37 | |
stevan_ | I suspect a p6 metaclass will actually be quite easy | ||
TimToady | I was just wondering how much trouble jnthn is seeing with supporting MI in the default P6 classes | ||
stevan_ | MI is annoying for us mostly in regards to metaclass compat | ||
the code in Moose to handle that is horrendous | |||
TimToady | we certainly don't emphasize MI in P6, but it's currently allowed | ||
17:37
cognominal left
|
|||
stevan_ | whereas the code in p5-mop is like ?. 3 lines | 17:37 | |
TimToady: part of me wants to keep it in, cause I dont want to take anything away | 17:38 | ||
but the other part of me reminds me that I havent used MI since Moose got roles and I know many of the Moose people who have similar experiences | |||
TimToady | this all seems wrapped up in the mystery of "the dispatcher", which is something we've tried to demystify in P6 | ||
17:39
cognominal joined
|
|||
stevan_ | yeah | 17:39 | |
PerlJam | As long as nothing precludes MI via some means, it should be fine, right? | ||
masak | +1 | ||
stevan_ | PerlJam: yeah, it can easily be added on and supported | ||
jnthn | TimToady: Mostly, MI just reduces optimization possibilities. | ||
TimToady | as long as you can switch dispatchers | ||
masak | I wouldn't protest if people have to predeclare their use of MI. | ||
jnthn | TimToady: In the current design it's relatively low. | ||
PerlJam | masak: good idea | ||
stevan_ | masak: sort of like having to wear a large red A on their shirt | 17:40 | |
jnthn | masak: Using traits is declarative P | ||
masak | use MONKEY_INHERITANCE; | ||
jnthn | *:P | ||
TimToady | well, they do, in the sense that all classes are predeclared :) | ||
jnthn | TimToady: Right | ||
masak | stevan_: yes, exactly like that. | ||
TimToady | so we already know at CHECK time whether any classes have asked for MI | ||
jnthn | TimToady: The issue is more about what subclasses might come to exist in the future. | ||
dalek | ast: e551ff0 | moritz++ | S32-list/minmax.t: RT #103178 |
||
TimToady | and we can certainly mandate that any such declaration must be made before CHECK time | 17:41 | |
much as we require people to open classes by CHECK time | |||
but yeah, roles have largely removed the case for MI | 17:42 | ||
jnthn | TimToady: From an implementation point of view, I currently don't feel strongly that making SI the default over MI, and needing a pragma for MI, would give me much (other than one more pragma to implement) :) | ||
17:42
cognominal left,
cognominal joined
|
|||
colomon | moritz++ | 17:42 | |
TimToady | I'm not sure how to take that | ||
jnthn | TimToady: From my view, it's mostly a language design issue. I can go either way. | ||
TimToady | well, but stevan has to do some language design here, so I thought we might have some prior art/experiment | 17:43 | |
jnthn | TimToady: The point I'm trying to make is that just because in a given lexical scope there's no use of MI, does not mean that code can be compiled assuming that no subclass of it in the future will not be MI. | ||
stevan_ | I love prior art :) | ||
moritz | rakudo: enum A::B <c d e>; constant B = A::B; say B::c | 17:44 | |
p6eval | rakudo bbdc78: OUTPUT«A::B::c» | ||
TimToady | well, the absence of MONKEY_INHERITANCE would pessimize it, I suppose | ||
er, that didn't come out right | 17:45 | ||
.oO(darn flu) |
|||
masak | right, but pragmas work in lexical scopes, and inheritance works... along the class hierarchy. | 17:46 | |
TimToady | we can allow the optimizer to assume SI at CHECK time in the absence of MONKEY_INHERITANCE or other predecl | ||
most classes come in via 'use' at compile time | |||
moritz | yes, but at the time they were compiled, nobody knew that they might be reused for MI | ||
jnthn | TimToady: class A { ... }; { use MONKEY_INHERITANCE; class A { } }; class B { }; class C is A is B } | 17:47 | |
TimToady | and if you really want to inherit MI from something optimized for SI, you should probably be delegating instead | ||
masak | I'm not sure the complexity of such a pragma would be worth it. | ||
if I get jnthn right, he doesn't consider it to be such a big deal in the first place. | 17:48 | ||
jnthn | masak: Yes, that's the point I'm trying to make. And not doing very well at. :) | ||
TimToady | masak: if I was sure about it, we wouldn't be having this discussion :) | ||
moritz | nom: use Test; enum A::B <c d e>; constant B = A::B; is B::c.gist, 'A::B::c' | 17:49 | |
p6eval | nom bbdc78: OUTPUT«ok 1 - » | ||
masak | TimToady: I was trying to be polite, rather than saying "that's too complicated!" :) | ||
moritz | nom: use Test; enum A::B <c d e>; constant B = A::B; ok B::c === A::B::c, 'A::B::c' | ||
p6eval | nom bbdc78: OUTPUT«ok 1 - A::B::c» | ||
PerlJam | What do we lose by allowing MI? | 17:50 | |
jnthn | If we really want to get ourselves Java-style attribute lookup speed, we "just" need a JIT compiler that knows to optimize for the SI cases and roll back the optimization of an MI subclass appears in the future. | ||
*if | |||
Just as modern JVMs do virtual => non-virtual re-writing and may have to invalidate it if other classes are loaded later on. | |||
TimToady | well, we're also trying to be portable to most VMs... | 17:51 | |
dalek | ast: b35d90a | moritz++ | S04-declarations/constant.t: RT #66650, constant declarations that alias enums |
||
TimToady | what might be practical on a JVM might or might not be practical on the CLR | ||
or on a JS engine | |||
or LLVM... | 17:52 | ||
jnthn | TimToady: Even if we forbid SI in Perl 6, we'll still need to support it via a pragma, or support what's needed for somebody to write one. | 17:53 | |
TimToady | of course, we might just end up with "Don't use MI if you want portability." enforced by the community | ||
masak | aye! | ||
it's one or the other :) | |||
PerlJam hopes jnthn meant MI :) | |||
jnthn | er :) | ||
MI :) | |||
masak | no, let's forbid SI. :) see how people like that. | 17:54 | |
all classes must henceforth have at least two parents. | |||
PerlJam | smalltalk doesn't do MI does it? Maybe there's a lesson there :) | ||
[Coke] | Sounds a little Conservative. | 17:55 | |
jnthn | TimToady: That's a little strong for my liking. I designed 6model to try and be able to cope with the bits of OOP that haven't been invented yet, as well as the various forms that have. And my goal was for portable meta-programming. | ||
masak | PerlJam: no-one uses Smalltalk? :P | ||
[Coke] | masak: I think, as a sixer, you probably don't want to go down that rabbit hole. | ||
jnthn | TimToady: "Don't use MI if you want portability and performance to go with it" could well be the csae, though. | ||
colomon | honestly, with roles available, I'm never sure I want inheritance at all, SI or MI. | ||
masak | [Coke]: I know, I feel bad about it already... :/ | ||
jnthn | *case | ||
17:56
xinming left
|
|||
masak | [Coke]: in fact, I was once invited to a Smalltalk workshop to discuss Perl 6 + roles with someone I met via Twitter. | 17:56 | |
PerlJam | jnthn: so, we'd explicit say that MI is unportable as part of the spec? :) | ||
jnthn | PerlJam: That wasn't what I was trying to argue. | 17:57 | |
PerlJam: I was trying to argue against that. :) | |||
PerlJam | jnthn: I understood you, I was just pushing in the other direction to see what happened :) | ||
jnthn | :P | ||
TimToady | "efficient unportability" is likely, so I'm in violent agreement with jnthn++ | ||
jnthn | moritz++ # down to 700 :) | 17:58 | |
TimToady | er, "efficient portability" is unlikely | ||
stevan_ | colomon: careful, overuse of roles is just as bad as overuse of mi | ||
colomon | PerlJam: "I demand you shoot me now!" | ||
masak | "portable languages lead to portable performance" | ||
TimToady | let's all do everything with delegation now :) | ||
stevan_ | TimToady: ++ | ||
jnthn | Well, delegation implies composition, and roles are just a form of composition, so in a handwavy sense delegation kinda is what is going on. :) | 17:59 | |
stevan_ | lol | ||
PerlJam | stevan_: still going to outlaw MI in p5-mop for now? | ||
(by default I mean) | 18:00 | ||
stevan_ | well, if I hurry up, then you can just say "hey, perl5 doesnt do MI, why do we need to" | ||
PerlJam: outlaw is a strong word | |||
but yeah | |||
right now, we are kind of leaning toward something like this: | |||
jnthn | If you outlaw MI, only outlaws will use MI :) | ||
masak | stevan_: both Rakudo and Niecza do MI. | ||
jnthn++ # :) | |||
stevan_ | - default set of metaobjects are unopinionated | ||
sorry s/default/core/ | |||
PerlJam | jnthn: makes them easier to identify when we round them up for jail. | ||
stevan_ | the default set will have some opinions attached to it | 18:01 | |
masak: and our vm (perl5) will suport it too :) | |||
masak | :) | ||
stevan_ | so PerlJam in theory, we might provide a MI metaclass as one of the core addons | 18:02 | |
the best example of this technique is that | |||
PerlJam | It all sounds incredibly sane to me. | ||
stevan_ | $::Attribute (meaning the global attrbute metaclass) | ||
does not do accessor gen | |||
but we might ship a subclass that does | |||
and that subclass might end up being the default | |||
but we shit the un-opinionated $::Attribute in case you want to build on that | 18:03 | ||
so the same could easily be done for MI | |||
TimToady | actually, I'm not so much worried about p5-mop vs MI as I am about the ramifications about how public/private attributes seem to be set up, now that I glance back at stevan's braindump | ||
jnthn | stevan_: you...what it? :) | ||
stevan_ | TimToady: in what way? | ||
colomon | niecza: my $x = 0; ++++$x; say $x | 18:04 | |
p6eval | niecza v13-140-g8fa1154: OUTPUT«2» | ||
TimToady | I probably need to think about it more when I'm not influenzed, but something bothered me about it | ||
jnthn | TimToady: In Perl 6 there really are only private attributes, though? | ||
18:04
kaare_ joined
|
|||
stevan_ | Indian Food++ # even better on the second day | 18:04 | |
jnthn: thats what we have too | 18:05 | ||
jnthn | TimToady: Public attributes are really just private attribute + a generated accessor method. | ||
stevan_ | thats what we have too (minus the generated accessor bits (for now)) | ||
TimToady | oh, I remember, we don't say that the attributes are bound into the lexical scope | 18:06 | |
has variables are known to the lexical scope as names, like our vars | 18:07 | ||
but the access does not presume that it works via the lexpad | |||
stevan_ | and the instance-ness is stored like inside-outs? | ||
TimToady | no, that's getting into the representational metastuff that jnthn++ has been working out | 18:08 | |
stevan_ | yeah, I am leaning on the lexpad, partly out of convenience and partly out of a desire to not add to much stuff (less to bikeshed) | ||
TimToady | rakudo has native types now, for instance | ||
stevan_ | ah, types, how I wish I could have those too | ||
masak | yes, the attributes lookup seems to be the biggest conceptual difference between stevan_'s MOP and Perl 6. | 18:09 | |
TimToady | the point being that the representation is also meta, so the language is agnostic to inside-out vs outside-in | ||
er... | |||
jnthn | The way 6model lays out attribute storage in P6opaque in the single inheritance case is mostly just how Java or C# do it. | ||
TimToady | and also allows you to set up storage such that it doesn't depend on hash (non)collisions | ||
18:10
kaare__ joined,
kaare_ left
|
|||
TimToady | stevan_: also the my $orig = super; thing feels like a hack that will prevent future flexibility, but it's only a vague feeling | 18:12 | |
PerlJam | stevan_: has anyone done any timing benchmarks with p5-mop vs Moo vs Moose etc ? | ||
TimToady | I guess it feels that way because it's then assuming a hash repr subsequently | 18:13 | |
and I've gotten religion on representational polymorphism | |||
sorear | good * #perl6 | ||
stevan_ | sorry, client call, bbias | ||
TimToady | sorear: you'll want to backlog from 8:59 PST or so | 18:14 | |
18:15
wolfman2000 left
|
|||
colomon | \o, sorear | 18:16 | |
masak | sorear! \o/ | ||
PerlJam | I keep thinking things like "It would be nice if p5-mop had X" but then I realize that p5 doesn't have the Perl 6 feature that would make X nice or useful. | 18:17 | |
TimToady | stevan_: that is, having declared 'has $x' in your class, you should be able to initialize $x transparently within the class without commiting to either representation or parenthood; that's all hidden in P6 because we have a private attribute syntax distinguished from public attribute syntax | ||
PerlJam: I don't see anything preventing 'has $x' from declaring a real private attribute that the rest of the class knows about | 18:18 | ||
masak idly wonders why Perl 5 doesn't have T | |||
TimToady | p5 is inconsistent on the lc/uc doctrine of backslashes | 18:19 | |
masak | clearly. | ||
TimToady | but if \T isn't taken, it could be added | ||
masak | now I have to write [^\t] instead... | ||
TimToady: I don't see it in perldoc perlre | |||
TimToady | btw, in case it's not clear, I thoroughly approve of the direction stevan++ is taking p5, even if the details are around the devil :) | 18:25 | |
TimToady just wishes his brane wouldn't keep melting for various reasons... | 18:26 | ||
18:27
Trashlord left
|
|||
sorear | EOBACKLOG | 18:28 | |
I ... haven't really been watching p5-mop closely. Should've I been? | |||
PerlJam | stevan_: the other day when I mentioned the class Foo { has $x; my $x; ... } problem for p5-mop and how it wasn't a problem for p6, you said something like "twigils go too far". How strong is that feeling? It seems to me they have quite a few benefits if you can implement them for p5-mop. | ||
masak | sorear: I, for one, am excited by stevan_'s plans with it. | 18:29 | |
sorear | oh, looks like I forgot to push my Foo[4] change | ||
masak | PerlJam: I asked stevan_ something similar in London. | ||
stevan_ | ok, backloggin | 18:30 | |
masak | PerlJam: he said about twigils having their merit, but he wanted to avoid that battle if he could :) | ||
sorear | o/ stevan_ | ||
dalek | ecza: 7f4a2be | sorear++ | src/ (2 files): Try to support Foo[4] syntax for roles |
||
sorear | TimToady: I'd like to know what you think of the STD change in that commit. | ||
stevan_ | TimToady: re: my $orig = super; I agree here, I am looking into audrey's advice | ||
sorear | TimToady: (It's deliberately a minimal tweak, not an overhaul; I agree with jnthn++ that more symboly stuff is probably warranted) | 18:31 | |
TimToady | note that use of the ! twigil in $!foo is independent of whether 'has $x' declares an attribute | ||
[Coke] wonders if there's a mailing list for p5-mop. (don't see one.) | |||
stevan_ | PerlJam: no, no benchmarking, but it is apples to oranges to grapefruits to $some_weird_fruit_which_is_vagualy_mstish | ||
TimToady | in fact, we supposedly support the 'has $x' syntax in p6 as well | ||
stevan_ | [Coke]: nope, there is an IRC channel, but no activity | ||
PerlJam | TimToady: aye, but distinguishing a lexical $x from an attribute $x isn't a problem. | ||
sorear | random note: doy was who introduced me to Perl in the first place | 18:32 | |
masak | nom: class C { has $x = 42; method foo { say $x } }; C.new.foo | ||
p6eval | nom b05bbd: OUTPUT«42» | 18:33 | |
TimToady | stevan_: it's not the super I was complaining about (though I agree with au++), but the subsequent use to assume a particular repr | ||
masak | doy++ | ||
TimToady | doy++ indeed | ||
stevan_ | TimToady: yeah, we are have tosed around the idea of different reprs and decided (mostly) that you people are insane :) | 18:34 | |
masak | we could've told you that! :P | 18:35 | |
TimToady | it's also insane not to do it :P | ||
PerlJam | stevan_: without a type system, different reprs for p5 doesn't seem a big enough win. | ||
(IMHO of course) | |||
masak | the question of our sanity is orthogonal to the question of reprs :) | ||
18:35
cognominal_ joined
|
|||
TimToady | PerlJam: classes *are* a type system | 18:36 | |
stevan_ | masak: it is a question of sanity in relation to reprs | ||
not sanity overall | |||
TimToady: in theory, what you say is possible | |||
masak | stevan_: right, and as such, the context (p5/p6) matters as well, so even "you are insane (wrt reprs)" is too broad a generalization. | ||
stevan_ | because has $x = 10; | ||
TimToady | I think in theory what I say is easy | ||
stevan_ | basically "thunks" the 10 and nothing happens until instance creation | 18:37 | |
masak | like in Perl 6. | ||
stevan_ | yes sir | ||
TimToady | $x should Just Know how to set itself, not rely on the hash mechanism | ||
masak | but it needs to thunk it with self in there, somehow. | ||
stevan_ | $x can return its expected initial value when asked to | ||
PerlJam | TimToady: perhaps I mean "without a more pervasive type system" :) | 18:38 | |
stevan_ | (currntly) the mop::internal::instance::* functions handle actually stuffing it into an instnace | ||
sorear | stevan_: reprs ~= instance metaclasses | ||
stevan_ | yeah kinda | ||
but honestly,.. no one used the instance metaclass in Moose | |||
no one cared | |||
18:39
cognominal left
|
|||
sorear | I was trying to, before I tripped into this black hole :D | 18:39 | |
stevan_ | all uses were esoteric at best, and workarounds at worst | ||
sorear: haha | |||
sorear | PerlJam: seems to me that modifying the P5 grammar is something you should avoid if at all possible | 18:41 | |
stevan_ | sorear: actually with Devel::CallParser its not that bad | ||
PerlJam | sorear: sure, except that it already needs mods to support class, has, and method :) | ||
stevan_ | quite sane actually | ||
PerlJam: perhaps someday, but no reason it cant use the keyword feature for the forseeable future | 18:42 | ||
TimToady | stevan_: I think I am misunderstanding what your '$orig->{'z'} = $z;' is trying to do; is that not trying to set a private attribute in the super's hash? Why? | ||
stevan_ | where the forseeable future is the next year or two | ||
TimToady: ahh I see the confusion | 18:43 | ||
the supermethod there is pack which takes the instance and packs it into a hashref | |||
for maybe say json serialization or something | |||
TimToady | ah, okay | ||
nevermind then :) | |||
stevan_ | :) | ||
probably a confusing example | 18:44 | ||
especially given the hashref instance history | |||
TimToady | nextsame is less confusing to me :) | ||
stevan_ | yeah | ||
it is on my todo list for this weekend to grok that stuff | |||
TimToady | conceptually, nextsame is just a 'next' on the loop in the dispatcher; the presence of arguments complicates things of course | 18:45 | |
stevan_ | right | ||
TimToady | so we use nextsame for any of our dispatchers | ||
stevan_ | we actually had a full p6 style dispatcher in place at one point | ||
but we needed to actually be able to dispatch in a p5 world, so we are using a hack with Anon::Package | 18:46 | ||
and flattening out the class into that and blessing the instance into it | |||
tis an ugly hack for the prototype | |||
until I can persuade a core hacker to do my evil bidding that is | |||
TimToady | heh | ||
well, we took the liberty of kicking all the normal classes out of packages in p6 :) | |||
though we can support it if we need to, since we're insane :) | 18:47 | ||
stevan_ | yeah, I dont care to support it, they can use old style classes easily enough :) | ||
TimToady | I'd say Anon::Package is a...reasonable...hack for P5, at least until people start using it in a bug-compatible fashion, and then you're a little stuck for future dev | 18:48 | |
stevan_ | yeah, I think we need a better option | 18:49 | |
but right now, dispatching is so tightly tied to bless and that is tied to packages and, ? well I really shouldnt have to tell you this, you wrote it :) | |||
TimToady | our bless is polymorphic on representation, is what it comes down to | 18:50 | |
stevan_ | yeah | ||
TimToady | you could have a bless method, and retire the bless function | ||
and then you could do something similar | |||
in p6 it's class.bless(repr, args) | 18:51 | ||
stevan_ | yup, we went down that path and backpeddled until we can sort out dispsatching | ||
but it was something we discussed with some of the core guys at LPW | |||
TimToady | but P5opaque could be the mandatory default to begin with | ||
stevan_ | yup | ||
sorear | hehe. doy just contacted me and told me to look at p5-mop for stevan | 18:53 | |
18:53
doy joined
|
|||
stevan_ | sorear: yeah, cause I just told him "hey I am talking to the p6 guys" and he said "I should talk to sorear" and I said "sure" | 18:54 | |
;) | |||
TimToady | anyway, be assured that we don't think this is offtopic here, since at some point we'll be writing an implementation of P5 as a legacy dialect of P6. :) | 18:55 | |
stevan_ | cool | ||
I will keep this window open then | |||
TimToady | which we recognize as Truly Insane... | ||
stevan_ | and if I recall from my pugs days, not much is off topic here :) | ||
doy | i suppose i'll keep this window open too then | ||
TimToady | it's a vagrancy law, to be enforced only for people who intend to be irritating :) | 18:56 | |
we do get the occasional troll that will not respond to hugging | |||
stevan_ | LOL | 18:57 | |
TimToady | so feel free to bounce any other questions you have off us, and feel free to ignore our answers :) | 18:58 | |
sorear | o/ doy | ||
doy | \o | ||
TimToady | \o/ | ||
dalek | ast: b6d038c | jnthn++ | S12-attributes/clone.t: Unfudge clone tests for Rakudo. |
18:59 | |
kudo/nom: 43b615d | jnthn++ | src/core/Attribute.pm: Allow introspection of package an attribute was declared in. |
|||
kudo/nom: b86c667 | jnthn++ | src/core/Mu.pm: Fix issues in .clone(); now all of clone.t passes again. |
|||
masak | doy! \o/ | ||
doy: I don't know you, but I already like you -- you gave us sorear :D | |||
doy | haha | ||
i do what i can | 19:00 | ||
(: | |||
masak | let us know if you find any more sorears. | ||
we need them. | |||
TimToady | doy++ just found that sorear++ was insane, and sent em off to the asylum :) | 19:01 | |
doy | i imagine sorears are pretty rare | ||
i just got lucky | |||
(: | |||
x3nU | i have made binary builds of rakudo and rakudo for win32 and win64 for people who hate compiling | 19:03 | |
there's no installer, juz zip file | |||
ftp://ftp.perl.info.pl/pub/ | |||
maybe if new rakudo star will be released i could make installer | |||
geekosaur | "perl6: an insane world demands an insane language" | 19:04 | |
moritz | x3nU: that would be awesome | ||
PerlJam | masak: we need some more masaks, pmichauds, jnthns, sorears, moritzs, etc. too :) | 19:05 | |
x3nU | s/juz/just | ||
/ | |||
jnthn | x3nU: It will be. There's a couple of regex engine issues I really want to deal with first, plus Zavolaj is missing one feature to get the MiniDBI running again. Beyond that, I'll be happy enough to go for an R* release. | ||
stevan_ | PerlJam: so you feel they have neough PerlJams then? | ||
PerlJam | yeah, I don't do much around here. | 19:06 | |
If someone could find some PerlJams with more free time, that could help | 19:07 | ||
19:09
benabik joined
19:10
arlinius left
|
|||
PerlJam | jnthn: What feature is Zavolaj missing? | 19:11 | |
jnthn | PerlJam: Returning arrays of strings. | 19:12 | |
19:15
wolfman2000 joined
|
|||
[Coke] | doy: can I ask what the origin of your nick is? | 19:20 | |
colomon | niecza: say Str.can('split') | 19:22 | |
p6eval | niecza v13-143-g7f4a2be: OUTPUT«Bool::True» | 19:23 | |
moritz | iirc the spec says .can should return an iterator or some such | ||
jnthn | shop & | 19:24 | |
masak | moritz: an iterator, of all things? not a lazy list? | ||
doy | [Coke]: don't actually remember, i've been using it since i was around 7 | 19:25 | |
moritz | .oO( try grepping the specs for 'can' ) |
||
colomon | nom: say Str.can('split') | 19:26 | |
p6eval | nom b05bbd: OUTPUT«split split» | ||
[Coke] | doy: I ask because my dad used to use it to mean, "duh". (and I never heard anyone else use it that way ever.) | ||
also, welcome to #perl6. ;) | |||
19:27
demetro joined
19:28
kaare__ left
|
|||
TimToady | these days .can should probably return the proto, since it knows how to iterate any multis | 19:30 | |
19:32
ahmad joined
|
|||
ahmad | what is the status of perl6? is it production ready? | 19:33 | |
tadzik | what is "production ready"? | ||
stevan_ | is anything truly production ready? | ||
ahmad | tadzik: yes, perl5 for example | 19:34 | |
stevan_: yes php5 for example | |||
:)) | |||
stevan_ | php4 wasnt even production ready :) | ||
geekosaur | perl6 will never be production ready. it's a spec, not an implementation. | 19:35 | |
ahmad | finally i got an answer :) | ||
mikemol | ahmad: Better phrased, your question might have been "when will pugs, rakudo or niecza be production-ready?" | 19:36 | |
ahmad | mikemol: true, sorry i was not accurate, what about the answer to that well phrased question? | ||
mikemol | Depending on your purpose, both niecza and rakudo are fine for a number of uses. I don't know about pugs. | 19:37 | |
I forget whose, but someone in here has their blog software written in Perl 6. | 19:38 | ||
[Coke] | masak. | ||
mikemol | And here's a list of working Perl 6 snippets. It's not definitive of the state of p6 implementations, but it demonstrates some of what it currently can do: rosettacode.org/wiki/Category:Perl_6 | 19:39 | |
dalek | ast: d3006fd | (Solomon Foster)++ | S (4 files): Additional fudging for niecza. |
19:40 | |
ahmad | mikemol: many thanks that looks great. what about performance, I heard it is still slow compared to other languages, it that still true? | ||
mikemol | TBH, that's a terribly vague statement. Any language may be faster or slower than some other language, depending on the metric you decide to throw at it. It really depends on your application. | 19:41 | |
masak | ahmad: performance is the current focus of Rakudo. it's not fast yet, but it's faster at some things than a year ago, and we're building an optimizer which will make things faster yet. | 19:42 | |
mikemol | However, it's my understanding that niecza is faster than rakudo at executing p6 code. I don't know how either compares to, say, php5 on similar tasks. | ||
masak | ahmad: Perl 6 has the advantage over Perl 5 in that you can give variables types, and thus help the optimizer along. | ||
mikemol | ahmad: And here you see the internal competition that's really driving the two forward. :) | 19:43 | |
ahmad | mikemol: mmmm.. agreed, i am working on a website that streams live content from external sources, it also makes heavy use of mysql database. I already written one in python but it is eating all my server memory :( | ||
stevan_ | ahmad: what is wrong with perl5? | 19:44 | |
if you need performance, perl5 has it | |||
it also has a rock solid mysql driver and all of CPAN to pull from | |||
ahmad | Python looked more elegant and maintainable to me at that time.. | 19:45 | |
stevan_ | yeah, that is a myth | ||
good code is maintainable, the language is irrelevant (cept maybe brainf*ck and intercal) | 19:46 | ||
and elegance is subjective | |||
mikemol | Hey, whaddaya got against INTERCAL? ;P | ||
Say please. | |||
stevan_ | mikemol: nothing, but last I checked the mysql driver code for it was a mess ;) | ||
TimToady | it needs more representation on RC | ||
mikemol | TimToady++ | 19:47 | |
TimToady | however, at the moment I'm working on entry #400 for Perl 6, so I'll have to put that off :) | ||
mikemol | If I had a hundred or so RC tasks filled with INTERCAL examples, I could compile into a book and sell it on ThinkGeek... | ||
*working* INTERCAL examples. :) | 19:48 | ||
TimToady | I hear INTERCAL is just a dialect of Perl 6... | ||
mikemol | That would be an epic fundraiser sale, too, particularly if done on April 1st. | ||
geekosaur suddenly tempted to look for project euler solutions in intercal | |||
mikemol | I hear everything is just a dialect of Perl 6... | ||
ahmad | intercal !!? | ||
dalek | ecza: f7281f0 | (Solomon Foster)++ | lib/CORE.setting: Add Any.min, Any.max, and Any.minmax. |
19:49 | |
mikemol | ahmad: Perl 6 spec pretty much allows for complete rewriting of syntax, if I read it correctly. | ||
masak | mikemol: now I'm actually tempted to contribute a bunch of INTERCAL programs to RC :) | ||
ahmad | mikemol: interesting! isn't that both good and bad?! | 19:50 | |
mikemol | ahmad: Sure. So is any programming tool that enables flexibility. | ||
TimToady | we aren't trying to recreate Java... | ||
or maybe Java is only one of the things we're trying to recreate | 19:51 | ||
mikemol | masak: I *think* esr updated the INTERCAL implementation so it'd work again. If I saw INTERCAL examples on RC, I'd be tempted to test them. | ||
ahmad | mikemol: ah.. following the timtowtdi rules.. | ||
mikemol | Seems weird to see that spelled that way, now. | ||
TimToady doesn't rule, he just reigns... | 19:52 | ||
well, sometimes he rules... | |||
stevan_ | rules with an iron colon | ||
wait, that came out wrong | |||
TimToady | takes one sometimes | ||
mikemol | I was going to make a measurement pun, but I don't think I want to, now. | ||
TimToady | hugme: hug stevan_ and mikemol | 19:53 | |
hugme hugs stevan_ and mikemol | |||
ahmad | extreme flexebility is scary.. I like languages that forces you to follow some rules.. i do not say i am 100% with python or java but .. eh my language does not help here.. | 19:54 | |
TimToady | those languages are also subsets of Perl 6 :) | ||
ahmad | TimToady: huh?! | 19:55 | |
mikemol | ahmad: Just because you have a tool doesn't mean you need to use it when it's not the right tool for the job. | ||
TimToady | just say "use NoFunAtAll;" and there you are | ||
stevan_ | :D | ||
ahmad | TimToady: LOOOOOOL | ||
[Coke] | niecza: no Fun; | ||
p6eval | niecza v13-143-g7f4a2be: OUTPUT«===SORRY!===Action method statement_control:no not yet implemented at /tmp/4Gv7ikggYh line 1:------> no Fun⏏;Unhandled exception: Unable to resolve method statement_level in class Any at /home/p6eval/niecza/src/… | ||
TimToady | self-declared discipline if fine | ||
*is fine | |||
mikemol | Where's the p6 advent post about analyzing input? IIRC, it used syntax rewriting to do the analysis. | 19:56 | |
ahmad | ok it is true.. but in large companies it is so hard to maintane it.. | ||
19:56
sayu left
|
|||
ahmad | still perl is fun .. i admit it... | 19:56 | |
tadzik | tell Booking that | ||
19:56
proller joined
|
|||
mikemol | Hm. I wonder what mechanisms are in p6 that could be used to enforce coding conventions. | 19:57 | |
TimToady | "use MyCompany'sNoFunStandard;" | ||
mikemol | There you go. :) | ||
tadzik | Perl6::Critic? | ||
dalek | ast: e60e835 | moritz++ | S12-class/mro.t: test for RT #77274, class inherits from parent and then grandparent |
||
ahmad | Oh people you find solutions so fast! | ||
TimToady | specs are easy to write, if you don't have to implement 'em... | 19:58 | |
ahmad | true.. | ||
TimToady | but in this case, it's already specced at S01:158 | 19:59 | |
moritz | down to 695 open tickets | ||
mikemol | perl6advent.wordpress.com/2011/12/1...th-perl-6/ | 20:00 | |
That's the one I was thinking of . | |||
But apparently it wasn't what I thought it was. ^^ | |||
ahmad | using wordpress blogs to talk about perl.... hehehehe ;) what about a free blogging service in perl6 :) | 20:01 | |
moritz | ahmad: we'll surely use it if you provide it | 20:02 | |
TimToady | all in good time | ||
moritz | nom: die; | ||
p6eval | nom b86c66: OUTPUT« in block <anon> at /tmp/7rWZswKRyM:1 in <anon> at /tmp/7rWZswKRyM:1» | ||
mikemol | wp isn't free, it's only mostly free; you gotta get people to buy the value-added services to pay for the people who don't. | ||
ahmad | mikemol: it is mostly free** | 20:04 | |
mikemol | If it were completely free, there's only one thing you could do; go through its pockets and look for loose change. | ||
moritz | it's free enough for our purposes :-) | ||
ahmad | moritz++ | 20:05 | |
20:06
demetro left
|
|||
ahmad | i used to host a large number of blogs (when that was profitable), i stopped the service by the end of 2011, most of my clients moved to wordpress.. | 20:06 | |
by the way, i heard there are perl6 books that will be published by Oreilly soon, is that true? | 20:11 | ||
TimToady | we have not started working on a new Camel, but this might be the right year for that | 20:12 | |
ahmad | TimToady: are you Larry Wall ?! | 20:13 | |
TimToady | I have been accused of that... | ||
but there are at least 137 Larry Walls in the U.S. | |||
and only two of them are me | |||
last I checked... | |||
ahmad | TimToady: ok now am sure you are the one who invented perl! | 20:14 | |
20:14
ksi joined
|
|||
ahmad | i would love a new "programming perl" book **the perl5 one.. | 20:14 | |
PerlJam | ahmad: There's one coming out | ||
(or maybe it's already out?) | |||
TimToady | there's a new p5 one coming out soon, yes | ||
the indexer has it right now | 20:15 | ||
ahmad | TimToady: great!!! | ||
mikemol | ahmad: Starstruck? Happened to me, too. You get over it, eventually. :) | ||
20:15
bluescreen10 left
|
|||
TimToady | specially after I've been mean to you :) | 20:15 | |
ahmad | mikemol: yeah i guess | 20:16 | |
mikemol doesn't recall that. | |||
I think I more suppressed expressing it until the feeling went away. :) | |||
PerlJam | TimToady: you're not going to send us all free copies?!? | ||
PerlJam is hurt | |||
TimToady | PerlJam is no longer starstruck... | 20:17 | |
PerlJam | :-) | ||
being starstruck sounds like it would be painful. | |||
ahmad | i would love a soft copy for free.. but i will buy it cuz i like Oreilly | ||
mikemol | ahmad: You should see how cheap O'Reilly's ebooks get, especially when they've got coupons and special deals going on. | 20:18 | |
ahmad | mikemol: that is true.. i am also more into these "tablets" recently.. i am thinking of trying out the kindle.. | ||
mikemol | Their back-to-school period has been extraordinarily expensive for me, two years running. I keep spending $100-$150 on quarter-priced books... | 20:19 | |
TimToady | note however that the new Camel is full of Unicode chars that will not render on the typical reader | ||
ahmad | TimToady: a typical reader? | 20:20 | |
TimToady | like a Kindle | ||
mikemol | I'd guess: Nook, kindle, knockoffs... | ||
ahmad | too bad.. | 20:21 | |
mikemol | Dunno about Android apps like fbreader or Aldiko, or desktop apps like calibre. | ||
PerlJam add 'handles unicode well' to the list of criteria for an e-reader | |||
(never gave it much though because I don't own an ereader :) | |||
huf | with the kindle, it's a question of fonts, isnt it? or? | ||
or does it implement just a subset of unicode? | |||
mikemol | epub should allow embedding of the font. I don't know what kindle uses. | 20:22 | |
TimToady | note that bundling fonts with the book may make it more expensive | 20:23 | |
mikemol | Fair point. | ||
TimToady | O'Reilly tends to use proprietary fonts... | ||
ahmad | TimToady: how much more expensive? look at programming python for example.. the ebook is around 70USD if am not wrong.. | ||
20:24
cooper joined
|
|||
geekosaur | also note that a nuber of ereaders don't support embedded fonts, and most ship with fonts that don't support a whole lot | 20:24 | |
tadzik | PerlJam: I've seen some chinese characters on my Kindle today, it's a standard font | ||
TimToady | well, and so far Python is not nearly into Unicode as much as Perl 5 is | 20:25 | |
mikemol | $70UD? That's nuts. *looks* | ||
tadzik | and Kindle's .mobi is just .epub with more DRM possibilities, iirc | ||
TimToady | tadzik: try zooming them and see if they blur | ||
mikemol | ahmad: Ebook form is $51.99 off of O'Reilly's site. $71.49 if you want the ebook *and* hardcopy. | 20:26 | |
geekosaur | (hrm, let me correct that. almost all ereaders use Adobe's mobile ereader software, which doesn't support embedded fonts) | ||
mikemol | I've been foregoing hardcopy. | ||
ahmad | mikemol: oh i see.. still a bit expensive for the ecopy | 20:27 | |
geekosaur | also. .mobi is not an amazon-invented format, it comes from the palm world and is entirely unrelated to epub | ||
TimToady | anyway, it's a hard problem for any ebooks that want to do cutting edge Unicode stuff | ||
[Coke] | huh. new in Java 7: You can use underscores in numeric literals. | ||
mikemol | ahmad: O'Reilly usually cuts prices by 50% when they put something on special. I rarely buy the ebooks when they're not on special. So, for me, that book would be about $26 when I got around to buying it. | 20:28 | |
TimToady | they must have borrowed that feature from Ada... | ||
20:28
bluescreen10 joined
20:29
am0c left
|
|||
ahmad | mikemol: good idea.. but sometimes you need a book and it has no offers on it.. | 20:29 | |
tadzik | that's the biggest font I can get: i.imgur.com/Tftpr.jpg | ||
the bottom one blurs, but that's due to lack of Depth of Field :) | 20:30 | ||
PerlJam | ahmad: so ... you *need* the latest (as yet unpublished) Camel book? :) | ||
TimToady | tadzik: looks pretty decent; my friend was trying to show off Japanese, so maybe it's a little different there | ||
ahmad | PerlJam: *_* yes! | ||
TimToady | or maybe he had a Nook... | ||
tadzik | TimToady: I wouldn't tell if a character is japanese even if I saw one :) | 20:31 | |
TimToady | there are a few minor font differences, more if you're comparing with simplified, since Japanese fonts are more based on traditional | 20:32 | |
masak | they have to be, if you consider the historical ordering :) | 20:33 | |
TimToady | 'simple', for instance: traditional: 單 simplified: 单 Japanese: 単 | 20:34 | |
PerlJam | that looks like a TV with arms and a body | 20:35 | |
(well, the traditional doesn't really, but the other two do) | |||
20:36
wolfman2000 left
|
|||
masak | TimToady: that looks like an instance of kanji and simplified hanzi looking more related :) | 20:36 | |
TimToady | or 'uniform' 齊 齐 斉 | ||
there are cases where the Japanese looks more like the simplified | 20:37 | ||
but the trend is the other way | |||
ahmad | PerlJam: so you were saying....... :) | ||
tadzik | now that I think of it, why is it "is export" and not "is exported"? | ||
PerlJam | tadzik: because then the verb tense will be wrong | 20:38 | |
TimToady | 'an export' is a valid noun in English, and it's shorter | ||
tadzik | sub foo is exported {} seems valid English to me | ||
TimToady | and because I dislike the passive voice :) | 20:39 | |
tadzik | :) okay | ||
20:39
cognominal_ left
|
|||
PerlJam | ahmad: You can have your new camel in a month or two :) | 20:40 | |
20:40
arlinius joined,
cognominal joined
|
|||
ahmad | PerlJam: i thought you offered something about "the latest (as yet unpublished) Camel book" nevermind ;) | 20:41 | |
PerlJam | ahmad: Why would I have such a thing? I wouldn't use it anyway. I initially learned Perl from the man page (back when there was only one) so perldoc is good enough for me ;-) | 20:44 | |
20:45
az5112 joined
|
|||
ahmad | PerlJam: mmm.. i still liked the camel book :) i am a python guy actually but i still enjoyed reading the camel book.. it was a fun read, i hope the new one will not be a dry read.. | 20:45 | |
dalek | p: ed38a82 | jnthn++ | src/NQP/World.pm: Toss outdated comment. |
||
p: 61ace16 | jnthn++ | src/NQPQ/ (3 files): Bring latest NQP changes over into NQPQ. |
|||
PerlJam | It's how I'm learning Perl 6 too. Absorption from #perl6 and the Synopses | 20:46 | |
ahmad: One thing I know: if TimToady had a hand in writing the book, it won't be "dry" | |||
though with 3 (?) authors, there's no telling how much was contributed by TimToady | 20:47 | ||
TimToady | I repolished the first ten chapters or so; the rest may have residual jokes from prior editions :) | ||
ahmad | TimToady: ah that is good news! | 20:48 | |
** still remember the "do not try that at home" and the 4 wifes examples :D | 20:49 | ||
az5112 | Hello, I am having trouble figuring out p6 references. I insert an array into a hash %h{"blah"} = Array.new( 1, 2, 3, 4); | 20:50 | |
How do I iterate over it? for %h{blah} -> $x {} gives me an Array ref. Do I have to flatten it somehow? How? | |||
TimToady | %h{blah}.keys, or .pairs, or .kv, or .values | ||
default would be pairs | 20:51 | ||
az5112 | That easy? Thanks :) | ||
masak | az5112: also, [1, 2, 3, 4] is shorter than Array.new(...) | 20:52 | |
TimToady | .list probably works too | ||
PerlJam | az5112: or for @(%h<blah>) -> $x { ... } | ||
TimToady | or for %h<blah>[] -> $x | 20:53 | |
(I think that flattens) | |||
jnthn | prolly | ||
PerlJam | it does | ||
TimToady | perl6: my $x = <a b c d>; for $x[] { .say } | 20:54 | |
p6eval | pugs b927740: OUTPUT«a b c d» | ||
..niecza v13-144-gf7281f0: OUTPUT«Unhandled exception: No value for parameter \$index in postcircumfix:<[ ]> at /home/p6eval/niecza/lib/CORE.setting line 0 (postcircumfix:<[ ]> @ 1)  at /tmp/XlcLOA4zfo line 1 (mainline @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 2830 (ANON @ … | |||
..rakudo b86c66: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in method postcircumfix:<[ ]> at src/gen/CORE.setting:3983 in block <anon> at /tmp/vEv0JF5PFc:1 in <anon> at /tmp/vEv0JF5PFc:1» | |||
az5112 | Not all solutions are more readable than perl5 ;-) | ||
TimToady | perl6: my $x = <a b c d>; for $x[*] { .say } | ||
p6eval | rakudo b86c66: OUTPUT«abcd» | ||
..pugs b927740: OUTPUT«a» | |||
..niecza v13-144-gf7281f0: OUTPUT«Unhandled exception: Cannot use value like Whatever as a number at <unknown> line 0 (ExitRunloop @ 0)  at /home/p6eval/niecza/lib/CORE.setting line 203 (Any.Numeric @ 5)  at <unknown> line 0 (ExitRunloop @ 0)  at /home/p6eval/niecza/lib/CORE.setti… | |||
20:55
ahmad left
|
|||
TimToady | nom doesn't actually seem to handle .[] | 20:55 | |
b: my $x = <a b c d>; for $x[] { .say } | |||
[Coke] | colomon: niecza at 92.77 % ( 17112 / 18444 ) | ||
p6eval | b 1b7dd1: OUTPUT«abcd» | ||
TimToady | perl6: my $x = <a b c d>; say "$x[]" | 20:56 | |
p6eval | pugs b927740: OUTPUT«a b c d» | ||
..rakudo b86c66: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in method postcircumfix:<[ ]> at src/gen/CORE.setting:3983 in block <anon> at /tmp/Svznbq5gtv:1 in <anon> at /tmp/Svznbq5gtv:1» | |||
..niecza v13-144-gf7281f0: OUTPUT«Unhandled exception: No value for parameter \$index in postcircumfix:<[ ]> at /home/p6eval/niecza/lib/CORE.setting line 0 (postcircumfix:<[ ]> @ 1)  at /tmp/av_BLVLYzb line 1 (mainline @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 2830 (ANON @ … | |||
20:56
fsergot left
|
|||
TimToady | at least pugs knows about Zen slices, even if it doesn't flatten right | 20:56 | |
PerlJam | rakudo should know about them too. :( | 20:57 | |
TimToady | that's been in there since like, about Apocalypse 2 or so... | ||
to be fair, it's just a regression for nom | 20:58 | ||
PerlJam | rakudo:my @a = <a b c d>; for @a[] { .say } | ||
TimToady | space | 20:59 | |
PerlJam | blah | ||
nom: my @a = <a b c d>; for @a[] { .say } | |||
p6eval | nom b86c66: OUTPUT«abcd» | ||
TimToady | the final frontier... | ||
innerestin' | 21:00 | ||
PerlJam | I don't quite comprehend rakudo's confusion about the other one, but I'd guess it's relatively LHF | 21:01 | |
jnthn | Trying a patch for it now. | 21:02 | |
TimToady thinks that if val() is only going to accept 1+2i we should not output 1 + 2i | 21:03 | ||
contrariwise, if we're going to output that, val() should accept it | 21:05 | ||
dalek | kudo/nom: 975b6bb | jnthn++ | src/core/Parcel.pm: Fix zen slice on a Parcel. |
21:07 | |
TimToady | but that's problematic when used within < 1 + 2i >, which might mean three words | ||
so I think we should probably emit 1+2i instead | |||
or even <1+2i> when that becomes the norm for complex literals | 21:09 | ||
21:09
ghiro joined,
ghiro left
|
|||
cognominal | seen in Rakudo: method map($block) is rw { MapIter.new(:list((self,).flat), :block($block)).list } # is map suppose to flatten? I would say no. This not perl 5 which flattens everything | 21:14 | |
aloha | in Rakudo: method map($block) is rw { MapIter.new(:list((self,).flat), :block($block)).list } # is map suppose to flatten? I would say no. This not perl 5 which flattens everything was last seen in 15345 days 21 hours ago . | ||
PerlJam | heh! | ||
masak | b: my @a = 1..4; .say for @a[] | ||
p6eval | b 1b7dd1: OUTPUT«1234» | ||
masak | nom: my @a = 1..4; .say for @a[] | ||
p6eval | nom b86c66: OUTPUT«1234» | ||
masak | b: my $x = 1..4; .say for $x[] | 21:15 | |
cognominal | nom: (3, (2, 1)).map:{ say $_.perl } | ||
p6eval | b 1b7dd1: OUTPUT«1234» | ||
nom b86c66: ( no output ) | |||
masak | nom: my $x = 1..4; .say for $x[] | ||
p6eval | nom b86c66: OUTPUT«1234» | ||
jnthn | cognominal: Yes, map is leant to flatten. | 21:16 | |
*meant | |||
masak | oh, jnthn++ just fixed that :) | ||
PerlJam | Do we have a test for it though? | ||
masak greps for zen in roast | |||
TimToady | it's meant to return a list of parcels, which flatten in normal list context, but don't flatten in lol context | 21:17 | |
jnthn | TimToady: That's the input to map being put in a flattening context. | ||
(in the code cognominal pasted) | |||
TimToady | okay | ||
jnthn | Not flattening of the output. I think the output is just what you said. | ||
TimToady | yes, the input flattens, use lol if you don't want that :) | 21:18 | |
cognominal | I should learn to LoL. | ||
jnthn | masak: If you don't find one for zen with Parcel, please could you add one? :) | ||
masak | jnthn: *sigh*. this is what happens when you don't give me time to open up a ticket. now suddenly *I* have to add a test :P | 21:19 | |
tadzik | :D | ||
jnthn | :D | ||
masak | I don't *do* work, remember? I *create* work. | ||
masak grumblingly obliges | |||
jnthn | .oO( how much work is his macros grant going to make for me? :) ) |
21:20 | |
masak | nom: my $x = <5 6 7>; say $x[] | 21:21 | |
p6eval | nom b86c66: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in method postcircumfix:<[ ]> at src/gen/CORE.setting:3983 in block <anon> at /tmp/VwIBW_HmTJ:1 in <anon> at /tmp/VwIBW_HmTJ:1» | 21:22 | |
masak | guess doing lives_ok on the above would work... | ||
cognominal | nom: (3, (2, 1)).lol.map:{ say $_.perl } | ||
p6eval | nom b86c66: ( no output ) | ||
TimToady | nom: eager (3, (2, 1)).lol.map:{ say $_.perl } | ||
p6eval | nom b86c66: OUTPUT«3(2, 1)» | ||
TimToady | it's the sink bug | 21:23 | |
nom: (3, (2, 1)).lol.map:{ say $_.perl }; 42; | |||
p6eval | nom b86c66: ( no output ) | ||
TimToady | yeah, nom doesn't sink its earlier statements, though something could conceivably be reading the result of the final statement | 21:24 | |
diakopter | en.wikipedia.org/wiki/Pinacate_beetle | ||
dalek | ast: 73296d8 | masak++ | S02-types/parcel.t: [S02-types/parcel.t] added test about zen slicing |
||
masak | jnthn: there you go. | ||
cognominal | for is implementd in term of map, so it flattens. Is is this conform to the spec | ||
TimToady | yes | ||
jnthn | masak: oh wow, you actually did something! | 21:25 | |
:P | |||
TimToady | and is what the p5 programmer expects | ||
jnthn | masak: You may now have en oel ;) | ||
masak | TimToady: agree on the 1+2i issue. | ||
jnthn: way ahead of you there :) | 21:26 | ||
jnthn: here, have an actual ö. | |||
tadzik | nom: sub foo { !!! }; foo() | ||
p6eval | nom b86c66: OUTPUT«Stub code executed in sub foo at /tmp/foAdSwVsgN:1 in block <anon> at /tmp/foAdSwVsgN:1 in <anon> at /tmp/foAdSwVsgN:1» | ||
21:26
proller left
|
|||
masak | how's the p6cc coding going? | 21:26 | |
TimToady | speaking of nöel, happy twelfth night | 21:27 | |
21:27
proller joined
|
|||
jnthn makes an önest effort to find a good way to type that char again... | 21:27 | ||
masak | the importance of being önest... | ||
[Coke] | jnthn: on windows? us international keyboard. | 21:28 | |
(then "o) | |||
TimToady hates dead keys | 21:29 | ||
geekosaur | isn't the diaeresis supposed to be on the ë? | ||
21:29
bonsaikitten left
|
|||
masak | geekosaur: yes, we know ;) | 21:29 | |
TimToady | I'll never tell | ||
masak | ...except Dumbledore here, who may or may not be actually insane :P | 21:30 | |
masak hides | |||
jnthn | aha, found the nice thingy I had before | ||
Äxcellent! | |||
masak | :P | ||
jnthn | (It gives me US keyboard layout and Swedish chars just an AltGr+<the lettter> away) | 21:31 | |
[Coke] | TimToady: it's just easier than remembering it's alt-0246. | ||
jnthn: ah, there you go. ;) | |||
TimToady | eh? I just type Compose "o | ||
or Compose << for « | 21:32 | ||
but then, I'm not on Winders | |||
x3nU | jnthn: polish keymap works that way :) | 21:34 | |
21:35
zby_home_ joined,
donri joined
21:36
awoodland left
21:39
mj41 joined
|
|||
TimToady | much needed nap & | 21:42 | |
masak | 'night | 21:45 | |
jnthn | o/ TimToady | ||
21:46
gv left
21:51
bonsaikitten joined
21:58
cognominal left,
cognominal joined
|
|||
sorear returns | 21:59 | ||
21:59
cognominal left
|
|||
[Coke] | EEK | 22:00 | |
22:01
cognominal joined
|
|||
masak | don't sneak up on us like that! | 22:03 | |
22:03
az5112 left
22:04
bkolera joined
22:17
proller left
22:20
stevan_ left
22:21
stevan_ joined
|
|||
sorear | oook, now I'm looking at p5-mop ... | 22:25 | |
dalek | p/qbootstrap: 2e578b5 | jnthn++ | src/ (2 files): Accessing attributes may trigger auto-vivification of a scalar container with P6opaque; we were missing some write-barriers for these cases. Add them. |
22:27 | |
p/qbootstrap: ed38a82 | jnthn++ | src/NQP/World.pm: Toss outdated comment. |
|||
p/qbootstrap: 61ace16 | jnthn++ | src/NQPQ/ (3 files): Bring latest NQP changes over into NQPQ. |
|||
p/qbootstrap: 7c4b557 | jnthn++ | src/ (6 files): Merge branch 'master' into qbootstrap |
|||
p/qbootstrap: 27a79fe | jnthn++ | tools/build/Makefile.in: A missing s/SymbolTable/World/. |
|||
p/qbootstrap: 129d9b2 | jnthn++ | / (7 files): Re-arrange things a little - just in stage 2 for now. This gets an NQP built that more fully uses QRegex. Lots to fix - this is mostly just shuffling around the build process and dependency chain somewhat. |
|||
p/qbootstrap: 467b83f | jnthn++ | .gitignore: Update .gitignore. |
|||
p/qbootstrap: 8fc9545 | jnthn++ | src/QHLL/Grammar.pm: Clean up some leftovers from the way the nqp-rx regex engine did debug stuff (we'd want to put it back as something MOP-level-ish). |
|||
sorear | jnthn: What is qbootstrap? | ||
jnthn | sorear: Branch to make nqp bootstrap using qregex | ||
sorear: And thus completely eliminate the old regex engine. And use QRegex for actually parsing Perl 6 programs. | 22:28 | ||
Which I *hope* will give us a nice parsing speed-up. | |||
Though won't fully believe it until I have timings :) | |||
22:32
az5112 joined
|
|||
az5112 | What would be perl6 idiom for removing keys less than $x from a hash? | 22:38 | |
Do I have to copy keys to a temporary array before iterating over them? | 22:39 | ||
tadzik | nope | ||
I think nope :) | 22:40 | ||
jnthn | my %h = a => 1, b => 2, c => 3; %h .= grep: *.value > 2; say %h | ||
nom: my %h = a => 1, b => 2, c => 3; %h .= grep: *.value > 2; say %h | |||
p6eval | nom 975b6b: OUTPUT«("c" => 3).hash» | ||
jnthn | nom: my %h = a => 1, b => 2, c => 3; %h .= grep: *.value > 1; say %h | ||
p6eval | nom 975b6b: OUTPUT«("b" => 2, "c" => 3).hash» | ||
jnthn | Like that? | ||
masak | az5112: t2? :) | 22:41 | |
az5112 | t2 | ||
And hashes are unordered, right? I mean they are not an RB tree like a C++ map? | 22:42 | ||
sorear | right | 22:43 | |
they're actual hashes | |||
az5112 | Is it by the spec or implementation specific? | 22:44 | |
sorear | by spec, you can't count on any ordering | ||
implementations | |||
masak | though Parrot currently gives you lots of ordering. :/ | 22:45 | |
sorear | are allowed to do stuff | ||
masak | nom: my %h = 'A'..'Z' X=> 1..*; say %h.perl | ||
er. | |||
p6eval | nom 975b6b: OUTPUT«(timeout)» | ||
masak | nom: my %h = 'A'..'Z' Z=> 1..*; say %h.perl | ||
p6eval | nom 975b6b: OUTPUT«("A" => 1, "B" => 2, "C" => 3, "D" => 4, "E" => 5, "F" => 6, "G" => 7, "H" => 8, "I" => 9, "J" => 10, "K" => 11, "L" => 12, "M" => 13, "N" => 14, "O" => 15, "P" => 16, "Q" => 17, "R" => 18, "S" => 19, "T" => 20, "U" => 21, "V" => 22, "W" => 23, "X" => 24, "Y" => 25, "… | ||
sorear | niecza: my %h = 'A'..'Z' Z=> 1..*; say %h.perl # niecza's Hash.perl explicitly sorts the result :p O(n), O(log n), close enough | 22:46 | |
p6eval | niecza v13-144-gf7281f0: OUTPUT«{"A" => 1, "B" => 2, "C" => 3, "D" => 4, "E" => 5, "F" => 6, "G" => 7, "H" => 8, "I" => 9, "J" => 10, "K" => 11, "L" => 12, "M" => 13, "N" => 14, "O" => 15, "P" => 16, "Q" => 17, "R" => 18, "S" => 19, "T" => 20, "U" => 21, "V" => 22, "W" => 23, "X" => 24,… | ||
sorear | n log n | ||
22:46
proller_ joined
|
|||
masak | I don't remember the exact rationale for this, but ISTR it was performance-related, which sounds weird. | 22:46 | |
sorear | niecza: my %h = 'A'..'Z' Z=> 1..*; for %h -> $pair { say $pair.perl } | ||
p6eval | niecza v13-144-gf7281f0: OUTPUT«"Z" => 26"Y" => 25"X" => 24"W" => 23"V" => 22"U" => 21"T" => 20"S" => 19"R" => 18"A" => 1"B" => 2"C" => 3"D" => 4"E" => 5"F" => 6"G" => 7"H" => 8"I" => 9"J" => 10"K" => 11"L" => 12"M" => 13"N" => 14"O" => 15"P" => 16"Q" => 17»… | ||
az5112 | jnthn: that filters by value; I want to filter by key. grep: *.key > 3 does what I want. Thanks. | ||
sorear | without using .perl it doens't sot | 22:47 | |
HOWEVER | |||
jnthn | az5112: ah, gotcah :) | ||
sorear | niecza: my %h = 'A'..'K' Z=> 1..*; for %h -> $pair { say $pair.perl } # Guess what's going on here! | ||
jnthn | *gotcha | ||
p6eval | niecza v13-144-gf7281f0: OUTPUT«"A" => 1"B" => 2"C" => 3"D" => 4"E" => 5"F" => 6"G" => 7"H" => 8"I" => 9"J" => 10"K" => 11» | ||
22:47
am0c joined
|
|||
masak | sorear: it... sorts the pairs? | 22:48 | |
g'ah! there's too much order in Perl 6 hashes! :) | |||
sorear | masak: compare my last two commands | 22:49 | |
jnthn | oh, it's the "don't really use a hash until it's worth it" trick | ||
az5112 | So coming back to my filter/grep example (%h .= grep: *.key > 2); -- it will always have to go through the complete hash? | ||
sorear | az5112: yes | 22:50 | |
masak | sorear: what jnthn said. | ||
jnthn | grr, bootstrapping is hard | 22:51 | |
masak | 'night, #perl6 | 22:52 | |
22:52
zby_home__ joined
22:53
zby_home_ left
22:57
MayDaniel joined
|
|||
sorear | does anyone think $x does A(1) makes sense? | 23:04 | |
(jnthn, esp) | |||
jnthn | sorear: I think it's useful. I seem to remember it's a slight nuisance to handle. | 23:05 | |
23:06
arlinius left
23:07
raiph joined
|
|||
sorear | jnthn: How does it parse? | 23:07 | |
jnthn | sorear: I seem to remember it parsed as a subcall on the RHS and then I had to mangle the AST :S | 23:08 | |
Probably cleaner is if we give a different nextterm to but and does. | 23:10 | ||
23:14
shinobicl___ joined
|
|||
sorear | jnthn: which do you recommend I do for #100? | 23:14 | |
jnthn | sorear: Maybe try for the nextterm approach. If it works out fine for you, I'll steal it for Rakudo. :) | 23:17 | |
And hopefully STD will do so too :) | |||
It's gotta be better than mangling the AST. | |||
23:20
kaleem left
23:21
ahmad_ joined
|
|||
ahmad_ | hello | 23:21 | |
sorear | hello ahmad_! | 23:22 | |
colomon | niecza: enum foo <a b c>; my $a = 4; $a does foo; say $a.foo | ||
p6eval | niecza v13-144-gf7281f0: OUTPUT«Unhandled exception: Cannot compose a type of category class (foo) at /home/p6eval/niecza/lib/CORE.setting line 0 (infix:<does> @ 1)  at /tmp/39aD3ckuDR line 1 (mainline @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 2830 (ANON @ 3)  at /home/… | 23:23 | |
ahmad_ | sorear: can i ask one non perl question? | ||
23:24
donri left,
arlinius joined
|
|||
sorear | ahmad_: you don't need permission | 23:25 | |
dalek | p/qbootstrap: ebe1ccb | jnthn++ | / (3 files): Start to partially get QRegex into stage 1 also (this is to about the same level as the original NQPQ had it). |
||
p/qbootstrap: 2e25615 | jnthn++ | src/NQPQ/Actions.pm: Fix update-o. |
|||
colomon | niecza: say 1...10...15 | ||
p6eval | niecza v13-144-gf7281f0: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15» | ||
colomon | doh! | ||
ahmad_ | sorear: this quote :Lend yourself to others, but give yourself to yourself. what does it mean? English is my fourth language and i am not very good in it :) i am a programmer and i come here often but i just hate it when i can not understand something like this!! | ||
23:26
whiteknight joined,
whiteknight is now known as Guest40
|
|||
sorear | ahmad_: I've actually never heard that one. | 23:27 | |
23:28
Moukeddar joined
|
|||
tadzik | NQPP6QRegex, nice name :) | 23:28 | |
colomon | www.brainyquote.com/quotes/quotes/m...04670.html | ||
jnthn | tadzik: :P | 23:29 | |
ahmad_ | colomon: can you tell me what it means in simple english? | ||
colomon: not to be too good to others? | 23:30 | ||
colomon | ahmad_: well, you lend things you hope to get back. when you give things, you don't expect to get them back. | 23:32 | |
dalek | p: 1ab78ef | jnthn++ | src/NQP (2 files): Include timestamp again for NQP SC identifier; we don't face this issue in Rakudo since we aren't trying to bootstrap it, so no changes there (we primarily wanted the original change in Rakudo rather than NQP anyway). |
||
p: 16aab00 | jnthn++ | src/stage0/ (6 files): Update bootstrap, just to ensure we can. |
|||
p/qbootstrap: 1ab78ef | jnthn++ | src/NQP (2 files): Include timestamp again for NQP SC identifier; we don't face this issue in Rakudo since we aren't trying to bootstrap it, so no changes there (we primarily wanted the original change in Rakudo rather than NQP anyway). |
|||
p/qbootstrap: 16aab00 | jnthn++ | src/stage0/ (6 files): Update bootstrap, just to ensure we can. |
|||
p/qbootstrap: e31290a | jnthn++ | src/ (8 files): Merge branch 'master' into qbootstrap |
|||
colomon | ahmad_: I'm not sure I fully understand the sense of the quote myself. I wonder if it is more striking in the original French? | ||
ahmad_ | colomon: i think it is not well translated too.. or maybe my english skills are not so good.. anyway thanks | 23:34 | |
x3nU | i wonder why you asked here | 23:35 | |
23:36
mj41 left
|
|||
ahmad_ | x3nU: don't know really.. | 23:36 | |
cognominal | « Il faut se prêter à autrui et ne se donner qu'à soi-même. » | ||
sorear | x3nU: #perl6 is full of linguists | 23:37 | |
cognominal | I don't know the context, but without it, I can say the translation is correct. | ||
colomon | perl6: say (0, 2 ... 7)[^10] | 23:38 | |
p6eval | pugs b927740: OUTPUT«***  Unexpected "7" expecting operator or ")" at /tmp/cVWziROVgb line 1, column 15» | ||
..rakudo 975b6b, niecza v13-144-gf7281f0: OUTPUT«0 2 4 6 8 10 12 14 16 18» | |||
ahmad_ | cognominal: thanks, but what do you think it means? not to be very giving?! | 23:40 | |
colomon | hmmm.... should 0, 2 ...^ 8, 11 ... 17, 18 ...^ 21 be legal? | ||
geekosaur | I would say it's along the lines of "one should strive to help others, but not at the expense of oneself" | 23:41 | |
there are a couple of Talmudic quotes along the same lines (plus a longish argument between several rabbis over a theoretical case); the upshot is, you can't be helpful to others if you've run yourself into the ground | 23:42 | ||
cognominal | skimming thru google book, it may be not in the book "Les essais" as I thought. Apparently Montaigne said that, when asked to be mayor of Bordeaux, as a motive to refuse the charge, but he eventually accepted. | 23:43 | |
23:46
Moukeddar left
|
|||
ahmad_ | geekosaur: mmm interesting.. i thought it means something like, lend yourself temporarly to others so they suggest solutions to your problems, but give yourself to yourself, in sense of that eventually you should come up with your own solutions to your problems.. But I guess cognominal showed the correct meaning.. thanks :) | 23:47 | |
geekosaur | I can see the Montaigne context as an aspect of what I said, although I should probably try to find more information before asserting that with any certainty | 23:49 | |
cognominal | According to a book "philospher depuis Montainge et après Wittgentein", it is about the risk of loss integrity and freedom. You should not "lend yoursel to other" if you loose you very inner principle. | 23:53 | |
geekosaur | so, there you go. (this is why context matters :) | 23:54 | |
cognominal | Somehow, it reminds me a remark about a human ressource manager which sounds to me like the opposite. Eventually people are shaped by the company where they work. I interpreted it as a loss of integrity. | ||
indeed. | 23:55 | ||
ahmad_ | cognominal: hahaah actually the one who send me the quote was my HR manager :| | ||
geekosaur notes that most HR folks he's had to deal with exemplified the opposite,,, | 23:56 | ||
ahmad_ | i spent 2 years reading only nietzsche books.. i think it is time for change.. | 23:59 |