»ö« 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.
japhb lue: Sorry, got pulled away. Looking again. 00:04
1: .elems is unnecessary when peforming math ops on an array 00:05
2: $end doesn't need to be computed; it's just .end
3: 'if ... { return True; }' more idiomatic as 'return True if ...' 00:06
4: No parens needed on params of -> block of for 00:07
lue japhb: Seems like those things would be best as your own comment, rather than me editing them into mine :) 00:08
japhb 5. Don't need to use a $-sigil scalar to store a Code reference; just use a & sigil and call it normally 00:09
Oh, I was just giving you examples.
But sure, I suppose so.
Commit commented on. 00:11
00:23 denisboyun left 00:25 daniel-s joined 00:27 pecastro left 00:29 jeffreykegler joined
dalek pan style="color: #395be5">perl6-examples: e5eac13 | lue++ | 99-problems/P08-viklund.pl:
[99-probs] Fix P08-viklund.pl

Now, that 'our multi' fix is no longer needed, and in fact breaks the script.
00:40
00:40 vky joined 00:53 stevan_ joined, stevan_ left 00:54 stevan_ joined 00:58 araujo joined 00:59 araujo left
clsn So. I think I have Signature and Parameter matching and .perling working well. 01:00
01:01 jnap left
timotimo \o/ 01:01
clsn I guess I should format a patch or something.
(had the most infuriating bug earlier. Ever notice that anything ~~ $_ is always True? Annoying when you expect $_ to be something) 01:02
01:03 thou left
clsn Wonder if I should do an eqv for Signatures/Parameters too. 01:03
Enh, I suppose X ~~ Y and Y ~~ X is about right. 01:04
I made up a few test cases for Signature matching; I suppose I should submit them to roast. 01:07
<clsn> Enh, I suppose X ~~ Y and Y ~~ X is about right. -- Actually, not really... ~~ doesn't take rw into account, for example. Glah. well, I'll think about it. 01:10
01:14 denis_boyun joined 01:17 denis_boyun left 01:19 jnap joined 01:24 Ben_Goldberg is now known as BenGoldberg 01:42 skids joined 01:54 vky left 02:10 panchiniak left 02:15 daniel-s left 02:21 skids left 02:29 Mouq left 02:32 MARGELYSR_MORA21 joined 02:33 skids joined 02:36 rurban1 joined 02:39 bluescreen__ left 02:41 slavik1 left 02:45 rurban1 left 02:46 jnap left 02:49 kaleem joined 02:52 Vlavv__ left, dayangkun left 02:54 slavik joined 02:57 jeffreykegler left 02:59 jeffreykegler joined 03:02 kaleem left 03:03 Mouq joined 03:04 MARGELYSR_MORA21 left 03:05 dayangkun joined 03:32 labster joined 03:35 kbaker_ joined 03:50 jeffreykegler1 joined 03:51 jeffreykegler left 03:56 thou joined 04:01 mumukshu joined
mumukshu hi 04:02
04:02 mumukshu left 04:09 gfldex joined 04:12 preflex_ joined, ChanServ sets mode: +v preflex_ 04:14 preflex left, preflex_ is now known as preflex 04:24 SamuraiJack joined 04:34 thou left
dalek t--IRC/concurrency: 8f8e477 | (Geoffrey Broadwell)++ | lib/Net/IRC/Logger.pm:
Minor readability cleanup
04:34
t--IRC/concurrency: 1543ec9 | (Geoffrey Broadwell)++ | lib/Net/IRC/Logger.pm:
Considerably speed up logging so it's not a bottleneck (for now at least)
t--IRC/concurrency: 30de528 | (Geoffrey Broadwell)++ | lib/Net/IRC/SocketConnection.pm:
Various SocketConnection improvements

  * Better debugging output
  * Ability to log privacy-scrubbed messages
  * .sendln method
  * Factor out !start-threads from .new
  * Various minor code cleanups
