»ö« 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.
raiph lue: I'm wondering if the term "NFG" is cute today but... 00:02
00:03 BenGoldberg joined
lue ...? 00:03
raiph lue: I'll sleep on it and see if I understand why I got confused 00:04
lue raiph: I think I might know what you mean, but I never heard of NFG as anything other "that special Perl 6 NF" until someone pointed out its other meaning. AFAICT no American will get weirded out :) 00:05
lue afk
00:18 kbaker_ joined 00:42 [particle] left 00:43 Mouq joined
Mouq o/ 00:43
Perl 6 feature request: an idiomatic way to iterate over groupings of an array 00:44
00:44 araujo left
Mouq for @array[0..70 X* 00:45
for @array[0..70 X+ 70*(state$)++] { } is a little clunky :P
Err
for @array[0...70*(state$)++] { } 00:46
Mouq keeps messing this up
I think the 0..70 X+ 70*(state$)++ was right
m: for (1..*)[0..70 X+ 70*(state$)++] { .elems.say }
camelia rakudo-moar e87281: OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤…» 00:47
Mouq m: while (1..*)[0..70 X+ 70*(state$)++] { $^l.elems.say }
camelia rakudo-moar e87281: OUTPUT«(timeout)71␤»
Mouq m: while (1..*)[^70 X+ 70*(state$)++] { $^l.elems.say } # almost... 00:48
camelia rakudo-moar e87281: OUTPUT«(timeout)70␤»
Mouq Hm...
m: while (1..560)[^70 Z+ 70*(state$)++] { $^l.elems.say } # almost...
camelia rakudo-moar e87281: OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤»
Mouq m: while (1..560)[^70 »+» 70*(state$)++] { $^l.elems.say } 00:49
camelia rakudo-moar e87281: OUTPUT«70␤70␤70␤70␤70␤70␤70␤70␤»
Mouq wonders why X+ didn't work…
m: say ^70 X+ 70 00:50
camelia rakudo-moar e87281: OUTPUT«70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139␤»
Mouq m: say ^70 X+ 70*1
camelia rakudo-moar e87281: OUTPUT«70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139␤»
Mouq Anyway, a (1..560).group(70) or something would be great, unless there is something like it already that I'm not aware of... 00:53
00:56 araujo joined, raiph left 00:59 bjz left 01:00 bjz_ joined 01:24 Mouq left 01:26 FROGGS_ joined 01:30 FROGGS left 01:32 benabik joined 01:40 klapperl_ joined, lustlife joined 01:43 klapperl left 01:45 xenoterracide joined 01:54 btyler left
lue With the way I imagine pack and unpack being defined for Perl 6, I don't think the two functions belong in S32::Str(ingy) anymore... 01:57
02:00 dayangkun left 02:02 dayangkun joined 02:03 rurban2 left
lue (I'm taking the "more human-readable" cue and imagining a pack() and unpack() using adverbs, though it's just an idea right now.) 02:03
02:12 kbaker_ left
colomon adverbs aren't ordered, are they? they seems like a big problem for pack / unpack. 02:22
lue colomon: yeah. The contents of *%var seem ordered, but that's not reliable. 02:24
It's a shame, adverbs feel like the right solution, while some special formatting string feels less so.
colomon you could maybe do it as a string of methods. 02:25
lue (not to say I'm ruling out the formatting string way, just that I would like something a bit different.) 02:26
02:27 xragnar_ joined, xragnar left, xragnar_ is now known as xragnar
BenGoldberg Surely it could be colon pairs which look like adverbs? 02:47
lue colon pairs are adverbs :) 02:50
BenGoldberg Hmm
Is there any way to prevent adverbs from going into *%var, and force them into @_ ? 02:51
lue nope.
colomon you could send a list of color pairs 02:52
colon
m: sub pack(@pairs) { say :@pairs.perl; }; pack((a => 10, b => 20));
camelia rakudo-moar e87281: OUTPUT«"pairs" => $("a" => 10, "b" => 20)␤»
colomon but that seems a sort of fragile syntax. 02:53
for something like unpack, I'd love to see "grammars" that work on binary data. 02:58
lue yeah, one of the ideas floating through my head was another language on the braid, but that seems like overkill for two functions. 02:59
03:08 hoverboard joined 03:10 robinsmidsrod left 03:33 robinsmidsrod joined 04:01 kaare_ joined 04:05 kaare__ joined 04:07 kaare_ left 04:11 jnap1 left 04:25 [Sno] left 04:28 zby_home joined 04:29 zby_home left
moritz \o 04:56
04:56 risou is now known as risou_awy, risou_awy is now known as risou 04:58 hoverboard left
lue Updated with a hopefully decent description of sprintf: gist.github.com/lue/9941658 04:58
04:59 kaare__ left 05:00 rurban1 joined
lue g'night #perl6 o/ 05:07
05:08 xenoterracide left 05:09 denisboyun joined 05:11 rurban1 left 05:13 rurban2 joined 05:18 rurban2 left 05:20 BenGoldberg left, kaare__ joined 05:44 rurban2 joined 05:49 rurban2 left, [Sno] joined 06:05 denisboyun left 06:09 jlaire joined 06:15 darutoko joined, telex left 06:16 telex joined 06:19 bjz_ left 06:20 bjz joined 06:27 yakudza left 06:28 FROGGS_ left 06:29 kaleem joined 06:41 FROGGS_ joined, FROGGS_ is now known as FROGGS 06:45 rurban1 joined 06:50 rurban1 left 06:58 fhelmberger joined 07:03 bjz left, bjz joined
Woodi morning #perl6 ppls :) 07:04
07:05 rurban left
Woodi thanx FROGGS++ # links and things 07:05
FROGGS Woodi: you're welcome 07:06
07:07 hoelzro joined
Woodi yesterday I read something about LINQ 4 C++ (article was dated 1st this month) but there was links for some older pages. anyway idea is: a) nice; b) weird... 07:07
07:07 yakudza joined
arnsholt o/ 07:08
Woodi there was pseudocode with select/group/other sql-like things used on native array and that was looking usefull
FROGGS o/+
-+
Woodi hallo arnsholt
Ven Woodi: I think "Microsoft C++" is pretty horrible, tbh :x 07:09
FROGGS I've talked to somebody at the german perl workshop who is interested in querying hashes with sql
arnsholt <3 git 07:10
Woodi but "sql inlined" into main language is weird
07:10 zakharyas joined
Woodi it's from Web 1.0 times :) php or C mixed with SQL construction 07:11
arnsholt LINQ is pretty awesome, IMO
Woodi but it is alien language 07:12
arnsholt Since it's actually part of the language, it's properly typed, unlike the stringly typed stuff you end up with in your C/PHP example
Sure, the syntax is a bit funky, but it's just sugar for a normal object-based API under the hood
If you don't like the syntax the functionality is available through method calls as well 07:13
Woodi ok, I just skimmed some examples but it is _other_ language inlined. idea of native operations on data structures has something usefull. I think SQL features should be cherry-picked 07:14
07:16 rurban joined
Woodi and jnthn idea of anti-sql-injections (and other mini languages) via grammar approach looked interesting too. but active records/data sources are nice. I think that ways can be merged somehow 07:20
FROGGS Woodi: inlined SQL has the benefit that you would have compile time checking of the sql syntax 07:21
Woodi with "prepare", yes 07:22
07:23 brrt joined
arnsholt With prepare, it's still run-time. With something like LINQ your program won't even compile if there's a mismatch in your "SQL" 07:25
FROGGS WAT 07:26
jnthn++ is younger than me??
Woodi I think it prepare and linq is same functionality... you need supply some user names etc at runtime
FROGGS what is wrong with this world??
I almost accepted that mst is, but now jnthn?
>.<
Woodi but linq is safer probably 07:27
and lizmat was thinking about native-looking arrays with concurrent access, if I understand correctly... on the other hand you sometimes can partition work/matrix parts on threads and then locking is unnecesary. no free lunch, as jnthn++ said, but looking/dreaming for something ideal have bright sides :) 07:31
dalek kudo/nom: 1bc429c | (Tobias Leich)++ | src/Perl6/World.nqp:
prevent calling getstaticcode on something NQPMu-ish

