»ö« 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:02 uasi joined 00:07 replore joined 00:15 tokuhirom left
sorear yeah slang NYI 00:17
TimToady: what should it say? "type"? 00:18
jnthn nom: (anon package foo { }).WHAT.gist.say # curious... 00:19
p6eval nom 12b860: OUTPUT«===SORRY!===␤Cannot use anon scope with package at line 1, near "{ }).WHAT."␤»
jnthn nom: (package foo { }).WHAT.gist.say # curious...
p6eval nom 12b860: OUTPUT«foo()␤»
jnthn anon package should probably work. 00:21
diakopter jnthn: you're up late 00:29
00:29 donri left
diakopter niecza: gather my $a=5; say $a 00:31
p6eval niecza v9-30-g2b3ba1c: OUTPUT«Any()␤»
jnthn diakopter: Yeah...my sleep's been a little messed up of late.
00:32 wolfman2000 joined 00:33 PZt joined 00:34 thou left
diakopter niecza: proceed # NYI I guess, but what should it mean 00:34
p6eval niecza v9-30-g2b3ba1c: OUTPUT«Unhandled exception: Illegal control operator: proceed␤ at /tmp/ETRbgZ4hfl line 1 (MAIN mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2060 (CORE C968_ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2061 (CORE module-CORE @ 58) ␤ …
diakopter nom: proceed
p6eval nom 12b860: OUTPUT«Warning␤»
diakopter jnthn: I like the Warning 00:35
jnthn :P
I think niecza's output is more helpful 00:36
diakopter what's it supposed to mean and where
jnthn Just means a control exception was thrown and unhandled.
sorear jnthn: the package works in niecza, it's just that packages as types have an empty method set 00:37
jnthn: should unhandled control exceptions be nonfatal? 00:38
00:38 lichtkind_ joined 00:39 lichtkind_ is now known as lichtkind
jnthn sorear: Arguably, given CATCH won't get 'em...personally I would be happy with them being fatal, though. 00:42
diakopter niecza: class foo { say -> foo { 2 } }; say foo.bar # dunno 00:43
p6eval niecza v9-30-g2b3ba1c: OUTPUT«Unhandled exception: Unable to resolve method ast in class Any␤ at /home/p6eval/niecza/src/NieczaActions.pm6 line 1911 (NieczaActions NieczaActions.parameter @ 149) ␤ at /home/p6eval/niecza/src/STD.pm6 line 2920 (STD P6.parameter @ 312) ␤ at /home/p6eval…
sorear jnthn: I think have control continue past a next; or last; is Just Plain Wrong 00:44
diakopter sorear: ^^ std is okay with it 00:45
jnthn sorear: It's hard to imagine a situation where it's not a bug.
(So I won't argue against them being fatal.) 00:46
sorear diakopter: longstanding bug 00:48
diakopter oh
sorear but I'm not fixing any bugs this week 00:49
I've started a major refactor
diakopter ooooo what refactor
sorear going to work on making tighter integration between parse time and runtime-object-creation time, and using bounded serialization 00:50
mainly to the end of having real working BEGIN
diakopter sorear: you were right about M^N+N-1 00:56
though the various algorithms I've found to generate the strings still perplex me
00:57 uasi left 01:11 uasi joined
jnthn sleep & 01:18
01:28 frhodes joined 01:33 frhodes_ joined
dalek ecza/serialize: c984628 | sorear++ | / (6 files):
Remove non-dotnet backends, including nam; its role will be filled later
01:34
01:36 frhodes left 01:44 jevin left, jevin joined 01:50 uasi left, uasi joined 01:51 uasi left, uasi joined 01:53 whiteknight left 01:55 _jaldhar joined, orafu joined 01:58 benabik joined 02:01 frhodes_ left
dalek ecza/serialize: e50410a | sorear++ | / (3 files):
Streamline type conversion for downcalls
02:02
02:04 uasi left, uasi joined
snarkyboojum I think there's something to be said for developing on crumby, slow machines to down downward pressure on software bloat :) 02:05
to put*
02:05 frhodes joined 02:11 frhodes left 02:18 frhodes joined
lichtkind good night 02:19
02:20 lichtkind left 02:22 uasi left, bbkr1 left, uasi joined 02:23 bbkr1 joined 02:26 pernatiy joined 02:30 woosley joined 02:40 uasi left 02:41 uasi joined 02:43 dukeleto joined 02:47 uasi left, uasi joined, colomon joined
sorear o/ colomon 02:48
colomon \o
02:48 Vlavv joined
colomon was just going to check -- you didn't integrate the C# Complex changes I sent you yet, did you? 02:48
sorear no 02:49
colomon great
planning on adding all the rest of the trig functions to it before the weekend. :) 02:50
sorear cool
02:51 am0c left
colomon I keep on hearing mentions of Gtk (I think it was) and Niecza? 02:51
sorear I'm working on a major refactor of the back end to support stuff like BEGIN, macros, and roles
yes
examples/gtk1.pl
colomon sweet, and sweet!
sorear did you miss that being added?
colomon probably, I've been pretty busy, and haven't pulled your changes since I started seriously on the trig work. 02:52
I keep forgetting to branch before starting changes. :) 02:53
02:54 uasi left, uasi joined
sorear colomon: I'm on a branch. There may be an ugly merge in a couple weeks 02:55
colomon branch for your refactor mentioned above? 02:58
02:59 uasi left
sorear ye 02:59
03:05 odoacre joined 03:12 _jaldhar left 03:13 _jaldhar joined 03:16 uasi joined, molaf joined 03:22 yellow joined
yellow ? 03:23
sorear yellow: hi
yellow: what are you looking for?
and welcome 03:24
yellow curiosity satisfaction
TimToady so far we're being more curious than you :)
sorear yellow: you're not likely to see much activity while the sun in the middle of the Pacific. If you don't want to wait 6 hours, take the initiative and start asking questions :) 03:26
yellow looking for info on perl6, thought this might be a spot to listen in and see what folks are talking about. was rather afraid it might be a little quiet. mid-atlantic better?
sorear yeah 03:27
once Europe wakes up it'll get quite noisy in here
yellow also wondering just how much activity/interest there is around p6
sorear TimToady and me are always up late though
yellow ah 03:28
sorear I suppose the question becomes "who"
TimToady is our resident designer and I'm a compiler writer
TimToady I'm a fired compiler writer :) 03:29
03:29 am0c joined
yellow ah, I'm among the elite... 03:29
TimToady sorear is fired up
sorear neither of us is particularly representative
TimToady except insofar as everyone here is weird
sorear except when we're representing Perl 6 to interlanguage delegations 03:30
yellow "interlanguage delegations" sounds intriguing
sorear shrug, nothing formal 03:31
TimToady you from BC?
sorear but I keep a presence on #p5p and #mono
as well as #parrot, which only sometimes seems like a related project
yellow I know very little about p6 and was hoping to snoop around a bit before getting involved. Yes, Vancouver, Nanaimo. Heavily involved in p5 development for a media company. 03:32
parrot: thought it was integral 03:33
TimToady well lurkers are certainly welcome as well as more active participants
sorear TimToady has also been heavily involved in p5 development over the years
benabik yellow: parrot is what's underneath Rakudo, which isn't the only P6 compiler. It has its rough patches but we're (#parrot) working on it. 03:34
So related yes, integral, not exactly. Niezca, the other major P6 compiler, has nothing to do with Parrot. 03:35
TimToady you can run any of the major compilers right here
perl6: say rand
yellow much to learn
p6eval rakudo 12b860: OUTPUT«0.00676845626822242␤» 03:36
..niecza v9-30-g2b3ba1c: OUTPUT«0.614047374862268␤»
..pugs: OUTPUT«8.885623307173518e-3␤»
TimToady well, we hope it's fun at most spots on the curve
if you're familiar with Perl 5 than rosettacode.org will let you compare Perl 5 code with Perl 6 code for a variety of tasks 03:37
(and with many other languages)
*then 03:38
sorear the community has a way of turning everyone into contributors
yellow good. what are my other starting points (must admit to being a little disappointed in the "Camelia" website as the front page for p6)
TimToady well, we're trying to brainwash the young more than the old :)
sorear Camelia is a test of character
we prefer to induct people who are cheerful and young at heart :) 03:39
yellow who are we? 03:40
TimToady #perl6 and fiends, er, friends 03:41
anyway, that's just the .org site; other sites can have dreary corporate logos if they like :) 03:42
yellow ha. might satisfy the shirts a bit more... 03:44
(yes, i have to deal with shirts) 03:45
TimToady and we're trying to encourage a slightly more balanced gender demographic as well as age demographic, but that's a long-term goal
benabik If you use it, the shirts will come. ;-)
sorear yellow: you think the shirts' lepidophobia might have worn off on you? :D
yellow and a hard slog, I imagine 03:46
TimToady what we really don't want is for Perl 6 to become yet another bastion for the male geek chest pounding ethos 03:47
yellow lepidophobia: yes, a the corporate grindstone has been wearing over the years.
TimToady so we're trying to keep it pretty gentle from the start
and we find that Camelia tends to scare off the most venomous of that crowd :) 03:48
yellow ha
I find myself the custodian of piles and piles of legacy p5 code, much of it incomprehensible and a real fear to the corporation. 03:50
sorear interesting, wikipedia thinks lepidos is a declension of "pleasantness"
*wiktionary
TimToady and we really don't care if someone has a negative first impression; it's more a test of their dynamic range if they can overcome that, and some people of a trollish bent just can't
yellow the later code, though, well commented and well structured. 03:51
TimToady so you don't have to love and adore Camelia to hang out here :)
yellow understood
sorear I think Camelia is awesome, but that might just be TimToady's mind control field talking.
03:52 odoacre left 03:53 odoacre joined
yellow russian army perl coders seemed to have a love to single letter variables and compcat code... 03:53
sorear ...russian army? 03:54
sorear likes single-character variable names too
yellow a lot of our legacy code was written by a Red Army-trained programmer 03:56
TimToady I got my first programming job partly because the head of the computer center was amused that I'd named a program 'g' when I could have used six letters
sorear I've always wondered how you got into programming...
yellow we're still using a lot of that code; I've re-written some of it
03:57 molaf left, am0c left
TimToady but mostly it was because the previous programmer in that job was graduating, and buttonholed me to take his place 03:58
sorear is 20 years old and hasn't held any jobs
TimToady he was also a linguist, btw, and responsible for my interest in linguistics 03:59
sorear oh, that makes more sense, I thought it was the other way around... a linguist getting into programming
04:01 am0c joined
TimToady quietfanatic is 22 and just started his first job as a math TA 04:01
04:01 satyavvd joined
TimToady (is an offspring of mine, btw) 04:02
[Coke] ... jeez, I'm old.
yellow coke: ? 04:03
sorear oh, neat
[Coke] 2x as old as sorear. On my 12th job or so, depending on how you count. ;)
TimToady [Coke] is one of our parrotfolk 04:04
[Coke] Used to be, anyway. I'm more of a... barnacle at this point.
04:05 thou joined
yellow 2.7; I'll drop in later when I have a bit more to contribute. Have a good night all. 04:08
sorear 2.7?
yellow 2.7x
04:08 yellow left
benabik as old? 04:08
Tene I got my first sysadmin/programming job by asking around on IRC for it. 04:09
That's also how I've got every job since, including my current.
sorear wonders if ey should try that
Tene sorear: If you're interested in moving to california, I can get you a recommendation at several companies here. 04:10
sorear Tene: I'm currently living in San Diego 04:11
04:11 birdwindupbird joined
Tene ahh, right, I think we've talked about this before. 04:11
All my contacts are up around san francisco area
sorear lots of people want me! in San Francisco, Boston, or Uppsala.
[Coke] I could use a web developer, btw. Albany, NY.
sorear I'm very indecisive about what I should do. 04:12
04:12 daniel-s joined
[Coke] you sure about that? 04:12
04:34 uasi left 04:45 envi_laptop joined, xinming joined 05:26 packetknife joined 05:33 SHODAN joined 05:46 thou left 05:48 wtw joined
dalek ecza/serialize: 49a4ccb | sorear++ | / (7 files):
First steps; create a RuntimeUnit object directly from the compiler
05:49
sorear out
mberends sorear++ 05:50
05:52 wolfman2000 left, ZapZ joined 06:02 uasi joined 06:08 orafu left 06:10 orafu joined 06:18 koban` joined, koban` left 06:20 packetknife left 06:36 masak joined
masak phenny: hot! 06:36
phenny masak: 14 Sep 21:44Z <diakopter> tell masak cool
masak good morgon, #perl6.
mberends good golly, masak 06:37
masak sorear: it's southern Sweden (Lund/Malmö) these days, not Uppsala. but yes, if you wanted to move here I would basically force my boss to hire you. not that I anticipate any resistance... ;) 06:38
sorear: we're a small startup with ambitions to make the enterprise a more aware place, development-wise. both jnthn and I enjoy having to look at our current habits as open-source developers, and try to distil what works and pass it on to a business IT environment in great need. 06:39
snarkyboojum that would be a mean little team indeed masak/jnthn/sorear :) 06:41
"mean" meaning.. top notch (in case that was lost in translation) 06:43
masak ;) 06:48
mberends masak: I'm still hacking on Niecza graphics, and will look out for other dependencies you may need (I probably have a luck side effect of installing something else) 06:55
masak mberends: nod. if nothing else, it'll be useful for other Ubuntu users to know.
mberends Niecza is able to access some Cairo functions, although Rat to double conversion is currently missing. 06:56
masak: oh, Ubuntu, I thought you used Debian. I can try Ubuntu later today. 06:57
masak I was using Debian, but have gravitated towards Ubuntu in the past half year. 06:58
mberends that Unity desktop currently puts me off Ubuntu, and I can't be bothered to work out how to replace it. 07:00
masak oh, I turned that off without a second thought. haven't thought about it since. 07:01
snarkyboojum masak: just out of interest, are you running in on your mac laptop or did you change hardware? 07:02
masak I changed hardware.
host operating system is some version or other of Windows. :/ but my VMWare setup is so smooth that I often forget that until Windows decides to forcibly reboot. 07:03
snarkyboojum masak: yucky - but good stuff re linux :) 07:04
07:08 uasi left 07:10 envi_laptop left
tadzik good good, morning 07:23
masak tadzik: mood gorning. 07:24
ok, so I have a grammar and an actions class. the grammar parses nested scopes, with what's essentially lexical variables inside. all these are declared at the top of the scope. 07:25
in order to check whether a variable has been declared, I need to "push" a new lexpad somewhere as I descend, and "pop" it as I ascend back up.
seems to me I need to do this in the grammar. but the variable declaration check is done in the actions. hmm. 07:26
my question is: how do I communicate the lexpad information between the grammar and actions class? through a dynvar? 07:27
though as I explan this it strikes me that I might's'well do the declaredness check in the 'var' rule in the grammar, too :)
masak tries that 07:29
07:36 silug joined
masak suddenly remembers strangelyconsistent.org/blog/the-ty...rcical-faq 07:41
it has pre-echoes of the current dialogue between Rakudo and Parrot.
oh, what a fun error message that was! I had completely forgotten about it. 07:43
rakudo: A::B.foo
p6eval rakudo 12b860: OUTPUT«Could not find symbol 'A::&B'␤ in <anon> at /tmp/NAoeylEJ8f:1␤ in <anon> at /tmp/NAoeylEJ8f:1␤␤»
masak \o/
though the symbol name looks a bit internal-ish. 07:44
std: A::&B
p6eval std bb4f150: OUTPUT«===SORRY!===␤Undeclared names:␤ 'A::' used at line 1␤ 'B' used at line 1␤Check failed␤FAILED 00:01 120m␤»
masak std: module A {}; A::&B
p6eval std bb4f150: OUTPUT«===SORRY!===␤Undeclared name:␤ 'B' used at line 1␤Check failed␤FAILED 00:01 120m␤»
masak std: module A { sub B {} }; A::&B
p6eval std bb4f150: OUTPUT«===SORRY!===␤Undeclared name:␤ 'B' used at line 1␤Check failed␤FAILED 00:01 120m␤»
masak std: module A { our sub B {} }; A::&B
p6eval std bb4f150: OUTPUT«===SORRY!===␤Undeclared name:␤ 'B' used at line 1␤Check failed␤FAILED 00:01 121m␤»
07:44 wamba joined
masak hey! I declared it! :) 07:44
tadzik bad std, no cookie 07:45
snarkyboojum is panda currently working? 07:46
i.e. it's not on my machine :) 07:47
but is it *supposed* to be working? 07:48
07:59 donri joined
masak hm. with this approach, my problem is that I can't pass parameters into the grammar parse. 08:00
maybe I should move all the lexicals checks into the actions class instead... 08:01
masak plans to figure this out and then summarize it as a pattern in a blog post
it feels wrongish to have empty rules fire just so that one can put action methods in the right place... 08:04
...but I'll do it like that until I get a better idea. 08:05
snarkyboojum tadzik: panda not working == possible nom regression? 08:08
tadzik snarkyboojum: yes
nom can't run panda yet 08:09
not even pies :)
I'm waiting for jnthn++ on this one
masak ah, Rakudo solves this by squarely putting @BLOCK in Perl6::Actions, and then accessing it from the grammar. that feels odd, too. but maybe it's necessary.
not only does it tie Perl6::Actions to Perl6::Grammar, but it also seems to treat Perl6::Action more as a module than as an object. 08:10
snarkyboojum tadzik: ah ok :( FWIW - I get an 'Invalid typename in parameter declaration' error in Pies.pm 08:11
tadzik yeah, that's the error
08:12 Alias_ joined
snarkyboojum tadzik: ok - cheers. 08:12
moritz what's the offending signature? 08:15
snarkyboojum method project-set-state(Pies::Project $p, Pies::Project::State $s) { !!! } 08:16
moritz thanks
snarkyboojum moritz: were you refering to Pies?
ah k :)
tadzik jnthn was able to golf the error down to 2 lines or so 08:17
masak it's interesting to see fragments of Pls live on in Pies :) 08:18
tadzik the differences are really small, iirc
I think Pls doesn't have the distinction between ecosystem and resources, as Pies does 08:19
well, panda does
Pies doesn't care about such complicated hinks 08:20
masak sounds like a worthy distinction. 08:21
tadzik++ 08:22
08:24 donri left 08:27 Shozan joined 08:30 SHODAN left, Shozan is now known as SHODAN
moritz std: pair 'a', 1 08:36
p6eval std bb4f150: OUTPUT«ok 00:01 121m␤»
moritz there's a pair() routine in the setting? 08:37
08:38 daxim joined
masak yay! all tests pass! 08:39
moritz perl6: pair 08:40
p6eval rakudo 12b860: OUTPUT«Could not find sub &pair␤ in <anon> at /tmp/UfSc9XEbkF:1␤ in <anon> at /tmp/UfSc9XEbkF:1␤␤»
..niecza v9-30-g2b3ba1c: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'pair' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 685 (CORE die @ 2) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1136 (STD P6.comp_unit @ 36) ␤ …
..pugs: ( no output )
moritz pugs: say (pair 'a', 2).perl
p6eval pugs: OUTPUT«(("a" => 2),)␤»
moritz hm.
pugs: say (pair 'a', 2, 3, 4).perl
masak moritz: github.com/perl6/std/blob/master/C...tting#L326
p6eval pugs: OUTPUT«(("a" => 2), ("3" => 4))␤»
moritz masak: I deducted the presence of pair() from std's response, I'm just rather surprised 08:41
pugs: say (pair 'a', 2, 3).perl
p6eval pugs: OUTPUT«*** Odd number of elements found where hash expected: VList [VStr "a",VInt 2,VInt 3]␤ at /tmp/8KU7dmBbUU line 1, column 6-20␤»
tadzik moritz: seems that we're looking at the same test :) 08:42
moritz pugs' behavior seems to make some sort of sense, but if that's intended, why not call it 'pairs'? 08:43
tadzik perl6: class Naughty is Exception {}; die Naughty("error"); # how is that supposed to work 08:44
p6eval rakudo 12b860: OUTPUT«Could not find sub &Naughty␤ in <anon> at /tmp/G9W3shaAhS:1␤ in <anon> at /tmp/G9W3shaAhS:1␤␤»
..niecza v9-30-g2b3ba1c: OUTPUT«===SORRY!===␤␤Unhandled trait Exception for this context at /tmp/16oCB6adFF line 1:␤------> class Naughty is Exception ⏏{}; die Naughty("error"); # how is that ␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecz…
..pugs: OUTPUT«*** No such subroutine: "&Naughty"␤ at /tmp/NpElWCXnZi line 1, column 32-52␤»
moritz tadzik: you should call .new at least 08:45
tadzik moritz: that's from the spec :/ 08:46
t/spec/S04-exception-handlers/catch.rakudo
#59
moritz TimToady: what's &pair supposed to do? can it go?
tadzik: I believe spec and tests need to be fixed 08:47
I mean there is the Type($foo) coercion syntax, which seems to be used here
tadzik well, from the spectests at least
moritz but Naughty would need to declare its coercion somehow 08:48
unless Exception($foo) defaults to Exception.new(message => $foo)
hm, that could be made to work
tadzik still, the test is broken
or not 08:49
what does the spec say? Oh, you write the spec :)
snarkyboojum which test is everyone looking at? :D
tadzik Exception($foo) looks C==y
moritz says "not sure yet"
tadzik snarkyboojum: t/spec/S04-exception-handlers/catch.rakudo
s/==/++/
snarkyboojum tadzik: ta
moritz tadzik: I guess the test needs to be #?skip'ed for rakudo until we have that coercion syntax, or decide to abandon the test 08:50
masak -1 to using Exception($foo) to construct an exception
08:50 dakkar joined
moritz masak: are you also -1 to using Int("42") to construct an Int? 08:50
tadzik I am 08:51
masak moritz: yes. 08:53
dalek ast: d3a9312 | moritz++ | S04-statements/try.t:
[try.t] change compile time to run time error
masak whoa. wait! :)
that's a conversion, IIRC.
tadzik so undeclared routine is a compile time error, yes?
masak but I'd write it as "42".Int
moritz tadzik: yes, should be
tadzik oh, moritz just fixed that, ok
moritz tadzik: I fixed the one in try.t, not in catch.t
tadzik moritz: that's the one I was looking at at the moment :) 08:54
moritz masak: I don't really see how Int("42") is different from Exception("message")
tadzik I'll leave those to you and catch some breakfast
moritz the difference between $obj.Type and Type($obj) is really who should know how to do the conversion 08:55
$obj.WHAT or Type
in that sense, "message".Exception would seem Very Wrong
but I don't see what's wrong with Exception("message"), except that it's not very clear about creating a new object (or maybe it is, and I'm just not yet used to it?) 08:56
tadzik It doesn't look Perly 08:57
(for me)
masak moritz: I won't defend the difference very forcefully, because I'm undecided myself. 09:09
moritz: but it feels like there's a conceptual difference between casting and instantiating.
Exception("message") looks like it means "convert this string into an error message".
er, into an Exception object. 09:10
or this Cool, or whatever.
and conversion is simply not what happens here. an Exception swallows the string and wraps itself around it; that's different from a Str becoming an Int. 09:11
moritz well, I don't see the conceptual difference 09:14
in both cases it's a routine that maps an object of one type to an object of another type 09:15
masak the Int doesn't eat the Str and keep it around inside of itself.
the relationship is more symmetrical between the Int and the Str than between the Exception and the Str. 09:16
the Exception HAS_A the Str.
(yes, this is me not defending the difference very forcefully) :P 09:17
or perhaps s/forcefully/vigorously/ 09:18
09:18 araujo left
eiro thanks for your tweet masak :) 09:20
masak which one? :) 09:21
eiro arguments of the the longuest answer really convinced me :)
TeX one
masak eiro: ah :) 09:22
moritz masak: I understand the symmetry argument, but not the "eating"
because immutables can't be eaten
masak ah, twitter.com/carlmasak/status/114234123710771200 09:23
09:23 george_z0rwell joined
masak moritz: eating in the sense of Jonah and the whale. 09:23
i.e. it's contained but not consumed.
09:24 donri joined
masak I just had an idea for a CPAN module I want to write. Perl6::MAIN. 09:28
full support for 'sub MAIN' and 'multi MAIN', with signatures.
jnthn morning, #perl6
masak jnthn! \o/
tadzik good hello, jnthn
masak likes the new trend of absurdist greetings 09:30
snarkyboojum eiro: I had a lecturer once who was trying to improve on TeX - en.wikipedia.org/wiki/Omega_(TeX) 09:31
eiro: not sure it picked up tho
tadzik masak: if you're greeting someone half of your day, you're starting te be a bit fancy about it, my dear zebra :) 09:32
arnsholt masak: I had the same idea the other day! 09:36
But it needs some additional features like multis and signatures
eiro thanks for the link snarkyboojum 09:37
snarkyboojum eiro: looks like they recommend checking out www.luatex.org/ now instead
moritz masak: so you want to write a full Perl 6 multi dispatcher for a language that doesn't expose types?
eiro snarkyboojum, already done (by following your first link)
snarkyboojum eiro: too fast :) 09:38
09:38 Net joined
moritz masak: the idea is nice, just the "full" sounds a bit impractical 09:38
eiro but i really wonder how TeX can still compete with html viewports technologies. I mean: mathml + html canvas + css = TeX features in your viewport ? 09:39
09:40 am0c left
eiro + html content can be dynamic (tex is not ... afaik) 09:40
moritz eiro: depends on what/whom you target
Net eiro: TeX have much bigger userbase :)
moritz eiro: when I write my master or phd thesis, I don't give a damn how it looks in the browser. I want a very good hardcopy in the end 09:41
eiro Net, sure! how is still using a web browser nowaday :
:)
masak moritz: I wasn't planning on having types, I think. just the ability to dispatch on named arguments and such.
moritz: but I'd need to design it a bit to know for sure :) 09:42
Net how much canvas are used atm ?
eiro oh ... yes... producing printable books must be easier in TeX :)
Net it is
eiro Net, well ... point :)
ok: i'll give TeX a chance.
Net try latex first 09:43
eiro ok
i tried long time ago (made slides with beamer)
moritz well, one can use latex for slides, but it's not latex' real strength 09:44
snarkyboojum eiro: for high fidelity typesetting, you can't compare browser technologies with TeX (in my experience) :D
tadzik I have a feeling that aside from beamer being awesome, latex is not really good for slides
see: images
moritz tadzik: correct
09:44 tewk joined 09:45 saaki joined
eiro yep... i seems this old experience was actually a bad start: let's do it again from scratch :) 09:45
09:45 lue joined
Net eiro: TeX and friends are (mainly) for matemathicans (who are forced by phd ovners to use it :) ) first think what you want to accomplish then use tools for that 09:47
arnsholt It's not unheard of in linguistics either to use LaTeX, actually 09:48
Makes things like attribute-value matrices and trees so much easier
Net anyone can tell me how to grep for NQP version needed for rakudo compilation ? parrot version is 'parrot_version' in tools/distro/rakudo.spec i belive... 09:50
moritz Net: which rakudo are you looking at? (brach? release?) 09:51
Net usually master but it is not good probably...
how-to-get-rakudo from rakudo.org say nom... 09:52
moritz Net: master doesn't need NQP
and on nom it's in tools/build/NQP_REVISION
Net ahh.. how i can miss it... 09:53
thank you
eiro Net, i need a templating system for printable reports with graphs and sheets. i don't need all the power of TeX but i would like the result to be eye candy 09:57
09:58 replore left
Net eiro: 'sounds' like www technologies :) 10:00
Web-1.x :)
eiro i thought about TeX because of multipage reports 10:03
arnsholt eiro: For making graphs, I usually use gnuplot 10:04
moritz eiro: how will the reports be viewed? on screen? on paper?
arnsholt It's a bit baroque and arcane at times, but the output is pretty nice
Net eiro: whatever you will choose you will need substantial amount of coding... so 'shiny' technology is not necesary required
arnsholt I think gnuplot even has a mode where it outputs a full LaTeX document for your graph 10:05
jnthn So...Perl 6 day. Any requests? I plan to fix that Pies-blocking bug, and try and track down the bugs in an optimizer thing I was working on last night. 10:09
10:10 woosley left
Net jnthn: is zavolaj complete ? 10:10
moritz jnthn: it would be very good to be able to hack on DateTime again
jnthn Net: Far from. 10:11
Net i mean: how to get more C libraries to work in Perl6... but maybe it is Parrot team work//
moritz jnthn: uncommenting the attributes and methods from Temporal.pm causes setting compilation to hang
jnthn: if you could fix that, that would be awesome
eiro moritz, paper.
jnthn Net: I plan to work more on Zavolaj in the near future. Of note, I want to get it handling structs. 10:12
moritz: Eww. Those things are...hard to find. Will see what I can do. 10:13
10:14 satyavvd left
tadzik jnthn: some Buf at-looking maybe? 10:14
moritz wonders if we can get a cheated by very fast Buf8 by boxing a parrot string in latin1 encoding 10:15
jnthn: well, they need to be found eventually. 10:16
tadzik I'm frightened by the speed in which I typed 'mkfs.vfat /dev/sdb1<return>'. One day I'll do myself some serious harm 10:17
Net eiro: here you have few possibilities: freshmeat.net/search?q=report&submit=Search
it depends from where you will get data - db, existing closed system... 10:18
and probably it is off topic for #perl6 :) 10:19
10:26 Reaganomicon joined 10:29 george_z0rwell left
jnthn moritz: true 10:30
eiro true: i stop the ot :) thanks everyone 10:31
bbkr when NOM-based release is expected? 10:34
10:36 woosley joined
donri rakudo.org/2011/09/09/nom-branch-default/ 10:39
10:39 im2ee joined
im2ee Hi! :) 10:40
10:40 araujo joined
bbkr I have to say I love NOM branch (despite regression in some places), using nqp is much clearer that raw Q:PIR sections. 10:42
jnthn There's many nice things in nom :)
10:44 wamba left 10:50 wamba joined
Net any management-level BIG plans for nom -> main conversion ? would be good imho... 10:51
maybe s/management/marketing/ 10:52
10:55 Trashlord joined 10:58 MayDaniel joined
jnthn Net: I'm not sure I want us to hype the initial nom relesae excessively. It does contain many good improvements, but realistically we'll need another release after that to shore up various regressions, and to get things like basic optimizers landed. 10:58
10:59 MayDaniel left
jnthn It's amazing how a night's sleep, then coming back to a problem, can get it solved quickly... 11:00
dalek kudo/optimizer: 58589e3 | jnthn++ | src/main.nqp:
Make it possible to actually pass --optimize=0 to turn off the optimizer.
11:06
kudo/optimizer: a2fae73 | jnthn++ | / (3 files):
First cut of infrastructure for supporting us being able to call right into the multi-dispatcher without invoking the onlystar proto. Not optimized yet.
kudo/optimizer: c93f36d | jnthn++ | src/Perl6/Optimizer.pm:
Fill out inline_proto in the optimizer.
kudo/optimizer: b60d8b4 | jnthn++ | src/binder/multidispatch.c:
Fix bug in multi-dispatch junction failover, exposed by optimizer work.
11:10 benabik left
masak jnthn: "optimizerS"? 11:11
jnthn masak: *nod* 11:12
masak: NQP gets one too
11:13 envi joined
masak ah, right. 11:14
jnthn May start prototyping that a bit at the weekend. We'll see. :) 11:15
masak \o/ 11:17
11:18 pernatiy left
jnthn It's tricky, though fairly -Ofun work :) 11:18
11:27 drbean joined
masak -O(-O) 11:29
dalek kudo/optimizer: 925c37d | jnthn++ | src/ (3 files):
Cache the MD thunk, so we avoid creating a load of GCables.
11:33
11:35 Psyche^ joined 11:39 Psyche^ is now known as Patterner 11:40 uasi joined
flussence hm, the irclogs seem to have some utf8 issues...irclog.perlgeek.de/perl6/2011-09-15#i_4432447 11:44
11:44 benabik joined
moritz flussence: seems that the mixture of UTF-8 and color code sometimes strains p6eval 11:46
std: 1 1
p6eval std bb4f150: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/FvOFv4C7rD line 1:␤------> 1 ⏏1␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤Parse failed␤FAILED 00:01 119m␤»
moritz »
strange, that used to work
flussence: thanks for the report 11:47
masak did something change recently?
something else, I mean.
moritz masak: not that I'm aware of
the error comes from the rendering somehow 11:48
(I checked an earlier date, it was fine; I depleted the cache, it broke)
masak huh. 11:55
woosley perl6: class a is rw{ has $.a}; 11:57
p6eval niecza v9-30-g2b3ba1c: OUTPUT«===SORRY!===␤␤Attribute a declared outside of any class at /tmp/YtFiHFzNsC line 1:␤------> class a is rw{ has $.a⏏};␤␤Unhandled trait rw for this context at /tmp/YtFiHFzNsC line 1:␤------> class a is rw{ has $.a}[3…
..pugs: ( no output )
..rakudo 12b860: OUTPUT«===SORRY!===␤Can only use get_how on a SixModelObject␤»
moritz perl6: class a is rw { has $.a};
p6eval niecza v9-30-g2b3ba1c: OUTPUT«===SORRY!===␤␤Unhandled trait rw for this context at /tmp/Y4PDyjNSDN line 1:␤------> class a is rw ⏏{ has $.a};␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 685 (CORE die @ 2) ␤…
..pugs, rakudo 12b860: ( no output )
moritz whitespace matteres.
whitespace matters. 11:58
woosley :)
will "no whitespace" be allowed in the future? 11:59
moritz jnthn: on the optimizer branch, undef.t fails with "get_attr_str() not implemented in class 'MDThunk'"
jnthn moritz: Yeah
moritz woosley: not in this case
dalek kudo/nom: 113d9e5 | jnthn++ | src/Perl6/SymbolTable.pm:
Fix things like 'role A::B { }; class A { has A::B $!x }', which stopped Pies working.
moritz (I think)
woosley: the problem is that rw{ is parsed as a postcircumfix to rw
jnthn moritz: Same here. Will look at it next time I do optimizer stuff; wanted to do some nom fixes for a while first :)
moritz jnthn: sure 12:00
jnthn Like the Pies fix above ;)
tadzik: ^^
moritz: Would be curious if mandelbrot ran any faster in optimizer branch than nom. 12:01
moritz jnthn: lemme check :-) 12:02
woosley moritz: what is the difference between "rw{ ...}" and "sub a {}" ? I assume a{} is also parsed as a post...fix
jnthn woosley: The thing is that traits parse a circumfix after their name. 12:03
Well, is trait does.#
moritz woosley: I think that routine declarations are special-cased to allow that
woosley: whereas traits can be general expressions
jnthn So it swallows up the {...} doing that
moritz you can't name your sub %foo<bar>
jnthn It also seems a bit unsure what to do with it :)
moritz mandelbrot is real 1m57.562s 12:06
user 1m56.655s
last time it was pretty much exactly 2m 12:07
so not a big difference, it seems
ah, but the script is already written in a way that avoids most intermediate blocks 12:08
12:09 bluescreen10 joined
jnthn moritz: OK. It shoulda got a little win on any multi dispatches. But maybe not a huge one. 12:09
moritz jnthn: multi sub or method? 12:10
jnthn sub
12:10 Trashlord left
moritz operators too? 12:10
jnthn Yes.
moritz: got a link to it, ooc?
moritz I'll add some type annotations and see if it speed things up 12:11
jnthn That's not likely to help yet.
We're not actually selecting candidates at compile time yet.
moritz jnthn: github.com/colomon/mandelbrot script bin/mandelbrot-color.pl
I run it as time ./perl6 $script 201 > /dev/null 12:12
12:12 Trashlord joined 12:13 mj41 joined 12:21 colomon left
[Coke] yawns and eats some coffee. 12:28
12:30 donri left 12:31 Net left 12:45 pernatiy joined 12:51 xinming left 12:53 wamba left 12:58 xinming joined 12:59 colomon joined
jnthn wtf, my new machine runs the NQP test suite in 8 seconds. 13:01
benabik jnthn: The horror. 13:02
masak time to write more tests!
benabik Huh. nom/t/02-embed/01-load.pir fails… But using load_bytecode "perl6.pbc" in a handwritten file works. 13:08
13:09 mj41 left
tadzik jnthn++ 13:10
13:11 uasi left
flussence I finally got this finished! github.com/flussence/specgraphs/ra...-tests.png 13:11
13:11 uasi joined
benabik flussence: What are the dark bands? (i.e. near 2011-09-10) 13:12
flussence passes fall to 0, so I guess they're build failures
benabik Neat. flussence++ 13:13
13:13 molaf joined
benabik Trying to load_bytecode perl6.pbc fails off it's done after .including test_more.pir 13:18
How very odd.
*iff
13:23 Holy_Cow joined 13:24 Holy_Cow left 13:26 mishin joined
moritz benabik++ # locating the error 13:26
jnthn benabik: What's the failure mode? 13:27
13:27 uasi left, uasi joined
tadzik oh, fine. The blocker on Pies in now JSON 13:28
well, on Panda
moritz so, just needs proto regexes
tadzik yep
moritz and :actions
so, need pmichaud++ to have regex-shaped tuits
13:30 kaleem joined 13:34 replore_ joined 13:38 russellw joined 13:41 uasi left, uasi joined 13:44 kaleem left 13:46 woosley left
dalek p: ef1c9e3 | jnthn++ | src/6model/reprs/P6opaque.c:
Tweak P6opaque some so we can start doing the indexed attribute lookups.
13:48
p: c89bd60 | jnthn++ | src/ (2 files):
Use hint in order to do indexed lookups of attributes in the v-table delegation case; should be a small win for parsing, invocation, etc.
13:53 SHODAN left
benabik jnthn: unimplemented key type 1. It's some strange parrot error that occurs by loading Test/More.pbc and then perl6.pbc. I'm investgating between things at work. 14:00
14:00 kaleem joined 14:02 kaleem left 14:03 wamba joined
benabik jnthn: parrot/src/hash.c Parrot_hash_thaw() is the source of the error. Poking a bit more in #parrot… I don't think it's your fault. :-D 14:05
(source meaning where it's thrown from, not why it's happening...)
14:08 wtw left 14:09 tokuhirom joined
moritz googlewebmastercentral.blogspot.com...lprev.html # sounds like rel="next" and rel="prev" would actually decrease the quality of google searches of the IRC logs 14:18
pmichaud good morning, #perl6 14:20
moritz good am, pm
jnthn morning, pmichaud
masak good pmorning, michaud. 14:21
PerlJam guten tag pmichaud 14:22
masak moritz: +1 for rel="new" and rel="prev" 14:23
dalek p: 4a0294c | jnthn++ | src/ (2 files):
Regularize attribute access opcode set, and remove a level of indirection along the way.
14:25
p: b829866 | jnthn++ | src/ops/nqp.ops:
Variants of attribute access opcodes that take hint for indexed access.
p: 0e9d828 | jnthn++ | src/ops/nqp.ops:
Missing write barriers.
14:28 kaare_ joined
moritz masak: added 14:29
masak moritz++ 14:30
14:31 uasi left, uasi joined
TimToady masak: note that A::&B is parsed as A:: & B 14:33
(I suspect)
masak g'ah 14:35
TimToady niecza: class A {}; class B {}; say (A::&B).WHAT
p6eval niecza v9-30-g2b3ba1c: OUTPUT«Junction()␤»
TimToady yup
masak huh, I didn't know the broken coffee mug was so famous that it could be name-dropped: radar.oreilly.com/2011/09/four-shor...ber-1.html
moritz and I thought most of the mugs survived, no? :-) 14:36
TimToady well, the first two didn't break
masak the author is Mr. Torkington, so it's still a within-Perl reference, I guess.
moritz TimToady: is &pair supposed to exist? 14:37
masak I say we convince everyone that Perl 6 is dead and failed and over budget... and THEN we take over the world. 14:38
pmichaud "first they ignore you..."
TimToady then they call you technowanks :) 14:39
pmichaud what would be truly ironic is if we weren't able to convince people that Perl 6 is dead :-P
TimToady moritz: well, if it did exist, it should be named &cons ;) 14:40
moritz TimToady: wfm :-) 14:41
dalek p: b9cf1cb | jnthn++ | src/ (9 files):
Fix some insanity in the hint_for API.
p: dbb1a07 | jnthn++ | src/ops/nqp.ops:
Op for getting hold of the attribute lookup hint.
moritz then I'll remove it from roast (one instance only), and from std
TimToady I don't mind if there's a &pair
but we do have => already
moritz aye
masak pmichaud: well, if I could quote you on that, I'm sure it'd go a long way :P
jnthn moritz: One that missing routine detection found?
moritz jnthn: correct 14:42
jnthn :)
jnthn is very reassured that it's finding only real missing things.
TimToady and &[=>] for a prefix op if needed, which is only one longer than, and even [=>] works in a pinch
moritz TimToady: the difference is that &pair in pugs actuall returns a list of pairs, if you feed it 4 or more scalars 14:43
pmichaud I'm still thinking about how to fix the Pair/Enum dichotomy
TimToady I don't think we want immutable pairs or mutable enums 14:44
pmichaud for %hash -> $p { $p.value = 1 } 14:45
what should that do?
(assume %hash has some entries)
TimToady well, maybe it should fail unless $p is declared rw 14:47
pmichaud for %hash -> $p is rw { $p.value = 1 }
okay, that then :)
TimToady in that case, we can have either ref or copy semantics when the pairs are produced, but I don't see how unifying with enums has any bearing 14:48
pmichaud it might not 14:49
dalek ast: 8cb0d32 | moritz++ | S02-builtin_data_types/hash_ref.t:
remove pointless test, there is no &pair
pmichaud I'm trying to figure out the ref/copy semantics, mainly.
My working hypothesis thus far is that the distinction between Enum and Pair might be like the distinction between List and Array. 14:50
TimToady ref is obviously useful, if you want to examine each hash entry and tweak it based on the key
or not based on the key, in your example
pmichaud yes, I'm also thinking of %hash.map(...) 14:51
TimToady and I'm thinking how that rw param works in the single write ownership model I proposed earlier 14:52
pmichaud I didn't see that proposal yet. Anyway, I'm mainly thinking only in the rw cases atm. 14:53
i.e., trying to get .pairs, .values, .keys, .list to produce the correct sort of objects and bindings 14:54
TimToady I supposed there .pairs(:rw) if we need it
and could default to returning enums, so -> $p works as expected most of the time 14:55
pmichaud would someone doing %hash.values expect to be able to modify the values in hash?
TimToady s/supposed/suppose/
pmichaud * %hash ?
TimToady I expect they'd expect both things contradictorily :)
pmichaud e.g., %hash.values.map( ... )
14:56 JimmyZ joined
TimToady we do have <-> to indicate the is rw on the receiving end, but .pairs et al. can't know that 14:57
pmichaud right
TimToady contrariwise they can't know the absense of it either
pmichaud well, just like .list returns references to individual elements, I'm thinking that .pairs ought to do the same 14:58
TimToady tempting to have -> default to 'is parcel' so it's agnostic about the writability of $p
moritz but that doesn't really answer the question here
TimToady what's likelier to be more efficient? what's likelier to be more correct? are they different things? 14:59
masak likely ;)
TimToady and what's likelier to be useful? :)
pmichaud as far as what .pairs produces, I don't think there's a huge difference in efficiency 15:00
15:03 dakkar left
TimToady in the one owner model, rw does the extra work of changing the owner, and readonly simply doesn't change the owner of an object, so that a write fails just because you aren't the owner, and copying the ref is as cheap as can be, despite the fact that the object is still writable by *someone* who just happens not to be you 15:03
15:04 dakkar joined
TimToady in that realm, it feels like .pairs wants to return a non-commital value that can either be bound rw to a new owner, or bound ro to leave the owner the same 15:05
pmichaud I think I need to read some of the details of the one owner proposal. 15:06
TimToady well, there aren't that many details yet, it's just a concept
pmichaud It sounds like it might affect List as well :-|
is there some discussion in the ir clogs? 15:07
15:07 silug left, silug joined
TimToady irclog.perlgeek.de/search.pl?channe...mp;q=owner 15:08
masak "but the difference between o and oo will (to a western English speaker) be something like the difference between the o sounds in 'dough' and 'dough-owner'" -- TimToady :)
TimToady it is difficult to evince long vowels in English 15:09
as opposed to what English speakers are told are "long" vowels
masak you English peeps really made a mess of your vowels.
TimToady which are really diphthongs
PerlJam TimToady: if you want to hear long vowels, spend some time in the georgia, alabama, south carolina, etc. :) 15:10
TimToady and if you want to hear a long vowel that isn't even based on a sound in Western English, have 'em pronounce 'pie' 15:11
15:11 birdwindupbird left
TimToady (which is how we learned to say that particular vowel :) 15:12
kinda halfway between [a] and [æ]
masak tries to render it
pmichaud "ah don't know what yer talking about there"
masak I realize that my preconceptions about how it should sounds are entirely based on movies. 15:13
TimToady thinks of Gomer Pyle
anyway, the basic notion is that a given lexical scope kinda has an idea what it's allowed to change and what it isn't, and an rw parameter is a negotiation between two different lexical scopes as to whether ownership may be passed or not. 15:16
PerlJam When I was in spanish class in the 8th grade we had a student from kentucky and I'll never forget his "soy de kentucky" because it came out more like "so-oy day kentuuuuuuuckee" 15:17
pmichaud TimToady: that sounds a lot like what I was describing
TimToady so if a lexical scope is the current owner of an object, it can pass ownership to a called routine, but if it isn't, it can't
and if the routine doesn't want ownership, then you just pass the object with the "wrong" capability to write
PerlJam isn't even sure how to represent the single-syllable-pronounced-as-if-it-were-two
pmichaud i.e., attaching rw-ness to the container (lexical symbol) 15:18
moritz PerlJam: kentuu-uuckee?
TimToady but if you only attach rw-ness, then you have to strip it in the common case, which is hard
pmichaud well, defaulting to ro-ness, of course. 15:19
TimToady if you attach rw-ness with ownership, it naturally de-rw's itself unless you take steps to preserve rw
pmichaud okay, I need to read the discussion then.
(can't really do it atm)
TimToady trick will be to restore ownership on return
it also probably makes decontainerization dead simple, just don't change the owner upstream 15:20
pmichaud (simplify decontainerization)++
TimToady and works well for sharing objects among threads, if you posit that threads can pass ownership back and forth 15:21
I say lexical scope, but probably ownership is to a stack frame 15:22
15:22 jimmy1980 joined 15:25 alester joined 15:26 jimmy1980 left
masak decommutes 15:27
15:27 masak left 15:31 jimmy1980 joined 15:32 wamba left
sorear good * #perl6 15:33
moritz good *, sorear
colomon o/ 15:34
sorear phenny: tell mberends Try $rat.Num first 15:35
phenny sorear: I'll pass that on when mberends is around.
moritz \o colomon
tadzik: fwiw I seem to break t/spec/S04-exception-handlers/catch.rakudo whenever I touch it 15:42
tadzik: if you have any idea on how to fudge it without breaking it, please do it :-)
it could also be that some of the passes in there are actually false positives
dalek p: 1b3034b | jnthn++ | src/HLL/SerializationContextBuilder.pm:
Always tag SC lookups as having a known compile time value.
15:45
p: 3cb1917 | jnthn++ | src/NQP/Actions.pm:
Make sure that the PAST compiler can get at the actual type object for an attribute's class.
p: d174ebf | jnthn++ | src/6model/reprs/P6opaque.c:
Make sure we did slot allocation before trying to obtain attribute lookup hints.
15:46
p: fd72d7a | jnthn++ | src/PAST/SixModelPASTExtensions.pir:
Generate attribute lookups with lookup hints. This means that most lookups are now index based rather than needing a hash lookup.
15:47 uasi left, uasi joined 15:49 silug left, silug joined
pmichaud afk, lunch 15:53
15:57 kaare_ left 16:01 kaare_ joined 16:02 tokuhirom left
TimToady moritz: re irclog.perlgeek.de/perl6/2011-09-15#i_4432713 coercion does not guarantee construction (or lack thereof) according to S13:198, while .new does guarantee construction 16:03
moritz thought that .new was just a method call :-) 16:05
TimToady well, assuming you haven't defined .new strangely :)
similarly Dog() is just an invocation :) 16:06
16:07 simcop2387 joined 16:08 MayDaniel joined 16:24 alester left, alester joined 16:25 thou joined, thou left 16:27 sayu joined 16:29 alester left, alester joined
dalek p: a6d5b1c | jnthn++ | src/6model/reprs/P6opaque.c:
Start moving away from using the (now otherwise unused) ->spill as the way P6opaque identifies whether something is a type object.
16:32
p: b95251e | jnthn++ | src/6model/reprs/P6opaque.c:
Eliminate all usage of ->spill in P6opaque.
p: f9b7af3 | jnthn++ | src/6model/reprs/P6opaque. (2 files):
Remove ->spill from P6opaque. This makes all objects 4 (32-bit) or 8 (64-bit) bytes smaller.
kudo/nom: 77d4dc1 | jnthn++ | / (6 files):
Updates to use latest NQP, to get attribute access performance improvements and lower memory usage.
16:34
16:42 molaf left 16:45 skangas left, alester left 16:46 alester joined, alester left 16:48 wamba joined 16:51 donri joined 16:53 Chillance joined 17:00 jimmy1980 left 17:05 static_perl joined 17:06 jimmy1980 joined 17:07 dakkar left 17:08 masak joined
masak evening! \o/ 17:08
jnthn masak! 17:09
17:09 daniel-s left
masak jnthn! 17:09
donri masakre 17:10
nooo grghl jnthnrg
PerlJam donri: "masakre" makes me think of Arlo Guthrie's "Alice's Restaurant"
masak plays a seven minute solo 17:11
17:15 dukeleto left, dukeleto joined
cotto_work mls++ got his parrot commit bit, so any future sub profiling work will be happening in parrot's git repo, not mls' clone 17:16
PerlJam nice. 17:17
jnthn nice :)
17:18 benabik left, JimmyZ left
dalek kudo/nom: b9ad532 | jnthn++ | src/Perl6/ (2 files):
Be smarter about string constants, so we avoid various expensive unboxes when we should just have a PIR-level string constant.
17:18
kudo/nom: 884113e | jnthn++ | src/core/Any.pm:
A missing explicit unbox.
17:21 dave joined
dave sup by auspicious panel of intellectuals 17:22
17:22 dave is now known as Guest56681
dalek p: 17c38b2 | jnthn++ | src/PAST/NQP.pir:
Flesh out typed variants of some NQP ops.
17:22
Guest56681 anybody here
diakopter !
masak o/
Guest56681 hey all
i have a server 2003 question 17:23
i know this may not be the proper forum
diakopter heh, ok
PerlJam so far it doesn't sound promising, but go ahead :)
Guest56681 but my question is iso related
moritz Guest56681: then don't ask here
Guest56681 thanks moritz 17:24
i am trying to run virtual pc
i need to install server 2003
diakopter Guest56681: I'm not hearing much about Perl 6 the programming language
PerlJam Guest56681: does this connect in any way to Perl 6 ?
Guest56681 i have a download, but it is asking for an iso file 17:25
perljam
no
i prefeaced that from the beginning
PerlJam Guest56681: ah, then you'll likely not find a suitable answer here
diakopter Guest56681: no one here will be able to help you
Guest56681 *prefeced
moritz Guest56681: and I told you that you shouldn't ask here
Guest56681: since it's not on topic here
Guest56681 nobody can tell me how to make an iso
moritz "I know that I'm wrong here" doesn't make you more on-topic 17:26
Guest56681 ok....i will go
but before i do, let me say this
PerlJam Guest56681: maybe try #win32
Guest56681 the only reason i came to this site is because i had begun learning about ubuntu, and i found the help forums very helpful 17:27
sorry to intrude rude people 17:28
17:28 Guest56681 left
PerlJam Hmm. 17:28
diakopter by site, he means the web chat interface to freenode
I wonder how he came across #perl6 from there
PerlJam indeed
moritz maybe there's a "join random channel" function somewhere 17:29
PerlJam And why did he only apologize to the rude people? that seems a little bizarre. :-) 17:30
17:30 benabik joined
dalek kudo/nom: fce9f45 | jnthn++ | tools/build/NQP_REVISION:
Get latest nqp:: ops.
17:33
kudo/nom: 8620e9c | jnthn++ | src/core/Any.pm:
Further optimize Any so it does not create loads of intermediate Parrot String objects only to immediately throw them away.
kudo/nom: 67ff893 | jnthn++ | src/core/Capture.pm:
Optimize Capture.Str.
jnthn moritz: The patches I just pushed - if my profiler isn't lying to me - seem to help mandelbrot a little. :) Would be interested to know if anybody else can reproduce. ;)
er, 8620e9c shoulda been "further optimize join". d'oh.
pmichaud back 17:40
I think that Any.join properly belongs in List, fwiw (with Any delegating to List.join). 17:41
17:43 JimmyZ joined
jnthn pmichaud: makes sense 17:45
afk; fetching dinner
17:48 _jaldhar is now known as jaldhar 17:50 wolfman2000 joined 17:51 jimmy1980 left
TimToady when rude people call someone else rude, it's a form of emotional blackmail that I do not in the least appreciate 17:51
diakopter prefeced indeed 17:53
17:53 JimmyZ left 17:57 jimmy1980 joined 17:59 wolfman2000 left, slavik1 joined, mishin left 18:01 slavik1 left
diakopter niecza: my ($a,$b) = 2,3; my $c = \($a,$b); say "$c"; $b=4; say "$c" 18:01
18:01 slavik1 joined
p6eval niecza v9-30-g2b3ba1c: OUTPUT«Capture()<instance>␤Capture()<instance>␤» 18:01
diakopter nom: my ($a,$b) = 2,3; my $c = \($a,$b); say "$c"; $b=4; say "$c"
p6eval nom 67ff89: OUTPUT«2 3␤2 4␤»
18:02 benabik left
diakopter which is right 18:02
if any 18:05
pmichaud I'm pretty sure nom is correct 18:06
diakopter niecza: sub a { say 3 }; say &a 18:07
p6eval niecza v9-30-g2b3ba1c: OUTPUT«{ ... }␤»
diakopter nom: sub a { say 3 }; say &a
p6eval nom 67ff89: OUTPUT«a␤»
diakopter which is right(er)
pmichaud rakudo has typically had that subs stringify to the name of the sub 18:08
I don't know that it's been specced
diakopter oh
nom: my $a = \3; say $a.WHO 18:10
p6eval nom 67ff89: OUTPUT«Null PMC access in find_method('gist')␤ in sub say at src/gen/CORE.setting:4689␤ in <anon> at /tmp/U93wJdPv4M:1␤ in <anon> at /tmp/U93wJdPv4M:1␤␤»
diakopter no magic cookie for you 18:11
jnthn nom: say Capture.WHO
p6eval nom 67ff89: OUTPUT«Null PMC access in find_method('gist')␤ in sub say at src/gen/CORE.setting:4689␤ in <anon> at /tmp/akMqaszzZW:1␤ in <anon> at /tmp/akMqaszzZW:1␤␤»
jnthn will investigate after food. 18:12
diakopter nom: say Parcel.WHO
p6eval nom 67ff89: OUTPUT«Null PMC access in find_method('gist')␤ in sub say at src/gen/CORE.setting:4689␤ in <anon> at /tmp/ElcPiacHCE:1␤ in <anon> at /tmp/ElcPiacHCE:1␤␤»
jnthn nom: say List.WHO 18:13
p6eval nom 67ff89: OUTPUT«().hash␤»
jnthn ah, I see what's going on...
diakopter food first! 18:14
jnthn noms :) 18:16
18:19 [Coke] joined 18:23 MayDaniel left
moritz jnthn: quite a speedup on the mandelbrot benchmark 18:35
before: 1m52; after: 1m1 18:36
45% speedup
jnthn++
jnthn \o/ 18:39
And master was?
18:41 skangas joined
jnthn seems to recall 15 mins or so 18:43
tadzik sees WB paches and tries his branch again
18:47 daxim left
jnthn tadzik: Yeah, native str attr binds were missing WB 18:47
diakopter nom: multi sub a(Int $b, Num $c) { say "$b$c" }; multi sub a(Str $b, Str $c) { say "$b $c" }; &a:(Int,Num)(3,4.5)
p6eval nom 67ff89: OUTPUT«===SORRY!===␤Symbol '&a:(Int,Num)' not predeclared in <anonymous> (/tmp/VtWy5V4SOX:1)␤»
tadzik good news 18:48
diakopter jnthn: is that NYI?
tadzik so, what performance win did we get? :)
jnthn diakopter: Yeah, I've never done that...
diakopter: Should get to it at some point...I guess it's not too hard.
diakopter heh NeverYetImplemented
18:48 jimmy1980 left
jnthn :) 18:48
tadzik I have a feeling that nqp builds fast 18:49
it's either jnthn++ or new-ram++
jnthn Maybe a bit of both.
tadzik: The bad news is that the bt of the crashes you were getting looked more like PMC pool corruption than string pool corruption. 18:50
tadzik: Though I'd be happy to be wrong :)
tadzik gah 18:51
jnthn gah?
tadzik we'll see :)
there's some speed/memory win 18:53
18:54 sayu left, jimmy1980 joined
jnthn master was 16m14 18:54
so 18:55
Mandelbrot is 16 times faster than master :)
Not bad.
tadzik hey, don't you count your new i7 :P 18:57
jnthn tadzik: I was going on moritz++'s numbers
tadzik: from perlgeek.de/blog-en/
tadzik oh, ok :)
jnthn er, perlgeek.de/blog-en/perl-6/how-fast-is-nom.html
Though yes, should confirm it's same machine :)
tadzik ooh, wherefore-gc-bug seems to be fixed now! 19:03
spectesting for Justin Case, but both my testcase and podtest is ok 19:04
jnthn ooh :)
tadzik jnthn++
jnthn pmichaud: ping 19:11
19:12 birdwindupbird joined, birdwindupbird left 19:14 jimmy1980 left, thou joined 19:20 jimmy1980 joined
dalek kudo/nom: 07991fb | jnthn++ | src/Perl6/Actions.pm:
Avoid a bunch of common nested runloops.
19:23
jnthn had hoped that'd give quite a win, but not so much.
19:25 packetknife joined
[Coke] reviews, and wonders if a prefeced has something to do with, as his gram would have said, a "BM". 19:25
jnthn++ #all speedy and stuff. 19:26
19:27 bluescreen10 left
tadzik spectest clean, merging 19:31
dalek kudo/nom: 843aa4e | tadzik++ | src/Perl6/Actions.pm:
Merge branch 'nom' into wherefore-gc-bug
19:33
tadzik uses git merge! It's not very effective...
19:40 bluescreen10 joined 19:41 jimmy1980 left 19:46 jimmy1980 joined 19:48 benabik joined 19:53 im2ee left 19:54 im2ee joined
diakopter [Coke]: heh 19:54
Tene tadzik: git problems?
20:02 jimmy1980 left
dalek kudo/nom: 8e3408f | jnthn++ | src/pmc/perl6lexpad.pmc:
Optimize lexical lookup/storage a little.
20:04
20:05 localhost joined 20:08 jimmy1980 joined
tadzik Tene: I don't think so 20:11
Tene: it's just that the merge message doesn't look quite as expected
Woodi hi ppls 20:12
pls tell me which rakudo I should use for some programming atm ?
tadzik hello
PerlJam Woodi: Star 20:13
masak hi Woodi
Woodi Star is one year old ?
jnthn Woodi: "Star" is a series of releases, not just one. 20:14
Woodi: The latest Star release is much less than a year old :)
Woodi looks like it's what comes with debian 20:16
failed on Text::CVS
diakopter CSV ? 20:17
Woodi "subst not defined for Failure"
yes, CSV
tadzik what do you mean as "failed"
?
dalek p: de51c5d | jnthn++ | src/PAST/NQP.pir:
Add an nqp::concat_s.
Woodi i got: Method 'subst' not found for invocant of class 'Failure' 20:19
from: my $text = ($m<quoted_contents> // $m).subst('""', '"', :global);
tadzik ok, but doing what?
ok, so it's not related to Text::CSV, is it?
Woodi not exactly, becouse that line comes from T::C 20:20
tadzik I see
does Text::CSV pass its tests?
Woodi 6/6 failed...
tadzik masak? 20:21
20:21 pernatiy left
masak tadzik: dunno 20:21
tadzik masak: love your module :)
masak ooh! :)
Woodi that line is central for module
20:21 bbkr1 left 20:22 jimmy1980 left
Woodi // is or in perl6 ? 20:22
tadzik defined-or, as in Perl 5
Woodi ( ... // ... ) must be Failure type for subst... 20:23
20:23 bbkr1 joined
dalek kudo/nom: 9608337 | jnthn++ | / (2 files):
Fix inefficiency in infix:<~>.
20:23
20:25 bluescreen10 left
im2ee Good night! :) 20:26
20:26 im2ee left
masak im2ee: dobranoc! 20:26
dang! :)
missed him again!
why do people leave so *soon* after saying goodbye? :P 20:27
tadzik masak: you taught them that!
:P
PerlJam masak: it's so they don't accidentally get caught up in another conversation on the way out
20:28 jimmy1980 joined
masak ah, the dreaded "goodbye conversation". 20:28
20:28 thou left
masak it's like having to do things which might throw an exception while handling an exception. 20:28
jnthn consistently gets spectest times <190s now :) 20:29
tadzik (:
diakopter nice
20:29 masak` joined
jnthn Down from being able to consistently hit the 220s region when I first got my new machine :) 20:29
PerlJam
.oO( jnthn is consistentlt doing something wrong)
20:30
:-)
jnthn Guess it's high time I ported the multi-dispatch cache... 20:31
20:33 masak left
jnthn Actually, a little fresh air first... 20:34
20:34 masak` is now known as masak, MayDaniel joined
diakopter niecza: our $val = 3; GLOBAL::<$mynewvar> = $val; say $*mynewvar 20:34
p6eval niecza v9-30-g2b3ba1c: OUTPUT«3␤»
diakopter nom: our $val = 3; GLOBAL::<$mynewvar> = $val; say $*mynewvar
p6eval nom 843aa4: OUTPUT«Method 'at_key' not found for invocant of class 'Any'␤ in find_method at src/gen/Metamodel.pm:143␤ in method postcircumfix:<{ }> at src/gen/CORE.setting:970␤ in method postcircumfix:<{ }> at src/gen/CORE.setting:972␤ in <anon> at /tmp/9b9UBXRh3h:1␤ in <anon> at /…
diakopter jnthn: ^^ <shruf> 20:35
*shrug
benabik std: GLOBAL::<$mynewvar> 20:37
p6eval std bb4f150: OUTPUT«ok 00:01 118m␤»
benabik nom: GLOBAL::<$a> 20:41
p6eval nom 843aa4: OUTPUT«Method 'at_key' not found for invocant of class 'Any'␤ in find_method at src/gen/Metamodel.pm:143␤ in method postcircumfix:<{ }> at src/gen/CORE.setting:970␤ in method postcircumfix:<{ }> at src/gen/CORE.setting:972␤ in <anon> at /tmp/60op7X905w:1␤ in <anon> at /…
benabik It looks kinda like the ::<> is trying to access an undef var instead of GLOBAL.
masak yes, probably. 20:43
not sure nom has GLOBAL at all.
benabik There's something at GLOBAL that doesn't like being printed. 20:44
(by the REPL)
nom: say GLOBAL
p6eval nom 843aa4: OUTPUT«GLOBAL()␤»
PerlJam nom: say FRED
p6eval nom 843aa4: OUTPUT«Could not find sub &FRED␤ in <anon> at /tmp/EH6R_ap6mo:1␤ in <anon> at /tmp/EH6R_ap6mo:1␤␤»
PerlJam (just checking :)
masak .oO( Fred of snakes? ) 20:45
[Coke] fred from angel! 20:49
PerlJam [Coke]++ 20:50
jnthn nom: our $a = 42; say GLOBAL::<$a>
p6eval nom 843aa4: OUTPUT«Method 'at_key' not found for invocant of class 'Any'␤ in find_method at src/gen/Metamodel.pm:143␤ in method postcircumfix:<{ }> at src/gen/CORE.setting:970␤ in method postcircumfix:<{ }> at src/gen/CORE.setting:972␤ in <anon> at /tmp/86E2fMjuF0:1␤ in <anon> at /…
jnthn nom: our $a = 42; say GLOBAL.WHO<$a> 20:51
p6eval nom 843aa4: OUTPUT«42␤»
jnthn ah, trailing :: NYI I guess
20:52 dukeleto left
diakopter so many NYI, so little tuits/developers 20:52
(not just rakudo, I mean, of course) 20:53
[Coke] is reminded he needs to order the season of angel he's missing and watch the whole thing.
dalek ecs: 1cc077a | diakopter++ | S02-bits.pod:
lots more S02 headings (Names and Variables and Names); break some smartlinks
21:02
diakopter d'oh; just missed the top-o-the-hour build
21:04 MayDaniel left 21:05 y3llow_ joined, pothos_ joined 21:07 y3llow_ is now known as y3llow 21:08 pothos_ left, pothos_ joined, pothos_ is now known as pothos 21:12 kaare_ left
masak niecza: grammar G { regex TOP { a } }; say G.parse("b").ast 21:16
p6eval niecza v9-30-g2b3ba1c: OUTPUT«Unhandled exception: System.InvalidCastException: Cannot cast from source type to destination type.␤ at CORE.C656_Cursor_2East (Niecza.Frame ) [0x00000] in <filename unknown>:0 ␤ at Niecza.Kernel.RunCore (Niecza.Frame& cur) [0x00000] in <filename unknown>…
diakopter 2East
masak phenny: tell sorear irclog.perlgeek.de/perl6/2011-09-15#i_4435311 is the golf'd version of the casting error that's been haunting me.
phenny masak: I'll pass that on when sorear is around.
diakopter masak: I wonder if the Perl 6 grammar is available at runtime 21:18
masak diakopter: hm. I'd always assumed it would be.
diakopter but how
masak any number of things carry through from compile time to runtime. 21:19
21:20 soh_cah_toa joined
masak 'night, channel. 21:20
PerlJam nom doesn't do any constant folding yet, does it? 21:21
diakopter o/
21:21 masak left
PerlJam g'night masak 21:21
jnthn PerlJam: Not much
PerlJam: We could do more. 21:22
PerlJam jnthn: teach me how :)
I just want to fix something simple. constant foo = 2 * 2; currently barfs and it shouldn't. 21:23
jnthn PerlJam: The problem is that we haven't got any kind of "general" serialization mechanism for the result at the moment, so we end up having to treat the thing a bit like bit like a thunk we re-run at deserialization time. 21:24
PerlJam: We do it in some limited places already where we have to, for example see in enum. 21:25
Oh, wait...we untangle that...
PerlJam: You could certainly detect when you have an AST which is going to call an op and that has constant children. 21:26
PerlJam jnthn: yeah, I was just pondering how to do that.
jnthn PerlJam: $op.name is the name of the op 21:27
$op[0]<has_compile_time_value> # true if there is a compile time value
For a binary op you can look it up with $*ST.find_symbol($op.name)
That gives you an invokable code object.
$op[0]<compile_time_value> gets you the compile time value 21:28
See apply_trait for an exmaple of calling code during compile time.
If it's an op that we didn't compile yet, that's fine; it'll hurry off and compile the body just in time. :) 21:29
PerlJam I suppose I could do this checking and compiling and such in EXPR? 21:32
jnthn PerlJam: Could do. I suggest a "is_foldable" or similar
21:32 pernatiy joined
jnthn Note that you won't really do any compiling when folding. 21:33
Or at least, the code you write shouldn't care whether we do any or not.
PerlJam right 21:34
jnthn Just use find_symbol to get you the thing to call. It's a "coderef" that you can call just like any other.
oh, thinking about it... 21:35
You don't need to look deeper than the current kids.
Because if they were foldable, that'll already have happened.
21:39 MayDaniel joined
jnthn PerlJam: BTW, if you're just playing with the compiler bit and don't need to re-compile the setting each time, you can just make perl6 and it'll only re-build the compiler. 21:43
PerlJam thanks.
I'm still refamiliarizing myself with rakudo's innards :)
how do you get the kids of an ast? 21:44
21:44 packetknife left
jnthn Array indexing 21:44
Oh, all of them
for @($ast_node) { ... }
Or in an array just @($ast_node) or $ast_node.list.
PerlJam ah, excellent. (I'd done $ast.list and wasn't quite sure) 21:45
21:47 packetknife joined 21:51 packetknife left, jimmy1980 left 21:56 packetknife joined 21:57 jimmy1980 joined, wamba left, wamba joined 22:03 colomon left, wolfman2000 joined 22:04 mberends joined
mberends sorear++ # $rat.Num for Cairo double params 22:06
phenny mberends: 15:35Z <sorear> tell mberends Try $rat.Num first
jnthn o/ mberends
mberends o/ jnthn
jnthn mberends: How's things? Still Dublin' up on the beer? :) 22:07
22:07 benabik left
mberends enjoyed, Dublin, and in Soviet style, Dublin enjoyed Me ;) 22:07
jnthn Odd, I'm normally further east when I get enjoyed Sovient style :P
mberends gah, comma fail too :/ # /me blames Smithwick's 22:08
jnthn Good excuse :)
22:11 wolfman2000 left, wolfman2000 joined 22:12 jimmy1980 left
mberends sorear: good idea, but the .Num trick did not convince Cairo that it was double. I'm making an xclock, but the hands are stationary (so far) and due to lack of double params, it supports only 3-bit color. 22:14
22:15 [Coke] left 22:17 [Coke] joined, wolfman2000 left, jimmy1980 joined 22:22 jimmy1980 left 22:27 jimmy1980 joined 22:28 dukeleto joined 22:31 dorlamm joined
mberends niecza: say sin(0.25) 22:39
p6eval niecza v9-30-g2b3ba1c: OUTPUT«0.247403959254523␤»
mberends niecza: say cos(0.25) # fails locally
p6eval niecza v9-30-g2b3ba1c: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'cos' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 685 (CORE die @ 2) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1136 (STD P6.comp_unit @ 36) ␤ a…
mberends there is a workaround if you have sin() but not cos(): offset by pi/2 and swap the x and y axes, but yuk... 22:41
it's a phase thing ;) 22:43
22:51 am0c joined, replore_ left 22:52 packetknife left 22:55 packetknife joined 23:00 pernatiy left 23:01 xinming left 23:06 MayDaniel left
diakopter phenny: ask moritz could you take a look at the synopsis rebuild process; S02 doesn't seem to have my latest changes; podchecker says it's okay 23:08
phenny diakopter: I'll pass that on when moritz is around.
23:08 xinming joined 23:10 Chillance left 23:13 [Coke] left 23:14 [Coke] joined 23:15 Reaganomicon left, Reaganomicon joined 23:19 tokuhirom joined, dorlamm left 23:25 Reaganomicon left 23:31 mkramer joined
dalek ecs: f998662 | diakopter++ | S02-bits.pod:
fix podchecker whitespace warning
23:34
23:45 packetknife left 23:47 supernovus joined
supernovus I can't stick around long, but wanted to know if anyone has come across lovely errors like "error:imcc:syntax error, unexpected DOT ('.')" before? 23:51
jnthn supernovus: Not often, but I have. 23:52
supernovus: --target=pir tends to be the only sane way to debug them.
supernovus I've never seen anything like it. The "in file '(file unknown)' line 44624398" isn't very helpful either :-P 23:53
diakopter that's a really long file
supernovus hmm, it gives me a different line size every time, and not even close... 23:54
yeah, the line number in that report seems entirely random... 23:56
diakopter hmm 23:57
dare I ask what's your input
supernovus I need to cook dinner, so yeah, I'm abandoning my odd bug hunt for now. If anyone wants to try to recreate it, clone github.com/supernovus/perl6-http-easy/ and try "perl6 lib/HTTP/Easy.pm" It may just be my copy of nom on the server (I built it a couple hours ago.) Who knows. I'm off for now! 23:58