»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
00:00
spider-mario left
00:11
raiph left
00:14
xenoterracide joined
00:16
dmol left
|
|||
FROGGS | jnthn: labels in while loops seem to work now: gist.github.com/FROGGS/e03e0b067431a23b790c | 00:25 | |
00:25
jlaire joined
00:26
kst`` is now known as kst
|
|||
FROGGS | like: | 00:26 | |
nqp-p -e 'my $x := 0; HURZ: while $x++ < 2 { say($x); for [1] { last HURZ } }' | |||
1 | |||
jnthn: that patch needs a bit cleanup though, I'd like to add the magic numbers to %control_map, like 'labeled_next' => 512 | 00:28 | ||
I think the exception types starting at one are free, so we can start there | 00:29 | ||
rp: say pir::const::CONTROL_LOOP_NEXT | |||
camelia | rakudo-parrot 8d994c: OUTPUT«65544» | ||
FROGGS | rp: say pir::const::CONTROL_LOOP_REDO | ||
camelia | rakudo-parrot 8d994c: OUTPUT«65546» | ||
FROGGS | rp: say pir::const::CONTROL_LOOP_DONE | ||
camelia | rakudo-parrot 8d994c: OUTPUT«===SORRY!===error:imcc:syntax error, unexpected DOT, expecting COMMA or ')' ('.') in file '(file unknown)' line 65» | ||
FROGGS | rp: say pir::const::CONTROL_LOOP_LAST | ||
camelia | rakudo-parrot 8d994c: OUTPUT«65545» | ||
dalek | p/loop_labels: 3203a9f | (Tobias Leich)++ | src/ (3 files): implement labels for while loops This allows the declaration of labels for all statements, and adds next/redo/last LABEL functionality for while loops. |
00:37 | |
TimToady | \o/ | 00:40 | |
FROGGS | that is for nqp-p only though | 00:41 | |
TimToady | still | 00:42 | |
FROGGS | but if that works out it should not be too hard to steal that to jvm/moar/rakudo | ||
yeah, pretty useful | |||
00:46
berekuk left
|
|||
FROGGS | gnight | 01:01 | |
colomon | FROGGS++ | 01:09 | |
01:26
BenGoldberg joined
|
|||
raydiak | what is a more elegant way to write "@bar = .a, .b, .c for $foo"? | 01:29 | |
TimToady | if there's only one thing, we usually use 'given' instead of 'for' | 01:30 | |
01:30
Rotwang left
|
|||
raydiak | ah, good to know | 01:31 | |
so there's no magic way to write the list of methods? like $foo.<<a b c>> or some similar contrivance? | 01:32 | ||
BenGoldberg | If it were perl5, one could do @bar = map $foo->$_() for qw(a b c); | 01:35 | |
Err | |||
If it were perl5, one could do @bar = map $foo->$_(), qw(a b c); | |||
But I don't think you can do that in perl6 | 01:36 | ||
01:36
raiph joined
|
|||
TimToady | well, you can say @bar = ($foo."$_"() for <a b c>); | 01:37 | |
but generally, using names symbolically like that is considered a code smell | |||
BenGoldberg | I could be wrong, though :) | ||
raydiak | thanks, but imo the version I have is already much more concise (and asthetically pleasing) than that :) | 01:38 | |
TimToady | indeed | ||
BenGoldberg | The smelly solution is ugly, and likely will remain so in order to dicourage it :) | 01:39 | |
TimToady | yes, we make symbolic lookups uglier than referential lookups on purpose | 01:41 | |
01:46
MikeFair_ left
01:48
woolfy joined
01:58
xenoterracide left,
xenoterracide joined,
woolfy left
01:59
tgt left
02:03
MikeFair joined
02:08
PacoAir left
02:11
rurban1 left
02:14
raiph left
|
|||
raydiak | sorry, got lost in another window...thanks for the help guys | 02:16 | |
02:16
woolfy joined
02:17
BenGoldberg left,
rurban1 joined
02:20
BenGoldberg joined
02:36
rurban1 left
|
|||
dalek | kudo-star-daily: ebd4db8 | coke++ | log/ (5 files): today (automated commit) |
02:51 | |
rl6-roast-data: 58f97eb | coke++ | / (5 files): today (automated commit) |
|||
03:01
adu left
03:17
Ben_Goldberg joined
03:18
BenGoldberg left
03:35
Suhosin left
03:36
Suhosin joined
03:40
ggoebel18 joined
03:41
ggoebel_ joined
03:43
ggoebel17 left,
ggoebel left,
ggoebel_ is now known as ggoebel
03:47
ggoebel19 joined
03:48
ggoebel18 left
04:01
raiph joined
04:05
preflex left
04:06
preflex_ joined,
ChanServ sets mode: +v preflex_,
preflex_ is now known as preflex
05:06
raiph left
05:07
Entonian joined,
Entonian left
05:14
Entonian joined
05:41
Entonian left
06:03
raiph joined
06:09
Ben_Goldberg left
|
|||
timotimo | oh no, i b0rked C code in nqp :( | 06:09 | |
i don't see the actual implementation for control in the loop_labels branch that takes arguments, i think FROGGS perhaps forgot to check in the changes to a specific file? | 06:14 | ||
06:18
rurban1 joined
06:20
sorear_ left
06:21
sorear joined
06:41
raiph left
07:22
fridim_ left
07:40
rindolf joined
07:41
SamuraiJack joined
07:45
berekuk joined
07:46
dbr left
07:47
darutoko joined
08:14
nnunley left
|
|||
FROGGS | timotimo: did I? | 08:15 | |
timotimo | i dunno? i didn't see a change to the control op | 08:16 | |
dalek | p/loop_labels: 30b9b79 | (Tobias Leich)++ | src/vm/parrot/QAST/Operations.nqp: file lost in last commit |
||
FROGGS | but, there it is :o) | ||
timotimo: thanks for the pointer :o) | 08:17 | ||
timotimo | yw | ||
FROGGS | colomon: can you check that Inline::C now passes its tests? | 08:18 | |
I'll add tests later today for loop labels | 08:21 | ||
08:39
rurban1 left
|
|||
moritz | good UGT morning everybody | 09:00 | |
moritz.faui2k3.org/tmp/rakudo-star-...RC1.tar.gz please test! | |||
FROGGS does so | 09:04 | ||
umm, icu fails... | 09:05 | ||
timotimo is a bit ashamed about the C blunder | |||
FROGGS | need to add the symlink, right? | 09:06 | |
FROGGS takes a note to patch that | |||
ahh, that is better | 09:07 | ||
moritz | timotimo: not a big deal, doing the NQP point release was only 5 minutes extra work | 09:09 | |
timotimo | i'll try to know better in the future | 09:10 | |
masak | good antenoon, #perl6 | 09:18 | |
moritz | good an, masak | ||
09:23
Rotwang joined
|
|||
FROGGS | hi masak | 09:24 | |
masak .oO( an what an adorable an it is! ) | 09:25 | ||
timotimo | huh. a parallel-as-possible build of nqp for all three backends takes about 6 minutes | 09:30 | |
moritz | well, the building in stages doesn't lend itself well to parallelization | 09:31 | |
timotimo | yeah | ||
do i have to watch out for the negate property of an anchor? | |||
is there ever going to be a case where a bos anchor will have negate set to 1? | |||
moritz | I don't think so | ||
one can write <!before ^> | 09:32 | ||
09:32
beastd joined
|
|||
moritz | but then it's still an un-negated BOS, and an outer before node that negates the result | 09:32 | |
timotimo: just add a guard that dies if it's negated, just to be sure | |||
FROGGS | moritz: rakudo-test passed, modules-test passed and I an use perl6-debug for example | ||
moritz | FROGGS: \o/ | 09:33 | |
FROGGS: does panda also work? | |||
09:34
dmol joined
|
|||
FROGGS | ==> Successfully installed Inline | 09:34 | |
but we really should fix parrot<=>icu-config for the next release | 09:35 | ||
moritz | +1 | ||
masak | re perl6/specs:5e2c420566a46af03937c95f6ed0d7051a29aba2 -- I really like the switch from Increase/Decreasse to Less/More. *but* as long as we keep making such changes to the spec, I don't think we have any claim to talking about language/spec stability. | 09:37 | |
"Perl 6 is stabilizing month by month, year by year." yeahbut we just changed the names of the enums for *comparison*. | 09:38 | ||
(with all the associated downstream ecosystem changes) | |||
itz_ | RC1 passes "make rakudo-test" for me | 09:39 | |
although the docs still say "make test" :) | |||
09:39
rurban1 joined
|
|||
itz_ | ah its "make test" within the rakudo dir itself | 09:40 | |
09:42
xinming left
09:43
xinming joined
09:44
rurban1 left
09:48
hummeleB1 joined
09:54
berekuk left
09:57
awwaiid left
09:59
berekuk joined
10:03
kaare_ joined
|
|||
lizmat | good *, #perl6! | 10:10 | |
catching up on backlog | |||
moritz: irclog.perlgeek.de/perl6/2013-11-23#i_7905147 good to hear, moar will land soon so don't worry | 10:11 | ||
10:11
berekuk left
|
|||
lizmat | TimToady: irclog.perlgeek.de/perl6/2013-11-23#i_7904809 , how about collect { } ? | 10:12 | |
fwiw, I would think $_ would *not* be set on each iteration | |||
10:13
`patch` left
|
|||
lizmat | r: $_ = "foo"; map { state $a; last if $a++; .say} # should say "foo" instead of 1 | 10:14 | |
camelia | rakudo-parrot 8d994c, rakudo-jvm 8d994c: OUTPUT«1» | ||
lizmat | moritz: irclog.perlgeek.de/perl6/2013-11-23#i_7904275 sadly, putting a "return unless $deprecated" for JVM only, does not fix the problem | 10:16 | |
will look into that later today | 10:17 | ||
10:18
spider-mario joined,
berekuk joined
10:32
lizmat_ joined
10:33
huf left
|
|||
moritz | ok, thanks everybody for testing | 10:35 | |
10:35
lizmat left
|
|||
moritz | please also review the release announcement | 10:35 | |
10:51
kivutar left
11:04
berekuk left
11:05
kivutar joined
11:25
PacoAir joined
|
|||
masak does so | 11:53 | ||
11:53
kivutar left
11:56
denis_boyun joined
12:00
xenoterracide left
|
|||
masak | moritz: very minor nit: s/Proc::Status-objects/Proc::Status objects/ -- it's probably a Germanism to hyphenate there. | 12:02 | |
in general, it's "<noun><noun>" or "<noun>-<noun>" in German, but "<noun> <noun>" in English. | 12:03 | ||
(Swedish does the same as German in this regard) | |||
12:07
berekuk joined
12:12
aborazmeh joined
12:16
tgt joined
|
|||
dalek | kudo/nom: a7ee091 | (Elizabeth Mattijsen)++ | src/core/Deprecations.pm: Make sure DEPRECATED messages don't die on JVM |
12:20 | |
lizmat_ | $ perl6-j -e 'say "foo".ucfirst' | ||
Foo | |||
Saw 1 call to deprecated code during execution. | |||
================================================================================ | |||
Any eval (from unknown) called at: | |||
gen/jvm/stage2/NQPHLL.nqp, line 1186 | |||
12:21
lizmat_ is now known as lizmat,
aborazmeh left
|
|||
lizmat | the position is completely wrong, but at least this may give jnthn some pointer as to what's wrong with Backtrace in on jvm | 12:21 | |
off to see some more of Copenhagen& | 12:22 | ||
jnthn | Yeah, that looks the wrong line of the backtrace. | ||
preflex | jnthn: you have 2 new messages. '/msg preflex messages' to read them. | ||
jnthn | Hmm... | ||
lizmat | also: it seemed that $deprecated contained an Any instance | 12:23 | |
jnthn | lizmat: What's it meant to be? | 12:24 | |
lizmat | original error message: | ||
No such method 'package' for invocant of type 'Any' | |||
in sub DEPRECATED at gen/jvm/CORE.setting:16747 | |||
I tried to do an early exit from DEPRECATED by doing a | 12:25 | ||
return unless $deprecated; | |||
but that didn't fire, also unless $deprecated.defined didn't fire | |||
could also be some "is hidden-from-backtrace anomaly | 12:26 | ||
really off now& | |||
jnthn | o/ | ||
timotimo | o/ | ||
12:26
kkielak joined
|
|||
FROGGS | masak: okay, will take that into account :o) | 12:27 | |
12:29
SamuraiJack_ joined
|
|||
FROGGS | hi jnthn, hi lizmat btw :o) | 12:29 | |
jnthn | masak: I think the stabalizing statement is clearly about the overall trajectory, and I think it's true for that. Picking out one data point that's off it doesn't mean it's false overall. | 12:31 | |
12:32
SamuraiJack left
|
|||
masak | jnthn: agree. | 12:37 | |
aka "anecdotal". | |||
I'm just saying that sometimes it feels surprising which parts of the spec are still negotiable. | |||
I'm *very* aware that the stability of the ecosystem/community depends on the stability of the spec. | 12:38 | ||
and if it's true that speed will cease to be the bottleneck soon, then spec stability may very well become the new bottleneck. | |||
12:40
SamuraiJack__ joined
12:44
SamuraiJack_ left
|
|||
jnthn | masak: Yes, I can agree there's a risk of that. | 12:44 | |
timotimo | is moarvm going to be much faster than parrot before we start on the JIT? | 12:47 | |
FROGGS | I hope there won't be any breaking changes necessary in future... I mean, it feels alright atm, but what do I know? | ||
and by breaking I mean only implemented stuff of course | |||
12:50
preflex left
|
|||
masak | jnthn: it's hard to quantify, but "they just changed the names of the comparison enums" contributes to some extent to "they are still fiddling with the language [so I'll wait]" | 12:51 | |
12:52
preflex joined,
ChanServ sets mode: +v preflex
|
|||
jnthn | station; bbiab | 12:57 | |
masak | release announcement looks good. | 13:09 | |
moritz++ | 13:10 | ||
13:11
denis_boyun left
|
|||
timotimo | i should move unary nodal hyper ops back to the top of my priority queue ... | 13:13 | |
13:15
denisboyun joined
|
|||
timotimo | it's been in the announcement for a long time now :P | 13:15 | |
masak | ++timotimo | 13:18 | |
timotimo | questhub.io/realm/perl/quest/520fe6...dd3200001b <- you can +1 my quest on questhub :) | 13:19 | |
timotimo commutes | |||
FROGGS writes now tests for loop labels | 13:25 | ||
timotimo | for less denglisch, move the now before the verb or at the end of the sentence | 13:31 | |
what shall iname my new nodal branch? | 13:32 | ||
nodality_2_the_hypering | |||
nodal-electric-boogaloo | |||
masak | nodal-all-the-things | 13:33 | |
timotimo | should i actually watch electric boogaloo? | 13:35 | |
maybe i should just watch the first one in the series | 13:36 | ||
nodal-the-things | 13:37 | ||
moritz | nodal-the-brave | 13:40 | |
dalek | albot: e6b8a4e | moritz++ | stdin: Christmas time approaches |
13:42 | |
masak | nodal-the-noodle | 13:52 | |
14:06
kkielak left
14:12
ilogger2 joined,
ChanServ sets mode: +v ilogger2
14:17
nnunley joined
|
|||
dalek | p/loop_labels: 3f0dc90 | (Tobias Leich)++ | t/nqp/83-loop-labels.t: added tests for loop labels |
14:20 | |
moritz | R* tagged. | 14:24 | |
R* uploaded. | |||
FROGGS | I need to test the msi build then... | 14:25 | |
moritz++ | |||
moritz | rakudo.org updated. | 14:29 | |
announcement mail sent. | 14:31 | ||
\o/ wikipedia accepted first first attempt to enter the captcha | 14:33 | ||
dalek | ar: fab1ecd | moritz++ | tools/star/release-guide.pod: update release guide with 2013.11 release |
14:37 | |
moritz | this concludes the release process | ||
colomon | \o/ | 14:39 | |
tadzik | moritz++ | 14:41 | |
colomon | oooo, star release! moritz++ | 14:43 | |
So, I was telling my wife about Liz Carroll's Irish fiddle version of Peter and the Wolf. I said "Her 'Duck' is a nice enough reel, but I think the oboe in the original does a better job of conveying duckiness." And she replied, "Well, when you're a fiddler, everything looks like a nail." | 14:45 | ||
My question: Is there a formal name for that sort of thing? An allusion to a metaphor? | |||
timotimo | "sick burn" not good enough word for ya? | 14:46 | |
moritz | (colomon's wife)++ | ||
snow... something | |||
arnsholt | moritz: Snowclone | ||
colomon should perhaps point out that his wife is a fiddler. ;) | 14:47 | ||
moritz | not sure how well it fits here | ||
arnsholt | Yeah, it's only snowcloneish | ||
14:52
zakharyas joined
|
|||
dalek | p/loop_labels: a40804b | (Tobias Leich)++ | src/vm/parrot/QAST/Operations.nqp: remove debug cruft |
14:54 | |
masak | it's an interesting snowclone, because the template is "when all you have is a <X>, everything looks like a <Y>". | 14:56 | |
14:57
chturne joined
|
|||
timotimo | are most snowclones unary? | 14:57 | |
masak | but this instance is "when you're a <X>...", and also the <Y> has been retained from the original ("hammer", "nail") instance. | ||
timotimo | oh | ||
masak | timotimo: no, I don't think so. | ||
timotimo | now i wonder what naryness most snowclones have | ||
FROGGS | nqp: for [1, 2, 3, 4, 5] { next if $_ == 3; say($_) } | 14:58 | |
camelia | nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«1245» | ||
chturne | I'm having problems building Rakudo Star from Git with ICU support on Ubuntu. :-( | ||
timotimo | oh yes, icu :( | ||
there was an outstanding issue, wasn't there? | |||
chturne | My error message is: auto::icu - Is ICU installed...error: icushared not defined | ||
I have no idea what this means :'( | 14:59 | ||
timotimo, I've no idea, I'm just trying to get started with Perl 6. I'd like to contribute some day, so that's why I'm building from git. | 15:00 | ||
timotimo | ah, you're building github.com/rakudo/rakudo, right? | ||
"Star" is just our monthly packaging of rakudo plus a bunch of modules | 15:01 | ||
15:01
ajr joined
|
|||
chturne | git clone git://github.com/rakudo/rakudo.git was my poison of choice. | 15:01 | |
15:01
ajr is now known as Guest16815
|
|||
timotimo | if parrot won't build for you, you can try our JVM port instead. it has pretty much all features except full NativeCall | 15:01 | |
i *believe* you can build parrot without icu, too. you won't have cool unicode properties and stuff though | |||
but you don't need icu to get the jvm port to work | 15:02 | ||
chturne | Yeah, that makes me sad | ||
timotimo | otherwise, if you're already building stuff from source, you might as well try building icu, too | ||
chturne | I'll try the JVM port for now, just to play, but if anyone has any ideas how I can get the Parrot version working, I'd be grateful :) | ||
timotimo | worst case, rely on camelia here: | ||
chturne | (with ICU) | ||
timotimo | p: say "hi there, i'm your helpful evalbot"; | 15:03 | |
camelia | rakudo-parrot a7ee09: OUTPUT«hi there, i'm your helpful evalbot» | ||
FROGGS | chturne: you'd need to make a symlink | ||
from /usr/include/x86_64-linux-gnu/unicode to /usr/include/unicode | |||
timotimo | thanks FROGGS :) | 15:04 | |
chturne: i've only started contributing ~10 month ago, so it's almost still fresh in my mind and i'd love to help you get started | |||
chturne | FROGGS, I passed the --icuheaders option to specify the directory where Ubuntu installs the libicu headers, why would the symlink be change the behaviour I'm seeing? | ||
FROGGS | chturne: parrot is using icu-config, which borken when it comes to multi-arch... we'd need to path it to use pkgconfig | ||
15:05
Guest16815 is now known as ajr_
|
|||
chturne | timotimo, great! I'd appreciate that :) | 15:05 | |
FROGGS | chturne: because parrot is using icu-config which tells it wrong paths | ||
chturne | Ah right, thanks FROGGS, I'll give that a whirl in a sec and report back! | ||
FROGGS | chturne: no idea if --icuheaders works at all, never used it | ||
chturne | Well it fixed my initial problem of the configure script moaning that it couldn't find the icu headers, since it was looking in /usr/include/unicode | 15:06 | |
FROGGS | exactly | 15:07 | |
chturne | Huzzah! Parrot is now compiling. Thank you FROGGS! | 15:08 | |
FROGGS | you're welcome :o) | 15:09 | |
timotimo | you can still build the JVM port anyway, because you can play around with our concurrent stuff on it :) | ||
FROGGS | yes, one can build both version without any problems | ||
chturne | Neat, I'll build that next :) | 15:10 | |
timotimo | perl Configure.pl --backend=jvm,parrot && make -j3 all install | ||
FROGGS | you will end up with a perl6-p and perl6-j binary | ||
timotimo | after a configure, you'll have to rebuild both parts, so best start with it already | ||
chturne | Oh, well that train has left the station, haha. | ||
15:10
xinming joined
|
|||
timotimo | well, building jvm, parrot and moarvm in parallel takes about 6 minutes on my system, so you're not losing too much time | 15:11 | |
15:17
raiph joined
|
|||
dalek | p/loop_labels: 1cefc86 | (Tobias Leich)++ | src/ (2 files): implement labels for repeat and for loops |
15:18 | |
FROGGS | jnthn: that works like a charm! | ||
timotimo | did you find a good place to put the constants yet? | 15:19 | |
diakopter | . | ||
timotimo | can't they go right next to the ones we already had for control exceptions? | 15:20 | |
FROGGS | timotimo: yes, %const_map, %handler_names and %control_map | ||
I'd call them NEXT_LABEL for example | 15:21 | ||
timotimo | maybe i'll work on the jvm codegen for you :) | ||
FROGGS | ohh, that'd be nice :o) | 15:22 | |
if that works out we could have it in rakudo in a week :o) | |||
timotimo | right now i'm on my simplify_begin branch, though | 15:24 | |
FROGGS | okay, I think I let that how it is, and wait for jnthn++ to give his opinion | ||
doesn't make sense to spend more time if we don't know if that is how it should be | 15:25 | ||
timotimo: no worries :o) | |||
TimToady | lizmat: then what does collect {} do that {} xx * doesn't do? | ||
FROGGS | I'll muse about S11 module installation a bit more | ||
timotimo | is collect the name for listless map? | 15:26 | |
TimToady | it's the rename that lizmat++ suggested | ||
(rename of listless map) | 15:27 | ||
timotimo | something's weird. i've run j-clean and it won't build anything but Pod and ModuleLoader and then proceeds to create perl6-j, perl6-jdb-server and perl6-eval-server | ||
moritz | maybe j-clean misses some files | 15:28 | |
timotimo | yeah, perl6-eval-server and perl6-jdb-server for example :) | ||
install/languages/perl6/lib/Perl6/*.jar has lots of stuff | |||
ah, but that's not supposed to be cleaned | 15:29 | ||
15:29
mtk joined
|
|||
timotimo | removing those two seems to have helped | 15:30 | |
no, wait | |||
it just does these super early | |||
15:36
xinming left
15:37
xinming joined
|
|||
diakopter | I like trains | 15:40 | |
FROGGS | :o) | ||
masak | p: enum Choice <Aye Nay>; sub vote(Choice $choice = *) { say "You voted $choice" }; vote() | 15:41 | |
camelia | rakudo-parrot a7ee09: OUTPUT«Nominal type check failed for parameter '$choice'; expected Choice but got Whatever instead in sub vote at /tmp/nnkKjjqOEZ:1 in block at /tmp/nnkKjjqOEZ:1 in any at /tmp/nnkKjjqOEZ:1 in any at gen/parrot/stage2/NQPHLL.nqp:1146 in a…» | ||
masak | p: enum Choice <Aye Nay>; sub vote(Choice $choice = *) { say "You voted $choice" }; say "but it's a runtime error, no?"; vote() | 15:42 | |
camelia | rakudo-parrot a7ee09: OUTPUT«but it's a runtime error, no?Nominal type check failed for parameter '$choice'; expected Choice but got Whatever instead in sub vote at /tmp/BI7iWQi6fV:1 in block at /tmp/BI7iWQi6fV:1 in any at /tmp/BI7iWQi6fV:1 in any at gen/parrot…» | ||
masak thinks we can do better on that one :) | |||
also, what's the easiest way to actually be able to provide a * value in the above? | |||
make a subtype that's either a Choice or Whatever? | 15:43 | ||
moritz | yes | ||
colomon | re trains: www.youtube.com/watch?v=DV8Qfs5vaBA # we have tickets to ride in three weeks | ||
FROGGS: Inline::C passing (parrakudo) smoke tests | 15:47 | ||
FROGGS | \o/ | 15:48 | |
thank you! | |||
masak | oh! so LPW is why zefram++ has submitted two rakudobugs! | 15:49 | |
jnthn | o/ from a train | ||
colomon | \o | 15:50 | |
jnthn is, apparently, surfing with "full fart" :D | |||
masak | trainthn! \o/ | ||
FROGGS | hehe | ||
timotimo | haha | ||
masak | yes, 'cus sv:"fart" is en:"speed". :) | ||
timotimo | "volle fahrt" in german as well | 15:51 | |
masak | the closest gloss in English is "fare", as in "fare thee well". | ||
jnthn | masak: I know, but I still can't not smile at it :) | ||
15:51
Rotwang1 joined
|
|||
timotimo | strange, the error i used to get with my simplify_before branch is now gone | 15:51 | |
16:01
xinming left
16:02
xinming joined
16:03
pecastro joined
16:09
xinming left
16:10
xinming joined
|
|||
masak | today I am a PHP programmer. | 16:10 | |
diakopter | so scare. | ||
masak | I can see why people don't have a big fondness for this language. :) | ||
<masak> yeahbut what's the keyword for declaring a local variable? | 16:11 | ||
<php> uh... | |||
<masak> :( :( :( | |||
timotimo | what do you need local variables for? you have namespaces! | ||
diakopter | masak: just build your own closure system. | 16:12 | |
masak | PHP likes globals so much, it has superglobals. | ||
diakopter | ".. and then when you want to invoke something, just run this eval instead..." | ||
masak | diakopter: so simple! | ||
timotimo | er, is t/spec/S05-modifier/perl5_5.rakudo.parrot failing tests even without my local changes? | 16:14 | |
3 tests? | |||
hm, it doesn't seem to come from the optimizer | 16:19 | ||
FROGGS | timotimo: I think that is what I reported a few days ago | 16:23 | |
timotimo | did you find out what caused it? | 16:24 | |
it doesn't seem like --target=optimize is giving me different regexes | |||
oh, of course, i didn't get the commit for rakudo that calls the regex optimizer yet | |||
%) | |||
16:25
MAA0HXZ joined
16:26
cognominal joined
|
|||
FROGGS | no, I am not sure what caused it | 16:26 | |
timotimo | it was probably my mucking about with everything :( | 16:28 | |
FROGGS | well, it was all clean by the release, so, must be your local changes, right? | 16:31 | |
timotimo | it was? that's good | ||
FROGGS | yes | 16:32 | |
16:32
huf joined
|
|||
dalek | kudo/nom: 60c8c1a | moritz++ | tools/build/Makefile- (2 files): make clean is now more thorough |
16:33 | |
moritz | with this patch, 'make clean && git status --ignored' looks pretty clean | ||
timotimo | thanks | ||
moritz | (of course you need to configure first to get the patches into your actual Makefile) | 16:34 | |
diakopter | if only you could make all the targets depend on teh makefile, and the makefile depend on teh configure things.. | ||
moritz | you can, in fact | 16:35 | |
but the Makefile must invoke Configure.pl, which isn't pretty | |||
diakopter | :) | ||
timotimo | nqp doesn't have rx:P5? | 16:38 | |
FROGGS | timotimo: no | ||
it is compiled after the nqp binary | |||
timotimo | ah, so i can't test it directly | ||
jnthn | Well, there's a p5regex tests | ||
masak | dalek's path summarizer could benefit from a little bit of rosettacode.org/wiki/Find_Common_Directory_Path | ||
timotimo | ah, that's good | ||
dalek | kudo/moar-support: a6eeb0b | jonathan++ | src/Perl6/Metamodel/BOOTSTRAP.nqp: Implement nominal type checks in binder. Actually regresses us a tiny bit 'cus it picks up on something that is not yet implemented in the HLL type mapping. But gets rid of all the warnings. |
16:42 | |
timotimo | t/p5regex/01-p5regex.t ................ ok :\ | 16:46 | |
16:47
denis_boyun joined
|
|||
masak liked www.modernperlbooks.com/mt/2013/11/...arker.html | 16:49 | ||
16:55
raiph left
16:56
denis_boyun__ joined
16:57
denis_boyun left
16:58
btyler joined,
xinming left
16:59
autumn joined
17:02
xinming joined
17:04
rurban1 joined
17:14
fridim_ joined,
Rotwang1 is now known as Rotwang
|
|||
masak | wow. you can stash a change to a file, 'git mv' the file to a new name, and pop the stash -- the stashed changes apply to the new file. | 17:16 | |
this is why I love git <3 | |||
17:16
rindolf joined
|
|||
timotimo | indeed! | 17:17 | |
i'm not sure why the regex breaks | 17:20 | ||
17:20
xinming left
|
|||
timotimo | does **? work for frugal quantifiers in p6regex? | 17:20 | |
17:20
xinming joined
|
|||
timotimo | r: say "acdbcdbe" ~~ /a [b|c|d] **? 6..7 (.)/; | 17:24 | |
camelia | rakudo-parrot a7ee09: OUTPUT«「acdbcdbe」 0 => 「e」» | ||
..rakudo-jvm a7ee09: OUTPUT«Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp' in (gen/jvm/main.nqp)» | |||
17:32
raiph joined
|
|||
timotimo | oh! oh! oh! | 17:32 | |
the codegen for quantifiers will create a new array of integers for the labels for every iteration of the loop, when it could just re-use the first one | 17:33 | ||
cxreg | any ideas about the first Star to target jvm? | ||
timotimo | we're pretty close to getting NativeCall working, so next month or the month after that, depending on when our NativeCall-jvm person finds the time | 17:34 | |
cxreg | awesome | ||
timotimo | you can already use rakudo from source to install panda and then install most modules you're interested in | ||
i mean, with JVM | |||
17:35
xenoterracide joined
|
|||
timotimo | oh, i was wrong, the IntegerArray came from alt, not from quantifier | 17:35 | |
i wonder if it's worth it leaving a register allocated for that list and only building it once | 17:37 | ||
17:38
avar joined
17:44
btyler left
17:50
btyler joined
17:55
xinming left
17:56
xinming joined
18:02
btyler left
|
|||
timotimo | er, i must have done something horribly wrong | 18:03 | |
Stage parse : 224.189 | 18:04 | ||
FROGGS | uhh, I dont wanna have that | ||
18:04
btyler joined
|
|||
timotimo | yeah, i can imagine | 18:04 | |
18:11
klaas-janstol joined
18:17
denis_boyun__ left
18:22
kkielak joined
18:24
denis_boyun joined
18:31
colomon joined
18:39
kkielak left
|
|||
timotimo | i don't understand how it can have gotten so slow :( | 18:39 | |
does a fresh_p start out being null? | 18:40 | ||
rather, when i get a fresh_p, will unless_null do the goto or not? | |||
18:49
ajr_ left
18:52
zakharyas left
18:56
kkielak joined
|
|||
chturne | timotimo, I don't know what you're talking about, but I got Stage parse : 224.518 when I built Rakudo as it was thinking about gen/parrot/CORE.setting, which is like 17k long | 19:00 | |
19:01
sqirrel joined
19:02
denis_boyun left
|
|||
timotimo | i used to have 110s | 19:04 | |
this better not be something i messed up in the regex implementation right before the release >_< | |||
19:06
denis_boyun joined,
klaas-janstol left
|
|||
timotimo | chturne: so, since you already said you'd like to contribute, do you have any particular area of interest? | 19:06 | |
my main interest at this moment seems to be making rakudo faster, which is not bearing a lot of fruit | 19:07 | ||
19:12
kkielak left
19:13
raiph left
19:15
kkielak joined
|
|||
timotimo | has the encoding for all files always been utf8? | 19:19 | |
has been since may apparently | 19:20 | ||
timotimo downgrades parrot | 19:24 | ||
19:28
berekuk joined
19:33
djanatyn joined
|
|||
timotimo | where is the logical explanation for this? | 19:34 | |
jlaire | javascript's this has no logical explanation | 19:46 | |
timotimo | :D | ||
timotimo is now smart-checking his hard drives | 19:47 | ||
lue | timotimo: I would imagine that Perl 6, The Champion of Unicode™, has all its source files in some sort of UTF- format :) | 19:51 | |
timotimo | qrpa.c:54:1: error: ‘ASSERT_ARGS_COMPARE’ undeclared (first use in this function) | 19:53 | |
what, why? | |||
everything is just crumbling to pieces around me, what is going on? :( | |||
i can't seem to get nqp back to a state where it's not dog slow | 20:02 | ||
chturne | timotimo, I'm not sure yet, I'd like to get started with anything really, just to familiarise myself with the bootstrapping/project organisation. | 20:04 | |
timotimo | that's fine :) | ||
chturne | I've got experience with dynamic language targetting the JVM, so I might take a look at the JVM port first. | ||
Oh, and I need to learn Perl 6 too :D | 20:05 | ||
lue | timotimo: I had that ASSERT_ARGS_COMPARE error a while ago (and even got a fix in rakudo out of it). Have you updated your rakudo with the latest changes (in particular to qrpa.c) ? | 20:06 | |
timotimo | i'm bouncing around through old commits to see if i can get my nqp fast again | ||
i'm gonna lose my mind here | 20:09 | ||
20:10
raiph joined
|
|||
timotimo | okay. my hard drives are not obviously damaged, my CPU is not overheating, my swap space is deactivated, my parrot has been at 5.9.0 and 5.10.9 and my nqp has been in all sorts of versions | 20:17 | |
still stage parse has grown to about 220% its normal time | 20:18 | ||
now i'll try the things that are not supposed to help, but inevitably will >_> | |||
like rebooting | |||
FROGGS | :/ | ||
timotimo | FROGGS: did you experience a speed regression? | ||
FROGGS | I'll switch the branch and try... | 20:19 | |
nwc10 | debugging build vs optimised build? | ||
timotimo | don't think so. does parrot have a flag for that? | ||
nwc10 | IIRC | 20:20 | |
and the default is not to optimise | |||
timotimo | oh | ||
that could be it | |||
20:20
jnap joined
20:21
rindolf left
|
|||
FROGGS | parrot_config --dump | grep configure_args | 20:22 | |
configure_args => '"--optimize" "--prefix="/home/froggs/dev/nqp/install""' | |||
chturne | Is there a coding style guide somewhere? | 20:24 | |
timotimo | i don't think so, at least i never read one | 20:25 | |
FROGGS | I guess the Perl 5 style guides are still appropriate | ||
chturne | I'm sorry to start with bikeshedding and generally being a douche, but there's a lot of useless whitespace in the Rakudo sources :'( | 20:26 | |
FROGGS | except that sub names are now do-that instead of do_this | ||
jnthn back | |||
FROGGS | wb jnthn :o) | ||
nwc10 | back online, or back where you started? | 20:27 | |
timotimo | chturne: if you keep removing whitespace around changes you did anyway, it's fine | ||
but i wouldn't like seeing a huge diff made up only of whitespace changes | |||
chturne | Fair enough, I figured as much :) | ||
timotimo | i know there's lots of lines that contain only spaces | ||
jnthn | nwc10: Back online :) | 20:29 | |
After taking some dinner | |||
timotimo | FROGGS: that was it | ||
i feel like punching something | |||
a whole day wasted due to that | |||
FROGGS | :( | ||
woolfy | timotimo: punch my virtual hands! They can take it! | ||
FROGGS | nwc10++ for that | ||
woolfy | lizmat does the real punching my hands sometimes... | ||
timotimo | woolfy: POW! POW! | ||
woolfy | ah! oh! | 20:30 | |
HARDER!!! | |||
20:30
sqirrel left
|
|||
timotimo | 𝐏𝐎𝐖 𝐏𝐎𝐖 𝐏𝐎𝐖 | 20:30 | |
POW POW POW | |||
ꟼOW ꟼOW ꟼOW | 20:31 | ||
tadzik | f.kulfoto.com/pic/0001/0025/0Vcn124393.jpg | ||
nwc10 | the speed difference (about 2.5x) looked suspiciously like the speed difference between optimised and not | ||
woolfy | Hehehe | ||
timotimo | nwc10: so the 2x speed improvement i measured for update lineposcache was from optimized to unoptimized build with my optimisation! | ||
i feel like this is a good point in time to go out and run for half an hour | 20:33 | ||
20:34
jnap left
|
|||
timotimo | even though it's fricking cold and also dark outside | 20:34 | |
woolfy | we're not stopping you... | 20:35 | |
dalek | p: f4514bb | dwarring++ | examples/rubyish/ (3 files): basic rubyish inheritance (no mixins yet) |
20:36 | |
jnthn | Wow. Rubyish keeps going and going :) | 20:37 | |
timotimo: fresh_p - you have no promises about what'll be in there. Just that nother else is using it. | 20:42 | ||
FROGGS .oO( will nqp run all the dynamic languages? ) | |||
FROGGS .oO( fresh_p of Bel Air ) | 20:43 | ||
woolfy and lizmat just had sushi... translate.google.com/#nl/en/nom%20nom%20nom (select the loudspeaker to listen) | |||
FROGGS | hehe | 20:44 | |
jnthn | haha! | 20:45 | |
hah, I like the google translate suggestion... | |||
Translate from: French | |||
:D | |||
FROGGS | ohh, it actually means something: translate.google.com/#hmn/en/nom%20nom%20nom | 20:46 | |
jnthn | haha! | 20:47 | |
FROGGS | our official branch :o) | ||
woolfy | :-) | 20:54 | |
timotimo ran the stress away by going 2.62km in 16:00m | 21:03 | ||
masak | 'night, #perl6 | ||
FROGGS | gnight masak | 21:06 | |
woolfy | timotimo++ | 21:08 | |
jnthn | e | 21:10 | |
um ;) | |||
lizmat is also calling it a day | 21:11 | ||
gnight #perl6! | |||
FROGGS | sleep well lizmat | 21:13 | |
jnthn | o/ lizmat | ||
timotimo | now i feel slightly better | 21:19 | |
21:23
Rotwang left
21:24
Rotwang joined,
Rotwang1 joined
21:25
Rotwang1 left
21:26
Rotwang left,
Rotwang joined
21:28
kkielak left
|
|||
diakopter | ♡ | 21:34 | |
timotimo | ♥ | 21:36 | |
tadzik | .u FRONT FACING BABY CHICK | 21:37 | |
timotimo | i can't find the black heart on my keyboard :( | ||
tadzik | :u | ||
jnthn | jnthn.net/papers/2013-npw-conc.pdf # slides from NPW talk. same as APW, pretty much, but with updated naming... | ||
diakopter | tadzik: rotfl | 21:38 | |
timotimo | jnthn: will a recording be uploaded at some point? | ||
jnthn | timotimo: There was no recording, afaik | 21:40 | |
timotimo | aaw. all right then :( | ||
i'm considering doing a lightning talk about perl6 during the congress, but i don't know yet what it should be about | |||
FROGGS | what congress? | 21:41 | |
timotimo | the 30c3 | ||
nwc10 | jnthn: I fear that that means that you'll just have to keep presenting the talk, until someone records it | 21:42 | |
jnthn | nwc10: Looks like :P | 21:43 | |
FROGGS .oO( "Repetitive epic is the most elegant form of Cardassian literature." ) | 21:44 | ||
timotimo | so if i call $p.vow, the $p will no longer accept .keep or .break called on it? | 21:45 | |
tadzik | oh, someone's watching DS9? | ||
timotimo | surprisingly, rebuilding parrot --optimize'd won't make the lineposcache update go any faster | 21:48 | |
oh well. | |||
21:48
dwoldrich joined
|
|||
FROGGS | :/ | 21:48 | |
timotimo | i'll still take a 2x improvement. though benabiks worries are probably legit. | ||
jnthn | timotimo: correct | 21:49 | |
FROGGS | caches are evil by default | 21:50 | |
21:54
raiph left
|
|||
diakopter | FROGGS: I agree. | 21:59 | |
I've begun to believe that all manual optimizations are [some form of] evil | 22:00 | ||
FROGGS | and it adds a factor of complexity | 22:01 | |
btw, I'd like to implement automatic dependency recompilation at some point | 22:02 | ||
aka cache invalidation of *.pbc | |||
timotimo | i'm interested in that | 22:03 | |
FROGGS | ohh, pick it if you want :o) | 22:04 | |
timotimo | oh, no | ||
i'm interested in *you* delivering that :D | |||
FROGGS | hehe | ||
timotimo | but in my books, you've already done one of the coolest things, which is loop labels | ||
well, partially :) | |||
FROGGS | hehe | 22:05 | |
yeah, would be cool to have them in rakudo | |||
diakopter | well if you have those, you have most of all the gotos | 22:06 | |
FROGGS | and, two days to implement them in nqp is alright I think, since I never did code-gen before | ||
timotimo | diakopter: for a goto, just emit a dummy loop with a label? ;) | ||
diakopter | might need more than one. like, 16, perhaps | ||
timotimo | code-gen gets nonscary pretty quickly in NQP, IMO. | ||
diakopter | so nonscare | 22:07 | |
FROGGS | diakopter: really? I just go to the already existing loop labels by throwing an exception to the loop | ||
timotimo | much gen | ||
FROGGS | how would that fit with goto? | ||
okay, I see that you could go to a label if that is in outer frames... | 22:08 | ||
but what if you would have to go forward? | 22:09 | ||
you can't throw an exception in the other direction :o) | |||
timotimo | make everything before the label "inside" a frame | ||
because that'll totally work! :) | |||
22:12
cognominal left,
cognominal joined
|
|||
diakopter | of course the solution is to put every statement in its own frame called from the previous statement | 22:15 | |
timotimo | ah, why didn't i think of that! | ||
i'll implement that optimization immediately! | |||
that's as clever as SSA! | |||
diakopter | er. | 22:16 | |
I meant.. called from the following statement. | |||
*the frame of the | 22:17 | ||
timotimo | yeah | ||
so like in lisp, but in reverse | |||
the program begins with ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( | |||
diakopter | yes. | ||
quite insightful. | 22:18 | ||
timotimo | jnthn: was there simply no time for the KeyReducer or did you stop liking it? | 22:20 | |
jnthn | timotimo: I've never been completely happy with it; it's a bit too specific. | 22:21 | |
We need something for reduction-y things, I think, but I think we probably want to solve the general problem... | |||
timotimo | good to know, thanks | 22:23 | |
jnthn | Also, at the time I thought it was nice to have synchronization primitives that align with $/@/%, as it felt kinda helpful for explaining. But I'm less convinced on that now...especially as we have both channels and supplies. | ||
timotimo | uh oh, if you make stage parse 2x as fast, the optimizer might become the bottleneck and then i'll have to optimize the optimizer =o | 22:24 | |
jnthn | Well, I'm very much still investigating stuff at the moment, but also need to sleep soon...teaching tomorrow morning. | 22:27 | |
timotimo | that's okay :) | 22:31 | |
seems like creating a new ResizableIntegerArray each time we run into an alt to store the labels is no noticable performance hit ... | 22:36 | ||
(at least not for 3 alterations ... maybe it's bigger for more) | |||
(at least i could pre-size the array instead of letting it grow dynamically) | 22:37 | ||
jnthn | It's normally rather small. | ||
And yeah, those objects are short lived | |||
timotimo | i thought short-lived objects = lots of GC | ||
does an Ops support unshift? | 22:38 | ||
jnthn | Well, lots of short lived objects trigger it, yeah... | ||
But then they go away relativley cheaply too | |||
It's those with mid-length lives that cause most headaches. | |||
timotimo | because they just go into the long-lived-object-store, but then immediately get the costly removal? | ||
diakopter | they don't take up any more cpu time, just memory between 2nd-gen collections, at least on moar | 22:39 | |
dalek | p/cursor-mem-opts: 3b28064 | jonathan++ | src/QRegex/ (2 files): Be more eager to throw out things we'll not need. This saves memory and eases the GC's role, especially as we keep hold of a lot less call frames. |
22:40 | |
diakopter | well, I guess a bit extra cpu time for 2nd gen stuff, but constant | ||
jnthn | Yeah, it's more than they live longer than they need to. | ||
So mostly memory. | |||
timotimo grabs and compiles | 22:41 | ||
FROGGS too | 22:42 | ||
timotimo | and i'll spectest as well. on parrot. | ||
FROGGS: you'll do jvm? | |||
FROGGS | moar atm | 22:43 | |
the others after that | |||
22:45
Rotwang left
|
|||
timotimo is almost to the setting | 22:46 | ||
i get no noticable time improvement | 22:50 | ||
FROGGS | hmmm | 22:51 | |
I'm not there yet | |||
diakopter | maybe some hamsters got into jnthn | ||
I mean, into jnthn's computer | |||
to make it go faster or something. | |||
jnthn | Well, I did a sample profiled build just now and we come out with about 2/3 the sample count. | 22:52 | |
diakopter | anyone going to lpw here? | 22:54 | |
timotimo | t/spec/S06-other/main-usage.rakudo.parrot ....................... Dubious, test returned 1 (wstat 256, 0x100) | 22:56 | |
FROGGS | happens on my box since months | 22:57 | |
timotimo | OK | ||
FROGGS | (using 4 jobs) | ||
jnthn | 'night, #perl6 | 23:02 | |
23:16
Vlavv` joined
23:18
cosimo_ left,
cosimo joined
|
|||
timotimo | p: say "jnthns branch may not save time when parsing, but it saves {(1748856 / 1636340) * 100 - 100} percent of max resident set size."; | 23:25 | |
camelia | rakudo-parrot 60c8c1: OUTPUT«jnthns branch may not save time when parsing, but it saves 6.876077 percent of max resident set size.» | ||
timotimo | about 10 MB, not bad. | 23:26 | |
23:28
rjbs joined
23:43
pippo joined
|
|||
pippo | r: my @a; my @b; for ^10 {@b=1..$_; @a[$_]=@b}; say @a.perl; | 23:45 | |
camelia | rakudo-jvm 60c8c1: OUTPUT«(timeout)» | ||
..rakudo-parrot 60c8c1: OUTPUT«Array.new([1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4,…» | |||
pippo | n: my @a; my @b; for ^10 {@b=1..$_; @a[$_]=@b}; say @a.perl; | ||
camelia | niecza v24-98-g473bd20: OUTPUT«[[1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, …» | ||
timotimo | r: my @a; my @b; for ^10 {@b=1..$_; @a[$_]=@b[]}; say @a.perl; | 23:46 | |
camelia | rakudo-parrot 60c8c1, rakudo-jvm 60c8c1: OUTPUT«Array.new([1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, …» | ||
timotimo | r: my @a; my @b; for ^10 {@b=1..$_; @a[$_]=@b.list}; say @a.perl; | ||
camelia | rakudo-parrot 60c8c1, rakudo-jvm 60c8c1: OUTPUT«Array.new([1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, …» | ||
timotimo | r: my @a; for ^10 {my @b:=1..$_; @a[$_]=@b.list}; say @a.perl; | ||
camelia | rakudo-parrot 60c8c1, rakudo-jvm 60c8c1: OUTPUT«Array.new(().list.item, (1,).list.item, (1, 2).list.item, (1, 2, 3).list.item, (1, 2, 3, 4).list.item, (1, 2, 3, 4, 5).list.item, (1, 2, 3, 4, 5, 6).list.item, (1, 2, 3, 4, 5, 6, 7).list.item, (1, 2, 3, 4, 5, 6, 7, 8).list.item, (1, 2,…» | ||
timotimo | r: my @a; for ^10 {my @b=1..$_; @a[$_]=@b}; say @a.perl; | 23:47 | |
camelia | rakudo-parrot 60c8c1, rakudo-jvm 60c8c1: OUTPUT«Array.new([], [1], [1, 2], [1, 2, 3], [1, 2, 3, 4], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6, 7], [1, 2, 3, 4, 5, 6, 7, 8], [1, 2, 3, 4, 5, 6, 7, 8, 9])» | ||
pippo | Hello timotimo ! | ||
timotimo | hello pippo :) | 23:48 | |
dalek | kudo-star-daily: 2625ddb | coke++ | log/ (5 files): today (automated commit) |
||
rl6-roast-data: e7c6d47 | coke++ | / (3 files): today (automated commit) |
|||
pippo | That is what I wanted ! How did you manage to know ? | ||
:-) | |||
timotimo | i know that symptom from python ;) | 23:49 | |
this may be helpful: | |||
r: my @a; for ^10 {my @b=1..$_; @a[$_]=@b}; @a[0].push("hi"); say @a.perl | |||
camelia | rakudo-parrot 60c8c1, rakudo-jvm 60c8c1: OUTPUT«Array.new(["hi"], [1], [1, 2], [1, 2, 3], [1, 2, 3, 4], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6, 7], [1, 2, 3, 4, 5, 6, 7, 8], [1, 2, 3, 4, 5, 6, 7, 8, 9])» | ||
timotimo | er, sorry | ||
r: my @a; my @b; for ^10 {@b=1..$_; @a[$_]=@b}; @a[0].push("hi"); say @a.perl | |||
camelia | rakudo-parrot 60c8c1, rakudo-jvm 60c8c1: OUTPUT«Array.new([1, 2, 3, 4, 5, 6, 7, 8, 9, "hi"], [1, 2, 3, 4, 5, 6, 7, 8, 9, "hi"], [1, 2, 3, 4, 5, 6, 7, 8, 9, "hi"], [1, 2, 3, 4, 5, 6, 7, 8, 9, "hi"], [1, 2, 3, 4, 5, 6, 7, 8, 9, "hi"], [1, 2, 3, 4, 5, 6, 7, 8, 9, "hi"], [1, 2, 3, 4, 5,…» | ||
timotimo | see how it pushed "hi" to all the lists, though you pushed only once? | 23:50 | |
that's because @a contains exactly one @b in every slot | |||
you never caused a copy to happen, because @b = 1..$_ is a list assignment | |||
rather than a reference replacement | |||
23:50
BenGoldberg joined
|
|||
timotimo | if you put the my @b inside the loop, you'll get a fresh @b every iteration | 23:51 | |
23:51
dmol joined
|
|||
pippo | OK I understood. Thank you very much!! | 23:51 | |
timotimo | you're welcome :) | ||
always glad to help | |||
pippo | good night timotimo :-) | 23:52 | |
23:52
pippo left
23:55
dmol left
23:56
dmol joined,
FROGGS joined
23:58
denis_boyun__ joined
23:59
denis_boyun left
|