On MoarVM we get away with checking for isnull, but this is not enough for JVM. This unbusts SVG::Plot and Pod::To::HTML. The error is triggered when we apply a trait to a sub or an Attribute and the module gets precompiled.
07:44
FROGGS jnthn: sadly, URI is still broken (the lexical access thingy): gist.github.com/FROGGS/0ea5537eb675588baaa2 07:45
07:46 rurban1 joined 07:50 dmol joined 07:51 rurban1 left, AW3i joined
lizmat FROGGS: about that younger thing? I have that all the time 07:53
FROGGS lizmat: yes, but...
lizmat :-) 07:54
07:54 kaare__ is now known as kaare_
lizmat I've been thinking about the sleep sort thing 07:54
where we would want to have a list of promises be returned in the order that they're kept/broken 07:55
it feels to me that we would either want to change such a list of promises to a channel, or to a lazy list
so I was wondering how this would work: 07:57
*could
07:57 rurban1 joined
lizmat (^10).pick(*),map( { start { sleep $_; $_ } } ).list 07:57
aka, can we create a MMD candidate with a signature of Array of Promise ? 07:58
07:58 virtualsue joined
FROGGS I am unable to reply because I do not even touch the surface of this topic 07:58
lizmat without actually needing to create the array
07:59 hummeleB1 joined 08:01 rurban2 joined, rurban1 left
lizmat m: my @a = gather for (^10).pick(*) {.take}; say @a # works nicely 08:28
camelia rakudo-moar e87281: OUTPUT«8 3 6 0 4 7 9 1 5 2␤»
lizmat m: my @a = gather for (^5).pick(*) { start { sleep $_; .say; .take } }; sleep 6; say @a # but this doesn't ? 08:29
camelia rakudo-moar e87281: OUTPUT«(signal ABRT)0␤1␤2␤3␤4␤␤»
lizmat m: my @a = gather for (^3).pick(*) { start { sleep $_; .say; .take } }; sleep 3; say @a # but this doesn't ?
camelia rakudo-moar e87281: OUTPUT«(signal ABRT)0␤1␤2␤␤»
lizmat afk&
08:31 dakkar joined
timotimo o/ 08:35
08:36 rurban2 left 09:07 AW3i left 09:12 FROGGS left 09:26 FROGGS joined 09:29 kurahaupo joined
sergot hey o/ ! 09:31
09:32 rurban1 joined
FROGGS hey 09:32
09:36 rurban1 left 09:43 AW3i joined
timotimo nqp: class Foobar { }; class Foo is Foobar { }; say(nqp::istype(Foo, Foobar)); 10:07
camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«1␤»
10:10 aborazmeh joined
sergot #perl6: I work on a summary of VMs for Perl 6, I want to write a big presentation about this and I need your help! Could you fill this poll: gist.github.com/sergot/9951466 ? 10:14
I'd probably extend this poll in the nearest future, but I'll be awesome if you fill it anyway. 10:15
FROGGS sergot: #3 asks about a single VM... is that intentional 10:16
?
sergot FROGGS++: oh, my fault, thanks! 10:17
fixed 10:18
FROGGS what do you mean by VM btw? do you really mean the thing underneath the compiler? 10:21
sergot I just need some information about VMs like Parrot, Jvm, Moar. 10:22
FROGGS k
sergot I noticed that Moar is the fastest one, I need information about this too. 10:23
etc.
:)
timotimo forks the gist and fills it in
sergot timotimo++ thanks! :)
Generally I want to do a big comparison of VMs, that's why I need those information. 10:25
10:41 xinming__ left, xinming_ joined 10:42 SamuraiJack__ joined
FROGGS I commented 10:46
10:47 bjz left, bjz joined 10:49 bjz_ joined 10:53 bjz left
timotimo gist.github.com/timo/9952041sergot 10:53
Ven "good: it runs everywhere, even on coffeemachines" you did your job FROGGS 10:54
sergot FROGGS++ thanks 10:59
timotimo++ thanks
Ven IO ~~ :e is for `exists`, right? 11:01
timotimo aye
Ven I'm happy to have gotten an interest about Perl6 only now, because the project seems to be almost mature enough now (and will look "usable" to most people in 1 or 2 years) :) 11:04
"MoarVM: A metamodel-focused runtime for NQP and Rakudo (YAPC::EU 2013) (Slides)" That was the moarvm announcement ?
FROGGS Ven: it was announced on the sunday before the YAPC::NA 11:05
11:21 SamuraiJack__ left 11:23 AW3i left 11:26 rindolf joined 11:27 yakudza left 11:32 yakudza joined 11:33 rurban1 joined
arnsholt Yeah, I remember sitting in the hackathon room that day while scanning my inbox and suddenly going WAAAAAAAT 11:37
FROGGS yeah :o)
been there, done that
11:38 rurban1 left
Ven I await for the perl6 conference in france/paris then ;) 11:39
FROGGS my first impression was: ohh no, not another vm from scratch again 11:40
but well, it turned out be the best thing that could happen to perl6 11:41
Ven Just wait for Perl6 on the BEAM ;) 11:42
("that's why they're all talking about actors !") 11:43
FROGGS I am not going to wait for anything :o) 11:45
Ven You're going to be an actor anyway ! 11:46
FROGGS hehe
11:48 AW3i joined 11:49 LLamaRider joined 12:06 pecastro left 12:10 logie__ joined, logie left 12:16 pecastro joined 12:21 denisboyun joined
dalek p/execname: 7970930 | (Tobias Leich)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
implement op execname which returns ARGV[0]

