»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:01 dju left
jnthn sleep & 00:01
00:01 dju joined 00:05 jaldhar joined 00:15 perigrin left 00:16 perigrin joined 00:39 [Coke] left 00:40 [Coke] joined 00:45 [Coke] left 00:47 [Coke] joined 00:52 [Coke] left 00:53 f00li5h joined 00:54 [Coke] joined 00:59 [Coke] left 01:00 [Coke] joined 01:14 woosley joined 01:20 jdhore left
dalek d: 14557a3 | larry++ | STD.pm6:
some fixes/comments from jnthn++; p5 workarounds
01:24
01:27 dawud left 01:28 jdhore joined 01:38 whiteknight left 01:43 beek joined
beek hello perlos. 01:45
colomon \o 01:51
01:56 ymasory left
sorear good * #perl6 02:18
colomon o/ 02:23
02:27 alester joined 02:30 satyavvd joined 02:33 ymasory joined
sorear jnthn hacks STD now!? 02:37
did Krupp spam every CPAN author?
02:44 hudnix left 02:46 mtk left 02:55 mtk joined 02:57 alester left 02:59 satyavvd left 03:08 LoRe left 03:11 LoRe joined 03:15 alester joined 03:23 Su-Shee joined 03:27 Su-Shee_ left 03:33 LoRe left 03:35 benabik joined 03:37 satyavvd joined 03:41 LoRe joined 03:44 jjore left 03:55 agentzh joined 04:11 jjore joined
beek okay, I've got rakudo installed, and I got Pies from github to use panda. From panda I installed NativeCall, because DBDI needed it. Now to install DBDI, it can't find NativeCall in @*INC. 04:15
04:15 jjore left
beek panda did install ~/.panda/src/DBDI dirs in @*INC, i do see. 04:15
I havent figured out how to add to @*INC permanently, rather than just runtime. 04:16
aaaand i don't know how all this is supposed to fit together, so I'm sorta flailing a bit in the dark with mittens.
04:17 jjore joined
beek if there was a question in there, it'd be something like: uhhh ummm huh? 04:18
TimToady hasn't tried using modules yet, so can't help much 04:21
beek well on that note, I may just go back to 5 for awhile, until I get another bug to try this again sometime. 04:23
TimToady most of the moduley people are asleep in .eu right now 04:24
beek ha. okay thanks.
04:25 imamelia left
beek I kinda assume that I can just use blizkost and p5 modules with parrot currently, until I get my shat figured out. 04:27
and I also assume that's more of a temporary fix until most modules are 6'd.
i guess i should go try instead of assuming. 04:28
04:52 LoRe left, jaldhar left 04:53 jaldhar joined 04:54 LoRe joined 04:55 kaare_ joined 05:05 dalek left, dalek joined, ChanServ sets mode: +v dalek 05:10 sftp left 05:11 kaare_ left 05:13 molaf joined 05:14 rgrau left 05:15 alester left 05:23 birdwindupbird joined 05:26 wamba joined 05:38 LoRe left 05:39 LoRe joined 05:43 jaldhar left 05:44 jaldhar joined 05:53 wtw joined 06:00 wamba left 06:06 cottoo joined, cotto left 06:16 PZt left 06:19 ali_h left 06:51 jdhore left 06:58 jdhore joined 07:02 fhelmberger joined 07:06 yegor joined 07:08 jaldhar left 07:09 jaldhar joined 07:15 dakkar joined, LoRe left 07:16 krunen left, LoRe joined, krunen joined 07:21 LoRe left 07:24 mj41 joined 07:26 kfo_ joined 07:29 kfo left 07:35 SHODAN left 07:44 yegor left 08:06 awoodland joined 08:08 lue left, lue joined 08:09 benabik left 08:19 b_jonas joined 08:29 wamba joined 08:35 MayDaniel joined 08:38 Khisanth left, Pathin joined 08:42 Pathin left, Juerd left, Juerd joined 08:43 hatseflats left 08:44 hatseflats joined 08:47 Pathin joined 08:48 Khisanth joined 08:53 satyavvd left 09:02 MayDaniel left 09:09 awoodland left 09:14 am0c left
tadzik I'm under no illusions that we can write the 09:20
runtime engine in Perl. Especially the interpreter. That would be
bleh
I'm under no illusions that we can write the runtime engine [of Perl 6] in Perl. Especially the interpreter. That would be silly.
TimToady: are you still under that impression? Just curious 09:22
(that's from dev.perl.org/perl6/talks/2000/als/larry-als.txt)
mathw I think you *can*, but it depends what you want to get out of it 09:24
masak's doing his best to prove that it's possible 09:25
I doubt Yapsi will ever be particularly fast, but that's not what it's for
tadzik Oh wait, the Runtime is Parrot, right
for some reason I thought of the settings library as the part of a runtime 09:26
jnthn morning o/ 09:27
tadzik morning jnthn
Trashlord hey
mathw well, that's how I understand it. Other people might use words differently. 09:31
09:43 tzhs joined, wamba left 09:45 wamba joined 09:46 yegor joined 09:54 yegor left, wamba left 09:55 wamba joined 09:59 woosley left 10:02 jdhore left, wamba left 10:04 wamba joined 10:07 donri joined 10:33 wamba left 10:34 mtk left 10:42 mtk joined 10:43 Ali_h joined 11:02 Psyche^ joined 11:04 Patterner left, Psyche^ is now known as Patterner 11:05 Su-Shee_ joined 11:08 Su-Shee left, Su-Shee_ is now known as Su-Shee 11:16 Mowah joined 11:41 woosley joined 11:42 spinclad left 11:45 wamba joined 11:47 dakkar left 11:53 LoRe joined 12:03 hudnix joined
takadonet morning all 12:03
sjn o/ 12:08
12:16 IllvilJa left 12:23 pernatiy left 12:26 wknight8111 joined 12:27 wknight8111 left, wknight8111 joined 12:31 wamba left 12:32 wamba joined 12:35 wamba left 12:36 bluescreen10 joined 12:37 wknight8111 left, wknight8111 joined 12:38 wknight8111 left, leprevost joined, wknight8111 joined 12:41 jaldhar left, jaldhar joined 12:56 Holy_Cow joined 12:57 Holy_Cow left 13:01 dakkar joined 13:03 sftp joined, imamelia joined 13:06 ggoebel left, bluescreen10 left 13:07 pernatiy joined 13:11 ggoebel joined, yegor joined 13:12 yegor left 13:18 benabik joined 13:21 ggoebel left, bluescreen10 joined 13:22 lue left 13:23 lue joined 13:26 ggoebel joined
tadzik morning #perl6 13:39
or, 'afternoon
jnthn o/
13:42 plobsing_ joined 13:46 plobsing left 13:47 agentzh left 14:02 leprevost left 14:11 wtw left 14:12 satyavvd joined, ymasory_ joined 14:15 PZt joined 14:22 pmurias joined
TimToady Since all computer languages are sublanguages of Perl 6, it is inevitable that, with a few appropriate declarations, an efficient runtime can be written in Perl 6. :) 14:24
mathw :D
14:25 dual left 14:27 yegor joined, woosley left
jnthn did once ponder the idea of a Perl 6 subset that would be relatively easily transformable to C, for the purposes of writing a VM in. 14:28
mathw that would be at the small end of subset then 14:31
jnthn yes :) 14:32
14:32 jaldhar left
tadzik isn't that what mberends is doing regarding Perlduino? 14:33
14:33 jaldhar joined
mathw writing a VM is still hard though 14:33
14:35 ymasory_ left, woosley joined 14:36 yegor left
jnthn mathw: Yeah. I've got quite enough on my plate without *that* task right now :) 14:38
14:38 daxim joined
mathw there are VMs around 14:41
just need to get Rakudo to run on ALL OF THEM
then we can have a deathmatch :D
and crown the One True VM 14:42
TimToady I think that maybe the Go subset would be more useful these days than the C subset.
mathw and nobody will ever need to write one again, because we'll have found out which one's best
Is Go getting any traction?
TimToady It certainly is inside Google. 14:43
14:43 jaldhar left
TimToady I've got spies. :) 14:43
14:43 jaldhar joined
mathw Well you expect it to be picked up inside Google 14:44
14:44 ymasory left
mathw I assume that's a major reason why they bothered to write it in the first place 14:44
I interviewed there once. They seemed clever.
14:45 spq joined
TimToady Go would probably be a good platform for exploring Erlang-like lightweight threading. 14:47
14:48 jaldhar left 14:49 pmurias left 14:59 meteorjay joined
mathw I've been getting very interested in threading over the last year or so 14:59
Largely due to continually being reminded at work that we do it very badly
15:00 yegor joined, yegor left 15:02 ab5tract joined
PerlJam Go was written because that's the kind of thing the people who created it do. Rob Pike and Ken Thompson are just repeating a pattern they've used for the last 30 years only in a new context. 15:04
15:05 yegor joined
mathw I've now got far too many languages on my list of languages I should take a good look at 15:05
15:05 kaare_ joined
pmichaud good morning, #perl6 15:18
TimToady \o 15:19
jnthn o/ pmichaud 15:20
PerlJam buenos dias pmichaud
tadzik good afternoon pmichaud 15:21
pmichaud ...should we perhaps revert 42dc4d10 ? 15:22
benabik pmichaud: Unknown revision 15:24
pmichaud sorry, typo
42dcfd10
15:24 noganex_ joined, tzhs left, yegor left
pmichaud gcd() gets called a *lot* in programs (e.g., in Rat.new) and this version will really slow things down. 15:24
benabik pmichaud: I don't have an opinion, but now I at least know what you're talking about.
pmichaud it also gets called in infix:<+>(Rat,Rat) 15:25
15:25 noganex left
pmichaud alternatively, I could convert the 2-argument calls to gcd into method calls 15:25
i.e., switch gcd($x,$y) to $x.gcd($y)
the second sounds better 15:27
15:27 MayDaniel joined 15:31 hercynium joined 15:35 Su-Shee left 15:36 Su-Shee joined
pmichaud results of avoiding call to (now-expensive) gcd(): gist.github.com/966698 15:40
15:40 MayDaniel left 15:42 Holy_Cow joined 15:44 dual joined
jnthn pmichaud: worth it 15:45
tadzik I think this is this kind of thing we could optimize using tree-optimizer, no?
just transforming gcd(a, b) to a.gcd(b) 15:46
pmichaud jnthn: I figure a 14% improvement is almost always worth it, especially for something as fundamental as Rat construction and arithmetic. :-)
tadzik: how would the optimizer know that gcd(a,b) is the same as a.gcd(b), though? That's no longer the case in the code. 15:47
tadzik hmm, I have no idea 15:48
pmichaud indeed, what makes 42dcfd10 slower is the fact that it switched gcd() so that it's no longer a simple transformation.
jnthn The real optimization answer will be to have it as two multis, and have the compiler realize that gcd($a, $b) candidate is the one to choose.
tadzik rakudo: multi media($a, $b) { say "two 15:49
p6eval rakudo 08e717: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 22␤»
tadzik bleh
pmichaud I suspect the gcd() sub itself is suspect anyway -- so far .gcd() is only defined on Int
tadzik rakudo: multi media($a, $b) { say "two" }; multi media(*@a) { say "slurpy" }; media 5, 6;
p6eval rakudo 08e717: OUTPUT«Ambiguous dispatch to multi 'media'. Ambiguous candidates had signatures:␤:(Any $a, Any $b)␤:(*@a)␤␤ in main program body at line 22:/tmp/ZjxFZm5uCk␤»
pmichaud so if you pass non-Int values to gcd(), it'll fail.
jnthn tadzik: hmm. 15:50
pmichaud multi xyz($a, $b) { ... }; multi xyz($a, $b, *@c) { ... }
jnthn Well, or we could make the above work.
pmichaud anyway, I'm not liking the gcd() function in the first place 15:51
jnthn *nod*
pmichaud I'm somewhat inclined to rip it out altogether, esp if it's unspect
*unspecced
benabik Isn't it somewhat needed to do proper Rat math?
pmichaud we have gcd as a method
I'm saying eliminate it as a sub, not the general gcd capability
indeed, I wonder if it should perhaps be infix:<gcd>(Int $a, Int $b) 15:52
then you get [gcd] for "free"
jnthn gcd as a method feels slightly weird to me, fwiw.
pmichaud and one can write $a gcd $b
jnthn ooh, the infix isn't so bad, at first blush.
Especially for [gcd]
benabik Isn't wanting something like [gcd] why sub gcd was made slurpy? 15:53
pmichaud benabik: yes. That's why I'm suggesting an operator might be better
$a gcd $b can remain efficient, and [gcd] @list would work too
benabik pmichaud++
pmichaud anyway, calculating gcd is pretty common in programs; seems like a good candidate for a core feature 15:54
but I'm also happy to leave it as a method
jnthn operator will be faster to dispatch and inlinable. 15:55
15:56 dakkar left 15:59 Holy_Cow left
pmichaud I'll try it with an operator 16:00
16:01 pyrimidine is now known as _somebody_
pmichaud sin.t over time: gist.github.com/966751 16:03
16:05 _somebody_ is now known as pyrimidine 16:07 jdhore joined 16:09 Tedd1 joined 16:10 Tedd1^ left
pmichaud switching from method to operator in current master shows no difference in sin.t 16:11
tadzik difference to rakudo-work? 16:13
pmichaud right
the numbers remain essentially the same
dalek kudo: ef6e8f4 | pmichaud++ | src/core/Rat.pm:
Speed up Rat handling significantly.

Commit 42dcfd10 changed "sub gcd()" from a 2-argument signature to a slurpy signature. Unfortunately, this also significantly slowed this function down, and since it's used by Rat.new, &infix:<+>(Rat,Rat), and &infix:<->(Rat,Rat), it slowed down Rat handling and arithmetic. This patch changes Rat.pm to avoid calls to gcd() altogether, using .gcd() directly and resulting in a ~14% improvement on the sin.t test on my machine.
jnthn pmichaud: It won't be much different now, no.
pmichaud msg bacek good catch on the recent sin.t regression -- regression was in code that handles rational numbers. Now fixed in rakudo ef6e8f4 (14% faster than previous rakudo-bleed). gist.github.com/966698 16:15
oops, wrong chan
16:16 jedai left
pmichaud jnthn: yes, I know we don't do inlining yet. But I was also curious if using a multi dispatch operator would be different from a non-multi method call 16:16
answer: no, not for this.
(and yes, it may all change in the future)
overall I like &infix:<gcd> better, but that's a language decision. 16:17
16:17 ymasory joined
pmichaud and rakbench sure streamlines the process of running these little comparisons :-) 16:18
16:18 ab5tract left 16:25 woosley left, molaf left 16:27 cdarroch joined, cdarroch left, cdarroch joined 16:31 slavik left 16:34 bluescreen10 left
jdhore Am I allowed to bump the PARROT_REVISION? bacek++ pushed another GC fix which seems to fairly significantly speed up rakudo compilation 16:37
pmichaud if the spectests pass after the bump, then yes. 16:38
colomon .gcd?
jdhore colomon, hmm?
pmichaud Integer.gcd
jdhore oh
pmichaud the old gcd($a,$b) called Integer.gcd
and Rat's operators were calling gcd($x,$y) 16:39
colomon ah. funny, I don't remember there being a .gcd at all. stupid brain.
pmichaud I simply switched it so that Rat's operators call $x.gcd($y) instead of going through the sub
because the gcd was written our sub gcd(*@a) { ... } which made it a lot slower as it looped over @a 16:40
*the new gcd
colomon actually, that sounds like a really handy workaround for the gcd bug that was bothering me in Math::BigInt the other day.
16:40 slavik joined
pmichaud jdhore: have you spectested with the PARROT_REVISION bump? if not, I can do it 16:40
(only takes 4.5 mins on my new machine :) 16:41
jdhore pmichaud, I haven't, but i'd be happy to do it...Except it doesn't take me 4.5 minutes here at work :P
pmichaud oh
colomon fantasizes about the 12-core Mac Pro someone was talking about on Hacker News a week or two ago...
pmichaud building, testing 16:43
jdhore thanks dude
takadonet happy with his dual quad core with16 gigs of ram.... 16:44
jdhore takadonet, That's what i've got at home (s/16/32/, but close enough) 16:45
tadzik I happy with my dualcore with 2 gigs of ram :)
jdhore I'm just at work and the best I have is a 2.4GhZ dual-core laptop with 3GB RAM
16:46 bluescreen10 joined
pmichaud tries "make spectest" with TEST_JOBS=15, just to see what happens 16:46
takadonet well that my workstation stats 16:47
jdhore takadonet, That's my Desktop :D
16:49 pernatiy left 16:51 jedai joined
dalek ecs: cb2d1ec | larry++ | S03-operators.pod:
add gcd and lcm infix ops
16:51
pmichaud a-ha! TimToady++
jnthn :)
std: class Foo { method bar { $!lol } } 16:52
p6eval std 14557a3: OUTPUT«ok 00:01 113m␤»
jnthn std: class Foo { method bar { return -> { $!lol } } }
p6eval std 14557a3: OUTPUT«Potential difficulties:␤ Variable $!lol used outside of method/submethod declaration at /tmp/f8EXZfS7Ky line 1:␤------> ass Foo { method bar { return -> { $!lol⏏ } } }␤ok 00:01 115m␤»
jnthn TimToady: ^^ this was my concern about using $*IN_DECL
TimToady yes, well...
jnthn If the answer is "getting it really right is semantic analysis, not something that should be in STD", that's fine. 16:53
TimToady STD doesn't know how to close over self, either...
jnthn
.oO( wow, I got std to emit a swear in the error \o/ )
16:54
TimToady it's not a four-letter word though
jnthn No, I'll have to look harder to make it do that :)
Alternatively I could do useful things. :) 16:55
dalek kudo: 21f3ea5 | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION to get latest parrot gc improvements from bacek++ .
kudo: 43180b9 | pmichaud++ | .gitignore:
Add config.status and RAKBENCH to .gitignore.
16:56 birdwindupbird left, slavik left 16:57 slavik joined
TimToady but yeah, $*IN_DECL isn't gonna cut it, since we need to scan lexical scopes 16:58
jnthn std: class Foo { has $!b; method bar($a = $!b) { } } 16:59
p6eval std 14557a3: OUTPUT«Potential difficulties:␤ $a is declared but not used at /tmp/EMq7cYABGH line 1:␤------> class Foo { has $!b; method bar(⏏$a = $!b) { } }␤ok 00:01 116m␤»
jnthn std: class Foo { has $!b; method bar($a = $!b) { $a } }
p6eval std 14557a3: OUTPUT«ok 00:01 116m␤»
jnthn Ah, it's smarter than that :)
dalek d: 47fbf6e | larry++ | STD.pm6:
add gcd and lcd ops
17:04
d: 162660c | larry++ | STD.pm6:
Revert "add gcd and lcd ops"