04:44 raiph left 04:49 skids left
BenGoldberg .ping 04:51
moritz .pong 04:53
04:53 BenGoldberg left 05:22 kbaker_ left 06:02 immortal joined 06:04 erkan left 06:18 kaleem joined 06:20 dayangkun left 06:21 mtj_- left 06:24 sergot left 06:25 sergot joined 06:26 mtj_ joined 06:29 dayangkun joined 06:40 darutoko joined 06:43 Mouq left 06:50 jeffreykegler1 left 06:52 xinming_ left 06:53 xinming joined 06:58 xinming left, xinming_ joined 07:02 bjz left 07:09 FROGGS left, grep0r left 07:16 yoleaux joined, ChanServ sets mode: +v yoleaux 07:18 hummeleBop joined
raydiak well, I eventually got rakudo jvm to build on my laptop by putting more ram in it...seems 2 gigs was the minimum required in my case...never did figure out why it wouldn't swap 07:28
moritz raydiak: maybe the JVM marks it memory pages as non-swappable, or something 07:29
I'm pretty sure there is such a mechanism, to avoid swapping of passwords, for example
raydiak moritz: that's a decent guess...though there are many wires I didn't jiggle like ulimits, kernel config, etc 07:31
07:33 AW3i joined
raydiak I'm mostly just trying to not have to invest too much energy into this sorry machine until I can replace it with something not half broken and with a hard drive :) 07:33
but I wanted something with multiple cores to develop Pray concurrency on, so now I have that at least 07:34
07:40 FROGGS joined 07:47 immortal left 07:48 AW3i left 07:55 AW3i joined 07:57 berekuk joined 08:14 virtualsue joined 08:17 zakharyas joined 08:22 LLamaRider joined 08:26 [Sno] left 08:37 dmol joined 08:39 salv0 left 08:42 virtualsue left 08:44 salv0 joined 08:51 dayangkun left 08:56 grep0r joined
hoelzro morning #perl6 09:02
yoleaux 15 Jan 2014 22:37Z <raiph> hoelzro: questhub.io/realm/perl/quest/52bca7...e15d0000ca
09:03 dayangkun joined 09:06 bjz joined
tadzik apparently you _do_ live twice 09:06
hello hoelzro
09:07 rindolf joined 09:08 berekuk left 09:11 Vlavv` joined
lizmat good *, #perl6! 09:12
tadzik, hoelzro o/
09:12 salv0 left, salv0 joined
FROGGS morning all 09:12
lizmat FROGGS o/ 09:13
FROGGS o/
lizmat is still looking at the my @a := 5 issue 09:14
or more verbosely, and at run time: 09:15
r: my @a; my $b=0; my @b := @a[$b]
camelia rakudo-parrot 4f66ce: OUTPUT«Type check failed in binding; expected 'Positional' but got 'Any'␤ in block at /tmp/pBzmgOhCx1:1␤␤»
..rakudo-jvm 4f66ce: OUTPUT«Type check failed in binding; expected 'Positional' but got 'Any'␤␤»
lizmat feels to me that so far we can think of a scalar value as a one element array/list 09:16
except when binding
and I wonder whether that is consistent or wanted 09:17
that it fails in the above cases
some spelunking showed me that this will probably will have to be fixed in perl6_assert_bind_ok in C 09:18
jnthn: any thoughts?
hoelzro ahoy tadzik and lizmat 09:20
09:24 AW3i left
moritz r: my @a; my $b=0; say @a[$b].WHAT 09:25
camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«(Any)␤»
moritz why fixing? it's correct
hoelzro .tell raiph why did you point that QH quest out to me?
yoleaux hoelzro: I'll pass your message to raiph.
moritz binding doesn't coerce (like assignment)
hoelzro thanks yoleaux! 09:26
lizmat moritz: maybe it should?
moritz lizmat: nope
lizmat: binding is a low-level operation
lizmat: when you mess with it, you'd better know what you're doing :-)
09:27 PZt left
lizmat ok, so how do you stand on slices returning scalars depending on number of elements? 09:27
if elemens == 1, return scalar from slice
hoelzro any further thoughts on how binding and type-constrained hash keys should interact? =)
moritz +1
hoelzro ex. my %hash{Int} := MyHashImpl 09:28
er
ex. my %hash{Int} := MyHashImpl.new
09:28 thou joined
moritz hoelzro: is the {Int} a type constraint? Or a container initialization thingy? 09:28
lizmat ok, so I implemented slices return a scalar if .elems == 1
hoelzro moritz: it's a constraint on the keys
lizmat++ impl'd it
moritz hoelzro: I know it is
lizmat and I get *massive* breakage in the spectest because my @a := @b[slice] sometimes returns a scalar 09:29
moritz hoelzro: but that doesn't answer my question
lizmat: then maybe it's not such a good idea after all :(
hoelzro: let me explain: my %hash; constraints %hash to Positional, but initializes %hash with type Hash
lizmat well, if my @a := 5 would work, it *would* be a good idea and completely consistent 09:30
09:30 [Sno] joined
moritz hoelzro: so there are two things here: a property of the container, and a property of the object that's stored in it 09:30
09:30 pecastro joined
moritz s/Positional/Associative/, but you get the idea 09:30
lizmat afk for a few hours&
moritz hoelzro: so, the question I'm asking: does the {Int} go into the container type constraint? 09:31
09:35 dakkar joined
masak good antenoon, #perl6 09:43
arnsholt 'lo 09:44
masak lizmat, moritz: fwiw, I'd rather have the scalar/list semantics be consistent than dwimmy.
that is, I don't mind if it's sometimes single-minded and doesn't give me exactly what I wanted -- as long as I can look at the code and figure out what it will give me, statically. 09:45
09:45 salv0 left, salv0 joined 09:46 DrEeevil is now known as AmazingPudding
moritz r: my %h; say so %h{'a'}:exists 09:46
camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«False␤»
moritz r: my @a; say so @a[0]:exists
camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«False␤»
moritz r: my @a; say so @a[-> $ { 0 }]:exists 09:47
camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«True␤»
moritz r: my @a; say so @a[*+1]:exists
camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«True␤»
moritz finds that really unintuitive
masak what's the proximal cause?
hoelzro moritz: ooooooh
FROGGS r: my @a; say (@a[*+1]:exists).perl 09:48
camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«(Bool::False,)␤»
hoelzro I understand (I think)
masak ah, yes.
'so' on a 1-elem list.
hoelzro I believe that (at least in terms of the implementation) it's a property of the underlying Hash
moritz hoelzro: if it's not a type constraint on the container, it won't interfere with binding.
hoelzro but that means I can do my %hash{Int} := MyHash.new; %hash<foo> = 'bar'; doesn't it? 09:49
moritz yes 09:54
hoelzro hmm 09:59
well, if that's the case
then I think I will try my hand at implementing fixed size arrays in a simliar fashion
10:03 labster left 10:10 labster joined 10:11 erkan joined 10:14 stevan_ left
masak when I make a language, it won't have the scalar-vs-1-element-list dwimming. :) 10:38
at least not in the main slang.
moritz has a long mental "when I make a language" list 10:40
"if I were a god, I'd be *nice*" podcastle.org/2012/06/26/podcastle-...y-brother/ 10:45
10:46 berekuk joined 10:50 berekuk left 10:52 FROGGS[mobile] left, FROGGS[mobile] joined 10:54 mtk left 10:59 d^_^b left 11:00 d^_^b joined, mtk joined 11:04 FROGGS[mobile]2 joined 11:05 pnu left 11:06 denis_boyun joined 11:07 FROGGS[mobile] left 11:08 pnu_ joined 11:11 thou left
masak moritz: :) 11:16
11:16 smls joined
smls re recent log: I'm with masak here, I think array indexing vs array slicing should be distinguishable syntactically 11:22
11:24 FROGGS[mobile]2 left 11:26 FROGGS[mobile] joined, FROGGS[mobile] left, PZt joined 11:29 fhelmberger joined 11:32 thou joined
lizmat masak, moritz: perhaps a :parcel adverb ? 11:37
@a[@b]:parcel would guarantee a parcel, even if only 1 element? 11:38
11:43 Ulti_ is now known as Ulti 11:47 rindolf left 11:48 rindolf joined 11:54 baest_ joined 11:56 baest left, rindolf left, rindolf joined 11:59 rindolf left, rindolf joined 12:01 rindolf left, rindolf joined, bjz left 12:03 fhelmberger_ joined 12:04 fhelmberger left
masak lizmat: seems sane at first glance. 12:09
(that would mean sanity is still opt-in... but maybe Perl as a whole is too committed to the idea of scalar things being indistinguishable from 1-elem lists) 12:10
moritz r: say 1.Parcel 12:14
camelia rakudo-parrot 4f66ce: OUTPUT«No such method 'Parcel' for invocant of type 'Int'␤ in block at /tmp/s73rDTJwJ6:1␤␤»
..rakudo-jvm 4f66ce: OUTPUT«No such method 'Parcel' for invocant of type 'Int'␤␤»
moritz maybe a Any.Parcel method
and then we can get simply say .Parcel, and don't need to invent yet another adverb
hoelzro whoa, when did Gist start supporting Perl 6?
masak moritz: +1 12:15
hoelzro I swear that it didn't like 2 weeks ago, even though other parts of GH did
tadzik woo
masak hoelzro: nice!
jnthn morning, #perl6 12:16
preflex jnthn: you have 3 new messages. '/msg preflex messages' to read them.
jnthn uh...wait...which timezone am I...oh. :)
moritz hoelzro: iirc somebody said yesterday that it gist didn't support Perl 6
hoelzro: so might have started last night/today
hoelzro sweet
jnthn ooh, gist supporting Perl 6 is nice :) 12:17
FROGGS cool!
indeed, it works now 12:18
lunch &
xfix codegolf.stackexchange.com/a/18616/3103
wow, code golf problem with two pages 12:19
Perl 6 wins for now
With -47 bytes.
12:19 sftp_ joined
moritz r: say[+]1..5 12:19
camelia rakudo-jvm 4f66ce: OUTPUT«===SORRY!=== Error while compiling /tmp/qMi_ud_MSu␤Preceding context expects a term, but found infix + instead␤at /tmp/qMi_ud_MSu:1␤------> say[+⏏]1..5␤»
..rakudo-parrot 4f66ce: OUTPUT«===SORRY!=== Error while compiling /tmp/eTFl578ZSS␤Preceding context expects a term, but found infix + instead␤at /tmp/eTFl578ZSS:1␤------> say[+⏏]1..5␤»
moritz r: say [+]1..5 12:20
camelia rakudo-jvm 4f66ce: OUTPUT«===SORRY!=== Error while compiling /tmp/JwTk5X5VJu␤Two terms in a row␤at /tmp/JwTk5X5VJu:1␤------> say [+]⏏1..5␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤ …»
..rakudo-parrot 4f66ce: OUTPUT«===SORRY!=== Error while compiling /tmp/Io6d6SIQKd␤Two terms in a row␤at /tmp/Io6d6SIQKd:1␤------> say [+]⏏1..5␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤ …»
moritz r: say [+] 1..5
camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«15␤»
moritz r: say[+] 1..5
camelia rakudo-jvm 4f66ce: OUTPUT«===SORRY!=== Error while compiling /tmp/UG8g7nBxW8␤Preceding context expects a term, but found infix + instead␤at /tmp/UG8g7nBxW8:1␤------> say[+⏏] 1..5␤»
..rakudo-parrot 4f66ce: OUTPUT«===SORRY!=== Error while compiling /tmp/_IgH6q9yil␤Preceding context expects a term, but found infix + instead␤at /tmp/_IgH6q9yil:1␤------> say[+⏏] 1..5␤»
moritz grumbles
xfix Yeah, [+] operator annoys me.
moritz r: say [+](1..5)
camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«15␤»
moritz but you can get rid of that one whitespace
cause you already have parens around the argument 12:21
masak jnthn! \o/
xfix say [+] (1..get.eval)».comb
But... I call at method on it.
jnthn o/ masak
xfix Won't this change precedence?
12:21 sftp left
xfix call a method* 12:21
The parens here are for a reason. 12:22
moritz xfix: why don't you try? 12:23
r: say [+](4, 5).join
camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«9␤»
moritz r: say [+] (4, 5).join
camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«45␤»
moritz ok, it does change it. Never mind.
12:34 thou left
jnthn lizmat: my @a := 5 # should fail, I remember a time when it did not and it was agreed that this was a bug. Binding is low level. Please don't try to put magic into binding; magical things going on in stuff that's supposed to be low level is already making optimization a huge pain 12:35
lizmat fair enough
jnthn hoelzro: my %hash{Int} is a type constraint on the keys
lizmat but that means that if you want to bind the result of something that you don't know is going to be an array or not 12:36
you cannot use an array
which in itself bars some optimizations, no?
hoelzro jnthn: right, but what does that mean if I bind another Associative to that hash?
lizmat my $a := @a[@b]
rather than:
my @a := @b[@c] 12:37
jnthn hoelzro: That it should be ~~ Hash[Mu, Int], iirc 12:38
lizmat: If you don't know what you're going to have then coerce it to be sure.
lizmat: No, I don't see how it bars optimization.
lizmat because at compile time with @a you know you have a positional, whereas with $a you don't know what you're going to get at runtime 12:39
jnthn lizmat: Well, I can maybe see...ish...but I'm pretty sure avoiding the check is a bigger win
lizmat: The other thing to keep in mind is that if you want binding to be that magical, then for consistency one might well expect that:
sub foo(@a) { }; foo(1)
To also work.
'cus signature binding is also a case of binding. 12:40
And I'm pretty sure we can't do that, since relying on multi-dispatch distinguishing array vs scalar matters.
lizmat ok
jnthn In fact, I know to-json in JSON::Tiny relies on (and gets good use out of) this. 12:41
lizmat but what do you think about slices returning a scalar depending on the number of values returned ?
if .elems == 1, then scalar, else Parcel
jnthn I'm not sure it's about number of results so much as which of the multi candidates for postcircumfix you hit 12:42
Though, I can see that @a[0]:v is an icky case
lizmat well, that's just it
jnthn 'cus it's meant to strip, or whatever we call it
lizmat yup
and even with *-1
jnthn Yeah. I see the problem.
lizmat which is what originally spurred my spelunking 12:43
cause that's indistinguishable from -> {(0,1,2)}
and *that* would return a Parcel
jnthn I'm pretty sure that we can't, performance wise, get away with constructing a Parcel for every array access.
lizmat and people expect *-1 to *not* return a Parcel
jnthn Yeah 12:44
hoelzro jnthn: sorry, what does 'it' resolve to here?
%hash, or the new Associative?
lizmat I implemented .elems == 1 returning a scalar
jnthn hoelzro: The new associative. Each symbol has a bind constraint.
lizmat and get rather massive failures in the spectest
because of my @a = @b[@c] returning a scalar 12:45
jnthn lizmat: Hmm
lizmat * :=
hoelzro jnthn: so the bind should fail if the new associative doesn't ~~ Hash[Mu, Int], you say?
12:45 dakkar left
jnthn hoelzro: I think Hash may be too specific, actually 12:46
hoelzro: I mean, my Int @a := ... needs the ... to be ~~ Positional[Int]
And I think the bind constraint on a %-y thing wants to be Associative[...]
lizmat: I think that @b[@c] will always hit the Positional case in multi-dispatch 12:47
lizmat: And could consistently be a Parcel
lizmat: I guess the challenge is to think of simple rules
lizmat mode the Whatever case is ambiguous
12:47 spider-mario joined
lizmat s/mode/but 12:47
jnthn Yeah, the Whatever case is. That's about the only one where I can't see a better way than .elems, though that feels icky 12:48
xfix std: foreach my $x (1) {}
camelia std 09dda5b: OUTPUT«===SORRY!===␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/PbZlA2qcKi line 1:␤------> foreach my $x (1) ⏏{}␤ expecting any of:␤ constraint␤ infix or me…»
lizmat and with adverbs it becomes more blurry
hoelzro jnthn: I'm just wondering if my %hash{Int} := MyHashImpl.new is even valid
xfix It still doesn't require this Perl 5 construct?
hoelzro I'm guessing that the bind needs to check MyHashImpl for some properties on top of associative (namely, the type params)
jnthn Well, the adverbs all strip, so I could see "if you adverb we always Parel" as a rule
hoelzro on a side note, speaking of the gist coloring, I found this gem in the logs:
irclog.perlgeek.de/perl6/2012-08-02#i_5868670
talk about foreshadowing =P 12:49
jnthn hoelzro: At the moment Associative only cares for the value type, and lacks a second key type parameter
12:50 bjz joined
lizmat fwiw, I feel we need to be consistent 12:50
jnthn hoelzro: that likely wants to change.
hoelzro jnthn: the reason I ask is because I'm interested in trying to impl fixed size/shaped arrays, and wonder how I should handle binding
12:50 bjz left
lizmat since any scalar value can be assumed to be a 1 element list/array 12:50
there is no harm returning a scalar in case of a 1 element parcel
12:50 bjz joined
jnthn hoelzro: Well, there's already a patch doing fixed size arrays 12:50
12:50 bjz left
jnthn hoelzro: Which has been through some code review. 12:50
12:51 bjz joined, bjz left
hoelzro ah ha 12:51
Ulti are the fixed size also native shaped?
jnthn lizmat: True, "if there's one result, you get a scalar" is an easy to remember rule
Ulti as in just offset arrays
12:51 bjz joined
lizmat and then we just have to tell everybody that if you bind to a slice 12:52
jnthn lizmat: Probably one for TimToady++ to weigh in on
lizmat you shouldn't use an array
jnthn lizmat: tbh the vast majority of folks assing rather than bind
uh, assign
lizmat indeed
jnthn ...I hate that typo...
...it's a pain in the butt.
lizmat but there's plenty of spectests that need to be fixed if my @a := 5 is not going to work
and possibly in the core as well 12:53
and most likely in the ecosystem as well
not to mention darkpan
jnthn Well, I'm quite confidnet saying "my @a := 5" is not going to work. I'd be very surprised and kinda concerned if we ruled the other way on that one.
s/we/TimToady/
lizmat I can live with that 12:54
don't get me wrong
jnthn The "one elem = scalar" rule, I'm not so sure
lizmat well, at the moment, it is almost arbitrary what you get
jnthn I'd hold fire a little just to let TimToady have a chance to weigh in. He may have an answer we all missed. :)
Yes, I'm not defending the status quo at all :)
moritz r: say (1..5).pick.^name
camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«Int␤»
moritz r: say (1..5).pick(1).^name
camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«Int␤»
jnthn The only thing I have a strong feeling on here is the := semantis
moritz r: say (1..5).pick(1..1).^name
jnthn *semantics
camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«Int␤»
moritz r: say (1..5).pick(2).^name
camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«List␤»
moritz r: say 1.map(*+1).^name 12:55
camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«List␤»
moritz jnthn: I agree with you on the binding semantics
lizmat jnthn: wrt to making @a := 5 work 12:56
the way I see it, is that this would not be a burden on current execution speed
only if the initial test fails (which now throws the exception)
only then would a list be created in which the scalar would be put, which would then be bound 12:57
so the normal code path would not have any change
jnthn lizmat: Well, but the consistency with parameter binding is still a strong argument not to do it. 12:58
lizmat: And it's not just speed we should be concerned with, but code size
lizmat apart from some extra C-code, how would this affect code size ?
jnthn (Because more compact generated code = more of it in L1)
lizmat the generated code would still be the same, no?
jnthn You're only looking at the Parrot way of doing it, though 12:59
lizmat ah, ok
jnthn On Moar it isn't a C op
It emits istype
And a branch
lizmat ok
yes, looking only from Parrot standpoint atm
jnthn 'cus we want the type specializer to be able to deal with istype statically when it can
whcih I guess with dead code elimination means it'd throw away the extra code you're suggesting at specialization point... 13:00
...so it's not the end of the world.
I think the inconsistency we'd introduce with parameter binding is the strongest argument here
BUT, I am wary of relying on clever optimizations to make things we class as primitives efficient.
lizmat understood 13:01
jnthn That's why I pushed for the postcircumfix becoming a sub rather than a method. So the code we send onwards to VMs for array/hash access is already a little better
(Yes, I will look at the optimizer soon to ensure we're getting wins from that.) 13:02
On the JVM it will inline a bunch of levels deep *but* after the code is hot. So we exaggerate the slow start effect, if we ain't careful. I think he CLR only goes one deep, but maybe they changed that. 13:03
On Moar, we can implement what we like, but inlining multiple levels deep *and* keeping enough around to pretend the stack trace looked a certain way when an error occurs is...really good fun to make work. :) 13:04
bah, I have a half-complete patch here and I can't remember what I was in the middle of trying to make work... :) 13:06
13:13 dag_ joined
FROGGS and the weird thing is, you are still smiling 13:13
dag_ xfix: Nice golf! How about replacing the eval with an expression grammar, just to blow the competition out of the water? ;-) 13:14
lizmat jnthn: on closer inspection wrt parameter binding,
Ulti I think I found a new target for a Perl6 slang github.com/parrot/lolcode/blob/mas...grammar.pg
lizmat if we implement the .elems == 1 -> scalar rule
we must have @a := 5 work as well 13:15
otherwise we get this:
$ perl6-p -e 'sub a (@x) { say @x }; my @a=0; a(@a[@a])'
Nominal type check failed for parameter '@x'; expected Positional but got Int instead
:-( 13:16
timotimo let's implement IntParcel, StrParcel, NumParcel and AnyParcel dual-derived types! :P 13:21
13:21 smls left
jnthn lizmat: Yes, well that probably tells us that the .elems == 1 -> scalar rule is gonna be problematic... 13:22
We kinda know we can't make binding do that or we seriously break multi-dispatch... 13:23
13:25 Woodi left
lizmat r: sub a (@x) { say @x }; my @a=0; my $b:=0; a(@a[$b]) # fails 13:26
camelia rakudo-jvm 4f66ce: OUTPUT«Nominal type check failed for parameter '@x'␤␤»
..rakudo-parrot 4f66ce: OUTPUT«Nominal type check failed for parameter '@x'; expected Positional but got Int instead␤ in sub a at /tmp/r0qbipx6Zk:1␤ in block at /tmp/r0qbipx6Zk:1␤␤»
lizmat r: sub a (@x) { say @x }; my @a=0; my $b:=(0,); a(@a[$b]) # does not fail
camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«0␤»
jnthn lizmat: Well, I totally expect the first one to fail
Second one perhaps should. 13:27
lizmat but I see your point about multi-dispatch 13:28
13:28 LLamaRider left
lizmat yuck 13:28
FROGGS Ulti: sounds reasonable :o) 13:30
Ulti KTHNX 13:31
FROGGS that reminds me of nagging jnthn about slangs 13:32
jnthn <- jetlagged and stupid today :P 13:33
FROGGS I am not jetlagged :o) 13:34
I let others judge on stupidness 13:35
13:36 LLamaRider joined
dalek Heuristic branch merge: pushed 20 commits to rakudo/moar-support by jnthn 13:39
lizmat jnthn: thinking about it some more, wrt to parameter binding and mmd 13:41
r: multi a (@x) { say "array" }; multi a ($x) { say "scalar" }; my @a=0; a(@a[@a]) # says array
camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«array␤»
lizmat if the .elems == 1 -> scalar rule would apply, then it would be say "scalar" 13:42
jnthn Yeah. That's why I think the .elems == 1 rule isn't gonna fly
I'm pondering something like:
lizmat but why would that be a problem?
jnthn 1) @foo[$x] is always a scalar
2) @foo[@x] is always a Parcel 13:43
3) Any adverb results in a Parcel
lizmat @foo[*-1] ?
jnthn 4) For WhateverCode, if evaluating the WhateverCode gives back a Positional then you get a Parcel, and if not then you get a Scalar.
lizmat @foo[ -> {(0,1,2)} ]
timotimo jnthn: if you have one or two rakudo-jvm tuits left over in the coming days, i'd really appreciate help in moving the dispatcher creation code from nqp to rakudo. i tried a month ago at least and there was a really strange error i ran into; i think the code disappeared somewhere >_<
jnthn That is, we go on what the WhateverCode returns...
13:44 Lorn_ joined
jnthn In fact, do we not re-dispatch to postcircumfix:<[ ]> with the result of the WhateverCode? If so, we get this semantic for free. 13:44
timotimo: OK. I'm gonna focus on getting moar-support merged today/tomorrow, but we can look at that over the weekend. 13:45
Or maybe tomorrow
timotimo cool :)
jnthn uh...is it me, or does building Rakudo on Parrot feel slower than building Rakudo on Moar? 13:47
lizmat jnthn: if $x is bound to a Parcel in "1) @foo[$x] is always a scalar", then it would have to return a Parcel
[Coke] wishes again he timed stuff.
timotimo jnthn: you would be right; i'm pretty sure that stage parse at least is faster. 13:48
13:48 kaleem left
jnthn lizmat: I'm pretty sure TimToady would tell us that we screwed up binding somehow... 13:48
(for the item case)
timotimo and as i said recently: the "stage post" + "stage pir" may be faster than "stage mast", but there's a second call to parrot to compile the pir code to pbc and *that* also takes a whole lot of time
lizmat ok, I'll wait until TimToady chimes in
:-)
jnthn timotimo: Well, I more meant waiting for Grammar, Actions, etc. :) 13:49
lizmat: Yeah, I think that'd be wise.
lizmat: I'm happy you're looking into this. It's a genuine issue.
timotimo well, those have some parse time to do, too :)
jnthn Moar stage parse on this machine is 67.438. On Parrot it's 108.610. 13:50
tadzik :o
jnthn And while stage mast may be a hefty 53.466, post/pir are 42.542 and 3.948 respectively. 13:51
13:51 kaare_ left
jnthn That's without the pir => pbc thing which takes a few seconds. 13:52
So they're within a few seconds on the backend stages
timotimo a few seconds? i need to time that
jnthn And Moar is notably faster in stage parse, and spends 2 seconds less in stage parse
uh, optimize on the end there 13:53
and this is before Moar has gotten much optimization.
timotimo was about to say
jnthn r: say 67.438 / 108.610
camelia rakudo-parrot 4f66ce, rakudo-jvm 4f66ce: OUTPUT«0.620919␤»
jnthn runs spectest on Parrot in the moar-support branch to look for the interesting Hash.defined failure 13:54
13:54 SHODAN left, dag_ left
timotimo jnthn: they come from nqp::defor 13:58
i forgot where exactly, but it's always the same method or sub that causes the error
jnthn timotimo: Yeah, I found it 14:00
timotimo: I'm building a fix
timotimo: It's code I remember changing in moar-support
timotimo ah, excellent 14:02
i looked and didn't see anything touching that, so i was very confused
afaict, that's the only blocker for a moar-support merge
jnthn \o/
OK, then after I verify this is fixed I could just go for it... :)
And let the daily roast tell us about any fallout.
And then will jump on any that pops up 14:03
Gonna do a JVM build also
timotimo jup =) 14:04
jnthn Yeah, fix seeems to help
dalek kudo/moar-support: 1f34bcd | jonathan++ | src/core/Capture.pm:
Unbust Capture.BUILD on Parrot.
14:05
jnthn General question: how would folks feel about moving the NQP component of perl6-debug into the Rakudo repo? 14:06
We could leave the UI part as a normal module 14:07
(Shipped in Star)
lizmat +1
timotimo +1
jnthn Which means we're good to have multiple UIs still
14:08 smls joined
jnthn But it'd ease the build side of it. 14:08
And install
Given it needs NQP
lizmat again, +1 :-) 14:09
jnthn Also it's quite tightly bound to the Grammar and Actions, which means maint wise, it's easier to have it in Rakudo.
OK, I'm hearing a loud +1 :)
lizmat well, only 2 so far
jnthn 3 :)
oh, but you stuffed the ballot :P
lizmat yup :-) 14:10
[Coke] jnthn: any chance this'll happen in the next 20m?
jnthn [Coke]: "this"? :)
[Coke] you know, the one random thing in backlog I care about. :) 14:11
jnthn [Coke]: oh, moar-support merge...
[Coke] 09:02 < jnthn> OK, then after I verify this is fixed I could just go for it... :)
wow, you did guess right. :)
jnthn [Coke]: Oh, if I make it happens in 20 mins do I get roast results later today? :)
[Coke] I can delay today's run if it's going to happen soon.
hoelzro dammit, why did this guy stop? spamusement.com/
jnthn [Coke]: OK, lemme verify I didn't bust JVM build 14:12
timotimo hoelzro: i think people in general are about as mad about tthat as they are about the cancellation of Firefly after the first season
[Coke] yes, if it happens in the next 20m, I can make one change now and it'll pick up during the daily run.
timotimo: NO WHY DID YOU BRING UP THE PAIN
14:12 araujo joined
timotimo [Coke]: ;( 14:12
14:12 araujo left
jnthn [Coke]: OK, will get it in the next 20 min then :) 14:12
[Coke] ok, will tell moar to build just from nom then.
hoelzro timotimo: that's another tragedy
timotimo so many tragedies :(
on a related note, i really should watch Dr. Horrible's Sing-Along Blog again 14:13
dalek rl6-roast-data: 9305507 | coke++ | bin/rakudo.moar.sh:
Pull from default branch

  (in anticipation of mergeback to nom)
  jnthn++
14:14
jnthn Merging also means we hopefully get moar into p6eval :)
[Coke] ok, more like 15m. I can delay the daily build if needs be, just let me know. (I can easily kill and restart it too)
colomon timotimo: "Anarchy run by me" 14:15
14:16 kbaker_ joined
timotimo :D 14:17
14:17 SHODAN joined, SHODAN left, SHODAN joined 14:20 pmurias joined
jnthn [Coke]: est. 5 mins 14:20
timotimo .o( mergeback mountain )
jnthn # Your branch is ahead of 'origin/nom' by 251 commits. 14:21
Geez... :)
timotimo we should do something about that!
it's unfair, you know?
dalek p: ea681df | jonathan++ | tools/build/MOAR_REVISION:
Update MOAR_REVISION.
14:22
14:22 bjz left
pmurias jnthn: re moving the nqp part of perl 6 debugger into rakudo, the code seems very internalish 14:23
so +1
dalek Heuristic branch merge: pushed 252 commits to rakudo/nom by jnthn 14:25
timotimo \o/ 14:26
dalek kudo/nom: 2e90c5c | jonathan++ | docs/ChangeLog:
Add a ChangeLog entry about MoarVM.
timotimo there is no changelog entry big enough in the whole wide world 14:27
nwc10 I disagree. I think it can be suitably summarised as "Rather good"
14:28 bjz joined
timotimo :D 14:28
moritz \o/
tadzik timotimo: wrong 14:30
dalek albot: b149ece | moritz++ | build-scripts/rebuild-rakudo.pl:
build rakudo-m and nqp-m
tadzik timotimo | hoelzro: i think people in general are about as mad about tthat as they are about the cancellation of Firefly after the first season
dalek kudo/nom: dddd3ff | jonathan++ | README:
Some README tweaks to mention MoarVM.
tadzik I *wish* it was cancelled *after* the first season :)
hoelzro indeed =/ 14:31
tadzik at least there was Serenity
timotimo oh, that's what you mean 14:32
i thought you were complaining that they more or less tried to close off the story
which isn't actually accurate
except, you know, Serenity
tadzik I.. got confused reading those last 3 :) 14:35
dalek albot: 2644d7e | moritz++ | evalbot.pl:
experimental rakudo-moar support
14:36
tadzik is there a --gen-moar? 14:37
14:37 jnap joined
dalek albot: 8d86eb0 | moritz++ | evalbot.pl:
use rakudo's nqp-m
14:37
moritz tadzik: aye 14:38
tadzik oh oh :)
dalek atures: e8d1817 | jonathan++ | features.json:
Split Rakudo by backend; improve concurrency items

Makes it easier to see what is supported on what Rakudo backend, and also aligns concurrency section with current S17.
14:42
grondilu m: say "hi?"
jnthn I hope I didn't mess it up :)
moritz grondilu: it's not active yet
it's not even built :(
timotimo jnthn: there was a copypasto in your features commit: + "code" : [ "perl6advent.wordpress.com/2009/12/0...ping-forp- rj- rm-fun-and-profit/", 14:44
jnthn lol 14:45
colomon is trying to build all three backends on one go....
moritz I've been doing that on moar-support for some time 14:46
dalek atures: 4b3184d | jonathan++ | features.json:
Correct find/replace gone wild.
jnthn timotimo++
timotimo oh, hehe, that was search&replace ... of course! :D
tadzik sounds like Seek&Destroy :) 14:48
14:48 bjz left, bjz joined, FROGGS[mobile] joined
[Coke] (build all 3 at the same time) I have been avoiding doing that, running each rakudo backend in a separate container. 14:48
14:49 FROGGS left 14:52 btyler joined
smls is hacking on a Perl 5 script and can't stop thinking "Gosh, I'd love to have access to those Perl 6 cross/recude/hyper operators here..." 14:53
14:53 FROGGS[mobile]2 joined
JimmyZ +1 14:54
14:54 skids joined 14:57 FROGGS[mobile] left
jnthn JimmyZ: What's the +1 to? :) 15:02
JimmyZ perl 6 debugger into rakudo
:P
jnthn ah, k :) 15:03
lizmat errands& 15:06
skids can perl6-debug descend into included PIR? How?
masak skids: I'm going to go with "no". 15:07
skids good answer :-) at least I'm not missing something obvious then. 15:08
jnthn skids: no 15:13
skids: It'll treat it as a single expression/statement 15:14
colomon was all excited to have everything built, but... 15:15
colomon@melissa:~/tools/rakudo$ perl6-m
Segmentation fault (core dumped)
timotimo oh, huh, that's new 15:16
colomon clean checkout of rakudo, built all three in one go, the other two work.
15:17 ajr joined, ajr is now known as Guest52734, Guest52734 is now known as ajr_ 15:18 treehug88 joined
colomon stack trace: gist.github.com/colomon/8456640 15:19
moritz evalbot control restart 15:20
15:20 camelia left 15:21 camelia joined
moritz p: say 'just a test...' 15:21
timotimo colomon: oh, i think the repl is b0rked
15:22 ChanServ sets mode: +v camelia
camelia rakudo-parrot dddd3f: OUTPUT«just a test...␤» 15:22
colomon timotimo++ # it does work if I give it a quick script 15:23
jnthn colomon: Yeah, repl bust. Needs fixing before release
colomon seriously, 98%? that's crazy talk
jnthn colomon: Netcraft^W[Coke] confirms it 15:24
moritz m: say 'Hi from Moar'
camelia rakudo-moar dddd3f: OUTPUT«(signal ABRT)While looking for 'RESTRICTED.setting.moarvm': no such file or directory␤ at src/gen/m-ModuleLoader.nqp:345 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/Perl6/ModuleLoader.moarvm::52)␤ from src/gen/m-ModuleLoader.nqp:352 (/home/p6eval…»
colomon jnthn++ all involved++ 15:25
moritz seems that RESTRICTED.setting.moarvm isn't installed?
jnthn moritz: Quite possible...make install likely needs some love 15:26
JimmyZ jnthn: Does it mean you will add vtable io before release? :)
jnthn JimmyZ: No, nothing so big... :) 15:27
JimmyZ: Just "make it work" for now :)
JimmyZ I know why repl bust, I just don't know how to fix it. 15:28
15:35 kaleem joined
jnthn discovers more free beer 15:42
nwc10 is it as good as the free beer in Frankfurt? 15:43
jnthn nwc10: No :(
moritz: You taking care of RESTRICTED or should I?
nwc10 Surely "f"ree" bud light has negative value? 15:44
at least one can make tea using real water.
jnthn nwc10: Well, it's Becks or Carlsberg...
In Germany there was Franziskaner weissbier...
tadzik so the tea scenario is still an option :>
[Coke] "much moar" "so rakudo"
[6~[6~
nwc10 I'd forgotten exactly what the answer was
I have to admit I'll drink Becks if someone else is paying and they don't expect anything in return 15:45
timotimo :D
[Coke] is not a finicky beer drinker. Coke probably needs to drink moar beer.
dalek atures: 94a298f | jonathan++ | features.json:
Correct notes.
15:50
timotimo is there a spot i can look at to memadvise moarvm's heap spaces to be "no copy on fork" on linux?
jnthn timotimo: Why don't we want them to be copied? 15:51
nwc10 jnthn: this is another airport?
jnthn timotimo: Or is this COW?
nwc10 or some other beer fountain?
jnthn nwc10: Heathrow
nwc10 oh
different route home?
jnthn yeah
timotimo jnthn: it's COW and at least for forking off a new moarvm where the first thing i'll do is killing the existing thread context ... d) 15:55
it seems like i can just use the nursery addresses and sizes and give that to madvise directly before the fork and undo the stuff afterwards
jnthn yeah...well, the nursery tospace/fromspace and the pages in the gen2 allocator... 15:56
timotimo yup
15:58 Psyche^ joined
timotimo hm, the sizes of the gen2 bins is a function of the individual size class 16:00
jnthn yeah
timotimo marks it as todo 16:01
how big is the gen2 going to be anyway! probably only a few kilobytes! :P
(since the sandbox host process is likely going to be implemented in nqp)
timotimo is noticing he's not following "do the simplest thing that could possibly work" 16:03
and instead, he chases interesting thingies
16:03 Psyche^_ left
hoelzro anyone else going to FOSDEM? 16:06
jnthn r: say (27980 / 98.28) * 99 - 27980 16:07
camelia rakudo-moar dddd3f: OUTPUT«(signal ABRT)While looking for 'RESTRICTED.setting.moarvm': no such file or directory␤ at src/gen/m-ModuleLoader.nqp:345 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/Perl6/ModuleLoader.moarvm::52)␤ from src/gen/m-ModuleLoader.nqp:352 (/home/p6eval…»
..rakudo-parrot dddd3f, rakudo-jvm dddd3f: OUTPUT«204.981685␤»
jnthn FROGGS[mobile]2: Fixing remaining S05 Unicode prop things is enough to hit 99% ;) 16:08
r: say 471 - 261
camelia rakudo-moar dddd3f: OUTPUT«(signal ABRT)While looking for 'RESTRICTED.setting.moarvm': no such file or directory␤ at src/gen/m-ModuleLoader.nqp:345 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/Perl6/ModuleLoader.moarvm::52)␤ from src/gen/m-ModuleLoader.nqp:352 (/home/p6eval…» 16:09
..rakudo-parrot dddd3f, rakudo-jvm dddd3f: OUTPUT«210␤»
jnthn Otherwise we gotta fix everything else :P
16:11 FROGGS[mobile]2 left 16:13 FROGGS joined, FROGGS[mobile] joined, FROGGS[mobile] left
FROGGS jnthn: true, but I'd need to talk to somebody how to do things to make that unicode stuff work 16:14
16:14 ajr_ left
FROGGS jnthn: I am even thinking about implementing NFG, for this I would need even more information 16:15
arnsholt timotimo: Was it you who talked about wanting Qt bindings for Perl 6?
jnthn hoelzro: I'll be at FOSDEM 16:16
hoelzro cool =)
jnthn hoelzro: Not sure if I was on your list of people who're going or not :)
hoelzro everyone here is on my list =)
especially you, since I can bug you about low level stuff *and* have a good beer =)
timotimo arnsholt: yeah 16:17
jnthn \o/
timotimo arnsholt: why? do you have something crazy cool up your sleeves?
because binding a C++ library is always painful
jnthn
.oO( Arms? )
arnsholt Not really, was just reading about Qt and got to thinking
timotimo Qt is crazy cool.
hoelzro Qt++
arnsholt 'cuz yeah, that's essentially what I was going to ask you about: Did you have any ideas, or just pie-in-the-skying?
hoelzro .oO( pie? I thought it was castles ) 16:18
timotimo no, just the desire to have it
unfortunately, the Qt Jambi project is apparently dead
otherwise we'd have bindings for the jvm we could use
arnsholt I guess we could look at how Python, Perl 5, etc do it
timotimo yeah, PySide may be interesting to look at 16:19
arnsholt But first I want to finish NativeCall on JVM, and then perhaps looking back into ZMQ
timotimo yeah, nativecall pretty please :)
what about NativeCall on moarvm? :D
arnsholt I've got CStruct about half-finished on my laptop I think
A Moar port should be a lot easier than JVM, since we can probably steal most of it more or less verbatim from the Parrot version 16:20
timotimo yeah
arnsholt Would you be interested in digging into ZMQ/iPython again once I get NativeCall working on JVM?
I think that could be a cool thing to have 16:21
timotimo i think it would be very cool, yes
unfortunately i don't work like that :P
arnsholt 's ok 16:22
16:24 stevan_ joined
FROGGS JimmyZ: about fixing the REPL: I think we would need to set the u.fd in getstdstream, but this explodes when doing so on my box 16:25
(and it explodes within getstdstream) 16:26
16:26 [Sno] left, atroxaper joined
jnthn Time to go fly...bbl 16:30
FROGGS o/
16:33 zakharyas left 16:39 stevan_ left 16:43 LLamaRider left 16:46 treehug88 left 16:49 treehug88 joined
[Coke] gets a new phone from work that can display cyrillic, but not kana or hanzi. :| 16:53
[Coke] adds some speed dial links in russian. :P
16:54 kaleem left 16:55 fhelmberger_ left 17:00 thou joined
japhb is slowly catching up in the backlog 17:10
\o/ to the r-m merge!
+1 to debugger NQP components in mainline
+0 to jnthn's 4 rules of scalar v. Parcel for subscripting # Looks sane, but then I'm rather tired. 17:12
raydiak is that more positive than -0? 17:16
japhb raydiak: Yes.
17:17 atroxaper left
japhb raydiak: That's about as important as round-to-even 17:18
PerlJam japhb: so ... extremely important? ;)
japhb PerlJam: Yep. My professor explained it as "Without the separation of +0 and -0, airflow simulations get screwed up, and people design planes that don't fly." 17:20
17:22 SamuraiJack left
japhb For the peanut gallery: round-to-even keeps stock markets and other high-transaction-volume systems from drifting due to bias in rounding half-ULP (Unit in the Last Place) numbers. 17:22
17:22 SamuraiJack joined 17:24 locsmif joined
japhb
.oO( Oh Professor Kahan, thank you for bringing pedantry to a whole new level! )
17:25
17:25 jeffreykegler joined
raydiak I could be confused, but seem to be having a problem which occurs after CHECK and before INIT, and FINAL doesn't appear to exist. How might I track down the line causing the error message (which has no line number)? 17:29
FROGGS .oO( paste a gist? ) 17:31
raydiak of the error? or of the Pray codebase? 17:32
FROGGS the error
raydiak it's just your standard "no such method jast for NQPMu"...nothing uniquely helpful 17:33
FROGGS btw, did you tried to pass --ll-exception to perl6?
raydiak nope
FROGGS ahh, well
raydiak trying --ll-exception now 17:34
FROGGS I'd think that there is garbage in the ast
raydiak ast=symbol tree?
japhb raydiak: Abstract Syntax Tree 17:35
raydiak --ll-exception doesn't change the output
FROGGS k
raydiak -c completes with OK
FROGGS can you pass --target=ast ?
17:36 SamuraiJack left
raydiak trying 17:36
TimToady is in a quantum superposition of about five timezones, and his backbrain is not in one-to-one correspondence with the backlog... 17:37
FROGGS hmmm 17:38
raydiak ah, rearranged params so --ll-exception actually gets passed in the right place...it does change the output
FROGGS muses about TimToady's frontbrain and the frontlog
TimToady those are in a zero-to-zero correspondence at the moment... 17:39
FROGGS I usually put it right after perl6
(the --ll-exception, not the brane)
raydiak gist.github.com/raydiak/8459623 17:40
FROGGS # variables with fallback can have side effects and cannot be elided 17:41
$il.append($last_res.jast)
this is in (gen/jvm/stage2/QAST.nqp:3790)
so, $last_res is Mu 17:42
which should be the last statement of a block
raydiak: can you golf it?
17:43 SamuraiJack joined
raydiak FROGGS: I suppose I'll have to make a copy and start shearing chunks off until it un-breaks 17:43
17:44 benabik joined
japhb moritz: typo in github.com/perl6/evalbot/commit/26...24753b9R72 17:44
17:44 dolnop joined
FROGGS raydiak: exactly 17:44
japhb moritz: 'raudo-moar'
dolnop hello, any news about perl6 for android? 17:45
17:46 mtk left, apejens left
FROGGS dolnop: there not active project for that I think 17:46
17:46 avar left
FROGGS might be not too hard since we have Perl 6 on the JVM, but I know nearly nothing about android 17:46
17:47 apejens joined 17:48 avar joined, avar left, avar joined
japhb FROGGS: I believe Dalvik and JDK have very differently designed VMs, so I doubt the code gen would work -- though the Java runtime code might, I dunno. 17:48
FROGGS japhb: but we have some sort of pattern, so, it is at least possible :o) 17:49
dolnop FROGGS: on perldroid Google Page is this note:2013-09-04: No work has been done anymore on this project due to the existence of a TPJ grant to improve cross compilation of perl
17:49 SamuraiJack left 17:51 psch joined
psch hi #perl6 17:51
colomon o/
17:51 pecastro left
japhb FROGGS: Just found this: github.com/perl6/evalbot/commit/26...24753b9R72 17:51
FROGGS dolnop: I hope it succeeds
[Coke] psch: hi 17:52
FROGGS japhb: is that the right link?
[Coke] TPJ grant?
dolnop the Perl journal?
dalek albot: 4e909dc | moritz++ | evalbot.pl:
fix typos, japhb++
17:53
moritz japhb: success of rakudo-m in evalbot mostly depends on installed rakudo-m working fine :-) 17:56
japhb FROGGS: Nope, that's the wrong link, heh
stackoverflow.com/questions/230193/...-in-sun-vm
17:57 jnap left
japhb Some of that is out of date now, but other stuff applies. According to Wikipedia, as of 2.2 Dalvik had a JIT, and as of 4.4 there's the ART install-time AOT compiler. 17:57
psch warnings in the optimizer should come out as X::AdHoc i assume, seeing as that's how the grammar does them? 17:59
err, X::Comp::AdHoc in the grammar that is
18:00 mtk joined
moritz actually no 18:02
that's how it's done, but that's not how it should be
they should have typed exceptions just like everything else
psch okay 18:03
18:04 treehug88 left, SHODAN left, treehug88 joined
psch is 'straight up printing to stderr when a warning gets handled' another of those "that's just how it is right now" cases? S04 talks about continuations and lambdas wrt warnings 18:05
moritz yes
18:06 [Sno] joined 18:07 dolnop left
psch does that mean i've done nothing actually useful except learning about how stuff works right now, because stuff will change tremendously anyway? :) 18:08
moritz it well change, but probably not tremendously
a patch that uses old-style warnings/errors will likely not be rejected for that reason
I just frown a bit about them, that's all :-) 18:09
benabik I keep getting `make: write error` the compilation finishes. Everything seems to work, just something get's OS X's make confused.
psch old-style means X::AdHoc in this case? i've introduced X::TypeCheck::Signature for the 'sub foo(Str) {}; foo 42' case
in addition to 'make the optimizer throw and group typed exceptions in the first place' 18:10
18:10 kaare_ joined 18:11 jnap joined
psch ... ihave also been changing the name of the sub-exception a few times and settled on X::TypeCheck::Argument instead of X::TypeCheck::Signature it seems 18:13
which does seem saner to me, because it's not actually the signature but the argument that's of the wrong type 18:14
gist.github.com/peschwa/8459897 # this is how what i have behaves currently 18:16
moritz psch: looks good 18:17
psch: though I'd even use throws_like for block around lines 33-39 18:18
something like
throws_like $code, X::TypeCheck::Argument, expectedSig => { .[0] ~~ Str }, ... 18:19
psch: oh, and please rename that to expected-sig, we use CamelCase only for types in core
18:19 darutoko left
psch okay, will do 18:19
moritz or just 'signature' 18:20
because there's no other signature involved
psch right
FROGGS japhb: btw, I'd need a BlackBerry backend then :/ 18:21
benabik moat-support got merged without the fixes for Moar vs Parrot CFLAGS I think. :-( 18:25
*moar-support
btyler benabik: I've been having linking errors when compiling rakudo on OSX. you got rakudo to build successfully (other than the make error)?
benabik btyler: Before the moar-support merge, I've been linking Rakudo successfully. 18:26
btyler: However I don't use the --gen-* options and install everything to /usr/local
btyler hm. I was just sticking the various install/project dirs into $PATH and using --prefix, which worked up through nqp and part of rakudo. trying a fresh run with the --gen-* options now 18:27
18:28 jdv79 left, tadzik left 18:29 tadzik joined
benabik Looks like I can build parrot if I don't configure moar. But I'm getting linker failures for moar even without Parrot. 18:29
btyler gist.github.com/kanatohodets/7ace7...474452ed02 # the specific failure, but that's a few revisions ago now. just got a similar one doing a --gen-* run from a clean rakudo clone
18:29 SHODAN joined
benabik That's the linker failures I was getting as well. 18:30
btyler oh, sorry, I should be more specific -- linking errors trying to build r-m 18:31
benabik That's why I specified that I was able to build before moar-support. :-D
btyler clarity++ 18:32
benabik Yeah, Moar build is borked on OS X. Can't link on its own and it messes with the parrot build as well.
dalek kudo/nom: 46b213d | moritz++ | tools/build/Makefile-Moar.in:
fix a moar cleanup
18:33
moritz in what way does it mess with the parrot build? 18:34
benabik r-p fails building parrot exts with "unable to find header ffi.h"
18:34 pochi left
benabik This is because ffi.h is in /usr/include/ffi on OS X and Moar seems to overwrite the Parrot CFLAGS. (Or something, I haven't investigated in detail.) 18:35
ISTR someone saying they had a partial patch for it, so I wasn't worrying about it.
18:35 jdv79 joined
benabik Erm... Is rakudo trying to compile a moar extension with `-install_name .../libmoar.dylib` on OS X? That would be a mistake. 18:38
I think it wants its own -install_name and a -lmoar. 18:40
18:41 pochi joined
dalek kudo/nom: 2a47e8e | moritz++ | tools/build/Makefile- (3 files):
Build and install restricted setting
18:42
18:42 kshannon left 18:44 kshannon joined 18:45 ajr joined, ajr is now known as Guest42336, Guest42336 is now known as ajr_ 18:47 treehug88 left 18:49 vky joined
TimToady FROGGS: the view that Nil turns into () is the older one; the docs are more up-to-date than the impl 18:53
FROGGS ahh, I see 18:54
masak so `say (Nil, Nil, Nil).elems` is supposed to print 3 nowadays? 18:56
19:04 raiph joined
perigrin will it stamp it's foot too? like my daughter when she was 6? 19:05
masak nr: say (Nil, Nil, Nil).elems 19:06
camelia niecza v24-109-g48a8de3: OUTPUT«3␤»
..rakudo-parrot dddd3f, rakudo-jvm dddd3f: OUTPUT«0␤»
dalek kudo/nom: 347c9a4 | moritz++ | tools/build/Makefile- (2 files):
avoid conflicts between Parrot and Moar Makefile variables
19:13
moritz that's odd, I could have sworn I had resolved these conflicts ages ago
masak I have that feeling sometimes, too. 19:14
moritz and I know I have built perl6-p and -m along side each other in moar-support 19:15
many times
diakopter I have that "I have that feeling many times" feeling many times 19:19
19:21 pecastro joined
masak diakopter: I don't. only just now. 19:22
diakopter masak: welcome to the club. 19:23
19:25 raiph left 19:27 treehug88 joined
dalek p: 8688e89 | (Tobias Leich)++ | / (3 files):
implement \x{} for P5 regexes
19:30
timotimo what does that do? 19:37
19:42 vky left
FROGGS timotimo: it is just like \x[FE] 19:43
written as \x{FE}
and \x{} would match NUL
p: say chr(0) ~~ /\x[]/ # dunno if we need such behaviour 19:47
camelia rakudo-parrot 2a47e8: OUTPUT«===SORRY!=== Error while compiling /tmp/b7owCwvf16␤Unrecognized backslash sequence: '\x'␤at /tmp/b7owCwvf16:1␤------> say chr(0) ~~ /\⏏x[]/ # dunno if we need such behaviour␤ expecting any of:␤ p…»
TimToady on subscripting, use of .elems would be wrong in the way that introspection is usually wrong; it has to be distinguished on the basis of the type of the argument 19:52
if people have to put an extra comma or .[0] or .item here or there, so be it 19:53
19:53 raiph joined 19:54 SHODAN left
TimToady iow, I think I agree with jnthn's formulation of the rules 19:54
but maybe we should leave :v orthogogonal to those rules, and require you to use comma when you want to force parcel 19:56
TimToady is agog as his spelling 19:57
20:00 Rotwang joined 20:01 treehug88 left 20:04 treehug88 joined
diakopter moritz: I keep having to add BAT = .bat back into the windows rakudo moar makefile as it tries to operate on non-existent files otherwise 20:05
don't know where to fix
20:10 Mouq joined
jnthn back 20:11
TimToady: :v has existence filtering semantics, iirc? 20:12
nwc10 jnthn: yay! With real beer waiting for you?
20:13 telex left
jnthn Yeah, though I seem to have mildly upset my stomach with something I ate at some point, or maybe just shoved too much food in it. So I'll go easy tonight :) 20:13
timotimo easy on the beer but not easy on the code? :P
FROGGS hehe 20:14
20:16 telex joined
TimToady jnthn: yeah, so maybe that's an argument against orthogonal :v 20:16
due to the implicit grep 20:17
plus arguably :v will strike some folks as cleaner that .[stuff,]
though I can argue it the other way too
lizmat fwiw, the same applies for :k 20:18
jnthn TimToady: Yes, I was thinking especially of :v when I said "adverb forces Parcel"
TimToady: I can kinda argue it both ways too, but we're trying to avoid special things to remember and making :v different would feel odd
20:18 rindolf left
lizmat wrt to being able to distinguish by the argument 20:19
if a scalar is bound to a parcel, and that scalar would be used as index in a slice 20:20
would you expect a scalar to be returned, or a parcel ?
jnthn lizmat: I *think* TimToady would expect a scalar, but the mechanism is...hazy, at least to me. 20:21
This is the kinda reason we introduced my \x := ...
lizmat and what would that scalar contain then? the value of the first element of the Parcel?
20:21 SHODAN joined
jnthn I think the expectation would be that it'd do what happens in 20:23
20:23 SHODAN left
jnthn r: my $a = (1,2,3); my @x = <a b c>; say @x[$a] 20:23
diakopter jnthn: I'm surprised you don't get the same error with nmake install
camelia rakudo-jvm 2a47e8: OUTPUT«(timeout)»
..rakudo-parrot 2a47e8, rakudo-moar 2a47e8: OUTPUT«(Any)␤»
jnthn um :)
oh, duh
r: my $a = (1,2,3); my @x = <a b c d>; say @x[$a]
diakopter m: ;
camelia rakudo-parrot 2a47e8, rakudo-jvm 2a47e8, rakudo-moar 2a47e8: OUTPUT«d␤» 20:24
( no output )
diakopter m: say .say
camelia rakudo-moar 2a47e8: OUTPUT«Nil␤True␤»
jnthn fail :) Anyway, d, because it numifies (1,2,3) which gives the number of elems.
lizmat r: my $a := (1,2,3); my @x = <a b c d>; say @x[$a]
camelia rakudo-parrot 2a47e8, rakudo-jvm 2a47e8, rakudo-moar 2a47e8: OUTPUT«b c d␤»
20:27 pecastro left 20:42 NotJack joined
dalek p: 1595bd4 | (Tobias Leich)++ | src/QRegex/P5Regex/Grammar.nqp:
allow more hexints in \x{}
20:48
20:48 colomon left 20:52 jeffreykegler left
NotJack it's not fun trying to steal algorithms from CPAN when your language doesn't have great regex support :( 20:54
FROGGS NotJack: to which language do you want to steal it to? 20:56
NotJack J
timotimo arnsholt: how much is missing after CStruct for jvm is implemented? 20:57
NotJack Data structure-wise, J is like a uptight german
20:57 colomon joined
diakopter timotimo: the things 20:57
NotJack it's well-ordered or GTFO
FROGGS ohh wow, and they say Perl looks like line noise O.o 20:58
jnthn hands NotJack "quote of the day" award :) 20:59
timotimo NotJack: DAS NICHT STACKENBLACKEN! 21:01
NotJack lol 21:02
21:02 dayangkun left
NotJack FROGGS: If Perl is line noise, J is nails on a blackboard 21:03
FROGGS ICH WERDE DIESE SCHALLPLATTE NICHT KAUFEN, SIE IST ZERKRATZT!!!
NotJack: yeah, feels like
*shudder*
timotimo FROGGS: that doesn't have to be yelled 21:05
oh
well, it *is* german
so i guess it does have to be yelled
NotJack I'm pretty sure all proper German must be yelled
damnit
FROGGS timotimo: you can't whisper KAMPFPANZERWAGEN, really 21:06
jnthn Outlawing lowercase wasn't going to fly, so they compromised on just capitalizing all the nouns :P
lue
.oO(Unless it starts with ß, grumble grumble...)
21:07
timotimo that's right 21:09
DORT, EIN EICHHÖRNCHEN!
arnsholt timotimo: After CStruct we're pretty much there. Potentially a bit of trickyness with callbacks, but structs are the last remaining really tricky bit I expect 21:10
psch but but, country of poets and thinkers...
arnsholt Any particular reason you wonder? 21:11
timotimo more like ... shou..ets and ... screamers? 21:12
arnsholt: just trying to estimate when you may be able to finish it up and we get a rakudo star on the jvm :D
FROGGS timotimo: my kids tended to say ARSCHHÖRNCHEN, now it is more like EINHÖRNCHEN 21:13
both is cute somehow
timotimo haha 21:14
psch "Die Deutschen tun nicht viel, aber sie schreien desto mehr. [...] Das sinnige deutsche Volk liebt es zu brüllen und zu kreischen, und zum Schreien hat es immer Zeit. " frei nach Wolfgang Menzel. 21:17
21:17 dayangkun joined
psch more on topic: i've decided that i have no idea how exactly warnings could be handled as typed exceptions 21:17
which means i'll probably have to get a PR finished soon, although i'm still missing a few test-cases i would like to...test 21:18
e.g. i still miss a case for X::Undeclared::Method with !private set that falls into the responsability of the optimizer 21:19
21:19 hummeleBop left
psch the naive case seems to be handled before, as i found out with FROGGS++ help the last time i was around 21:20
r: try EVAL 'class A { method doit { self!really; } }; my A $a .= new; $a.doit;'; $!.perl # as this is already typed
camelia rakudo-jvm 347c9a: OUTPUT«(timeout)»
( no output )
psch wait what
ohh, same mistake, no say 21:21
r: try EVAL 'class A { method doit { self!really; } }; my A $a .= new; $a.doit;'; say $!.perl #
camelia rakudo-parrot 347c9a, rakudo-jvm 347c9a, rakudo-moar 347c9a: OUTPUT«X::Method::NotFound.new(method => "!really", typename => "A", private => Bool::True)␤»
skids camelia: r: say -6 +| -2 21:27
camelia skids: rakudo-parrot 347c9a, rakudo-moar 347c9a: OUTPUT«-6␤»
..rakudo-jvm 347c9a: OUTPUT«-2␤»
colomon :\ 21:28
skids r-moar seems to have inherited r-parrot's libtommath 21:29
FROGGS it has
colomon but hey, rakudo-moar works in camelia now! \o/
skids \o/
FROGGS n: say -6 +| -2
camelia niecza v24-109-g48a8de3: OUTPUT«-2␤»
skids Yes, considering I only usually build star that is immensely helpful.
FROGGS is -2 the correct answer? 21:30
skids yes.
21:34 Mouq left
jnthn m: say 'moar' 21:36
camelia rakudo-moar 347c9a: OUTPUT«moar␤»
jnthn yay
diakopter m: say `moar --version` 21:37
camelia rakudo-moar 347c9a: OUTPUT«===SORRY!=== Error while compiling /tmp/UmrzhupyOh␤Two terms in a row␤at /tmp/UmrzhupyOh:1␤------> say ⏏`moar --version`␤ expecting any of:␤ argument list␤ prefix or term␤ prefix …»
timotimo but is it really moar?
diakopter m: say $*VM 21:38
camelia rakudo-moar 347c9a: OUTPUT«(timeout)»
skids that shut it up.
diakopter m: say $*VM.perl
skids not supposed to be a stumper :-)
camelia rakudo-moar 347c9a: OUTPUT«(timeout)»
benabik r-p: say $*VM
diakopter m: print $*VM
timotimo it's very slow at that, yeah :(
camelia rakudo-parrot 347c9a: OUTPUT«("name" => "parrot", "config" => {"git_describe" => "RELEASE_5_9_0", "sha1" => "e8eebc017012a1ac97c704c48c1d3429395104ee", "a" => ".a", "ar" => "ar", "ar_extra" => "", "ar_out" => "", "archname" => "x86_64-linux-gnu-thread-multi", "arflags" => "cr", "as"…» 21:39
rakudo-moar 347c9a: OUTPUT«name moar config ccoptiflags -O1 uvrule $(AR) $(ARFLAGS) $@ $(UV_LINUX) tomobjects 3rdparty/libtommath/bn_error.o 3rdparty/libtommath/bn_fast_mp_invmod.o 3rdparty/libtommath/bn_fast_mp_montgomery_reduce.o 3rdparty/libtommath/bn_fast_s_mp_mul_digs.o
..3rdpart…»
itz is there a FOSDEM Perl Room again this year?
benabik Problem with .gist?
diakopter itz: yes
jnthn m: say $*EXECUTABLE_NAME
camelia rakudo-moar 347c9a: OUTPUT«perl6-m␤»
diakopter m: print $*VM<name>
camelia rakudo-moar 347c9a: OUTPUT«moar»
FROGGS m: say nqp::backendconfig<version> 21:40
diakopter r: print $*VM<name>
camelia rakudo-moar 347c9a: OUTPUT«2013.10-367-ga313c0a␤»
rakudo-parrot 347c9a: OUTPUT«parrot»
..rakudo-jvm 347c9a: OUTPUT«jvm»
..rakudo-moar 347c9a: OUTPUT«moar»
FROGGS m: say nqp::backendconfig<config>
camelia rakudo-moar 347c9a: OUTPUT«--optimize --prefix=/home/p6eval/rakudo-inst-2 --make-install␤»
21:41 vky joined
jnthn perl6.org/compilers/features now has all the backends, btw 21:41
21:42 krunen left
timotimo oh, set operations for character classes seems like something doable in not too much time 21:43
21:43 krunen joined
timotimo it'd give us one more green button :) 21:43
21:43 smls left 21:46 araujo joined, vky left
timotimo since our character classes are currently "one long string of all candidate characters", it'd just be doing these set operations on these characters once at regex qast construction time 21:50
21:58 benabik left 22:00 colomon left 22:03 skids left, colomon joined
jnthn Time for some rest...back tomorrow :) 22:04
22:05 treehug88 left 22:06 treehug88 joined 22:07 treehug88 left 22:09 treehug88 joined
psch goes to sleep o/ 22:13
22:13 psch left 22:14 spider-mario left 22:20 NotJack left 22:26 kbaker_ left
dalek rl6-roast-data: 69140ec | coke++ | / (5 files):
today (automated commit)
22:27
rl6-roast-data: 7b2b4f9 | coke++ | perl6_pass_rates.csv:
note that today's moar run on nom
22:28
[Coke] 98.31% #moar 22:29
22:31 treehug88 left 22:33 treehug88 joined 22:40 treehug88 left
lizmat also sleep& 22:44
22:45 baest_ is now known as baest, jeffreykegler joined 22:59 Rotwang left 23:00 Mouq joined 23:03 dmol left, d4l3k_ joined 23:04 dalek left, d4l3k_ is now known as dalek, ChanServ sets mode: +v dalek, Mouq left 23:10 virtualsue joined 23:11 virtualsue left 23:14 grondilu left 23:16 dmol joined 23:23 vky joined 23:28 vky left, AmazingPudding is now known as bonsaikitten 23:30 FROGGS left 23:44 Rotwang joined, Rotwang left 23:49 filly left, dmol left, locsmif left 23:53 jeffreykegler1 joined, jeffreykegler left 23:58 FROGGS joined