This will only get useful when we provide a proper binary for nqp-m and perl6-m
12:21
LLamaRider what was the command to shuffle an array? 12:23
FROGGS pick? 12:24
arnsholt r: @a = [1, 2, 3, 4, 5]; say @a.pick: * # IIRC 12:25
12:25 lustlife1 joined
camelia rakudo-jvm 1bc429: OUTPUT«(timeout)» 12:25
..rakudo-parrot 1bc429, rakudo-moar 1bc429: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Variable '@a' is not declared␤at /tmp/tmpfile:1␤------> @a⏏ = [1, 2, 3, 4, 5]; say @a.pick: * # IIR␤ expecting any of:␤ postfix␤»
arnsholt r: my @a = [1, 2, 3, 4, 5]; say @a.pick: * # IIRC
Durr
camelia rakudo-parrot 1bc429, rakudo-jvm 1bc429, rakudo-moar 1bc429: OUTPUT«1 2 3 4 5␤»
LLamaRider pick gives you one, i was looking for something like @a.shuffle that gives me a new array with all elements jumbled up 12:26
sergot r: my @a = [1, 2, 3, 4, 5]; say @a.roll: *
12:27 lustlife left
LLamaRider what does the ": *" syntax mean? 12:27
camelia rakudo-parrot 1bc429, rakudo-jvm 1bc429, rakudo-moar 1bc429: OUTPUT«(timeout)»
arnsholt Here we go:
r: my @a = (1, 2, 3, 4, 5); say @a.pick(*)
sergot : my @a = <1, 2, 3, 4, 5>; say @a.pick: *;
arnsholt It's the whatever star
camelia rakudo-parrot 1bc429: OUTPUT«4 1 2 5 3␤»
..rakudo-moar 1bc429: OUTPUT«3 5 2 1 4␤»
..rakudo-jvm 1bc429: OUTPUT«2 1 3 5 4␤»
LLamaRider r: (^10).pick(*).say;
camelia rakudo-moar 1bc429: OUTPUT«6 8 7 1 0 3 4 2 9 5␤» 12:28
..rakudo-parrot 1bc429: OUTPUT«5 0 8 7 9 3 6 1 2 4␤»
..rakudo-jvm 1bc429: OUTPUT«7 5 2 6 9 0 8 4 1 3␤»
LLamaRider got it!
arnsholt .pick takes an optional argument saying how many times you want to pick. Whatever star means all of the elements
yoleaux arnsholt: You must provide at least two options.
LLamaRider arnsholt++ I see, thanks
arnsholt And .roll does the same, but .roll is with replacement, so you can get the same element several times 12:29
12:30 pdcawley left
LLamaRider So I tried '(^10000).pick(*).sort;' . It took 14 seconds in MoarVM :/ 12:30
I guess I should give the core team time to do optimizations 12:31
FROGGS LLamaRider: how long does that take on Perl 5?
LLamaRider FROGGS: Let me write it in P5,
will get back to you
FROGGS thanks
12:34 rurban1 joined
LLamaRider 0.02 seconds 12:34
arnsholt time perl -MList::Util -E 'sort shuffle(1..9999)' takes 0.012s on my machine
LLamaRider arnsholt: that's almost exactly the program i am running here too
lizmat $ time perl6 -e '(^10000).pick(*)' 12:35
real0m0.971s
$ time perl6 -e '(^10000).pick(*).sort'
real0m12.024s
so it's really the .sort being slow, not the pick(*)
arnsholt I wonder why sort is so slow 12:36
lizmat compared to each other, not to perl5 :-)
FROGGS perl6-p is even slower 12:37
41.8s
arnsholt Is our sort implemented in Perl 6, perhaps?
12:37 rurban2 joined
lizmat yes, in src/core/List.pm 12:38
it first builds a list of values to sort by 12:39
then sorts those with nqp::p6sort
and then slices the list with the ordered indexes
arnsholt Oh. In that case, I'm guessing it's the slice being slow 12:40
lizmat could well be 12:41
12:41 rurban1 left, xenoterracide joined
lizmat nope 12:42
$ time perl6 -e 'my @a = (^10000)'
real0m0.309s
$ time perl6 -e 'my @a = (^10000); @a[^10000]'
real0m0.518s
12:42 SamuraiJack__ joined
Woodi sorting native type values could be optimized to native sorter... 12:44
C++ templates comes to mind :) j/k badly ! 12:45
arnsholt Oh, p6sort takes a closure argument. It could just be the invocation overhead of invoking the lambda O(n log n) times
retupmoca moar precompilation bugs: gist.github.com/retupmoca/9953591
lizmat arnsholt: that seems like a good explanation to me 12:46
retupmoca I now have two of my modules being broken by that bug :/
(when compiled, anyway) 12:47
dalek osystem: df9dfb7 | (Andrew Egeler)++ | META.list:
Add Net::DNS