This reverts commit 47fbf6ec01d24d70975986a8575836e360f31cee.
d: 3ba3a75 | larry++ | STD.pm6:
add gcd and lcm ops
TimToady cool, I get karma for reverting :)
diakopter the door bumps you on the way in and out 17:05
17:05 satyavvd left
tadzik I'd say the door opens for you 17:20
colomon ... and just like that, Math::BigInt's gcd works again. :) 17:21
pmichaud colomon: note that I just added infix:<gcd> and infix:<lcm> to master, too
dalek kudo: b5084f6 | pmichaud++ | src/ (3 files):
Add infix:<gcd> and infix:<lcm> operators.
17:22
tadzik what a timing
pmichaud ....like that. :-)
colomon does infix:<gcd> call .gcd?
pmichaud colomon: no.
moritz what is lcm?
colomon least common multiple
pmichaud "least common multiple"
moritz huh
moritz would have expected "factor"
but then again I've learned math in .de, not in en
colomon moritz: 10 lcm 15 is 30
moritz oh 17:23
pmichaud > say 10 lcm 15
30
colomon that's not a factor at all, in American math English
pmichaud > say 10 gcd 15
5
> say [lcm] 2, 3, 10, 15, 4 17:24
60
....niiiiiice
colomon TimToady++, pmichaud++
17:25 [1]imamelia joined
pmichaud we probably need entries for &infix:<lcm>(Int $x = 1) { $x } 17:25
colomon yup 17:26
17:26 benabik left, wamba joined 17:27 imamelia left, [1]imamelia is now known as imamelia
jnthn oh, [lcm] is cute! 17:29
17:30 masak joined
sorear good * #perl6 17:30
17:30 mkramer1 joined
masak gd'evening, zebras. 17:30
colomon o/ 17:31
jnthn privet, masak :)
sorear masak: TimToady and jnthn both vehemently disagree, but I think the sanest way to handle private attributes is to generate private accessors, and have $!foo mean self!foo
17:32 mkramer left
sorear note that private methods are not virtual and so can be inlined 17:32
dalek kudo: a423aef | pmichaud++ | src/core/metaops.pm:
Add degenerate cases for infix:<gcd> and infix:<lcm>.
tadzik so gcd() is gone now?
pmichaud I didn't take it out yet, no. I'd like to get rid of it.
masak +1 17:33
tadzik I'm now tempting a friend of mine to write the LHF tests :)
colomon nooooo!
tadzik "do you want to become a famous Perlist?" :)
colomon errr.... though I guess that would probably fix the problem I was have too. okay, +1 17:34
sorear niecza: say (3 => 5)!Pair::key
p6eval niecza v5: OUTPUT«Unhandled exception: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.␤ at System.Collections.Generic.Dictionary`2[System.String,Niecza.P6any].get_Item (System.String key) [0x00000] in <filename unknown>:0 ␤ at
..Niecza.STable.GetPriv…
masak pmichaud: I don't think that gcd of the empty list should be 1.
sorear lcm() should be 1
pmichaud masak: feel free to fix it. :-)
masak pmichaud: lcm is probably fine, but not gcd.
sorear gcd() should be Inf or an error
masak right.
glad we agree. 17:35
sorear niecza: say (3 => 5)!Enum::key
17:35 mj41 left
p6eval niecza v5: OUTPUT«3␤» 17:35
17:35 mkramer1 left
sorear quietly grumbles that STD is a moving target (again) 17:36
pmichaud Perl 6 is a moving target.
Has been for many years now. :-) 17:37
colomon pmichaud: any objection to making infix:<gcd>(Any, Any) and then calling .gcd?
pmichaud Yes.
It's only defined on the integral types.
(see the spec)
colomon yes, but you (and maybe the spec) are suggesting you know all the integral types ahead of time. you may not.
dalek kudo: 678ad30 | masak++ | src/core/metaops.pm:
[src/core/metaops.pm] make [gcd]() fail
sorear Integral, no? 17:38
pmichaud infix:<gcd> is a multi.
sorear er, wait, that's Haskell
masak :P
pmichaud also, as jnthn++ said earlier: 15:55 <jnthn> operator will be faster to dispatch and inlinable.
sorear (hi masak)
17:38 benabik joined
pmichaud if the operator just forwards to a method... it's not really faster. 17:39
colomon so should the method go away as well? or do you expect the method to be implemented in terms of the operator? 17:40
pmichaud I don't have an opinion on that yet.
I don't typically expect the methods to be implemented in terms of operators, no.
jnthn Generally operators are done in terms of methods.
heh, pmichaud beat me to saying it :P
pmichaud ...except for those where speed might be an issue 17:41
i.e., we want Int + Int to be fast without a method dispatch
er
yeah. By similar reasoning, Int gcd Int should also be fast if the hardware allows it
s/hardware/vm/
*especially* since we call it a lot for all of the Rats 17:42
colomon we don't call it at all for Rats right now.
pmichaud oh?
colomon didn't you make Rats use the method form?
pmichaud I switched it to the operator
colomon or did I miss a commit in the frenzy?
pmichaud at the same time I added gcd and lcm 17:43
colomon pmichaud++
pmichaud because someday the operator may be much faster than the method
(inlinable :-)
17:43 mkramer joined
jnthn rakudo: say pir::gcd__II(10,5) 17:43
p6eval rakudo ef6e8f: OUTPUT«5␤»
jnthn rakudo: say pir::gcd__III(10,5) 17:44
p6eval rakudo ef6e8f: OUTPUT«5␤»
jnthn hm
:)
rakudo: say pir::gcd__III(10,6)
p6eval rakudo ef6e8f: OUTPUT«2␤»
jnthn So there is an op
Do we use that already?
pmichaud yes.
jnthn ah, OK
pmichaud method gcd(Int $x: Int $y) {
pir::gcd__iii($x, $y);
}
oops
jnthn If that's all it does then it'll surely be an inlining candiate
oh, not the method, the oop
*op
pmichaud our multi sub infix:<gcd>(Int $a, Int $b) { pir::gcd__Iii($a, $b)
}
our multi sub infix:<lcm>(Int $a, Int $b) { pir::lcm__Iii($a, $b)
jnthn hm 17:45
pmichaud I agree, lcm has a range issue.
colomon range issue?
pmichaud I figure "implement it and file bugs" rather than leave it unimplemented
the result of lcm might not fit in an I register
colomon gotcha
tadzik p6eval doesn't forbid pir? 17:46
jnthn Well, it's an OK implementation of the (int, int) variant, I guess :)
pmichaud even for (int, int) it has a range issue
rakudo: say pir::lcm__Iii(1000000000, 7)
p6eval rakudo ef6e8f: OUTPUT«7000000000␤»
pmichaud rakudo: say pir::lcm__Iii(10000000000, 7)
p6eval rakudo ef6e8f: OUTPUT«70000000000␤»
pmichaud hmm
64-bit ints? 17:47
colomon yes
sorear rakudo still doesn't have bigints
pmichaud anyway, the above would fail on a 32-bit int machine :)
colomon but you're quite right in principle.
jnthn pmichaud: lowercase int can overflow
sorear so anything that doesn't fit in "int" will be promoted to Num
jnthn pmichaud: e.g. doesn't need promotion
pmichaud jnthn: ah, I get what you mean now.
You meant the Perl 6 "int" and not the Parrot "int" :-)
jnthn Int OTOH needs to support bigint semantics
Right
:)
pmichaud I missed the context switch. 17:48
(since I was talking about I registers)
jnthn aha :)
bbs, errands
pmichaud is slightly amused that sorear++ is explaining to him how Rakudo Int's are handled. :) 17:49
colomon is having a hard time keeping Math::BigInt on top of the gcd changes today....
pmichaud colomon: should be stable-ish by now.
sorear pmichaud: I was intending to remind jnthn, not yo
u 17:50
pmichaud ahhhh
rakudo: say pir::lcm__Iii(2000000000000000000, 2) 17:51
p6eval rakudo ef6e8f: OUTPUT«2000000000000000000␤»
pmichaud rakudo: say pir::lcm__Iii(2000000000000000000, 7)
p6eval rakudo ef6e8f: OUTPUT«-4446744073709551616␤»
pmichaud rakudo: say pir::lcm__Iii(2000000000000000000, 5) 17:52
p6eval rakudo ef6e8f: OUTPUT«2000000000000000000␤»
pmichaud anyway, the 7 case shows the error :)
moritz rakudo: say pir::lcm__Iii(2000000000000000000, 3) 17:55
p6eval rakudo ef6e8f: OUTPUT«6000000000000000000␤»
moritz rakudo: say pir::lcm__Iii(2000000000000000001, 5)
p6eval rakudo ef6e8f: OUTPUT«-8446744073709551611␤»
moritz rakudo: say pir::lcm__Iii(2000000000000000001, 4)
p6eval rakudo ef6e8f: OUTPUT«8000000000000000004␤»
18:03 mj41 joined
colomon huh. I can't build parrot with the latest rakudo and --gen-parrot. :\ 18:13
tadzik what's the issue?
colomon "Failed to load libpcre"
pmichaud you probably need a fresh checkout or something like that 18:14
several of us had that issue
(fresh checkout of parrot)
colomon already did rm -rf parrot parrot_install
pmichaud it occurs during the parrot build, yes?
colomon yes
pmichaud hmmm
maybe reboot, realclean, etc.
moritz idn't tadzik have the same issue? 18:15
pmichaud I'm not sure what I did on mine to fix it-- I just know that it cleared itself up after a realclean or reboot or something like that
moritz *didn't
pmichaud moritz: yes, I think so.
moritz he "solved" ith --without-pcre in parrot's Configure.pl
moritz -> gone
colomon is rebooting 18:16
18:16 colomon left
masak "buy the new colomon. boots in just 20 seconds." 18:17
18:18 imamelia left, fhelmberger left 18:19 fhelmberger joined 18:20 fhelmberger left
pmichaud ...or maybe longer. 18:21
tadzik oh, yeah, my problem exactly
18:22 Chillance joined, colomon joined
Tene ports colomon to systemd, reducing boot time by 75% 18:23
colomon Thinking during my reboot... I'm really not seeing any justification for a Int.gcd method.
Tene tadzik: If you're experiencing boot times long enough to be a problem for you, you should investigate systemd. 18:24
colomon Tene: eh?
masak colomon: me neither.
tadzik Tene: no, I meant the pcre problem
Tene tadzik: Ah, I misunderstood context.
tadzik Tene: also, I rarely shutdown, I mostly suspend. KDE startup is far more annoying than my system startup
system is like 20 secs, KDE is like 60
Tene colomon: It was a joke response to masak and pmichaud 18:25
systemd is a replacement for sysvinit and upstart
colomon Tene: ah. and I missed the setup. :)
dalek ecza: fd940af | sorear++ | / (3 files):
Use MRO to tiebreak multimethods
tadzik uses openrc 18:26
or rather my system uses
masak colomon: now, if you'd had a shorter boot-time... :P
pmichaud my startup time is about 25 seconds, for both system and kde :)
SSDs make for amazing boot times :) 18:27
tadzik yeah, SSD is one tempting thing 18:28
colomon reboot and realclean did not help. :(
tadzik colomon: try building parrot --without-pcre
wfm
colomon perl Configure.pl --gen-parrot --without-pcre ?
pmichaud colomon: maybe report to #parrot or a track bug
tadzik I dunno
pmichaud *trac
perl Configure.pl --gen-parrot --gen-parrot-option=--without-pcre # probably 18:29
18:31 orafu joined 18:33 orafu left
colomon pmichaud++ # your command line there got me a working build, it appears 18:35
pmichaud we should still find out and/or report why we're getting the failure, though.
18:36 orafu joined 18:38 mkramer left
masak report, then find out, I'd say. 18:39
submit bug early, submit bug often :P 18:40
18:40 orafu left
colomon what's the e-mail address for Parrot bugs? 18:42
pmichaud I don't think there is one.
I think it has to be submitted to trac.parrot.org/parrot 18:43
checking
18:43 mj41 left
masak aye. 18:43
pmichaud there's a "parrotbug" script in the parrot repo
docs/submissions.pod says to use that. 18:44
colomon starts a fresh build of rakudo in another directory to duplicate the problem.
18:45 dual left
colomon Google tasks API! \o/ 18:46
pmichaud it's about time. :)
colomon agreed.
pmichaud I still want the market on my revue, though. :(
colomon perl6 interface to the api needed? ;) 18:47
masak of course :) 18:49
18:52 orafu joined
colomon now if they can just make tasks work with google Voice on my droid... 18:56
pmichaud I wish I could create custom google voice commands
18:57 dual joined
colomon yeah, that would be nice. :) 18:58
I'm just saying, my number one use of Google voice is to send myself an e-mail reminding me to add something to my tasks list. 18:59
18:59 mkramer joined 19:00 wamba left
colomon woah, Math::BigInt completely blows up under the latest Rakudo. :\ 19:04
.... probably not Rakudo's fault? I'm very confused. 19:06
19:07 mkramer left, ab5tract joined
colomon t/01-basic.t .. Unknown param Signature t 19:08
in <anon> at line 100:/Users/colomon/.perl6/lib/NativeCall.pm6
.... maybe I need to rebuild NativeCall 19:09
19:09 snearch joined 19:11 dsouza joined
colomon hmm... do you need to install NativeCall by hand? Or is my version old? 19:11
tadzik tries to make panda install Math::Bigint
benabik colomon: Parrot recently removed some depreciated NCI stuffs. 19:12
colomon tadzik: I haven't pushed any of today's changes yet, who knows what will happen...
tadzik ah, I see
colomon Can someone else check zavolaj against the latest Rakudo? I think it's broken... 19:13
but I'm not at latest, hmmm
19:15 birdwindupbird joined
colomon ack, I'm stumped. 19:15
19:16 mkramer joined
tadzik perl6-mpd is broken too 19:16
jnthn Tehre were some changes to Parrot NCI recently. 19:17
Maybe Zavolaj got hit by them.
benabik trac.parrot.org/parrot/wiki/ParrotD...ionsFor3.6
tadzik looks so 19:23
colomon yup 19:24
benabik++
colomon watches his day spiral into another day of no progress.... 19:25
jnthn Is anyone going to take on the gcd/lcm tests task?
If not, I can add them to the "task suggestions" for Friday's hackathon :)
In fact, maybe I should start a wiki page for that... 19:26
colomon jnthn++ # but don't bother testing the method forms.... ;)
jnthn ok
:)
19:27 SHODAN joined, am0c joined 19:29 dsouza left, dsouza joined, wamba joined
jnthn Started page at event.perlrussia.org/mayperl4/wiki?...uggestions 19:32
stroll, before it gets dark &
19:53 TiMBuS left
colomon parrot/parrotbug 19:53
Cannot open './myconfig': No such file or directory at parrot/parrotbug line 131.
sigh
ah, needs to be run from the parrot directory.
19:53 benabik left 19:54 Vlavv_ left 19:55 Vlavv_ joined
colomon argh 19:58
20:04 takadonet left 20:05 imamelia joined
colomon argh 20:07
colomon wonders if anyone actually uses parrotbug
20:07 Mowah left 20:08 snearch left 20:09 orafu left, wknight8111 left, wknight8111 joined 20:12 SHODAN left 20:13 imamelia left
pmichaud I think parrotbug only works after Configure has been successfully performed. 20:16
it should probably say that.
(if that's the case)
masak if that's the case, that sucks.
"hi, you need a partly working system to report a broken system with this tool"
pmichaud it would mean that a user is unable to report a bug if Configure.pl doesn't work, yes. :) 20:17
masak yes, that's the "sucks" part.
pmichaud I think that's fairly rare. Still, yes, suck.
colomon actually, it's dying at the moment because it can't call my text editor
moritz ouch
masak pmichaud: "fairly rare" is a weak consolation for people who actually trigger that failure mode.
besides, why *should* it depend on that? 20:18
20:18 [Coke] left
pmichaud masak: I suspect so it can include configuration details in the bug report. 20:18
moritz ... which should be optional, of course 20:19
pmichaud it would probably be better to have "configuration details unavaila....." right
I didn't write parrotbug. I didn't even know it existed until colomon++ asked earlier how to report a bug, and I looked at the docs.
moritz it could still gather important information from the system (compilers in PATH, OS, architecture, ...) if parrot wasn't configured
pmichaud Granted, I probably shouldn't have read the docs.
moritz ... and just pointed to trac
colomon docs--
20:22 [Coke] joined
colomon Action (display,edit,save,quit) # which one sends my message, I wonder? 20:22
pmichaud possibly none -- sending might come in the next step
colomon Message saved. Please submit a ticket and attach this file at
trac.parrot.org/parrot/newticket
pmichaud ouch! 20:23
colomon and "quit" just appears to exit
pmichaud so, parrotbug just formats details for a ticket, it doesn't actually send it.
colomon looks like
and of course, you've got to be logged in to submit a ticket? 20:24
jnthn Yup
pmichaud colomon: yes
colomon rakudobug++
jnthn A very atractive approach to bug submissions... ;)
pmichaud at my p6 meeting last night I was asked what ticket system we would use if we weren't using RT.
I basically responded with "not Trac"
colomon at least my lunchtime noms were tasty today... 20:25
pmichaud rakudo: say 4 lcm 10; # checking
p6eval rakudo 678ad3: OUTPUT«20␤»
pmichaud \o/
jnthn rakudo: say 6 lcm 7;
p6eval rakudo 678ad3: OUTPUT«42␤»
pmichaud rakudo: say lcm 3, 14, 20, 15, 100;
20:25 wknight8111 left
p6eval rakudo 678ad3: OUTPUT«Could not find sub &lcm␤ in main program body at line 22:/tmp/UR2lnEipS0␤» 20:25
jnthn [lcm]
pmichaud rakudo: say [lcm] 3, 14, 20, 15, 100;
p6eval rakudo 678ad3: OUTPUT«2100␤» 20:26
tadzik cool
pmichaud rakudo: say [gcd] 3, 14, 20, 15, 100;
p6eval rakudo 678ad3: OUTPUT«1␤»
jnthn tadzik: Got any suggestions for event.perlrussia.org/mayperl4/wiki?...uggestions - we got some module-y ideas there...
tadzik: Like, is there any panda/pie hacking to do? 20:27
*pies
20:27 araujo left
colomon mmmmmm.... pies 20:27
20:27 imamelia joined
tadzik we _do_ need a better url for a Most Wanted list 20:27
jnthn: well, panda has an LHF list
jnthn colomon: That phrase is better when you don't know where the name "pies" came from...
tadzik then name of a pie, or the name of my module? 20:28
jnthn:
github.com/tadzik/Pies/issues?mile...mp;labels=
colomon "TICKET_CREATE privileges are required to perform this operation"
tadzik (:
moritz though need to log in first 20:29
colomon moritz: am logged in
tadzik oh, that reminded me of Shrek for some reason
20:29 noganex joined
jnthn tadzik: Your module. It's from a Polish word, no? :) 20:29
tadzik "I think I told you to stay outside!" "I am outside!"
jnthn: yep :)
phenny: pl "pies"?
phenny tadzik: "dog" (pl to en, translate.google.com)
20:29 noganex_ left
pmichaud colomon: feel free to abandon the bug report since it's being a pain 20:30
tadzik and panda is actually a name of my dog. What a coincidence! :)
20:30 nicte joined
colomon tadzik++ 20:30
pmichaud I'll report it to #parrot and maybe parrot-dev
20:30 ymasory left
tadzik jnthn: if you saw her picture you won't be confused anymore :) 20:30
20:32 TiMBuS joined
jnthn tadzik: A lot of things can be explained with that reasoning... ;) 20:32
tadzik goo.gl/MtTJf :)
I named her at the first moment I saw her :) But, offtopic 20:33
20:34 imamelia left
jnthn nice! 20:34
20:35 birdwindupbird left, nicte left, [Coke] left
tadzik she looked more Pandy when she was few weeks old, extremely fat for that age, and with those dots above eyes :) 20:37
colomon: I think Parrotland had some issues with trac accounts recently
20:37 [Coke] joined 20:38 imamelia joined 20:39 icwiener joined
cotto_work colomon: you have permissions to submit a trac ticket on trac.parrot.org now. We had to disable giving that bit to any registered user due to trac spam. Sorry for the inconvenience. 20:41
colomon cotto_work++ # submitted 20:43
cotto_work colomon++ # submitting
20:44 b_jonas left
moritz now add another one for "parrotbug is utterly broken" 20:44
cotto_work moritz: looks like you'll beat me to it then 20:46
moritz cotto_work: I can't, trac doesn't let me in 20:48
"Invalid username or password"
with the credentials stored in the browser, which have always worked so far. 20:49
20:49 imamelia left
tadzik I just had the same problem 20:50
20:53 awoodland joined 20:54 r0b86 left 20:57 pernatiy joined
tadzik g'night #perl6 20:58
colomon \o 21:00
21:01 imamelia joined
pmichaud ticket for "bug reporting is broken" is now TT #2108, fwiw 21:03
colomon pmichaud++ 21:04
pmichaud [Coke]++
21:04 bluescreen100 joined, [particle] left 21:05 kaare_ left
colomon so, do we have a REST module for p6 yet? 21:06
moritz sleep() RESTs pretty well :-)
colomon punning-- 21:07
moritz in my understanding REST is more of a general concept or methodology than something that can be cast into a framework
of course web frameworks can help you with it 21:08
21:08 [particle] joined
plobsing_ colomon: we'll leave the rest up to you 21:08
masak moritz: in my understanding too. specifically, REST isn't about choosing cute URLs.
colomon perhaps I should ask, what do we have in the way of web client frameworks
moritz knows of one web client, and that is LWP::Simple. No frameworks around. 21:12
masak likes Web::Scraper 21:15
21:21 donri left, spq left, spinclad joined, bluescreen__ joined 21:28 Sarten-X left 21:32 spinclad left 21:36 Sarten-X joined 21:39 justatheory left 21:40 bluescreen__ left, bluescreen100 left, bluescreen10 left, keeth joined 21:43 mj41 joined 21:59 ymasory joined 22:02 dual_ joined 22:04 dual left, dual_ is now known as dual 22:07 wamba left 22:13 ab5tract left 22:21 stevan_ joined, stevan_ left 22:24 masak left 22:27 Su-Shee_ joined 22:28 mj41 left, cottoo left 22:30 Su-Shee left 22:32 fridim_ joined, fridim_ left 22:33 whiteknight joined 22:37 awoodland left 22:43 athomason joined, athomason left 22:44 athomason joined 22:47 whiteknight left 22:48 whiteknight joined 22:50 athomason left 22:53 athomason joined, icwiener left 22:56 whiteknight left, kst left, whiteknight joined 22:57 kst joined, whiteknight left
jnthn sleep & 22:57
22:57 whiteknight joined 23:01 flatwhatson joined
sorear good * #perl6 23:02
23:16 justatheory joined 23:21 hercynium left 23:23 cdarroch left 23:36 pjcj left, Chillance left
Ali_h Hi all - complete noob to perl 6 so this might seem a really dumb question and I appologize beforehand - I cant get my .pl files to open bring up perl6.exe type $ perl6 file.pl and get non-declarative sigil is missing its name at line 1 "$ perl6 sc" what am I doing wrong :/ 23:46
TimToady well...if line one of your file is "$ perl6 sc" then that's not valid Perl 6 23:51
Ali_h TimToady, its not line one is use v6 23:52
this is why I dont understand 23:53
TimToady try leaving out the "use v6" line
rakudo: use v6;
p6eval rakudo 678ad3: ( no output )
Ali_h ok ill try that 23:54
TimToady or no-past the file.pl here
*no-paste
Ali_h same thing - TimToady im working through the book that came with the download 23:55
TimToady is this the latest Rakudo Star?
Ali_h yeah
TimToady what kind of system are you on? 23:56
perigrin suspects windows. 23:57
Ali_h perigrin, your ringt (hides)
right*
perigrin " bring up perl6.exe" kinda gave you away
Ali_h :) 23:58
TimToady jnthn develops on Windows, so it can work, but maybe you have to smile just right...
TimToady is not a Windows expert...
Ali_h I could just slap daemon its his fault im learning it :/ 23:59
TimToady pmichaud: are you around?
PerlJam Ali_h: I'd like to see the code you're trying to execute
Ali_h the first one from the book PerlJam