»ö« 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.
colomon \o 00:02
00:02 betterworld left
jnthn figures he'll just gut the NQP::World role handling and do it over in the light of how Rakudo does it 00:04
00:13 fridim_ left 00:17 bluescreen10 joined 00:21 betterworld joined
colomon is trying to remember what he wanted to do to niecza before he got sidetracked with the bag operators 00:23
00:26 am0c joined
sorear TimToady: I can't use gnome-terminal until I find a way that works to turn off this cursed blinked cursor 00:27
TimToady ah, well, doesn't bother me
00:27 frew joined
sorear I've tried using gconftool-2 but the settings don't "stick" 00:30
TimToady I bet quietfanatic would know, but he's off at college... 00:31
huf back in ancient times, you had to have gnome-session-daemon or something running to have apps see the things you set via the gconf editor
TimToady sorear: btw, did you see my /msg's? I know it's easy not to see them in irssi... 00:32
sorear huf: If I set options within gnome-terminal itself, like bg color, it works fine. 00:33
huf you're running the whole gnome DE?
because then disregard everything i said.
sorear huf: I'm not running the gnome DE. 00:35
huf ahh.... yes, then something like what i used to do might apply
00:36 betterworld left
sorear What did you used to do? 00:38
huf well, some years ago i remember i had to start gnome-session-daemon from my .xsession to have apps see the settings
but i think that's gone now 00:39
is gconfd running?
someone seems to have started one on my behalf
sorear gconfd: command not found 00:40
huf 2715 /usr/lib/libgconf2-4/gconfd-2
this is what i have, it's running in my name and the ppid is 1
i have no idea who started it
not me, it's not in my xsession
i'm basically assuming it's important to gnome :) 00:41
sorear I don't have that running, and if I run the executable directly, it immediately exits without forking a daemon
00:42 plobsing left 00:43 betterworld joined
geekosaur gconfd / gconfd-2 is started automatically by any gnome-isprogram that uses the settings api 00:45
00:46 skids joined
geekosaur s/-ispr/-ish pr/ 00:46
00:47 am0c left
colomon TimToady: just realized I got multiset multiplication wrong. 00:48
TimToady I have no idea how it's officially defined... 00:49
colomon it's element-wise multiplication
(just got that from Knuth!)
TimToady with missing elements 0?
colomon yes
TimToady that's what I'd expect
what did you do instead?
colomon I mean, that's not mentioned explicitly in the tiny writeup, but that's got to be it.
min 00:50
TimToady hmm
right, which is what I said before
multiplying seems wrongish to me, if it's really a bag
colomon so, I'm also wondering if bag union bag should be a bag. 00:51
there's a straightforward definition for it...
(or bag union set, for that matter)
TimToady yes, I think bags are probably infective
colomon I apologize for jumping in and coding without trying to do any multiset research first. :) 00:52
TimToady you and me both :)
colomon oh, wait, the multiplication thing is not the same symbol. 00:53
TimToady wp shows intersection as min 00:54
and now that I think of it, multiset multiplcation is based on the union symbol, not the intersection
colomon the operator I'm looking at here in Knuth is intersection-dot 00:55
which doesn't seem to be in unicode?
TimToady .u multiset
phenny U+228C MULTISET (⊌)
TimToady .u ⊍
phenny U+228D MULTISET MULTIPLICATION (⊍)
TimToady .u ⊎ 00:56
phenny U+228E MULTISET UNION (⊎)
TimToady those are the only ones that grepping for multiset gives
.u ⋿
phenny U+22FF Z NOTATION BAG MEMBERSHIP (⋿)
TimToady .u ⟅⟆ 00:57
phenny U+27C5 LEFT S-SHAPED BAG DELIMITER (⟅)
U+27C6 RIGHT S-SHAPED BAG DELIMITER (⟆)
TimToady there's also those
and that exhausts m:i/«bag»/
colomon I vote we make multiset multiplication the same as the "intersection-dot" operator, ie element-wise multiplication. 00:58
at the very least, until we find a better definition somewhere!
TimToady sure 00:59
00:59 scott_ joined, scott_ is now known as Guest67603
TimToady are there any mathematical entities you might put in a bag that are naturally geometric? 01:00
sorear Balls?
Although those are found more in urns than bags
s/^/Colored / 01:01
colomon oooo, found a paper on multisets available online 01:02
projecteuclid.org/DPubS/Repository/...1093634995
errr, may be too fundamental... 01:03
01:04 frew left, frew joined, frew left 01:08 whiteknight left
dalek p/bs: 4ea3bcb | jnthn++ | src/NQP/World.pm:
Start to clear up role handling a little; toss deserialization code and eliminate use of add_code_LEGACY.
01:16
p/bs: fee2122 | jnthn++ | src/HLL/World.pm:
Eliminate add_code_LEGACY, now all uses of it are gone.
p/bs: 8cddbe2 | jnthn++ | src/NQP/World.pm:
Gut NQP::World's role handling; we'll do something more like Rakudo does. Put in the simplest thing that could possibly work: making a code ref for the role body and passing it along to the meta-object. Actually passes the first three role tests anyway...
jnthn Grr...this stuff is too fiddly for 2am...will continue tomorrow. :)
'night
colomon \o 01:18
01:21 woosley joined
sorear just tried kterm. a o SP enter -> 猫 FAIL 01:25
TimToady meow! 01:26
01:27 miso_soup joined
dalek ast: 0bf94c0 | (Solomon Foster)++ | S03-operators/bag.t:
Fix tests for multiset multiplication -- they now test multiset multiplication rather than multiset intersection.
01:31
ecza: 75fe43c | (Solomon Foster)++ | lib/CORE.setting:
Fix multiset multiplication so that it's distinct from multiset intersection (which I will be implementing shortly).
TimToady well, niau would be more suitable
01:32 plobsing joined
sorear not nyaa? 01:35
TimToady well, it was a pun on 似合う 01:39
01:40 tty234 joined 01:53 thou left
colomon ugh, not having a shortcut to say Bag | KeyBag is a pain 01:53
errr, unless i can just say that? 01:54
niecza: sub foo(Bag | KeyBag $a) { say $a; }; foo(bag(a=>10));
p6eval niecza v14-51-g3474558: OUTPUT«===SORRY!===␤␤Unable to parse signature at /tmp/8D2t7q6Qaq line 1:␤------> sub foo(⏏Bag | KeyBag $a) { say $a; }; foo(bag(a=␤Couldn't find final ')'; gave up at /tmp/8D2t7q6Qaq line 1:␤------> sub foo(Bag | ⏏… 01:55
01:55 thou joined
TimToady a Bag role should encompass both, I'd think 02:00
KeyBag just adds mutability 02:01
or a Baggy role
colomon should it be a Bag role, or... hmmm 02:05
I always feel more comfortable subtracting mutability
Baggy role?
(that's as in, how does going for the Baggy role sound to you) 02:06
TimToady I wouldn'ta suggested it if I didn't think it was okayish 02:11
02:17 sisar left
colomon okay 02:20
[Coke] is the skip function supposed to have a leading count or a trailing count? 02:24
sorear I don't remember, but I know it switched a couple months ago
trailing count.
[Coke] Danke. 02:25
... of course, just switching the args in pugs doesn't make the skip work. ah well. ;) 02:29
phenny: ask masak to fix skip("reason", $count) in pugs.
phenny [Coke]: I'll pass that on when masak is around.
02:32 replore_ joined 02:35 preflex left 02:37 preflex joined 02:41 bluescreen10 left
dalek ast: 068fb14 | (Solomon Foster)++ | S03-operators/ (2 files):
Bag union and bag intersection are infective, so move those tests.
02:42
02:46 lutok joined
dalek ecza: ffefe23 | (Solomon Foster)++ | lib/CORE.setting:
Add role Baggy, Bag union, and Bag intersection.
02:56
[Coke] "total", 3009, 0, 1722, 14, 4745, 23233 03:02
(pugs)
dalek ast: a842b80 | coke++ | S0 (8 files):
pugs fudge
03:03
colomon [Coke]++
dalek gs.hs: 58459c2 | coke++ | t/spectest.data:
run fudged tests
03:04
03:07 lutok left 03:11 thou left, jferrero left
[Coke] Looks like I'm back up to 2300 more "LHF". 03:20
5K passing tests after this hiatus is pretty good, I think.
03:21 `patch`_ is now known as `patch`
colomon nod 03:21
[Coke] -> zzz
TimToady o 03:22
/
colomon sleep soon.... 03:24
though I hate going to sleep with a bug... 03:25
got it! 03:26
colomon -> zzz 03:27
TimToady \
o
03:27 orafu left 03:28 orafu joined 03:37 replore_ left 03:38 sftp left 03:46 miso_soup left 04:17 s1n joined 04:20 thou joined 04:21 bbkr_ joined 04:22 bbkr left, bbkr_ is now known as bbkr, jnthn joined, BooK_ joined 04:29 PZt joined 04:37 s1n left 04:42 stepnem left 04:43 stepnem joined 04:49 retupmoca left 04:55 birdwindupbird joined 04:58 lestrrat left 05:00 lestrrat joined
sorear unsubscribes from parrot-dev due to CI emails 05:03
05:06 birdwindupbird left, birdwindupbird joined 05:09 miso_soup joined 05:34 miso_soup left 06:05 zby_home joined 06:12 cognominal joined 06:21 GlitchMr joined
dalek kudo/match-refactor: 6a5b656 | moritz++ | src/ (2 files):
refactor Str.match to be more modular

also implements :exhaustive and :nth
06:43
sorear o/ GlitchMr
GlitchMr Hi, sorear
tadzik good morning 06:44
sorear good morning tadzik.
could someone, preferably with Cantonese knowledge, help me in #parrot? :| 06:45
sorear wonders how much longer it will take before people start saying Guandongese, and if pinyin will even still be used then 06:46
06:47 co_ajak_cewe_ngi joined, co_ajak_cewe_ngi left
bonsaikitten I guess pinyin is going to stay for a while 06:47
06:47 JimmyZ joined
bonsaikitten it's convenient, even with all its limitations 06:47
sorear o/ JimmyZ
bonsaikitten: I'm referring to the fact that Wade-Giles WILL NOT DIE
06:48 takesako joined
bonsaikitten c'est la vie 06:48
sorear I don't know what the successor to pinyin will be called, but Wade-Giles still won't be dead then either.
06:49 jaldhar joined
JimmyZ uses pinyin :) 06:53
06:56 ascrazy joined
JimmyZ wonders which line is about Cantonese knowledge 07:03
sorear JimmyZ: the generally broken english, and their ip resolved to Shenzhen 07:04
JimmyZ sorear: hehe
sorear I thought maybe someone like you would be better equipped to understand them
JimmyZ sorear: I'm in Shenzhen too 07:05
07:06 alc joined
JimmyZ always wrote broken english, which is bad 07:07
07:11 thou left 07:15 proller_ left
ascrazy please, tell me how I can dynamically define method, for example in constructor 07:42
nom: class X { has Str $.m is rw; submethod BUILD(Str :$.m){ has &.test = (method (){ $.m }).assuming(self) }}; X.new(:m<zxc>).test.() 07:43
p6eval nom 4130f6: ( no output )
ascrazy nom: class X { has Str $.m is rw; submethod BUILD(Str :$.m){ has &.test = (method (){ $.m }).assuming(self) }}; X.new(:m<zxc>).test.().say
p6eval nom 4130f6: OUTPUT«zxc␤»
ascrazy but i want also dynamically determine the name of the method 07:46
and it would be fine if it were a method, not an attribute-subroutine 07:47
JimmyZ ascrazy: X.^add_method('name', method) or X.HOW.add_method('name', method);
ascrazy great, thanks 07:53
07:53 tarch joined
ascrazy JimmyZ: maybe there a some documentation about it? I have not found anything on perlcabal.org/syn/ 07:56
JimmyZ ascrazy: github.com/rakudo/rakudo/blob/nom/...amodel.pod or github.com/rakudo/rakudo/blob/nom/...ct-api.pod and github.com/rakudo/rakudo/tree/nom/.../Metamodel 08:00
ascrazy JimmyZ: thanks 08:01
sorear for a while you could use ::() in roles, but that's no longer done 08:07
moritz remember to call X.^compose after you're done adding methods 08:08
08:09 GlitchMr left 08:11 Guest67603 left 08:14 preflex left 08:15 preflex joined 08:38 JimmyZ left 08:42 ascrazy left 08:46 mj41 joined 08:48 JimmyZ joined 08:50 xinming left
sorear I tried removing the DFA cache, and apparently it *does* make a difference; CORE from 60s to 72s 08:51
08:51 xinming joined
moritz and what about memory usage? 08:54
sorear according to the memory profiler, the DFA cache is *tiny8 08:56
moritz ok
so are the parse trees what takes up all the space during parsing? 08:57
sorear No, that's still the NFA cache.
moritz compare robohash.org/Perl%205 robohash.org/Perl%206 and robohash.org/Python 09:05
I like how Python has a silly hat :-)
(robohash generates roboter images based on a hash over a text)
phenny: tell jnthn in the match-refactor branch, code such as 'abc'.split(/b/) dies with This type cannot unbox to a native integer in method reify at src/gen/CORE.setting:4488. The code that dies is nqp::unbox_i(nqp::istype($n, Int) ?? $n !! $n.Int); and debugging output shows that $n is an Int. Any idea how to debug that? 09:14
phenny moritz: I'll pass that on when jnthn is around.
09:22 ab5tract joined, zby_home left 09:24 woosley left
moritz feels bad for starting several branches, getting stuck and then needing to bother jnthn++ to get unstuck :/ 09:36
09:37 ascrazy joined
bacek ~~ 09:38
seen jnthn
aloha jnthn was last seen in #perl6 5 hours 16 mins ago joining the channel.
bacek phenny, tell jnthn what is the point of /bs branch? Why don't use ImageIO(Freeze|Thaw) PMCs from Parrot? 09:39
phenny bacek: I'll pass that on when jnthn is around.
arnsholt IIRC bs is short for bounded serialisation, and aims to do some kind of limited serialisation 09:41
moritz bacek: does ImageIO(Freeze|Thaw) support recursive-but-limited (de)serialization?
arnsholt So that you don't always freeze your whole object graph
bacek moritz, can you explain your question?
moritz bacek: well, we need to serialize objects and type objects 09:42
bacek: which have dependencies on the whole meta object system
bacek moritz, it all depends how object itself want to serialize. VTABLEs thaw/freeze
moritz bacek: so all of that needs to be serialized recursively, but for example not the parse tree of the current program
bacek moritz, it's possible. ImageIO is just orchestrate calls to VTABLE_freeze/thaw 09:43
moritz, every PMC decide by itself which part requires serialization (and how)
and you'll have really good opportunity to store it in PBC 09:44
Anyway, my point is - we did invent this wheel already. Let's make it more circular instead of inventing new one. 09:45
09:47 dakkar joined
moritz afaict we had several discussion about this on parrotsketch and parrot-dev, and found that parrot's solution wasn't sufficient 09:47
so jnthn++ decided to prototype it outside, so that we know what we need from parrot
09:51 dju joined
bacek there is one small problem... 09:55
Parrot is some kind of "understaffed" and it's very likely that we'll not have enough people to bring this prototype into Parrot. 09:56
moritz well, rakudo has the same kind of problem 09:57
09:57 pernatiy left
moritz it's also understaffed, and if the most efficient approach is to not mess with parrot, that's what we do 09:57
09:58 daxim joined
bacek moritz, don't "mess with it". Just change it to shape required. 09:59
moritz well, that's not always easy
lists.parrot.org/pipermail/parrot-d...05410.html has some notes
bacek moritz, yes. 1) We did improve GC. Notably. And I'm looking into rewriting GC once again. 10:06
2) We have some profiling tools. Still LTA. 10:07
10:08 alc left
moritz bacek: I specifically meant the serialization notes in there 10:08
bacek 3) Just build nqp/bs branch as Parrot's freeze/thaw improvements/replacement. We can discuss which parts are useful, which are useless and which are stupid. But overall serialization is in much better shape now
moritz bacek: I know about profiling and GC. Much more awesome than 2 years ago 10:09
jnthn morning, #perl6
phenny jnthn: 09:14Z <moritz> tell jnthn in the match-refactor branch, code such as 'abc'.split(/b/) dies with This type cannot unbox to a native integer in method reify at src/gen/CORE.setting:4488. The code that dies is nqp::unbox_i(nqp::istype($n, Int) ?? $n !! $n.Int); and debugging output shows that $n is an Int. Any idea how to debug that?
jnthn: 09:39Z <bacek> tell jnthn what is the point of /bs branch? Why don't use ImageIO(Freeze|Thaw) PMCs from Parrot?
bacek 4) It's stalled. Our PBCs are way too fragile and highly coupled with IMCC :(
jnthn, aloha
jnthn hi, bacek 10:10
10:23 NamelessTee joined 10:30 PZt left
jnthn bacek: There were many reasons - amongst them: it was just easier to build what I wanted the end result to look like, that NQP is bootstrapped and Freeze/Thaw is, iirc, tied to PBC version, that I don't know how I'd have handled the stub code object stuff, the bounded notion of it that moritz already mentioned... 10:32
...plus wanting it to fit in neatly with 6model and the HLL::World model, and wanting an object serialization approach that would work out relatively fine when I wish to get NQP bootstrapped on additional backends. 10:34
bacek: My *expectation* at one point was that m0 would come along, we'd build 6model et al on top of that base, build things to replace the existing interesting PMCs using that, write a new PAST::Compiler to target whatever m0 wanted us to target and so forth. 10:36
10:36 unobe left, [particle] joined 10:37 djanatyn joined, unobe joined
jnthn bacek: In that approach, less coupling to existing stuff that I doubt would survive the m0 transition (like, PMCs being more primitive than some low-level objecty thing like 6model) would seem helpful. 10:37
bacek: Every time I do something that makes the "6model on top of PMCs" model more deeply entrenched, the harder I see turning that arrow in the other direction. 10:39
masak good antenoon, #perl6
phenny masak: 02:29Z <[Coke]> ask masak to fix skip("reason", $count) in pugs.
masak later :) 10:40
10:40 lestrrat left 10:41 lestrrat joined 10:42 noam__ left 10:47 noam joined 10:49 JimmyZ left, JimmyZ joined
masak "Guandongese". cute. and obvious in retrospect. 10:53
hehe. robohash.org/Ruby 10:54
robohash.org/PHP
all of them feel "right" in some weird unspecifiable sense. robohash.org/Scala robohash.org/Java robohash.org/Clojure robohash.org/Google%20Go 10:56
moritz :-) 10:57
masak of course, it's already 廣州話 to the Chinese, so it won't make a difference to them what the 西人 call it. 11:02
11:03 fsergot left
JimmyZ can't understand Cantonese 11:04
Teratogen good morning 11:05
masak Teratogen! \o/
Teratogen hi masak
dalek kudo/match-refactor: a495442 | moritz++ | src/core/Str.pm:
slightly rework Str.split to avoid passing 1..* ranges around internally
11:06
kudo/match-refactor: 919603a | moritz++ | src/core/Str.pm:
re-instate workarounds for the zero-width-regex-matches-after-end-of-string bug
jnthn moritz: That nqp::unbox_i failing sounds REALLY weird. 11:09
moritz jnthn: aye
jnthn moritz: Have you managed to golf it to anything?
moritz jnthn: I've reduced the number of occurences with a495442, but it still crops up in seemingly unrelated ways
dalek p/bs: de17776 | jnthn++ | src/NQP/ (2 files):
Move setting of op libs and hll into World.
11:10
moritz jnthn: not yet
now that tests have stopped hanging, I'm doing a full spectest and see in which contexts it pops up
nom: say <a b c>.list.gimme(Inf) 11:13
p6eval nom 4130f6: OUTPUT«This type cannot unbox to a native integer␤ in method reify at src/gen/CORE.setting:4435␤ in method gimme at src/gen/CORE.setting:4812␤ in block <anon> at /tmp/GRES6pfmrL:1␤␤» 11:14
moritz jnthn: there you go
now that I know what the problem is, it's easy to avoid
jnthn nom: say Inf.WHAT 11:17
p6eval nom 4130f6: OUTPUT«Num()␤»
jnthn nom: say ?nqp::istype(Inf, Int)
p6eval nom 4130f6: OUTPUT«False␤»
jnthn nom: say ?nqp::istype(Inf.Int, Int)
p6eval nom 4130f6: OUTPUT«False␤»
moritz I added a pir::say(pir::typeof__SP($n)), and it did say Int, I think
jnthn nom: say Inf.Int.WHAT 11:18
p6eval nom 4130f6: OUTPUT«Failure()␤»
moritz nom: say Inf.Int.WHAT
p6eval nom 4130f6: OUTPUT«Failure()␤»
jnthn Ah, there we go
It's relying on what comes back from .Int to always be an Int.
moritz we should *really* make .Type either return that type or error out
jnthn yeah
Because it's not a particularly unreasonable expectation :) 11:19
my $eager = nqp::p6bool(nqp::istype($n, Whatever)); 11:20
That line in List.gimme should be updated to check for Inf.
moritz and can we make $eager an int?
11:20 cogno joined
jnthn Why? 11:21
Bool::True and Bool::False don't require any allocation
moritz oh right
then it's fine, I think
jnthn It'd save a container allocation I guess
But only if the compiler is smart enough to know not to box on the LHS of ?? 11:22
Which I suspect it currently ain't.
dalek kudo/match-refactor: 5b44683 | moritz++ | src/core/Str.pm:
avoid passing Inf to List.gimme()
11:24
11:25 cogno left 11:39 benabik left 11:40 fridim_ joined 11:50 noam left 11:51 noam joined 11:54 fridim_ left 11:56 NamelessTee left 12:05 noam left 12:06 noam joined 12:09 NamelessTee joined
dalek p/bs: faad21e | jnthn++ | src/NQP/World.pm:
Set up .hll and op libs when doing dynamic compilation.
12:24
p/bs: cd2d658 | jnthn++ | src/core/NQPRoutine.pm:
Correct is_dispatcher; simply add_dispatchee.
p/bs: a4b32bb | jnthn++ | src/how/NQPClassHOW.pm:
Correct dispatcher test in multi incorporation.
p/bs: 1c44619 | jnthn++ | src/ (2 files):
Make stringification of NQPRoutine work.
12:25
p/bs: bf58d7d | jnthn++ | src/ops/nqp.ops:
Harden dispatcher check to avoid false positives.
p/bs: 65d8cac | jnthn++ | src/ (3 files):
Always make code objects for methods - it will make dynamic compilation and thus role handling FAR saner. This required some twiddles to multi-method handling also. Will come back and unify multi-subs with this approach later also.
12:31 sftp joined 12:35 benabik joined
dalek ast: 7fa2c2d | moritz++ | S05-modifier/exhaustive.t:
clean up and fudge exhaustive.t a little
12:48
ast: b07cd56 | moritz++ | S05-modifier/counted-match.t:
s/todo/skip/ a test for a NYI feature
12:52 mtk joined 12:53 Trashlord joined
dalek p/bs: 8bf542e | jnthn++ | src/ (2 files):
Update clone handling in parametric roles.
12:54
p/bs: b9e1d10 | jnthn++ | src/NQP/World.pm:
Start building fixup list for dynamic compilation. Also some general tidying of create_code.
jnthn Hunger strikes...lunch. bbs
12:55 lateau__ joined 13:00 mtk left, mtk joined 13:09 tokuhirom joined
masak .oO( how can you lunch during the hunger strikes? ) 13:11
arnsholt masak: In re pirc and so on, when I think about it, Perl 6 can easily dispatch to not only pimc (via hypers) but also pifl via precircumfix<[ ]>, just as soon as we get a computer that supports the necessary operations =D 13:12
masak I just think of those as 'hyper map' and 'hyper grep', respectively. 13:15
arnsholt Indeed
masak pire, if it weren't two degrees impossible, would be 'hyper reduce'.
arnsholt Yeah, that's the one [+] does of course, not pifl
Brainfart
masak I guess if the operation being reduced on follows the associative law, you can get the running time down from Inf to log(Inf) *grin* 13:16
moritz and log(Inf) is in the order of 5, as one of our professors used to say :-) 13:18
arnsholt I'm gonna have to try and remember that quote
I gave my students the "Any problem in CS can be solved with an additional layer of indirection" quote yesterday 13:19
But log(Inf) is on the order of 5 might be possible to wriggle in at some point
masak arnsholt: you teach? nice! 13:20
I find the "additional layer of indirection" quote to be very true nowadays.
I wonder if I couldn't give a talk just about that. 13:21
arnsholt Yeah, it's pretty cool. Mostly I help students during lab sessions, but I'm giving about a third of the lectures in the course as well
moritz ... especially if you add "... except for the problem of having too many layers of indirection"
arnsholt Giving a two hour lecture is also one of the mentally exhausting things (if not the most) I've ever done, incidentally 13:22
moritz: Yeah, I mentioned that as an aside, but the first part was even on the slide =)
moritz agreed. I've given a few 2-hour tutorials (partially in lecture style). And once I've given two such things in a row.
arnsholt Ow. That sounds extra exhausting 13:23
But OTOH, it's a very good experience. I usually end up feeling like I've learnt something
moritz masak: it's just a different view on the ladder of abstraction thing you've blogged about (variables/loops/routines/macros, dunno which steps I've forgotten)
jnthn
.oO( Every problem can be solved by either adding or removing a level of indirection. Now you just gotta figure out which of the two you need this time... )
13:25
13:28 skids left, awoodland joined
moritz woah, it seems I've broken something multi-dispatchy on the match-refactor branch :/ 13:28
Teratogen is Perl 6 thread safe? 13:29
moritz Teratogen: is English thread safe?
Teratogen baw
moritz the question doesn't make much sense for a language
Teratogen ok 13:30
Does Perl 6 have threads?
wait
Does English have threads?
flussence () 13:31
moritz Teratogen: Perl 6 threads aren't specced in much detail yet (nor any other concurrency stuff), but there will be threads 13:32
Teratogen cool
moritz and then, some features and libraries will be thread safe, and others might not be.
masak moritz: I don't think I ever wrote that blog post ;) 13:33
oh! maybe as an advent post! 13:34
ah, right. perl6advent.wordpress.com/2011/12/1...-its-good/
13:45 kaare_ joined, fsergot joined 13:46 lateau__ left
fsergot o/ :) 13:46
13:46 rsimoes left 13:50 stepnem left 13:54 rsimoes joined 13:55 stepnem joined
masak fsergot! \o/ 13:55
13:57 GlitchMr joined 14:02 Trashlord left 14:03 PZt joined 14:05 stepnem left
masak Trashlord's quit message is allegedly a Cree "prophesy". but I can find no reliable source for it on the interwebs. 14:08
huf also it's wrong. when the premises come true, you can still eat other people for a while 14:10
flussence
.oO( money can't be eaten, but it can buy you some zombie repellant )
14:11
dalek kudo/match-refactor: 560633d | moritz++ | src/core/ (2 files):
handle List.gimme(Inf) and fix two two off-by-one errors

This brings the branch on par with nom wrt passing tests, except two odd failures in S06-operator-overloading/sub.t and integration/advent2009-day22.t
14:12
masak the quote says nothing about eating people.
flussence ...what if the money was made out of rice paper? 14:13
masak that's the best response to that quote I've ever heard. 14:14
14:27 stepnem joined
moritz are some of you also getting "mail delivery failed" emails that quote very old mails to perl6-* lists? 14:32
tadzik nope
masak нет 14:33
moritz I think [Coke] mentioned something similar
masak some people in here might appreciate herbsutter.com/welcome-to-the-jungle/ -- it's about the future of computing hardware. 14:36
14:38 PacoAir joined
PerlJam masak: Haven't you mentioned that before? 14:39
I know I showed it to my coworkers recently and I could have sworn I got the URL from here. 14:40
moritz thinks he's also seen it before
masak I might've. yeah, it was probably me. 14:41
it's been sitting in my tab queue for a while, and I just started reading it. 14:42
14:43 kaare__ joined, kaare_ left 14:46 bobbob joined
tadzik is still waiting for some psychological analysis which will tell him, why some people tend to have few dozens of tabs opened all the time, and some like to close them 15:01
moritz tadzik: no need for psychology. I have good techincal reasons (memory hungry browser, not too much RAM) for closing them
cognominal tabs, the new bookmarking system... 15:02
tadzik moritz: well, I have none of those problems and I still keep tabs closed 15:05
moritz tadzik: you might have that problem if you kept 200+ tabs open :-)
tadzik true :)
oh, oh, idea for Perl6::Critic 15:06
masak I have 32 tabs open. that's on the high side for me nowadays.
tadzik warn if I declare class A is B, when B is a role. I probably do not want
moritz uses that feature in the exceptions stuff 15:09
everything that does X::Comp also needs to inherit from Exception, so role X::Comp is Exception { }
jnthn back 15:10
(no, all that time wasn't *just* spent on lunch)
tadzik that's not what I mean, I think 15:11
frettled I hope you had sufficient noms.
jnthn frettled: Yes. :)
tadzik I stumbled upon this when porting Panda to nom; B was a role with some stub (!!!) methods, , class A was implementing them, but upon class A is B an error occured, "methods NYI in B" 15:12
jnthn Yeah, that will happen.
tadzik that did happen, and did give me some headscratching ;) 15:13
jnthn It's almost certainly correct. We can't turn a role into a class if it has missing bits. :)
flussence shouldn't those be "..." instead?
jnthn But I can see how it would make you think "hmm wtf" too :)
moritz flussence: ... and !!! are both allowed as stubs
tadzik somehow, it came to my memory while I was thinking about interfaces in Go
flussence oh, ok
moritz and !!! is like &die, and ... is &fail
jnthn Don't forget ??? 15:14
:)
moritz tadzik: oh, I misunderstood you. Yes, 'class A is SomeRole' is likely and error, whereas 'role A is SomeClass' is much more likely to be legit
tadzik I'm looking forward to a module which will name them "fyi", "wtf" and "omg"
moritz: right 15:15
15:18 noam left 15:19 noam joined 15:22 att_ left
jnthn Well, "class A is SomeRole { }" means "pun the role then inherit from the pun" 15:23
moritz right 15:27
jnthn I think we shouldn't stigmatise it as it's a mechanism that eases class => role refactoring. 15:30
moritz well 15:34
maybe we really want a way to mark a class as not having any stubbed methods left 15:35
so that we can complain at compile time if that assumption is violated
15:35 skids joined 15:36 att_ joined, GlitchMr left
jnthn nom: role R { method m() { ... } }; class C does R { } 15:38
p6eval nom 4130f6: OUTPUT«===SORRY!===␤Method 'm' must be implemented by C because it is required by a role␤»
jnthn moritz: ^^ already is compile time.
moritz nom: role R { method m() { ... } }; class C is R { } 15:39
p6eval nom 4130f6: OUTPUT«===SORRY!===␤Method 'm' must be implemented by R because it is required by a role␤»
moritz oh, that case is covered too? great
jnthn That is just a tad confusing.
But...not sure how easily we can fix that.
I mean, it'd be nice if it told you it was due to punning
moritz yes, if it said "Error while promoting role R to a class: Method 'm'..." 15:40
that would be more awesome
15:41 tokuhirom left
dalek ecza: c03a4da | (Solomon Foster)++ | lib/CORE.setting:
Add Range.pick and Range.roll based on the Rakudo versions.
15:41
ecza: ea24f5c | (Solomon Foster)++ | lib/CORE.setting:
Fix copy-n-pasto.
benabik nom: role R { method m() { ... } }; class C is R { method m() { } }
p6eval nom 4130f6: OUTPUT«===SORRY!===␤Method 'm' must be implemented by R because it is required by a role␤»
15:41 tokuhirom joined
dalek ast: 92c0f96 | (Solomon Foster)++ | S32-list/ (2 files):
Add more sanity tests for Range.pick and Range.roll. Unfudge tests which are now quick in niecza.
15:41
ast: a95178f | (Solomon Foster)++ | S0 (10 files):
Merge branch 'master' of github.com:perl6/roast
15:44 Psyche^ joined
dalek p/bs: 92b0fbc | jnthn++ | src/NQP/World.pm:
Bring the code object fixup mechanism in line with the one in Rakudo (essentially, it fixes up by setting the $!do rather than mucking round with assign vtable).
15:45
p/bs: 0f9b81e | jnthn++ | src/NQP/World.pm:
Implement fixing stuff up in dynamic compilation. Gets the role tests passing again in the run-immediately case; serialization not quite there yet, though.
15:46 tokuhirom left 15:47 Patterner left, Psyche^ is now known as Patterner
masak do people in here self-identify as "hackers"? 15:53
flussence sometimes
masak I mean, can the word still mean "programmer", or has it been claimed for "computer crimial"?
cognominal Perl is about lazyness. What about slhackers? 15:55
jnthn masak: I accept (though resent) that in many circles it's been claimed as the latter. I'd self-identify as that quite comfortably hear, but would likely not in any situations where it was likely to be misinterpreted. 15:56
s/hear/here/
geekosaur most programmer-oriented communities still use hacker in something close to the original sense (and MIT still uses it in the sense in which it was coined, naturally, with some splashover to similar institutions) 15:58
masak I find I say "to hack on" in its various forms more often than I say "hacker" nwoadays.
moritz masak: I identify myself as a "hacker" when I manage to come up with a clever hack (like the "prototype stuff in SAFE.setting to get shorter compilation times" thing yesterday), but mostly I don't think I deserve that title, because I don't do clever hacks often enough 15:59
and I do use "hacker" as meaning "computer criminal" when talking with non-tech people, simply because then they know what I'm talking about 16:00
but internally, "hacker" is positively and non-criminally connotated for me
benabik Hacker is becoming less associated with criminals, I think. Hackerspaces are starting to flourish and more and more people know it doesn't mean a den of criminals. 16:01
moritz jnthn: do you have any idea why 5b4468309e03b0d6ff3f01070997b6ebb9687103 (in match-refactor) breaks adding lexical multis to operators? 16:02
jnthn o.O 16:04
No.
moritz in that branch, S06-operator-overloading/sub.t fails 16:05
arnsholt I do much the same as masak, I think
moritz and one of the integration tests
and I have not a single idea of what that could be
and git bisect identified that as the offending commit
arnsholt I use the verb to hack reasonably frequently (which results in some confusion with others, TBH), but don't really label myself as hacker with any frequency
masak I seldom use "hacker" as meaning "computer criminal", because I secretly deplore this more mainstream sense of the word. 16:12
colomon +1 16:14
PerlJam masak: why secretly? :) 16:15
masak because in a conversation when someone uses "hacker" in the "criminal" sense, I don't go all rms on them an put them right. 16:17
flussence masak++
I'm often tempted to myself :) 16:18
masak in the pendulum swing between valuing correctness and valuing communication, I'm currently in a "valuing communication" phase, and have been for some years :) 16:19
au maska++ #communic 16:20
masak++, even.
PerlJam masak: yet you silently accept their mis-use of the word "hacker" rather than communicate to them the proper perspective :)
au thinks the 13th-century "one who cuts wood, builds stuff with wood, and builds one's own wood-cutting tools" sense is quite communicable, too
masak PerlJam: yes.
that's the backside of the "value communication" coin :) 16:21
maybe I'll reach some kind of synthesis between the two one day...
PerlJam au: I'd never really considered that definition before, but it's interesting for me to find out that I was a hacker long before I was a hacker :) 16:22
au :D
masak the 13th-century sense has some pretty symmetries with the 20th-century programmer one. :) 16:23
PerlJam masak: you can always tactfully educate people without being RMS-like :)
au oh yes, you can s/wood/code/ and it'd still work :) 16:24
or even s/wood/slack/...
benabik Lots of people seem to turn wood into slack...
benabik has heard rumors people do useful things with power tools, but has yet to see it. ;-)
masak a language hacker does s/wood/meaning/ :) 16:25
au mmm meaning-cutting tools
masak admires the strange loop
cognominal "going rms on people". Nice neologism. 16:26
benabik "Meaning-cutting"? People do speak of a well honed argument...
masak cognominal: it's "going GNU/rms on people" to you, mister. 16:27
PerlJam #perl6 is adept at cutting meaning from words and other raw materials
masak++
masak that's why we like to bikeshed, I guess.
most bikesheds are on choice of words.
arnsholt Good point. I guess that's the danger of including too many linguists (or close enough approximations thereof) ^_^ 16:29
cognominal masak++
16:30 xinming left
masak I can't just riff on rms like that without saying that I also respect the man, and the way he holds on to principles. 16:30
in a world where people willingly give away their privacy on Facebook, people like rms are sorely needed. 16:31
PerlJam masak: yep
16:31 slavik1 joined 16:32 xinming joined
cognominal somehow rms is often counterproductive. I have seen him aggressive against a mayor of a Paris arrondissement because he was confusing Open source and free software. Agression against a well-meaning outsider who does not know minute catechism points but is ready to propagage the faith is stupid. 16:37
16:38 retup-wo1k left
daxim the mayor clearly had it coming 16:39
masak .oO( he was in for some mayor rms aggression ) 16:40
16:40 mucker joined
daxim two crowns for the pun box! 16:40
16:45 ascrazy left 16:58 bluescreen10 joined 17:00 pomysl joined, pomysl left, pomysl joined 17:01 mj41 left 17:02 birdwindupbird left, sudokode left
dalek p/bs: 043c6a3 | jnthn++ | src/6model/serialization_context.c:
Make an error more useful for debugging.
17:15
p/bs: 09f9aea | jnthn++ | src/6model/serialization.c:
For closures, if they have a high level code object attach, serialize that attachment and put it back when deserializing. This means that the multi-method tests now all pass after serialization/deserialization.
moritz \o/ 17:16
TimToady "Error while promoting role R to a class" Odd, I think of it as demoting :)
jnthn ;)
moritz: I've still gotta figure out why roles don't survive the serialization now, though... 17:17
TimToady I think of abstractions as higher than concretions, generally
jnthn oh...partly 'cus I've done something really dumb... 17:18
omgz, I think it just worked... 17:22
masak decommutes 17:26
17:26 daxim left 17:28 MayDaniel joined, sudokode joined 17:37 Chillance joined, birdwindupbird joined
dalek p/bs: 9300396 | jnthn++ | src/HLL/World.pm:
Add a way to update a code ref in an SC (for example, if dynamic compilation comes along and actually compiles the real thing).
17:38
p/bs: abd4d49 | jnthn++ | src/NQP/World.pm:
Make the fixup logic for dynamic compilation aware of twiddles it needs to make with regard to the SC: marking with STATIC_CODE_REF and updating the SC entry itself. This gets the role test to pass after serialization/deserialization.
17:41 sudokode left
dalek p/bs: 36cf9ca | jnthn++ | src/NQP/World.pm:
Use normal compilation chain when doing dynamic compilation, which means we don't miss adding various directives we need to get .const thingies. Fixes serialization of QRegex, though all the tests fail.
17:51
p/bs: c35d3cd | jnthn++ | src/core/NQPRoutine.pm:
Fix boolification of NQPRoutine; now all QRegex tests pass with serialized QRegex executable.
p/bs: e694ab9 | jnthn++ | / (4 files):
Merge branch 'master' into bs
17:52
sorear good * #perl6 17:55
colomon \o 17:56
jnthn hi, sorear
18:00 pmurias joined 18:01 mucker left
pmurias sorear: hi 18:01
18:06 prammer joined 18:10 dakkar left 18:13 MayDaniel left 18:15 JimmyZ left 18:18 kmwallio joined
pmurias sorear: when should i commit code for the use Foo:from<perl5>, once it starting to work (now) and clean it up in subsequent commits or when it's reasonably polished? 18:19
18:25 kmwallio left
PerlJam pmurias: release early, release often :-) 18:25
sorear If nothing else, at least commit it to a branch. 18:26
18:35 awoodland left, birdwindupbird left 18:36 birdwindupbird joined 18:42 Tedd1 joined, pernatiy joined
[Coke] yawns 18:42
sorear heya [Coke] 18:45
pmurias sorear: t/run_spectests is supposed to be all passes? 18:47
18:50 Chillance left
sorear ideally 18:50
[Coke] there are failures, though. 18:52
niecza has been consistently failing 8 tests for some time now. 18:55
18:55 Chillance joined 18:56 pmurias_ joined, Tedd1^ joined 18:57 pmurias left
dalek p/bs: d17d795 | jnthn++ | src/ModuleLoader.pm:
Slightly cheaty fix to global merging (mostly messy due to PAST not being done with 6model and NQP not really having a distinct package-only meta-object). With this, the Rakudo build atop of nqp/bs actaully produces a perl6.exe, though things blow up in the Metamodel compilation (which was expected at this point).
18:57
18:58 Tedd1 left
dalek kudo/bs: e78ab30 | jnthn++ | src/Perl6/Metamodel/C3MRO.pm:
Make c3merge a method to avoid an issue with subs in roles; amazingly, this is enough to make Perl6::Metamodel build (though it needs various changes yet).
18:59
19:00 MayDaniel joined 19:02 bobbob left 19:05 roland333 joined
roland333 good afternoon everybody. 19:05
sorear, you busy? 19:07
sorear o/ roland333
roland333 \o
high five bro
sorear I was wondering when you'd be back. :)
roland333 You're going to be disappointed in me=) I decided to focus my efforts on python at first.
But still hang out in this channel 19:08
I'm scared of python people.
sorear *shrug*
that's fine with me.
a lot of other people will insult you in an attempt to prove their manliness. 19:09
roland333 Yeah, you guys were so cool sunday I'm hooked on this channel.
im scared more than they'll have me put in commands that will damage my machine actually.
I enjoy a good argument as much as the next guy. so that wouldn't dissuade me. 19:10
19:10 pmurias_ is now known as pmurias
roland333 Yesterday I made it my mission to get linux running on my mac. Took all day and it was a huge pita, but I finally gave up trying to set up a dual boot and tried to set up a VM and it worked smoothly. 19:11
Feels good.
sorear Why bother? 19:12
If your mac was made this century, it already has FreeBSD on it
pmurias sorear: t/run_spectests is supposed to be all passes? 19:13
sorear 10:50 < sorear> ideally
10:52 < [Coke]> there are failures, though.
10:55 < [Coke]> niecza has been consistently failing 8 tests for some time now.
dalek kudo/bs: a4be325 | jnthn++ | src/Perl6/World.pm:
Rip out much of the deserialization code generation that can be got rid of just by removing it, and that doesn't need more careful consideration.
roland333 sorear, i found the freebsd dir in spotlight, how do I get it running? 19:14
I only see 3 files and none of them are familiar types. 19:15
pmurias sorear: lots of tests pass, commiting, will fix the failures once they finish ;)
sorear roland333: os x is a graphical environment built on top of freebsd
benabik (FreeBSD's userspace on top of Mach. OS X is a many layered thing. </pendantic>) 19:16
roland333 I knew it had a unix/linux type engine, but i really want to work in an authentic environment.
benabik, I enjoy pendantry, so thanks=)
pmurias ahh merge conflicts
flussence OS X is a certified Unix®
benabik There is nothing missing in OS X as a real Unix environment. X11, gcc, bash, perl, the whole lot is there. (Although you do have to download Xcode for the dev tools, but it's free) 19:17
sorear OS X probably has more of the original AT&T code than Linux does
roland333 so can I customize the appearance, modules, etc etc like I could in ubuntu? 19:18
sorear (where by Linux I actually mean common Linux-based operating systems)
roland333 I have almost no idea what i'm talking about so be gentle.
I guess what I mean, can I customize my graphical environment? 19:19
Its shallow, but hey, i'm a shallow guy.
sorear sure OSX has customization options.
the graphical environment used by OSX is not the same as the graphical environment used in Ubuntu 19:20
as always there are layers
the core graphics system that Ubuntu uses is called "X11", and I beleive an OSX version of that is available from Apple
19:20 mj41 joined
roland333 cool thanks. 19:21
gonna mess with that and see if i can figure it out on my own.
benabik It comes installed on 10.5(?)-10.7. It was downloadable for earlier version.
sorear core X11, however, just gives you a black screen and the ability to open windows
roland333 before i go, any pitfalls I should be wary of?
Can I build my own custom graphical environment on top of core x11 though?
benabik (And will be downloadable again for 10.8+, since Xquartz updates much faster than the OS does.) 19:22
sorear so Ubuntu also provides add-on modules - a desktop (displays icons on the screen), a panel (displays the top bar), and a window manager (displays title bars on windows)
roland333 I want to do it from the ground up.
benabik First you have make a cross-compiler environment to build the kernel with... <.< >.> 19:24
sorear I'm personally running panel-less, desktop-less, and with a window manager that I partially wrote myself. But I don't generally recommend this.
benabik That may be starting from underground...
sorear: Custom WM in OS X? 19:25
sorear benabik: Linux
benabik sorear: Ah. Yes. That's far less confusing. Sounds fun. :-D
roland333 haha
it does.
sorear I don't think it's even possible to replace the system WM/panel/desktop in OSX
roland333 I helped my buddy with a pc get ubuntu running on his machine and now he's doing all kinds of cool customization and i'm jealous. 19:26
sorear, thats why i want to get linux on my machine.
sorear OSX is designed to make it hard for you to shoot yourself in the foot
benabik It's possible to kill Finder... The Dock has a tendency to do more than you might expect though.
sorear it's very, very easy to break a linux system
roland333 I spent all goddamn day trying to set up a dual boot and had to give up and set up a vm. 19:27
benabik Some Linux systems come pre-broken... Although I may just be a little bitter about multi lib / aptitude problems in Ubuntu 10.10
roland333 ha 19:28
tadzik jnthn: I get lots of WARNING: STable deserialization not yet fully implemented on nqp/bs, is that expected?
doy ubuntu doesn't come pre-broken, it's just that anything you try to do to it breaks it
roland333 sorear, i'm willing to put in the work to get it running, i really want a dual boot. I have blank dvds, a 16 gb flashdrive but I just couldnt get it working. 19:29
What flavor do you guys recommend for a beginner?
jnthn tadzik: Yes. 19:30
tadzik: Did it otherwise build OK?
benabik doy: Install 10.10 on x86_64, run aptitude, and then tell me it's not broken. Double packages everywhere and forgetting new packages doesn't work.
tadzik jnthn: yes, and tests PASS
doy linux on apple hardware can be more of a challenge, because apple makes so much of their own hardware that some things may not be as well supported
tadzik jnthn++
19:30 sahadev joined
jnthn tadzik: Thanks, good to hear it works on at least one other platform :) 19:30
19:30 mj41 left
jnthn noms some dinner 19:30
doy benabik: well, i haven't tried it in a while, it may have gotten worse
(:
19:31 bluescreen10 left
benabik doy: I imagine it's a temporary thing, but it frustrated me to no end trying out Ubuntu Server. 19:31
roland333 sorear, what kind of machine are you on?
sorear an unmarked white box of unknown origin that's half as old as I am 19:32
+at least
roland333 so a pc?
sorear yes, pc compatible
roland333 shitty. How familiar are you with macs? 19:33
sorear dubious
I'm more familiar with the older systems
I've read _Inside Macintosh_ 19:34
benabik I duel-boot OS X / Win7 on my MacBook. Never tried adding Linux to it, I just add what I need to OS X.
sorear I've used OSX a few times... I know how to open a terminal, and I have "fond" memories of one time when I needed to edit a file and the only thing I could get to work was ed(1) 19:35
huf hehe 19:36
roland333 =0
is timtoady actually timtoady or is that a tribute nickname?
moritz TimToady is as TimToady as TimToady can be.
huf he's the real thing, or a facsimile so good
that we dont need the real one
roland333 haha, thats amazing. 19:38
i just read his essay from '98 on how perl is the first postmodern programming language. 19:39
Completely blown away.
dalek kudo/cont_reuse: 7cb1087 | moritz++ | src/binder/multidispatch.c:
fix rakudo for parrot's take_recont branch
19:43
masak roland333: Perl 6 is the first post-postmodern language.
moritz oops, forgot to credit bacek++ for that patch
roland333 Thats fitting, considering its not done masak. 19:44
19:44 bluescreen10 joined
masak roland333: nice to have you back, by the way. 19:45
roland333 IF you couldn't tell, i despise that term, post-postmodern.
Man, this is the best channel i've been in since my days of Ultima Online.
masak oh! then Perl 6 is just pre-post-postmodern.
roland333 hha
moritz well, you can shorten that to post^2-modern
you're totally right about DRY of course
roland333 you and sorear especially are a tribute to the perl community. 19:46
masak especially sorear :) 19:48
roland333 haha, i wasn't going to say it:P
TimToady hides behind a post-post. 19:51
masak is that something like a combined lamp-post and mailbox? 19:52
skids pictures a dog wearing a big white chew-cone (forming an O), with the letters SX spraypainted and/or shaved on its side. Good thing he doesn't have a dog. 19:53
sorear TimToady: hey, roland333 wants to know, are you really TimToady?
TimToady why do you think I'm hiding?
sorear roland333: I am flatttered 19:54
roland333 Larry, I can't tell you how much I enjoyed your essay on postmodernism and perl.
TimToady btw, finally "upgraded" to Ubuntu 11.10 on my laptop last night, and survived, mostly... 19:55
roland333 more for the concise and creative explanation of postmodernism than anything else.
TimToady well, it's only one view of postmodernism
masak likes that talk too
TimToady the deconstructionists didn't like me making puns on that though... 19:56
19:56 snearch joined
TimToady apparently puns are a sign of the patriarchy, or something... 19:56
moritz nom: class A { }; { multi infix:<==>(A $, A $) { say "A+" }; A.new == A.new; }
p6eval nom 4130f6: OUTPUT«A+␤»
roland333 haha. 19:57
moritz didn'T we have a ticket that some operators can be overloaded in nom, and other can't?
roland333 Well, i'm starstruck. My friend Scott is one of your great disciples.
LoRe TimToady: i've switched to archlinux after I lost a live while upgrading to 11.10...
sorear you'll get over that. 19:58
TimToady roland333: my condolences
LoRe: well, when I upgraded my server to 11.10 it bricked it for a few days...
which is why I waited on the laptop
sorear if you're going to be active in the perl irc community you'll need to learn to cope with occasional visits from TimToady and merlyn and yrlnry 19:59
TimToady now that I'm here, my officemates are hauling me off to lunch... &
roland333 i'll learn to cope i suppose.
doy archlinux++
roland333 who are merlyn and yrlnry? 20:00
sorear Randal L. Schwartz, Mark-Jason Dominus
respectively
au briefly wonders why no-one has picked up the obvious dual nickname "rwlnwr", then fades to sleep &
moritz nom: class A { }; { multi infix:«<»(A, A) { say "A overloaded" }; A.new < A.new; } 20:01
p6eval nom 4130f6: OUTPUT«No applicable candidates found to dispatch to for 'Real'. Available candidates are:␤:(Mu:U \$v, Mu %_!)␤␤ in method Real at src/gen/CORE.setting:665␤ in sub infix:<<> at src/gen/CORE.setting:2305␤ in block <anon> at /tmp/WHCmyaMoUM:1␤␤»
moritz nom: class A { }; { multi infix:«+»(A, A) { say "A overloaded" }; A.new + A.new; }
p6eval nom 4130f6: OUTPUT«A overloaded␤»
masak moritz: yes, I think we did. but I can't find it.
jnthn recalls that one
But I thought it may be a bit of confusion 20:02
sorear I don't get au's joke
au sorear: both are off-by-one typos of "telnet" on a qwerty keyboard.
jnthn Along the lines of "the one in the setting re-dispatches and doesn't include my candidates" - which it won't given the way we've implemented it at the moment.
sorear ah. my mind jumped to rot13, leyael, Yuval Kogman...
dalek ecza: 3da37be | (Paweł Murias)++ | / (4 files):
Exporting a empty sub using :from<perl5> works.
20:03
ecza: d05a5fe | (Paweł Murias)++ | / (4 files):
Exporting a single sub works.
moritz so I should re-submit the bug from above, right?
jnthn: I think that the bug in the match-refactor branch is a manifestation of that very same bug 20:04
and that it simply shifts == from overloadable to not overloadable
masak sorear: I also didn't get it before the explanation. the only thing I could come up with was "ya rly"
jnthn moritz: you may if you can't find it 20:06
dalek ecza: be2a9e7 | (Paweł Murias)++ | examples/term-ansicolor.pl:
Change Term::ANSIColor example to use :from<perl5>.
20:12
20:16 MayDaniel left 20:17 Trashlord joined
colomon does yrlnry actually come here? I don't recall ever knowing that mjd was in the channel... 20:17
sorear I think he may have dropped by once or twice 20:18
I've definitely seen him in #p5p
sorear out 20:21
20:23 ascrazy joined
dalek p/bs: a1d5f90 | jnthn++ | src/6model/serialization.c:
Add container spec serialization/deserialization, which completes all we need to do for at least STable serialization.
20:24
p/bs: 0764869 | jnthn++ | src/6model/serialization.c:
Seems STables already do get a type cache ID allocated upon deserialization, so remove deserialization warning; nothing known un-done now.
moritz bug submitted as #111264 20:27
colomon: irclog.perlgeek.de/perl6/2005-07-24#i_-551631 20:28
colomon moritz: that was 2005! 20:29
moritz colomon: aye :-) 20:30
colomon: it has a negative ID in the DB, which means that it's imported from before I started logging on my own
colomon is that the most recent one you could find? 20:31
moritz it's the only one I could find.
masak that's the only one.
and it's not even a Perl 6 question! :) 20:32
20:33 localhost left
PerlJam mjd is always on #git and occasionally on #p5p and some of the other #perl 20:34
skids gist.github.com/1877885 <-- meanderings of a recently-fevered mind.
20:35 localhost joined
PerlJam skids: I don't buy your "# time passes" bit. 20:36
benabik Unfortunately, time passes even if you don't pay for it. 20:41
skids well, whether you are looking at it from that perspective, or that the format of the data is simply unknown to the person doing the subscripting (because they are working in a sloppily typed environment), same problem really. 20:42
PerlJam What I'm saying is that, in that situtation, "time passes" is irrelevant (because of lexical proximity) or can't happen that way
20:43 mj41 joined
moritz skids: what I'm missing is a rather concrete example use case 20:44
20:46 birdwindupbird left
colomon has a strange urge to play "Pull Out the Knife And Stick it Again" on flute... 20:47
[Coke] # 02/21/2012 - niecza at 100.96% 21:02
"niecza", 20283, 8, 751, 1549, 22591, 23461
"rakudo", 20090, 28, 604, 1869, 22591, 23471
21:02 proller_ joined, NamelessTee left
[Coke] "pugs", 3008, 1, 1722, 14, 4745, 23233 21:04
b: say 3008/20090
p6eval b 1b7dd1: OUTPUT«0.149726231956197␤»
benabik poor pugs
[Coke] should be able to get it to 25% without actually writing any haskell. 21:05
b: say 20090/20283, "\n", 3008/20283 21:06
p6eval b 1b7dd1: OUTPUT«0.990484642311295␤0.148301533303752␤»
21:07 ksi joined 21:08 fridim_ joined
[Coke] updated gist.github.com/1476841 21:10
# 02/21/2012 - rakudo at 99.04% of niecza, pugs at 14.83%
masak \o/ 21:11
[Coke]++
[Coke]: I might get to the skip thing tomorrow. 21:12
[Coke] (now to automate that so pugs is included by default)
fsergot perl6: say sin(pi / 6); 21:13
p6eval rakudo 4130f6: OUTPUT«0.499999999481858␤»
..pugs b927740, niecza v14-57-gd05a5fe: OUTPUT«0.49999999999999994␤»
fsergot Isn't just 0.5? 21:14
masak yes.
fsergot: are you familiar with loss of precision when doing some floating-point calculations?
roland333 Alright guys, i'm gonna go try and concentrate on learning some commands.
Thanks for the help
21:15 roland333 left
masak roland333: thanks for stopping by! 21:15
21:15 NamelessTee joined
fsergot masak: yes, i'm. :) 21:15
So, it's clear now. :) 21:16
masak :)
fsergot I just wanted to know where the problem is. :)
21:17 jaldhar left
moritz In> Sin(Pi / 6) 21:18
Out> 1/2
that's in yacas
masak well, there are two sites of possible loss of precision: the division and the sin(). both use Num, that is, floating-point numbers.
fsergot masak: is there any way to round this result?
masak fsergot: constant folding :)
moritz not really 21:19
fsergot The 'round' word is correct in this meaning? :)
moritz nom: say sin(pi/6).fmt('%.2f')
p6eval nom 4130f6: OUTPUT«0.50␤»
moritz fsergot: yes, but by default, round rounds to the nearest integer
nom: say sin(pi/6).round(0.01)
p6eval nom 4130f6: OUTPUT«0.5␤»
moritz that also works 21:20
masak: constant folding doesn't improve precision
fsergot Great. :)
masak moritz: in this case it could by recognizing sin(pi / 6) as a unit. 21:21
since everything in there is constant.
moritz masak: then it still needs a symbolic calculator to evaluate it to exactly 1/2
masak or just a static rule.
moritz such a static rule would be the simplest case of a symbolic calculator 21:22
fsergot Moving on. .. is there any built-in way to reduce fractions?
moritz yes, Rats are reduced by default 21:23
nom: say (10/4).perl
p6eval nom 4130f6: OUTPUT«5/2␤»
fsergot Perl6 is awesome. :)
masak nom: say (3/100 + 5/100).perl
p6eval nom 4130f6: OUTPUT«2/25␤»
moritz aye
masak did the rule about fractions such as the above not being reduced go away? 21:24
21:24 jaldhar joined
moritz masak: it now says that a compiler may choose not to reduce it, iirc 21:24
masak ah.
moritz masak: and the if the denominator contains only powers of 2 and 5, then the stringification is not allow to lose precision in the way that .Num.Str would 21:25
(that's something that rakudo doesn't implemen tyet)
masak ooh 21:26
fsergot I learn new things every day and the rest of the day I can't go out from admiration. :)
dalek p/bs: 056f183 | jnthn++ | src/NQP/ (3 files):
First crack at giving NQP support for BEGIN blocks.
21:36
p/bs: 2ebb21b | jnthn++ | src/NQP/World.pm:
Ensure code in BEGIN blocks can see the correct view of GLOBAL.
skids moritz: OK, updated. Not that I'm married to the idea and feel inclined to build a solid case for it, I'm just throwing it out there as food for thought. 21:39
21:39 Alias joined
fsergot perl6: sin(pi / 6).perl; 21:42
p6eval pugs b927740, rakudo 4130f6, niecza v14-57-gd05a5fe: ( no output )
fsergot perl6: say sin(pi / 6).perl;
p6eval rakudo 4130f6: OUTPUT«0.499999999481858e0␤»
..pugs b927740: OUTPUT«0.49999999999999994␤»
..niecza v14-57-gd05a5fe: OUTPUT«0.49999999999999994e0␤»
masak why do you want a .perl on there?
moritz to see if it's a Rat again? 21:43
moritz -> sleep
fsergot Hmm, don't know. just wanted to if the output will be different from the previous. :) 21:46
to see if*
'night moritz 21:47
o/
21:47 tarch left 21:48 lestrrat left 21:49 lestrrat joined, sudokode joined 21:57 ksi left
dalek kudo/bs: ff1d98c | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
Shuffle all stubbings to the top of the BOOTSTRAP.
22:01
kudo/bs: fe33bb1 | jnthn++ | / (3 files):
Split out BOOTSTRAP from the meta-objects; not been able to fully test the split yet. Tentatively start moving various bits of the stuff in BOOTSTRAP into a BEGIN block so we can serialize it.
22:10 ab5tract left 22:11 itz left 22:12 skids left 22:23 itz joined 22:33 ascrazy left 22:38 nanowit_ joined 22:39 snearch left 22:41 tarch joined
dalek p/bs: 42edd89 | jnthn++ | src/NQP/Actions.pm:
Make sure we can use anonymous subs in places we expect serialization to happen.
22:41
p/bs: d2e0a5b | jnthn++ | src/NQP/ (2 files):
Make sure blocks nested inside a BEGIN end up in the output code.
22:43 kaare__ left
dalek kudo/bs: aed4d40 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
Replace a -> with 'sub' for consistency.
22:44
kudo/bs: c89b74d | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
Use static code objects as needed; this gets us to the point where BOOTSTRAP is successfully serialized, and then successfully deserialized again when the compilation of CORE.setting causes it to be loaded. CORE.setting compilation itself fails right after that, though; many un-done NQP::World fixes to come.
felher jnthn++ #for going wild on the {nqp,rakudo}/bs branches :) 22:56
22:56 wolfman2000 joined, pmurias left
masak 'night, #perl6 22:58
fsergot nn masak 22:59
dalek kudo/bs: 106f54f | jnthn++ | src/Perl6/ (2 files):
Update module load handling for bounded serialization.
23:05
kudo/bs: 2d7798e | jnthn++ | src/Perl6/World.pm:
Toss deserialization code from import handling.
kudo/bs: 2d17bbd | jnthn++ | src/Perl6/World.pm:
Update get_static_lexpad for bs.
kudo/bs: 8b28ce3 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
set_selector_creator should not be done in the BOOTSTRAP BEGIN block - that's too early.
kudo/bs: 335e631 | jnthn++ | src/Perl6/World.pm:
Remove a workaround that we should no longer need, and deserialization code for adding to a static lexpad; it's just the fixup of the static lexpad overall that still needs to happen.
23:06 tarch left 23:07 mj41 left 23:09 fridim_ left 23:10 [particle]1 joined 23:11 [particle] left, tarch joined
fsergot o/ gnight! 23:13
23:14 whiteknight joined 23:17 PacoAir left 23:19 fsergot left 23:23 tarch left 23:24 [particle]1 is now known as [particle] 23:27 tarch joined
bacek_at_work phenny, tell moritz I'm going to merge parrot's cont_reuse branch really soon. You'll need take_recon branch merged with bumping up PARROT_REVISION. 23:28
phenny bacek_at_work: I'll pass that on when moritz is around.
23:29 [particle] left 23:36 Gazzonyx joined, [particle] joined 23:41 nanowit_ left, tarch left 23:50 Chillance left
jnthn Enough for today...sleep & 23:52
dalek kudo/bs: 8a30010 | jnthn++ | src/Perl6/World.pm:
Remove constant deserialization code-gen.
23:53
kudo/bs: 1dfbcdc | jnthn++ | src/Perl6/World.pm:
create_code_object will be 'fun' to update. Start out by throwing away things we simply won't need any more.
kudo/bs: 9147bc5 | jnthn++ | src/Perl6/World.pm:
Throw out various bits of now-unrequired deserialization code in install_lexical_container.
kudo/bs: 20788b0 | jnthn++ | src/Perl6/Metamodel/ (2 files):
Need to set True/False after BEGIN, and also publish Parrot v-table mappings at that point as those are not serialized.
kudo/bs: 534138f | jnthn++ | src/Perl6/World.pm:
Chase a HLL::World naming change in create_code; gets us a little further into compiling CORE.setting.
23:55 [particle]1 joined, [particle] left 23:58 benabik_ joined