Simple DNS resolver. Needs refactoring work, better tests, and more DNS query/response types, but it's a start!
12:48
LLamaRider Dream: all ground P6 operations should be crazy fast, as near to C speed as possible
and sort is maybe one of the most obvious ones 12:49
but i also remember reading P6 is not in a stage of optimizing the interpreter yet, so i'll give it a rest for now
12:55 kbaker_ joined
FROGGS LLamaRider: look at #moarvm and at GSoC, there is progress 12:56
but on the other hand, optimizing precomp bugs that not only retupmoca++ has, is not very helpful 12:57
12:58 a3gis joined 13:00 pdcawley joined, AW3i left
Woodi LLamaRider: probably we should stop to comparing scripting languages to C/C++ . until operations on native types will be _native_. for now that are just two different classes of languages benchmarksgame.alioth.debian.org/u6...;data=u64q 13:05
btw. do "compilation" means: no any jit required ? 13:07
LLamaRider Woodi: I am aware of that benchmark, we even discussed it with some colleagues recently. 13:11
We kind of had the feeling 10x-30x slower than C is the acceptable range for a scripting language 13:12
Woodi I will be happy with 1% better then perl5 or python :)
maybe not happy but content :) 13:13
LLamaRider I would be content with that too, I am using P5 for production already and it's doing great for my nature of work
13:15 a3gis left
colomon retupmoca++ # I'm seeing the same moar precomp bug in ABC 13:16
Woodi LLamaRider: scripting/interpreted languages are good for moust cases. but when company have no money to buy more servers and is starting to cut costs by firing employes then hell gates opens for humans there and you can start to disliking all unnesesary 'interpretations' of native values... then eg. html pages done by plain C programs could help... 13:19
lizmat If a company does not have enough money to buy more servers, and starts firing personnel, get the hell out of there 13:23
it only means that the company values hardware over people, and that's never good
the people of a company should be its greatest asset
13:23 bjz_ left 13:24 bjz joined, AW3i joined
retupmoca colomon: I've filed a bug at github.com/MoarVM/MoarVM/issues/88 for the time being 13:24
dalek kudo/nom: 09fbdc7 | (Elizabeth Mattijsen)++ | src/Perl6/Actions.nqp:
Remove unneeded extra level of if
13:25
retupmoca I don't know if it's moarvm-level, but hopefully that will start a discussion about it at least
sergot r: pir::time__N() 13:34
camelia rakudo-jvm 1bc429: OUTPUT«(timeout)»
( no output )
..rakudo-moar 1bc429: OUTPUT«===SORRY!===␤Error while compiling op call: To compile on the MoarVM backend, QAST::VM must have an alternative 'moar' or 'moarop'␤»
sergot How can I execute time__N without vm dependency?
withour pir::, moar:: etc.
without' 13:35
moritz r: say nqp::time_n() 13:39
camelia rakudo-moar 1bc429: OUTPUT«1396532359.87163␤»
..rakudo-jvm 1bc429: OUTPUT«1.39653235921E9␤»
..rakudo-parrot 1bc429: OUTPUT«1396532348.73757␤»
moritz sergot: ^^
13:40 rurban2 left 13:41 rurban left
[Coke] lizmat++ 13:41
Woodi hmm, nqp and rakudo installs into parrot subdirs. same case with moarvm ? 13:42
13:43 kaare_ left 13:44 a3gis joined 13:45 SamuraiJack__ left
lizmat m: winner * { done (Promise.new,Promise.new) {...} } 13:47
camelia rakudo-moar 1bc429: OUTPUT«Type check failed in assignment to '&block'; expected 'Callable' but got 'Promise'␤ in method STORE at src/gen/m-CORE.setting:7092␤ in block at src/gen/m-CORE.setting:18481␤ in sub WINNER at src/gen/m-CORE.setting:18476␤ in block at /tmp/lTOg…»
13:48 bluescreen10 joined
sergot moritz++: thanks! :) 13:48
lizmat jnthn: I think the above is caused by improper AST setup in src/Perl6/Actions.nqp, line 1369 and following
actually it's line 1371, I guess, as that sets up the Promise instead of a Callable in the call to WINNER 13:49
13:50 grondilu joined 13:52 rurban joined
Woodi I have 'moar' binary location in patch but nqp configure couldn't find it... 13:58
lizmat jnthn: or maybe I should adapt WINNER to handle the list of Promises case ?
retupmoca Woodi: it looks for the moar binary in $PREFIX/bin IIRC
Woodi retupmoca: but I installed parrot and moar in other locations and prefix can point onlyto one :) 13:59
13:59 jnap joined
retupmoca I think they need to be in the same prefix for nqp. Not sure if you can cheat with 'ln -s' or somesuch 14:00
Woodi I already have some environment polluted with lots of symlinks :) I install packages to some subdirs and then everything is linked to some standard prefix. must see how it will go with more backends then one 14:04
looks 'nqp-x' naming helped 14:06
14:06 AW3i left
Woodi but: perl Configure.pl --backend=parrot worked without --prefix 14:08
14:11 [Sno] left
FROGGS there is a default prefix 14:11
but yeah, I bet there are a few issues we need to address, not only the directory structure which is put into PEFIX 14:12
PREFIX*
Woodi I installed backends to /some/dir/backend-2014.03 then linked to /opt prefix and nqp detected parrot without problem. do --prefix for nqp means just: put nqp-x there or something more ? 14:15
probably I need something like: --parrotlocation= and --moarvmlocation 14:20
FROGGS it puts nqp + modules + libs + headers + docs there
dalek kudo-star-daily: 7474dc2 | coke++ | log/ (5 files):
today (automated commit)
Woodi so only one backend installed at once is allowed ? 14:21
no, probably it's just in my /opt links case... 14:23
14:23 dwarring left
FROGGS I always install all three backends to nqp/install 14:25
and that works well
[Coke] if I add the repository's sha, is it preferred to put it in the .csv ? 14:28
er, for perl6-roast-data
14:28 hoverboard joined
Ven `CATCH` is basically `given $!`, when I think about it ? 14:29
FROGGS [Coke]: in the MODULES.txt? 14:31
14:32 thou joined
FROGGS I think you have to 14:32
lizmat jnthn: the problem is actually in line 1370 in src/Perl6/Actions.nqp 14:34
in the case of "done @p", it seems it pushes all elements of @p as a list, not as an item 14:35
this causing it to take the wrong element for the block in WINNER, src/core/asyncops.pm line 48 14:36
so it would seem that we would need to itemize in 1370, and then handle multiple promises in WINNER 14:37
14:37 bluescreen100 joined
lizmat the latter I can do, the former I'm not sure what to do 14:37
away for a few hours&
Ven but `given` should `my`, uh
r: given 5 { .say; given 1 { .say; }; .say; }
[Coke] FROGGS: there is no modules text in the perl6-roast-data.
camelia rakudo-jvm 1bc429: OUTPUT«(timeout)» 14:38
..rakudo-parrot 1bc429, rakudo-moar 1bc429: OUTPUT«5␤1␤5␤»
Ven Why does the JVM Timeouts ?!
FROGGS [Coke]: ahh, I was thinking about star for some reason
Ven r-j: say "alive" 14:39
FROGGS [Coke]: but yeah, I think it makes sense to know which version was smoked
camelia rakudo-jvm 1bc429: OUTPUT«(timeout)»
[Coke] I'm looking at code now wondering "how has this worked for the past few months..."
14:40 bluescreen10 left, camelia left 14:41 camelia joined
FROGGS j: say "alive" # the first one will take minutes 14:41
Ven r-j: say "alive"
I'll get you one day, FROGGS
14:42 aborazmeh left, ChanServ sets mode: +v camelia
camelia rakudo-jvm 1bc429: OUTPUT«(timeout)» 14:42
Ven m: say 1
camelia rakudo-moar 1bc429: OUTPUT«1␤»
Ven Basically, `try` swallows any exception unless it has a `CATCH` block in it that doesn't catch the exception ?
Or will it swallow a non-catched exception for a later `CATCH` block ?
14:45 xfix left, TurkmIRC87578 joined 14:47 TurkmIRC87578 left
FROGGS j: say 1 14:49
camelia rakudo-jvm 1bc429: OUTPUT«(timeout)»
FROGGS :o(
14:51 treehug88 joined 14:56 mmachenry joined
moritz j: say 1 14:56
14:57 salv0 left
camelia rakudo-jvm 1bc429: OUTPUT«(timeout)» 14:57
14:57 salv0 joined, btyler joined 14:59 mmachenry left 15:00 kaare_ joined
Ven `CHECK say now - BEGIN now; ` What is this supposed to do ? 15:01
15:02 xfix joined
Ven I get that BEGIN now will be calculated when entering the scope, but what's CHECK ? 15:02
Can I do `LEAVE say now - BEGIN now;` in a function ?
r: sub a { LEAVE say now - BEGIN now; say "hello"; for ^500 {}; }; a(); 15:03
camelia rakudo-jvm 1bc429: OUTPUT«hello␤0.958␤»
..rakudo-parrot 1bc429: OUTPUT«hello␤0.22373523␤»
..rakudo-moar 1bc429: OUTPUT«hello␤0.08899836␤»
Ven You can see how much faster moar is ..
[Coke] ok, just adding "impl sha1" to the end of the CSV. 15:04
(because re-ordering the columns is a PITA) 15:05
should start showing up tomorrow.
was it lue++ who originally asked for that? 15:06
15:08 a3gis left 15:09 bluescreen100 left, bluescreen100 joined
jnthn o/, #perl6 15:10
retupmoca \o 15:12
15:12 LLamaRider left
jnthn is done with teaching for the day :) 15:12
15:18 rindolf left 15:20 denisboyun left 15:23 kurahaupo left
nwc10 jnthn: time to rehydrate? :-) 15:26
hoelzro ahoy #perl6! 15:28
jnthn nwc10: yeah, kinda debating where to do that 15:29
nwc10 in a place that also sells food? :-)
moritz oh hai 15:30
jnthn I could go over the sea to the main bit of the city, and find $interesting_bar, but I woke up with a sore foot and then stood on it teaching all day, so the hotel bar (which I believe has some decent things to drink, and nice food) is a tempting option :)
moritz question for the linguists: are there puns in all human languages?
jnthn I don't happun to know the answer 15:31
moritz jnthn: I knew there were puns in English, thank you very much :-) 15:32
15:34 brrt left 15:38 zakharyas left 15:39 kaleem left 15:40 jnap1 joined, jnap left, fhelmberger left 15:48 kurahaupo joined 16:09 denis_boyun joined 16:13 jnap1 left, jnap joined
Ulti moritz find it hard to imagine a pun in a click language... 16:15
geekosaur don't see why 16:16
[Coke] wow, I have access to another perl bug queue that has 10 year old tickets. 16:19
nwc10 perl5?
[Coke] (and is not perl5)
nwc10 qsmtpd?
Ulti geekosaur because the sounds are kind of more discrete and harder to confuse
[Coke] aye.
qpsmtpd, whoops.
dalek rl6-roast-data: 297be1b | coke++ | / (2 files):
Add the sha1 of the implementation used to test
16:22
[Coke] I'll do a fixup on today's commit to make sure the sha1s are there going forward. also, I have no idea how the sha1s were working for the past few months on the roast repo. 16:31
16:35 isBEKaml joined 16:49 hoverboard left, rindolf joined 16:54 guru joined, [Sno] joined, guru is now known as Guest49731, Guest49731 is now known as ajr_ 17:00 isBEKaml left 17:01 dakkar left
retupmoca timotimo, *: Imlib2 now builds with this PR applied: github.com/mrhdias/perl6-Imlib2/pull/3 17:13
17:13 virtualsue left
retupmoca some tests fail, but most seem to pass 17:13
17:27 SamuraiJack__ joined, kaleem joined, isBEKaml joined 17:32 hoverboard joined 17:38 hoverboard left
timotimo \o/ 17:44
for the moment, i only really need to open an image file and get the pixel values 17:45
retupmoca I don't recall offhand which tests were failing, but I *think* that part tested fine 17:47
timotimo great
i'm focusing on moarvm bytecode specializing for the moment, though
retupmoca yes, I'm very excited to see that hit master 17:48
Ven ( timotimo, what's that ? ) 17:50
timotimo the bytecode specializer? 17:51
well, when moarvm considers a piece of bytecode belonging to one particular callsite "hot", it will now use information gathered from the callsite (at run time) to create better bytecode for this particular callsite 17:53
jnthn already implemented a cache to speed up method lookups if the given type of an argument doesn't change often as well as removing decontainerize operations if it's known that the passed value is already decont'd 17:54
and he also made an optimization to remove checks for argument counts if the callsite "knows" the amount is correct 17:55
i extended this argument count check thing to also cover optional arguments and now i'm working on making "istype" extremely cheap for specialized routines/methods
17:57 kurahaupo left 17:58 a3gis joined 17:59 xfix left 18:01 xinming__ joined
timotimo sadly, the spectest suite revealed that the bytecode specializer currently causes trigonometry to no longer work 18:03
benabik tests++
18:04 xinming_ left 18:06 xfix joined 18:08 isBEKaml left 18:12 jnap left
moritz colomon 18:13
erm
colomon++ # writing most trig tests
timotimo: do you have any numbers on the speedup? 18:14
nwc10 right now, #11912 :-) 18:16
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=11912
18:18 kaleem left, jnap joined
timotimo moritz: at the moment we specialize after 10 calls, so we end up doing much, much, much more specializing work than would actually pay off 18:28
moritz timotimo: but of course it's easier to test if you specialize more often 18:29
timotimo exactly 18:31
how do i use valgrind's profiler again? 18:32
18:34 hummeleB1 left
timotimo ah 18:34
there i go
i can't open the file valgrind puts out o_O 18:37
ah, it's empty
... what?
oh, duh
forgot that perl6-m is a shell script 18:38
it seems like time spent in the specializer is not that big 18:39
maybe i'll just do a benchmark run and see where it leads 18:40
18:45 SamuraiJack__ left
lizmat r: sub a { for ^10 { return "foo" if $_ == 9 } }; say a 18:50
camelia rakudo-parrot 09fbdc, rakudo-jvm 09fbdc, rakudo-moar 09fbdc: OUTPUT«foo␤» 18:51
18:51 rurban_ joined
lizmat is just checking whether return from a sub from within a loop could be a problem 18:51
timotimo r: sub a { for ^10 { return "foo" when 9 } }; say a
camelia rakudo-parrot 09fbdc, rakudo-jvm 09fbdc, rakudo-moar 09fbdc: OUTPUT«foo␤»
timotimo ^ shorter :P
lizmat true, but not the point :-)
looking at WINNER and wondering why things are set up the way they are
lizmat is going to refactor that and hopefully fix winner * { done @p { ... } } on the fly 18:52
jnthn lizmat: (return from within a loop) only if you do something to make the loop lazy
lizmat ok, I don't think we have any lazy loops inside WINNER 18:53
specifically trying to get rid of $action = {...}; last } $action() 18:54
18:54 bluescreen100 left
timotimo that was for some reason 18:54
18:54 bluescreen10 joined
timotimo i made that mistake :) 18:54
18:55 thou left
lizmat ok, lemme see if I can recover that reason :-) 18:55
jnthn The specializer is relatively fast at what it does
But yes, we need more data to tweak the threshold 18:56
And it wants to be proportional to code size
18:57 btyler left 18:59 btyler joined
jnthn lizmat: I think issue is last not being properly lexotic so if $action does a last it terminates le loop. 19:03
lizmat but if the loop would live inside a sub, then we could just return out of it, no ? 19:04
and simplify the logic in the loop
arnsholt jnthn: Did you see the sort() slowness in the scrollback? Looks like the invoking the callback argument to p6sort is pretty expensive 19:06
jnthn arnsholt: It *may* be that, but I think it's also because sort does...uh...a few things oddly 19:07
Like, projecting out the indicses, sorting those, then slicing
Which is way too much work to be doing.
lizmat yeah, why?
arnsholt Yeah, I was a bit surprised that was what it did, but assumed there was a good reason for it
lizmat as did I 19:08
jnthn There's no good reason at all on JVM and Moar
lizmat aha, a parrot leftover then
jnthn It's a Parrot hangover; it was a way you could use RPA's .sort
lizmat but if we change it, will it break parrot?
arnsholt Ooooooh, right
jnthn lizmat: Yeah but #?if parrot... :)
lizmat :-)
timotimo moritz: running some benchmarks now 19:09
to see if we can already see a difference in run times
arnsholt Or we could do the NQP #89 work, and remove all uses of RPA from NQP
jnthn arnsholt: That doesn't really help us here, though.
arnsholt: Well, I mean, it may, but...
arnsholt: ...it just means we can't use its sort. :) 19:10
19:10 darutoko left
jnthn To be honest, I think there's better ways to use time thatn #89 19:10
arnsholt 'k
Completely unrelated: Whoa, MS open-sourcing large parts of .Net? Did not see that coming 19:11
jnthn I didn't see what license yet 19:12
moritz arnsholt: mostly the compiler, not the runtime
jnthn: apache 2.0
jnthn But yeah, the Roslyn open source is big news.
moritz: wow, that's, like, decent. :)
moritz jnthn: aye, not some CDDL or microsoft research license thingy
arnsholt Yeah, when I saw the headline I assumed it'd be MS's shared source licence or whatever, but Apache is pretty impressive 19:13
jnthn One other thing that surprised me is that java.lang.concurrent is in the public domain.
arnsholt Like, actual open source
jnthn arnsholt: New CEO for the win, maybe... :)
arnsholt Perhaps =) 19:14
vendethiel timotimo: (WRT bytecode specializer) actually JITing stuff, looks neat 19:15
timotimo no, JIT comes later :) 19:16
jnthn Well, this is arguably JIT :)
timotimo er ... i guess
jnthn Just back to bytecode :)
benabik What licence is mono? Can they just start importing big chunks of code now? :-)
moritz jnthn: I think that open sourcing something as big as what MS did takes more time for preparation than the new CEO is in office
jnthn What's important is, it's doing a lot of the decision making a good JIT would.
19:17 denis_boyun_ joined, dwarring joined
jnthn moritz: Yeah, I suspect so to... 19:17
moritz: otoh, vetoing it woulda been quick.
moritz benabik: wikipedia says "MIT, LGPLv2 and GPLv2"
19:18 denis_boyun left
benabik moritz: I also found mono-project.com/FAQ:_Licensing Turns out the answer depends on which bit of mono. :-[ 19:18
And it turns out mono already ships a fair amount of MS code. 19:20
moritz
.oO( stereo licensing for mono )
benabik moritz: And there’s a little bit of X11 license as well. O.o
benabik should probably read up on the CLR. 19:21
jnthn The CLR is fairly nice, overall.
benabik Mono on OS X hasn’t really been ideal to work with, and I haven’t really wanted to poke too much at MS’s tech. But apparently a lot more of it is open than I had realized. 19:22
jnthn benabik: Yeah, it's been gradually opening
benabik Looks like mono doesn’t need X11 on OS X anymore? 19:24
tokuhirom perl6-m -e 'Thread.new(code => { (1..10).say }).run' cause SEGV.. 19:25
jnthn tokuhirom: Yes, exit time is poorly handled and explosive at present.
tokuhirom oh, i see. 19:26
jnthn tokuhirom: Will get to it shortly.
tokuhirom :)
19:26 thou joined
jnthn m: Thread.new(code => { (1..10).say }).run.finish 19:26
camelia rakudo-moar 09fbdc: OUTPUT«1..10␤»
tokuhirom oh. i should fix my code 19:27
timotimo first of two benchmark runs done 19:31
so probably another 20 minutes until we see results 19:32
vendethiel can I just `shell "abc > myfile"` ? What do I remember another syntax ? 19:40
19:44 japhb_ left
dalek ast: 83f1c30 | (David Warring [email@hidden.address] | integration/advent2013-day15.t:
adding advent 2013 day 15
19:46
rl6-roast-data: 0b17734 | coke++ | bin/cull:
Fix typo, column placement
rl6-roast-data: bb66a67 | coke++ | perl6_pass_rates.csv:
today (automated commit)
19:47 ssutch joined
[Coke] ^^ that has the sha1 from the implementation used to run roast. 19:48
vendethiel r: say 5..1;
camelia rakudo-parrot 09fbdc, rakudo-jvm 09fbdc, rakudo-moar 09fbdc: OUTPUT«5..1␤»
vendethiel r: say (5..1).list;
camelia rakudo-parrot 09fbdc, rakudo-jvm 09fbdc, rakudo-moar 09fbdc: OUTPUT«␤»
[Coke] huh. github.com/coke/perl6-roast-data/b..._rates.csv isn't showing them. 19:49
vendethiel: say (1..5).reverse
m: say (1..5).reverse
camelia rakudo-moar 09fbdc: OUTPUT«5 4 3 2 1␤»
vendethiel [Coke]: thanks. Kinda "surprising"
[Coke] m: say 5,4,...1
camelia rakudo-moar 09fbdc: OUTPUT«===SORRY!=== Error while compiling /tmp/CyLX2OMKG3␤Comma found before apparent series operator; please remove comma (or put parens␤ around the ... listop, or use 'fail' instead of ...)␤at /tmp/CyLX2OMKG3:1␤------> say 5,4,…»
[Coke] m: say 5,4...1
camelia rakudo-moar 09fbdc: OUTPUT«5 4 3 2 1␤»
vendethiel yep 19:50
r: say (^5).reverse
19:50 japhb_ joined
camelia rakudo-parrot 09fbdc, rakudo-jvm 09fbdc, rakudo-moar 09fbdc: OUTPUT«4 3 2 1 0␤» 19:50
19:50 ssutch left
vendethiel r: say (^5).map: {*+1}.reverse 19:50
camelia rakudo-parrot 09fbdc: OUTPUT«No such method 'count' for invocant of type 'List'␤ in method reify at gen/parrot/CORE.setting:7466␤ in method reify at gen/parrot/CORE.setting:7381␤ in method reify at gen/parrot/CORE.setting:7381␤ in method reify at gen/parrot/CORE.setting:…»
..rakudo-moar 09fbdc: OUTPUT«No such method 'count' for invocant of type 'List'␤ in method reify at src/gen/m-CORE.setting:7521␤ in method reify at src/gen/m-CORE.setting:7432␤ in method reify at src/gen/m-CORE.setting:7432␤ in method reify at src/gen/m-CORE.setting:7432…»
..rakudo-jvm 09fbdc: OUTPUT«No such method 'count' for invocant of type 'List'␤ in method reify at gen/jvm/CORE.setting:7462␤ in method reify at gen/jvm/CORE.setting:7373␤ in method reify at gen/jvm/CORE.setting:7373␤ in method reify at gen/jvm/CORE.setting:7373␤ in met…»
vendethiel r: say (^5).map({*+1}).reverse
camelia rakudo-parrot 09fbdc, rakudo-jvm 09fbdc, rakudo-moar 09fbdc: OUTPUT«WhateverCode.new() WhateverCode.new() WhateverCode.new() WhateverCode.new() WhateverCode.new()␤»
vendethiel r: say (^5).map({$_+1}).reverse
camelia rakudo-parrot 09fbdc, rakudo-jvm 09fbdc, rakudo-moar 09fbdc: OUTPUT«5 4 3 2 1␤»
vendethiel WHAT DO YOU WANT FROM ME :( 19:51
jnthn .map(*+1) :)
vendethiel {*+1} is like {{$_+1}} ? 19:53
jnthn Right.
timotimo the performance different is tiny, but visible 19:59
and i'm not sure in which direction it points %)
jnthn We're a bit of work off having it smart enough to really get wins, I think. 20:01
I measured a small one already in a few informal bits of testing.
20:03 rindolf left
vendethiel r: shell "say $_" for ^5. 20:07
r: shell "say $_" for ^5;
camelia rakudo-parrot 09fbdc, rakudo-jvm 09fbdc, rakudo-moar 09fbdc: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Confused␤at /tmp/tmpfile:1␤------> shell "say $_" for ^5.⏏<EOL>␤ expecting any of:␤ postfix␤ dotty …»
( no output )
..rakudo-parrot 09fbdc, rakudo-moar 09fbdc: OUTPUT«shell is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting:2␤ in sub shell at src/RESTRICTED.setting:7␤ in block at /tmp/tmpfile:1␤␤»
vendethiel jvm isn't restricting shell ?!
PerlJam maybe it is, but it's not telling you :) 20:08
vendethiel Sneaky
20:11 rindolf joined
benabik r-j: say shell ‘echo oops’ 20:17
camelia rakudo-jvm 09fbdc: OUTPUT«===SORRY!=== Error while compiling /tmp/7h4YwS1Ws2␤Two terms in a row␤at /tmp/7h4YwS1Ws2:1␤------> say shell ⏏‘echo oops’␤ expecting any of:␤ argument list␤ prefix or term␤ pre…»
benabik Bah.
vendethiel r-j: say shell "echo oops"
camelia rakudo-jvm 09fbdc: OUTPUT«Proc::Status.new(exit => 0, pid => Any, signal => 0)␤»
vendethiel r-j: say shell "ls" 20:18
camelia rakudo-jvm 09fbdc: OUTPUT«Proc::Status.new(exit => 0, pid => Any, signal => 0)␤»
vendethiel doesn't look good anyway. FROGGS ?
moritz pleaes don't do anything to break rakudo-jvm on camelia
vendethiel I was there :P
FROGGS hmmm, I dunno why that says exit 0 :/ 20:19
vendethiel 'cause that worked :p ?
FROGGS :o)
I hope not
vendethiel try it.
better to see if it's a real problem when you can control it 20:20
moritz it's a limitation of the evalserver setup that camelia uses for perl6-j
FROGGS vendethiel: yeah, perhaps try it locally 20:21
perl6-j -e 'say shell "echo oops"' 20:22
oops
Proc::Status.new(exit => 0, pid => Any, signal => 0)
20:36 ssutch joined
timotimo gist.github.com/timo/96786ad28c974fdaa9d9 \o/ 20:44
vendethiel timotimo++ 20:48
[Coke] ok. the *CSV has the number, but have to scroll to the right to see the sha1s once it is done rendering.
I will switch this and make the notes the last field, and the sha1 the second to last, so for the common case, no scrolling.
but for now, you can click and hit the -> key
20:50 colomon left 20:51 colomon joined 20:53 hoverboard joined
dwarring masak: I've changed eval(...) => EVAL(...) perl6advent.wordpress.com/2013/12/1...ting-them/ 21:04
21:07 vendethiel left, vendethiel joined 21:10 colomon left 21:12 vendethiel left 21:13 vendethiel joined 21:18 kaare_ left 21:21 treehug88 left
[Coke] moritz: pcre-config on host07 - not installed. any idea how to see what version of pcre is installed there? 21:25
(and how to make sure it has UTF support?)
geekosaur look for libpcre.so.* 21:26
21:26 grondilu left
geekosaur (pcre-config would only be installed with a devel package on most linuxes) 21:26
21:26 kbaker_ left
[Coke] /usr/lib/x86_64-linux-gnu/libpcreposix.so.3.13.1 21:27
segomos old
[Coke] .ask moritz if we can get a recent pcre on host07 with UTF support to try to fix Pugs. Thanks! 21:29
yoleaux [Coke]: I'll pass your message to moritz.
lizmat r: sub a (*@a) { @a.push: "foo"; say @a }; a <a b> # this feels wrong 21:38
camelia rakudo-parrot 09fbdc, rakudo-jvm 09fbdc, rakudo-moar 09fbdc: OUTPUT«a b foo␤»
lizmat should we mark *@a as "is copy" for .push to work on it without problems?
jnthn lizmat: No, I think it's fine - it's "your" array really 21:39
lizmat ok, just wondering 21:41
I mean, for scalar we must mark them as "is copy", and their "mine" as well :-)
[Coke] r: sub a (@a) { @a.push: "foo"; say @a }; a <a b>
camelia rakudo-jvm 09fbdc: OUTPUT«Cannot call 'push'; none of these signatures match:␤:(Any:U \SELF: *@values, *%_)␤ in any at gen/jvm/BOOTSTRAP.nqp:1212␤ in any at gen/jvm/BOOTSTRAP.nqp:1202␤ in method push at gen/jvm/CORE.setting:1610␤ in sub a at /tmp/tmpfile:1␤ in blo…»
..rakudo-parrot 09fbdc: OUTPUT«Cannot call 'push'; none of these signatures match:␤:(Any:U \SELF: *@values, *%_)␤ in any at gen/parrot/BOOTSTRAP.nqp:1219␤ in any at gen/parrot/BOOTSTRAP.nqp:1210␤ in method push at gen/parrot/CORE.setting:1614␤ in sub a at /tmp/tmpfile:…»
..rakudo-moar 09fbdc: OUTPUT«Cannot call 'push'; none of these signatures match:␤:(Any:U \SELF: *@values, *%_)␤ in method push at src/gen/m-CORE.setting:1610␤ in sub a at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
lizmat r: sub a ($a) { $a.push: "foo"; say $a }; a [<a b>] 21:42
camelia rakudo-parrot 09fbdc, rakudo-jvm 09fbdc, rakudo-moar 09fbdc: OUTPUT«a b foo␤»
[Coke] that one bothers me more.
21:43 denis_boyun_ left
lizmat r: my $b= [<a b>]; sub a ($a) { $a.push: "foo" }; a $b; say $b # [Coke] : you mean like this action at a distance ? 21:43
camelia rakudo-parrot 09fbdc, rakudo-jvm 09fbdc, rakudo-moar 09fbdc: OUTPUT«a b foo␤»
21:44 denis_boyun___ joined 21:45 grondilu joined 21:48 woolfy left 21:49 woolfy1 joined
lizmat r: my @b = <a b>; sub a (@a) { @a.push: "foo" }; a @b; say @b # actually the same with arrays 21:57
camelia rakudo-parrot 09fbdc, rakudo-jvm 09fbdc, rakudo-moar 09fbdc: OUTPUT«a b foo␤»
lizmat r: my @b = <a b>; sub a (@a) { @a = "foo" }; a @b; say @b # resetting array at a distance 21:58
camelia rakudo-parrot 09fbdc, rakudo-jvm 09fbdc, rakudo-moar 09fbdc: OUTPUT«foo␤»
lizmat r: my $b= [<a b>]; sub a ($a) { $a = ["foo"] }; a $b; say $b # only if we assign to a scalar, we get told we can't 21:59
camelia rakudo-parrot 09fbdc, rakudo-jvm 09fbdc, rakudo-moar 09fbdc: OUTPUT«Cannot assign to a readonly variable or a value␤ in sub a at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
21:59 bluescreen10 left 22:02 dmol left, rurban left 22:03 lustlife1 left 22:04 hoverboard left, dmol joined, DarthGandalf joined
dalek p/jnthn-lex-loc: 44181ad | jonathan++ | src/NQP/Optimizer.nqp:
Start recording var decls/usages.
22:04
p/jnthn-lex-loc: d062aa3 | jonathan++ | src/NQP/Optimizer.nqp:
Implement lexical => local lowering.
p/jnthn-lex-loc: a83cec1 | jonathan++ | src/NQP/Optimizer.nqp:
Can lower $/ and self also.
22:06 grondilu left
[Coke] jnthn: poisened -> poisoned, prolly. 22:08
22:09 bjz_ joined
[Coke] weird that you got it everywhere but the comment. :) 22:09
22:09 bjz left
[Coke] so this is making this block local where possible? 22:09
jnthn++
jnthn [Coke]: yeah :)
[Coke] jnthn++, continuing to be awesome. 22:10
jnthn [Coke]: Well, not just the block, but the variables.
[Coke]: It'll help spesh do its thing on NQP code much better once I get the next round of patches in there.
Apart from that'll make it clever enough I'll actually have to imlement deopt.
*imlement 22:11
geekosaur an imp stole your p 22:12
(or your implement) 22:13
timotimo jnthn: does it already turn blocks into stmts?
dalek p/jnthn-lex-loc: 39e7a00 | jonathan++ | src/NQP/Optimizer.nqp:
Fix spello; [Coke]++.
22:14
jnthn timotimo: yes 22:15
22:15 bjz_ left, bjz joined
timotimo that's excellent news :) 22:17
tested with how many backends so far? :)
jnthn Moar only. 22:18
timotimo should i test more than just moar?
jnthn If anybody wants to take up testing this more widely, that'd be wonderful.
Yeah, 'cus the optimizer affects all backends.
I don't immediately see why it'd break things.
But should try on all of them.
22:20 hoverboard joined
jnthn If no NQP and Rakudo spectests regressions are observed in any backend, I'm happy for it to be merged 22:20
Will be away teaching tomorrow, so I won't get to it for a bit. 22:22
But if somebody else would like to, that's great. :)
22:22 rurban joined 22:23 telex left
jnthn Also a p6bench run for NQP on the various backends before/after this could be wise. 22:24
timotimo Exception in thread "main" org.perl6.nqp.runtime.UnwindException
22:24 telex joined
timotimo not quite sure how to interpret and/or fix this 22:24
jnthn :/ 22:26
22:26 a3gis left
jnthn Me either. 22:26
Where's that from?
22:27 BenGoldberg joined 22:28 dmol left
timotimo ./nqp-j --target=jar --output=NQPP5QRegex.jar \ 22:29
gen/jvm/stage2/NQPP5QRegex.nqp
so "first piece of code to translate with the stage1" 22:30
jnthn Try adding --stagestats to see where it blows up
timotimo will d 22:31
immediately
as in: 22:33
it dies before it outputs anything
jnthn ugh :(
ok, no idea 22:34
There's an env var you can set that gives explicit exceptions.
(the jvm ones)
I need to sleep now
'night
timotimo okay 22:35
i'll continue with parrot and moar only
22:40 rindolf left, denis_boyun___ left
timotimo Stage parse : make: *** [CORE.setting.moarvm] Segmentation fault 22:41
22:42 denisboyun joined 22:48 denisboyun left
timotimo doesn't crash without spesh branch 22:52
22:57 a3gis joined
dalek kudo/nom: 972ef02 | (Elizabeth Mattijsen)++ | src/core/Numeric.pm:
Allow for .sleep on numbers

Getting tired of typing "sleep $_" all the time, while ".sleep" sits in my fingers
22:58
lizmat aka: $ perl6 -e 'say time; $_ = 2; .sleep; say time' 22:59
1396565955
1396565957
and with that inspiration, I bid you all a good night!
22:59 btyler left
lizmat git diff 23:00
timotimo was a dumb idea to try to run the spectests with spesh 23:04
but without spesh i get all except roles/anonymous and the concurrency tests workin' 23:05
this is more serious, though: Stage parse : Null PMC access in get_string() 23:06
23:06 xenoterracide left 23:10 colomon joined 23:11 bjz left, bjz_ joined 23:12 hoverboard left 23:14 Khisanth left 23:18 hoverboard joined, xenoterracide joined 23:20 colomon left 23:28 Khisanth joined 23:29 a3gis left 23:42 xinming__ left 23:44 xenoterracide left 23:48 xinming_ joined 23:55 xenoterracide joined 23:59 colomon joined