»ö« 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.
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
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.
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
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
jnthn sleep & 01:18
dalek ecza/serialize: c984628 | sorear++ | / (6 files):
Remove non-dotnet backends, including nam; its role will be filled later
01:34
dalek ecza/serialize: e50410a | sorear++ | / (3 files):
Streamline type conversion for downcalls
02:02
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*
lichtkind good night 02:19
sorear o/ colomon 02:48
colomon \o
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
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
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
sorear ye 02:59
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
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.
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
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
TimToady quietfanatic is 22 and just started his first job as a math TA 04:01
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.
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
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
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
[Coke] you sure about that? 04:12
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
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
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
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␤»
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
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
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
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
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
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
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
masak moritz: eating in the sense of Jonah and the whale. 09:23
i.e. it's contained but not consumed.
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
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
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
eiro yep... i seems this old experience was actually a bad start: let's do it again from scratch :) 09:45
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
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
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
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
jnthn moritz: true 10:30
eiro true: i stop the ot :) thanks everyone 10:31
bbkr when NOM-based release is expected? 10:34
donri rakudo.org/2011/09/09/nom-branch-default/ 10:39
im2ee Hi! :) 10:40
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 :)
Net any management-level BIG plans for nom -> main conversion ? would be good imho... 10:51
maybe s/management/marketing/ 10:52
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
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.
masak jnthn: "optimizerS"? 11:11
jnthn masak: *nod* 11:12
masak: NQP gets one too
masak ah, right. 11:14
jnthn May start prototyping that a bit at the weekend. We'll see. :) 11:15
masak \o/ 11:17
jnthn It's tricky, though fairly -Ofun work :) 11:18
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
flussence hm, the irclogs seem to have some utf8 issues...irclog.perlgeek.de/perl6/2011-09-15#i_4432447 11:44
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
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
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
[Coke] yawns and eats some coffee. 12:28
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
tadzik jnthn++ 13:10
flussence I finally got this finished! github.com/flussence/specgraphs/ra...-tests.png 13:11
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
benabik Trying to load_bytecode perl6.pbc fails off it's done after .including test_more.pir 13:18
How very odd.
*iff
moritz benabik++ # locating the error 13:26
jnthn benabik: What's the failure mode? 13:27
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
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.
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
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...)
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.
moritz masak: added 14:29
masak moritz++ 14:30
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( ... )
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
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
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
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
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
masak decommutes 15:27
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.
pmichaud afk, lunch 15:53
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
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
masak evening! \o/ 17:08
jnthn masak! 17:09
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
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 :)
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.
dave sup by auspicious panel of intellectuals 17:22
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
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
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
jnthn pmichaud: makes sense 17:45
afk; fetching dinner
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
diakopter niecza: my ($a,$b) = 2,3; my $c = \($a,$b); say "$c"; $b=4; say "$c" 18:01
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␤»
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
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?
jnthn seems to recall 15 mins or so 18:43
tadzik sees WB paches and tries his branch again
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
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
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
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.
[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
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...
diakopter [Coke]: heh 19:54
Tene tadzik: git problems?
dalek kudo/nom: 8e3408f | jnthn++ | src/pmc/perl6lexpad.pmc:
Optimize lexical lookup/storage a little.
20:04
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
masak tadzik: dunno 20:21
tadzik masak: love your module :)
masak ooh! :)
Woodi that line is central for module
Woodi // is or in perl6 ? 20:22
tadzik defined-or, as in Perl 5
Woodi ( ... // ... ) must be Failure type for subst... 20:23
dalek kudo/nom: 9608337 | jnthn++ | / (2 files):
Fix inefficiency in infix:<~>.
20:23
im2ee Good night! :) 20:26
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
masak ah, the dreaded "goodbye conversation". 20:28
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
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
jnthn Actually, a little fresh air first... 20:34
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
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
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
masak 'night, channel. 21:20
PerlJam nom doesn't do any constant folding yet, does it? 21:21
diakopter o/
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
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.
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
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
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
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 :)
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
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
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.
dalek ecs: f998662 | diakopter++ | S02-bits.pod:
fix podchecker whitespace warning
23:34
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