»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by wolfe.freenode.net on 30 October 2009.
romanhunt still no dice 00:00
it sets me up to track ng from origin but origin is my fork
I cannot get it to accept "remote" or "upstream"
would it just be easier to delete the repository and pull it from the master? 00:01
[particle] yeah, it's easy to recreate the repo 00:03
zaslon lolperl6adventhazblogged! perl6advent++ 'Day 10: A Regex Story': perl6advent.wordpress.com/2009/12/1...gex-story/
[particle] nuke it
carlin rakudo: 1~~/./;my @a=((1|1),'',[],1,{1},1,$/,/1/,/1/,(1=>1),/1/,'',{1},$/,[],{1},/1/,'');my @b=(0,2,0,2,0,1,1,1,2,1,2,1,4,1,1,1,0,1,0,1,1,1,2,1,1,1,4,1,0,1,3,2,1,1,2,1);for map {lc .WHAT},@a {print .substr(@b.shift,@b.shift)}; 00:06
p6eval rakudo 7ef386: justanotherperlhacker
carlin rakudo: my %h = { foo => 1 }; 00:07
p6eval rakudo 7ef386: ( no output )
carlin rakudo: my %h = { foo => 1 }; say 'alive'
p6eval rakudo 7ef386: ( no output )
carlin looks like evalbot's hashes are broken too 00:08
00:09 payload left
romanhunt ok I think Im set 00:13
the parrot rev is correct so I am reconfiguring --gen-parrot
thx for the help
jnthn my $advent-post is scheduled; 00:14
00:17 spinclad left
romanhunt can ~~ be used in place of an isa ? as in $obj.method if $obj ~~ 'Foo'? 00:17
colomon no quotes around the Foo. 00:18
romanhunt cool
colomon rakudo: say 1 ~~ Int;
p6eval rakudo 7ef386: 1␤
colomon say (4/7) ~~ Rat
jnthn If you want to try and call a method if it's there, there's also $obj.?method, fwiw. :-)
colomon what happens if it's not there? 00:19
jnthn (not quite the same thing)
colomon: failure
colomon: but not exception.
colomon makes sense.
jnthn I most like it when you've got some object that may or may not have had a thingy mixed into it.
And you want to call a potentially mixed in method if it's there.
00:20 Wolfman2000 joined
jnthn sheesh, the wordpress admin area is sloooow 00:20
Wolfman2000 jnthn: perhaps there is another slashdot effect?
jnthn dunno
I wonder if my post really is scheduled yet... 00:21
00:21 nihiliad left
jnthn ah yes 00:23
2009/12/11
Scheduled
:-)
colomon \o/
jnthn review welcome
colomon I like the blog being at least a day ahead.
00:23 felipe left
jnthn Less stress. :-) 00:24
colomon :)
arnsholt I wish you'd publish at something like 8 or 9 in the morning European time though 00:25
Less temptation for me to peek before going to bed that way =)
colomon jnthn: nice post. 00:27
00:29 cdarroch left 00:30 gfldex left 00:31 gfldex joined
jnthn colomon: Thanks for checking it :-) 00:35
00:36 Limbic_Region joined 00:37 Limbic_Region left 00:38 supernovus left
romanhunt so where has src/setting 's functionality moved to in ng? 00:40
src/core ? 00:41
jnthn yes.
romanhunt werd
ha! the work I was peeking at to do id done 00:42
jnthn There's plenty more work, I'm sure ;-) 00:44
<- exhausted
jnthn goes for a rest
romanhunt all of traints.pm doesnt look to still be there
are the other funcs obsoleted?
*traits
colomon ng still has huge holes in it.
(For perspective: I implemented pop and shift today.) 00:45
romanhunt jesus
thats cool though!
colomon Basically, ng is waiting to get a few more key components that a lot of things depend on. Then I imagine there will be an explosion of stuff moved to it very quickly. 00:47
pop, for instance, is a lot simpler in ng than it was in master.
our multi method pop() { self.elems > 0 ?? pir::pop__PP($!values) !! Mu; } 00:48
romanhunt cool. I am just glad to be sync'd to the current dev tree at this point
colomon (The Mu should really be fail with a message, but we don't quite have that yet.)
quantumEd what's Mu? 00:49
colomon quantumEd: it used to be called Object.
Used like that it's the most fundamental undefined type. :)
quantumEd coool
TimToady seems like it should return Nil, maybe 00:50
colomon romanhunt: Today I ran into the fact that @ array arguments don't work in ng yet. So @array.pop works, but pop(@array) causes a NullPMC crash.
TimToady: It should return a fail, shouldn't it? 00:51
If you reckon Nil is a more appropriate psuedo-fail, I'd be glad to change the code.
TimToady I can argue it both ways
RichiH what is the rationale behind using ^^ and $$ instead of ^ and $ in regexp? 00:52
TimToady s/instead of/in addition to/
^^ and $$ can match multiple places in a multi-line string, while ^ and $ can only match at beginning/end of string 00:53
PerlJam is so glad he did his perl6advent entry early 00:58
There is no way I would have gotten it done today.
RichiH PerlJam: guess why i asked ;) 00:59
TimToady: so would $$ match \n\n\n\n in a multi-line match?
TimToady it would match before each \n
PerlJam RichiH: it would match multiple times.
s/would/could/ (depending on how it was used) 01:00
RichiH ah, ok
01:00 lestrrat is now known as lest_away, jaldhar left
RichiH PerlJam: in my specific example, it would 01:00
but i know what you mean :)
TimToady and ^^ would match after each \n 01:01
except maybe that last one
I think ^^ shoudn't match at $
colomon Would it match before the first \n as well?
TimToady *shouldn't
if that were at ^, yes
PerlJam RichiH: you know, you can leave comments on the calendar. Perhaps someone else could gain the wisdom of the answer to your question :) 01:02
01:02 jaldhar joined
RichiH PerlJam: actually, i think it would be cleaner if you modified the the entry itself to explain this 01:03
not everyone reads the comments
i know i don't
pmurias /exit
01:03 pmurias left
PerlJam RichiH: if I modified the entry, then I'd have to introduce ^ and $ and explain them in some way. I think it's better to leave people asking questions :) 01:04
TimToady well, it's certainly questionable... 01:06
but ^ and $ wouldn't have to be explained to people who think they know how those work already
01:06 felipe joined
RichiH PerlJam: the concept behind the advent calendar entries is to introduce new stuff in perl 6. as you are the first to use ^^ and $$, it's your job to explain them 01:07
'build upon prior entries or explain it yourself'
PerlJam RichiH: I did! :)
01:07 thowe left 01:08 quantumEd left
RichiH '^^ matches the beginning of a line' '$$ matches the end of a line' -- to me, that read as if ^ and $ were being replaced by ^^ and $$ which is why i asked. as i _did_ ask, i obviously disagree about if you did explain this properly ;) 01:09
01:09 spinclad joined
zaslon lolfrettledhazblogged! frettled++ 'GCD - A Small Language Enthuser': howcaniexplainthis.blogspot.com/200...huser.html 01:09
frettled carlin++ - zaslon didn't barf :D
RichiH in any case, battery dead and 0210 local -> bed 01:10
PerlJam: i still think the original article needs t be modified, though 01:11
PerlJam RichiH: perhaps we can agree to disagree here, but the way I see it, if I waxed prosaic about every little detail, then there'd be nothing to talk about. And I much prefer dialog to monolog.
(add the missing "ue"s as is your wont :) 01:12
01:14 japhb left
RichiH "[UPDATE]tim rememered that perl has the neat new ^^ and $$ identifiers which match beginning and end across several lines and decided to use them[/UPDATE]" 01:14
but your choice, really
one last point though: it's not about every little detail, but it is very much about stuff that is new in perl6 01:15
RichiH will leave it t^Hat that :)
01:26 SmokeMachine joined
Tene colomon: ng does have fail with a message. It just returns Mu right now, but if you use it in ng, it'll do the right thing once fail() dtrt too. 01:35
colomon Tene: really? I thought I had issues when I tried to use it.
hmm...
Tene ng: sub foo { fail("lol") }; my $a = foo(); say $a.WHAT; 01:36
p6eval ng dc293e: Mu()␤
Tene see?
colomon Tene++
ng: say fail("hello"); 01:37
p6eval ng dc293e: No exception handler and no message␤current instr.: '&fail' pc 13834 (src/builtins/Junction.pir:200)␤ 01:38
colomon I was misled by that.
Tene ng: say return("lol"); 01:39
p6eval ng dc293e: Could not find non-existent sub &return␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
01:39 cotto joined
Tene same thing 01:39
01:40 lest_away is now known as lestrrat
colomon is running through the ng code adding fails... 01:40
Tene That's great. Thank you. 01:42
colomon Thank you! 01:44
Tene real Failure support is coming soon. Not tonight, but maybe tomorrow.
colomon Okay, so that wasn't a lot of changes, actually. Still, feels good to have proper fails in there. 01:46
Will have them pushed in a few minutes. 01:48
01:53 justatheory left, japhb joined
colomon Tene: The commit is pushed. When it pops up, could you double check it to see if my uses of fail look right to you? 01:54
Wolfman2000 umm...isn't today Day 11? 01:55
I'm not seeing the post
colomon Wolfman2000: Today is day 10. 01:56
Hmmm... maybe Dalek's down again. github.com/rakudo/rakudo/commit/920...63d8bb1c59
01:57 jl_2 left 01:58 silug joined
dalek kudo/ng: 920640f | (Solomon Foster)++ | src/core/A (2 files):
Replace several cheat returns of Mu with actual returns of fail messages.
01:58
Tene colomon: according to the spec, the very first hunk is wrong, as a failed index should return some kind of NYI StrPos object, which should still be reflected in a comment there. 02:00
fail is the best option for now, though, yes.
otherwise, that looks fine.
colomon Tene: thanks. 02:01
There is a comment at the beginning of the function about StrPos... 02:04
Tene that's probably good enough. 02:06
colomon Woah, StrPos looks very tricky to implement. 02:07
02:10 jferrero left 02:15 agentzh joined 02:35 colomon left 02:37 JimmyZ joined 02:44 ShaneC left, Entonian joined 02:55 vamped joined 03:05 tann1 left 03:13 colomon joined 03:17 IMeMyself joined 03:18 rgrau` joined, agentzh left 03:19 rgrau left, hicx174 left, reid06 left, r0bby left, dalek left, sundar left, athomason left, dalek joined 03:20 rgrau joined, hicx174 joined, reid06 joined, athomason joined, r0bby joined, agentzh joined 03:31 agentzh left 03:40 Entonian left 03:42 envi^office joined 03:49 rgrau left 03:56 tarbo2 joined 03:57 vamped left 04:14 crythias left 04:25 stephenlb left 04:34 Entonian joined 04:35 c9s_ left
wayland76 xenoterracide: Also, there's Web.pm for perl 6 :) 04:35
04:36 c9s_ joined 04:40 meppl left 04:42 Lorn left, Lorn joined 04:49 hicx174 left 05:01 aindilis left 05:09 envi^home joined 05:10 hicx174 joined 05:19 Lorn left 05:30 Lorn joined 05:31 tann1 joined 05:32 tann2 joined 05:34 hicx174 left 05:38 hugh4life joined 05:42 thowe joined, hicx174 joined
thowe good evening 05:42
sjohnson hi 05:43
05:44 perigrin left 05:45 perigrin joined 05:50 tann1 left 05:51 masak joined
masak good morning! 05:52
diakopter masak: how
TimToady I'd say scrambled, but I'm allergic to eggs... 05:53
05:53 Entonian left
masak :P 05:53
TimToady so it's a good thing he asked you instead...
masak sunny side up for me, then.
TimToady I daresay it's not very sunny where thowe lives at the moment 05:54
thowe No. Also very very cold...
I think the contents of my compost tumbler may be frozen... 05:55
TimToady though Bend itself is kinda down in a slightly warmer pocket
thowe Not currently.
We are experiencing a strange long spell of very cold.
diakopter mono.pastebin.com/d3a20d235 # causes Microsoft's C# compiler to emit invalid MSIL bytecode, but which isn't caught by its verifier.
TimToady well, compared to the surrounding hills...
thowe yeah. One of my data center AC units froze... 05:56
masak diakopter: submit a monobug!
diakopter mono doesn't even implement __refvalue and __makeref
masak oh, ok.
diakopter they're Microsoft extensions to the ECMA C# standard
also undocumented/unsupported kewords 05:57
keywords
TimToady thowe: I was in Bend when I figured out who I was going to marry, as it happens. :)
(she wasn't there at the time)
thowe Must be a story there... The examined life, so to speak. 05:58
TimToady well, not really, the realization took about 5 seconds.
was installing some registration software at COCC at the time... 05:59
thowe The examination must have been a background process...
Whoa, really?
TimToady ancient history
1978, in fact 06:00
thowe I have only been there to play disk golf and see a speach.
er speech 06:01
Yeah... a bit before my time...
They are a customer of ours...
their network configuration is sad... 06:02
I know a couple people who teach there.
TimToady so what interests you about Perl 6? 06:03
06:03 hicx174 left
thowe So, there you were, installing some registration software and you suddenly said "hm, I'm gonna marry..." 06:03
TimToady well, I was sitting in my motel room at the moment.
but yes, pretty much like that.
thowe several things... some of them subjective
TimToady helped that we'd already been good friends for two years 06:04
thowe I work for this phone company and we do a lot of our own data processing in-house...
I write a million little programs to throw data around all the time 06:05
I use a lot of Ruby
I kind of cut my teach on this kind of stuff with Perl 5... sys admin stuff, CGI stuff, everything to run an ISP basically.. 06:06
er teeth
I'm probably like a million other guys/gals who just need to get stuff done
TimToady good, we can certainly use your viewpoint on all this 06:07
diakopter use it or lose it! ;)
thowe Perl 6 sounds like it has cool features. I like to learn new things, too.
For some reason Ruby is becoming less fun 06:08
TimToady do you have any feelers for why that might be?
thowe Maybe all the Rails hype... When I started RUby there wasn't even any english docs
Hmm...
TimToady so you read 日本語, do you? :) 06:09
thowe I have some ideas, but they are hard to put into words...
read? sure
less than I would like
masak too 06:10
TimToady かっくいい!
06:10 envi^home left
masak Google Translate turns that into "Kuii hue!". 06:10
TimToady more or less means "Cool!" 06:11
kinda slangy though
masak ah.
thowe to me, Ruby is becoming less interesting because when I first got into it, I was not really good at OOP. But I've pretty much figured oop out for practical purposes now, and Ruby just seems to be less pragmatic than I feel I want to be on a day to day basis...
TimToady is that because it's a bit too single-paradigm? 06:12
or something else?
thowe Possibly... I took a look at Python because I thought that might be it, but Python doesn't feel right. 06:13
I used to like Perl 5, but it started to feel... undisciplined might be a close word...
TimToady Python is sort of a one-trick pony
masak by design! 06:14
TimToady yes, well, it grew more than it was designed
masak "The pony should have only one obvious trick."
thowe The idea that a modern language built from the ground up with so much thought put into it but a Perl sensibility sounds appealing.
06:15 kaare joined
thowe I mean, I like Z Shell scripting too, but that's only gonna get me so far. 06:15
06:15 kaare is now known as Guest4923
thowe "Perl sensibility" probably means something different in my head than in many others. 06:15
TimToady yeah, part of the p6 motivation was from the places where p5 just runs out of juice
it's been obvious for ten years that p5 would never be able to outgrow those limitations 06:16
so many of the p6 design decisions have been driven by the desire not to run into those boundaries quite so soon
thowe I take a disciplined approach to my code, and I do like it to be easy to read... Never a fan of the crazy one-liners, but I do find them impressive.
TimToady while still giving an easily used core language
so you don't have to learn the fancy stuff till you need it 06:17
but with subtle encouragement to do things in a way that will scale better
thowe I'm also interested in the idea of Parrot. WHich is odd, because Java and Mono don't get my mojo up.
06:18 hicx174 joined
thowe THis one thing always bugged me.... 06:18
passing a multi-dimensional array to a function always seemed to flatten it... I probably just needed to know how to pass by reference or something, but it was really un-intuative... 06:19
I'm talking about Perl 5
I could have just been much less clever then.... 06:20
TimToady yeah, fixed that one too, so normal parameters don't flatten any more, only slurpies
a lot of the p6 design was just picking better defaults
thowe Well, I'm interested in this new perl. At least for the past couple of days. I may get some time to poke around with it this weekend... 06:21
TimToady well, have fun with it 06:22
thowe It's probably no secret that Perl gets hated on a bit by some crowds.
TimToady we aim to fix that too, but it takes time :)
and some folks will just never appreciate freedom 06:23
thowe Well, I have to say (and I said it the other day)...
this is just about the friendliest prog lang channel I have ever been in.
TimToady but we can take away all the not-so-good reasons for hating Perl, and leave the good ones. :D
06:24 beggars joined
masak thowe: it is very friendly. and we're having a lot of fun, too. 06:24
TimToady I blame the butterfly, it chases away the meanies. :)
sjohnson hi
TimToady actually, in large part it's Audrey Tang's legacy
thowe TimToady: it totally does!
masak it definitely repels the meanies. don't know if it chases them away. :P
thowe That's been a thought in my head
It struck me odd at first, but it is a bit disarming 06:25
it kind of sets a tone
06:25 Wolf2k_Pinged joined
thowe I came accross some talk Larry Wall did about music or something the other day. He seems manic, but also brilliant. 06:26
TimToady one of the things we'd like to fix is the culture of high priesthood that looks down on lesser mortals
thowe well, manic isn't the right word...
06:26 Wolfman2000 left
TimToady yes it is 06:26
or at least maniacal...
thowe heh, no. I think that means something I don't mean to say. It could just be that I was reading it instead of listening to it. It seemed really fast-paced 06:27
masak I like Larry Wall's talks.
thowe but in an odd way, despite the fact it seemed all over the place, it came back and made a point when I least expected it to.
masak thowe: "Strangely Consistent" :) 06:28
thowe OK, yeah. I'll go with that.
masak thowe: that's actually a description that emerged about Perl 6.
TimToady well, if you can't fix it, feature it.
in any case, Larry is not a linear thinker, and never will be. 06:29
masak probably a good thing. linear is also a bit of a one-trick pony. 06:31
thowe Well, to build a projet like this probably requires many kinds of thinking.
masak look at Linear Algebra, for example. wildly successful, but also very limited.
thowe Wall was doing this stuff before I was born... When I think of everything I have learned in the past 4 years alone, that's got to be a lot of stuff going on in that head. Also, I imagine his experiences have often been more enriching than mine. 06:33
wait... 06:34
TimToady: dude, you're Larry Wall?
TimToady you mean, experiences like visiting Bend, OR :)
TimToady pretends to be 06:35
TimToady pretends to be better than anyone else
thowe is confused
TimToady pretends to be Larry Wall better than anyone else
diakopter TimToady: I thought you were the answering machine Larry Wall
TimToady you should ask someone who has stayed at my house 06:36
thowe oh, dude... I just got your nick too... TMTOWTDI
masak :)
thowe OK, I'm a little embarrassed now
diakopter oh, the suspense
TimToady never a serious moment around here... :)
I don't mind hearing what people really think, either positiver or negative. 06:37
thowe OK, so, that must have been a bit of a laugh
TimToady I am easily amused. :D 06:38
masak thowe: TimToady does this quite frequently lately. :) 06:39
thowe OK, so I kind of wonder... How do you stay interested in doing this for so long? 06:40
TimToady mostly by being interested in everything else at the same time
but it's true in a sense that I'm the only person who isn't allowed to quit. 06:41
thowe wow. that.... makes a hell of a lot of sense
TimToady so I have learned to pace myself.
the last several years I've been keeping sane by learning Japanese
diakopter yeah, but the pace car already lapped the lead car a few times :/
TimToady and classifying all the CJK characters in Unicode 06:42
and learning to play the drums
thowe Nice. I started gardening... and making beer. 06:43
TimToady both are well-loved, if ephemeral, arts 06:44
06:45 fridim_ joined
thowe You can enjoy doing them badly. 06:45
TimToady fraid I froze some of the new leaves on my avocado tree last night; didn't think I'd need to put a light-bulb in its little tent
I blame your cold air coming down to California 06:46
thowe I don't think it was ours...
TimToady well, wind was from the nne, so maybe it was from Pendleton :)
thowe Yeah, I wouldn't put it past them... 06:47
I hope the parrot lisp stuff works out... I probably would have stuck with CL if I found an implementation I liked... 06:49
TimToady that'd be nice, though I suspect parrot's current data structures are rather heavyweight compared to the usual lisp implementation 06:53
thowe Well, I'm a bit in awe and impressed that you took some time to talk to me, TimToady. I'm unusually interested in getting something going with Rakudo. 06:55
06:55 szabgab_ left
thowe hmm. Those were two different thoughts separated by more on this end than is apparent.. 06:56
TimToady talking to people is another thing I do to stay sane :)
or at least saner
less insaner
thowe I'm quite sure I will be no help there..
masak thowe: of course you can. 06:57
thowe: for one thing, it's been interesting reading the above conversation.
TimToady twitches
masak thowe: and if you have an interest in Perl 6, you'll probably help just by sticking around and asking questions as you discover it. 07:00
thowe Well, if that's what you call help, my ignorance is at your disposal.
thowe salutes
07:00 mberends joined
masak :) 07:00
07:00 rgrau` left
masak thowe: I've put my ignorance at #perl6's disposal for about five years now. :) 07:01
mberends morning masak :) # that was an adjective
masak mberends: greetings mberends # that too :)
TimToady technically, a noun being used as an adjective... 07:02
mberends masak, "a man for all timezones"
masak mberends: mornings are so nice. I got up at 5-ish this morning out of *impatience*!
that's never happened before, I think.
thowe I seem to hate mornings more and more lately... Maybe I need a vacation.
TimToady maybe you have seasonal affective disorder 07:03
mberends masak: bring on *hubris* and *laziness* and you'll have a perfect Perl day
masak mberends: the conditions are favourable, that's for sure. :)
mberends here too :) 07:04
07:05 szabgab joined
mberends TimToady: using 'make test' in pugs/src/perl6 throws up a few viv errors. are they serious? 07:05
masak TimToady: if waking up in time is the disorder, I'm not interested in treatment. :)
TimToady mberends: probably not 07:06
mberends :) ignoring them. I may do some commenting in the Makefile on the forgiveness principle 07:07
TimToady I usually do 'make snaptest' myself
mberends ah, will try that
TimToady includes the non-spec tests, and does a snapshot so I can keep editing
should get about 6 hard errors, and a number of warnings about missing modules and such 07:08
two of the hard errors are because it doesn't really understand 'use v5' yet 07:09
mberends the Makefile:52 looks wrong: 'distclean purge: clean'
supposedly purge is the new distclean, or what?
TimToady no clue, I didn't write that part 07:10
and a couple of the errors are due to the fact that STD doesn't really run any P6 code at compile time, but just fakes it
mberends I'll try a few variations and comment the conclusions 07:11
TimToady so some of the more macro-y things don't work out right
mberends those faking errors are understandable, will make a note somewhere 07:12
TimToady and I never bothered to fix the Temporal::DateTime error because I don't like that typename :) 07:14
masak neither 07:15
mberends renegotiating those names was a hopeless bikeshed session :(
masak I'd prefer just DateTime.
mberends runs away from the bikeshed
masak "It's going to blaow!" 07:16
mberends or should thet be BikeShed ;)
masak :P
07:19 vamped joined
thowe is there a list of available perl 6 modules? Specifically PostgreSQL? 07:22
07:22 krunen left
thowe are they just in CPAN? 07:22
I ask because I seem to be finding various stuff online, but I don't know what's been settled on... 07:24
like CPAN6...
masak thowe: there's a big hole right now where a Perl 6 modules/projects manager should be.
thowe: we fill it with various things in the meantime, mostly proto.
thowe proto?
masak thowe: there's a list of projects in there: github.com/masak/proto/blob/master/projects.list 07:25
thowe: yes, proto is the "throw me away when there's something better" installer.
hence the name.
thowe looks like yaml
masak it is.
...and since there's no YAML reader for Perl 6 yet, we fake that when we read the file. :/ 07:26
thowe once again, I know just enough to look like I know what I am alking about...
07:26 c9s_ is now known as c9s, envi^home joined
thowe thought of adding a description field? 07:27
mberends patches welcome ;)
masak thowe: it's been suggested several times. I've opposed it each time. 07:28
moritz_ re
masak the 'patches welcome' slogan is generally right, but there's an exception for proto. in short "don't improve it". :) 07:29
work on the real one instead.
thowe but, say I am looking for a Pg interface... Any someone decides to name it "Becky"...
masak thowe: yes, I see your use case. 07:30
thowe s/Any/And/
mberends that functionality is too far down the road for now
masak thowe: it's just that I want things to get better not by improving a bad solution, but by building a good one.
07:30 corneliu1 joined 07:31 corneliu1 left
mberends masak: revolution, not evolution 07:31
thowe Ah. OK, I can see your point.
masak thowe: note the word 'hyper-lightweight' in the github description of proto.
thowe: oh, and speaking of github descriptions -- there you go. :)
thowe: much better to write a 3rd-party tool that traverses proto's projects.list and fetches the github descriptions. :) those are already filled in and often very good. 07:32
that way, proto is kept lean, and the work on the 3rd-party tool can possibly be re-used when the revolution comes. 07:33
mberends plumage could be that successor to proto 07:34
thowe well, I should really call it a day... 07:35
TimToady: very nice meeting you.
masak mberends: yes, for what I've heard of it, it seems very nice. and it's targeted for Parrot things, not just Perl 6 things, which seems inherently right.
thowe masak: Thank you for your help... again.
masak thowe: thanks for stopping by! do come back. 07:36
thowe I'll be around. Need to catch up on these Advent Calendar articles...
masak :) 07:37
07:37 Su-Shee joined
Su-Shee good morning. 07:37
masak Su-Shee! \o/
thowe Good night, all.
masak 'night, thowe.
moritz_ good morning 07:38
07:38 c9s_ joined
Su-Shee my cto yesterday emphasized his will to switch to perl 6 with our product. "people are watching!" :) 07:39
mberends moritz_: good morning, do you often type 're' on a line by itself?
moritz_ mberends: somtimes I do
mberends moritz_: it usually causes a pregnant pause... 07:40
moritz_ usually not in the morning, though
07:40 agentzh joined
mberends Su-Shee: that is great news! 07:40
masak mberends: I've been thinking the same thing. to be 're' seems 1-ary. :) 07:41
Su-Shee yes. he doesn't what to abandon the perl ship. :)
want.
mberends Su-Shee: can you tell us a little more about the product?
Su-Shee more coffee.
moritz_ "more coffee" sounds like a good product for programmers :-) 07:42
Su-Shee mberends: it's essentially a web application where "members" exchange "messages" and put "documents" in which both can be filtered in a highly flexible way.
masak a CMS? 07:43
Su-Shee hmhm, more like a domain specific "groupware" kind of thing. it's used to manage very large construction projects. 07:44
masak ah.
07:44 rbaumer joined
Su-Shee so people stuff large plans and such in it. the largest site is about 1.5 tb data. 07:44
07:45 rbaumer left
moritz_ it will be a while before anything parrot based can handle such large data :/ 07:45
mberends that's a common enough use case that the support libraries for it would be relevant to many other developers. Nice. 07:46
Su-Shee I'm planning the next version right now, afterwards I can be rather precise what a future version would really need. (really international date handling for example, ssl...)
mberends: very much so, yes. it's really just "web app" under the hood with a SOAP interface in addition. 07:47
mberends Su-Shee: does the employer have confidentiality concerns or is it permissible to discuss functionality in this public forum? 07:48
Su-Shee mberends: those are very common problems; what makes our product fancy is essentially the way data is handled and the architecture which definetely easily fit into perl 6. (it works with perl 5.8, html 3 with frames and such right now. ;) 07:50
mberends: so discussing speed, the amounts of data involved and i18n stuff: no problem.
mberends Su-Shee: I think some sort of collaboration between your employer and members of #perl6 would be mutually beneficial 07:51
Su-Shee cto is willing to. we've participiated in some postgres stuff and in SOAP modules. 07:52
(global majestic "we" - I didn't, I'm not even out of the probation period :) 07:53
mberends :) a win-win scenario for #perl6 and the $job
Su-Shee and my nervs. :)
what I'm probably be doing is to code something inbetween-ish - mildly moose based, as much 6-ish concepts as possible to make the transition easy. 07:54
mberends yes, a very sound plan 07:55
07:58 vamped left
Su-Shee here, that's all based on our product: www.thinkproject.com/projects-refer...e-studies/ (remove the marketing foo and imagine the amount of organizational stuff involved) 07:58
mberends yes, I see 08:00
CMS indeed, with plugin extensions per installation 08:02
masak groans at pun in first sentence of jnthn++'s draft post
Su-Shee mberends: handling russian and arabic required. ;) 08:05
mberends masak: arrgh, beyond my pun threshold 08:06
masak :)
mberends: it's a sort of text-only pun.
mberends Su-Shee: that's not obvious from your main site. How do you work for the Munich people when you live near Berlin? 08:07
Su-Shee tech is in berlin, sales is in munich 08:08
(which is common due to the structure of german economy and the busines landscape.) 08:09
add an s, please. :) 08:10
mberends right. well, terabytes of data is not scary when it's suitably chopped up and indexed. the database is the key. (oops, pun)
masak groans again
Su-Shee in terms of http load, there's nothing complicated. it's not a million users facebook kind-of-thing. :) 08:11
mberends Su-Shee: like you said, allowing the clients to specify custom relationships between various documents and other records is crucial. Also audit trails, archiving... 08:13
Su-Shee exactly.
perl does all this quite happily since 1997 or something, so there is no reason at all why perl 6 shouldn't be the perfect language later on. 08:14
mberends knows that stuff, but mainly under a M$ veil of obfuscation
Su-Shee our veil of obfuscation is called "age of the code" ;) 08:16
mberends Su-Shee: you should not need to change the database at all. Multiple web front ends in different languages should be able to share the content, thus letting you develop old and new code side by side. 08:17
Su-Shee anyway. in a few weeks or so I can probably be rather precise about what this software needs, but there won't be any surprises for anyone who's dealing with web apps.
mberends: what, I don't get to play with one of those noSQL thingies? no way. :) 08:21
mberends Su-Shee: beware the "object databases", they make hollow promises and fail to scale. long live the relational model :) 08:22
08:23 flip214 joined
flip214 `\_o_/´ 08:23
morning
08:25 fridim_ left 08:30 c9s is now known as cornelius 08:37 Baggio_ joined
mathw Morning 08:37
08:47 kcwu left 08:48 riffraff joined 08:53 gfx joined
Su-Shee mberends: luckily, I hate databases anyway. so not my thing.. :) 08:54
08:55 mofino left
wayland76 wants a real tree-based database with a real tree-based path language for selecting data 09:02
09:02 cotto left
mberends too 09:02
09:03 egypt joined
wayland76 was writing one until he ran into an intractable XML::LibXML bug :( 09:03
ie. a segfault that moves every time you change any part of the code :( 09:04
masak wayland76: I've been using eXist and Xindice. they're pretty good, both with their strengths and weaknesses.
wayland76 Mine had thins nice overlay thing, where you could overlay one tree on another 09:05
It was great for eg. providing defaults that could be overwritten
s/thins/this/
egypt wayland76: are you a dvorak user? :) 09:06
wayland76 No :)
mberends maybe one day people will stop being entranced by XML and will be more open to alternatives eg YAML. the problem is inertia in the name of interoperability
wayland76 But I have two keyboards, one with a normal layout, and one with 4 different layouts I can switch between :)
One thing I wanted in my tree stuff is to be able to backend onto any tree -- XML, filesystem, LDAP, whatever 09:07
egypt wayland76: ah, being able to change the way you input is quite handy sometimes
wayland76 My plan now is to do it as a Perl6 lib 09:08
Oh, also, I want to invent EXML that is like XML, but can have multiple "perspectives". Tags within a perspective must nest properly, but ags from different perspectives do not have to nest properly
egypt: my plan is to be able to select things like /etc/config/whatever.xml/Document/Section/Tag 09:09
Su-Shee doesn't want to see "/etc/config" and "xml" in one sentence. ;) 09:10
wayland76 Well, you know what I mean. I don't want xml in the /etc directory either 09:11
egypt having had sufficient unix brain massaging I'm inclined to agree. :P
wayland76 but how about /etc/fstab/*[name ="/mnt"] to select an fstab entry?
(kind of like what augeas does) 09:12
mberends wayland76: way to go!
wayland76 Well, all kinds of ideas, but not much code at the moment :)
When -ng lands, though, I'll revisit, and see if they've cleared up some of my pet bugs :) 09:13
Su-Shee egypt: I recently switched from xorg.conf to hal.. from now on, I will call it hell.
wayland76 hal is deprecated. You're supposed to use auto-detect now :) 09:14
Su-Shee starts crying. :)
wayland76 has spent the last year on the xorg list, hoping for multi-monitor functionality to be fixed; I think it has now, but I haven't upgraded :) 09:15
hugme: hug Su-Shee
hugme hugs Su-Shee
09:15 zaslon left
Su-Shee waits for so many things for over a decade now.. :) 09:15
wayland76 Well, at least E17 is here now :)
(FSVO here :) )
Su-Shee installed, clicked, thrown away. 09:16
wayland76 You didn't like E17? 09:17
Su-Shee fancy gimmicks, really bad UI.
wayland76 Ah. Well, it handles multiple monitors in different sizes fairly well
Maybe you needed a different theme :) 09:18
Su-Shee yeah, I was too lazy to build one and it simply doesn't have what I really want so I stick with fvwm.
if there would be a really good xlib/xcb API in something like let's say perl 6 with a really nice book, one could easily code their favorite WM. ;) 09:19
09:19 tann2 left
wayland76 I once tried to convince them to use parrot-based languages as their scripting languages, but it didn't fly :) 09:20
Su-Shee why not? 09:21
mberends groans at the flying pun
Su-Shee instead having no scripting language at all?
wayland76 mberends: Unintentional, but I'll take karma :)
No, instead of (IIRC) lua
mberends wayland76++ 09:22
wayland76 something with a small vm, anyway
Thanks :)
Su-Shee isn't lua just included as a scripting lang to xcb based awsome?
09:24 Baggio_ left
wayland76 Su-Shee: Not sure I understood that, but I had only the vaguest understanding of what they were actually using it for anyway :) 09:24
egypt Su-Shee: weren't you looking into Parrot bindings for some graphics lib a while ago? 09:25
Su-Shee wayland76: the window manager awsome is coding in xcb instead of xlib and uses lua as their built-in scripting language.
egypt: still doing. hence me cursing the tediousness of learning "x"
wayland76 Ah, I'm unfamiliar with the window manager called "awsome"
09:26 ejs joined
Su-Shee wayland76: another tiling one. 09:26
awesome? looks better.
wayland76 "awesome" is the correct spelling; I was assuming that the product name was an acronym or something clever that required that it not have an 'e' 09:27
Su-Shee no, just me failing in english. :) 09:28
egypt Su-Shee: my sympathies (learning x) :)
I think I looked into using the API many years ago and quickly gave up. 09:29
wayland76 Well, your English is a lot better than many I've seen. Don't take #perl6 as being typical; much like others have said of themselves, I feel like the dumbest one present :)
Su-Shee is confided to have the appropriate knowledge around 2019.
(x-wise ;) 09:30
wayland76 is waiting for perl6-gtk-3 so that he can write his own office suite
egypt Su-Shee: :P
Su-Shee wayland76: it's usally depending on how tired I feel or what language I used the hours before.
wayland76: perl 6 will be sooner then gtk 3 afaik. 09:31
wayland76 Possibly. But GTK3 will be more incremental
09:31 gfx left
Su-Shee if there isn't something nicer and more modern based on clutter. 09:31
wayland76 If I understand correctly, GTK3 will have "read my lips, /no new features/" 09:32
Su-Shee I think so too besides minor things like getting support for a canvas for example.
I think, it's the wrong decision anyway, gtk already looks very outdated compared to qt4.
wayland76 Oh, yes, forgot that. And moving to a scene-graph thing underneath. And moving to a better ABI 09:33
Su-Shee isn't clutter doing this scene graph thing?
wayland76 Maybe. I'm no expert. I just read up enough on them to get a vague feel for their plans 09:34
Su-Shee ah well, if they're contiuing being that slow, chrome os like concepts will have taken over the desktop anyway. ;) 09:35
egypt Su-Shee: as long as a) Perl 6 has good bindings for everything and b) Google don't become evil, that's fine by me ;) 09:38
wayland76 Not after I write my office suite :)
Su-Shee wayland76: I haven't used an office suite since 1996 anymore.
wayland76 I use OpenOffice pretty much daily 09:39
Su-Shee egypt: me as well, I realized 2 years ago that I actually need so few things in desktop terms - but those could really interact much better then they're doing today.
wayland76: really? for what?
wayland76 I also have every file I've ever made, just about
Well, for a start, for the book(s) I'm writing :) 09:40
Su-Shee I write everything in plain text.
articles, books, notes, letters..
converting only if necessary.
wayland76 I like to have WYSIWYG when I do tables, especially 09:41
Su-Shee the only real apps I still have and use are browser, gimp, inkscape, editor.
chat client. mail client. (both extremely easily transferred to web) 09:42
jnthn Morning, #perl6
wayland76 Su-Shee: I use those, + office + rosegarden (sheet music editor); probably not much else, most of the time, but it's nice to have eg. a sound editor sometimes 09:43
wayland76 waves to jnthn
egypt <=o (drinks to jnthn's arrival)
mberends jnthn: morning 09:44
jnthn Talking of drinks...I need coffee.
mberends hmm, a cuppa tea would not go amiss 09:45
09:49 tann1 joined
Su-Shee ui, web sockets. 09:51
(alternative to xmlhttprequest)
wayland76 wishes for XForms support in browsers 09:52
moritz_ jnthn: you're up before 10am in your time zone, are you ill? :-) 09:53
jnthn moritz_: One of my clients had scheduled a phone meeting for 10am. 09:55
mathw wayland76: Might as well wish for HTML to be sane while you're ad it
jnthn moritz_: However, after I dragged myself out of bed at this odd hour...they decided they didn't want one after all. :-/
moritz_ jnthn: so clients are a disease? :-)
jnthn moritz_: ....not quite the angle I was going for. ;-) 09:56
wayland76 mathw: Ha, you think that's insane? Try HTML-with-ferrets! Try HTML-with-pitbulls! Try HTML-with-POLAR-BEARS!!! :)
hugme: hug jnthn 09:57
hugme hugs jnthn
egypt <html><furryhead><sleekbody><icanhazpara>... :| 09:58
masak lolitsjnthn! 10:01
egypt hands jnthn a cup of really. strong. coffee. "think you have healthy adrenals? not after this." 10:03
jnthn masak! \o/
egypt: mmmm....strong...gooood
jnthn slowly starts to feel awake
jnthn glances over the ng changes list 10:04
wayland76 If strong is *that* good, I'll have to take up weightlifting again
oh, wait, not /that/ kind of strong.
wayland76 tries to stop disturbing jnthn's thought processes :)
jnthn colomon++ # epic patching win 10:05
moritz_ indeed 10:06
10:07 tann1 left 10:15 agentzh left
masak I'm getting a segfault running t/spec/S32-str/flip.rakudo in the ng branch. 10:16
right after test 6.
moritz_ that happens
10:16 krunen joined
moritz_ :( 10:16
masak yes, but here it happens consistently.
10:17 envi^office left
masak I'll try and isolate it. 10:17
jnthn Runs all 13 here. :-/
mberends does that mean Window is better than OS X? 10:19
jnthn ng: my %h; %h<a> = 42; say %h<a>
p6eval ng 920640: Cannot assign to readonly value␤current instr.: '&infix:<=>' pc 13684 (src/builtins/Junction.pir:124)␤
mberends *Windows
jnthn mberends: Of course! ;-)
moritz_ still suspects a relation to icu
jnthn mberends: OSX is too shiny, so the tests slip over all the time. 10:20
Hmm...is ng actually still totally lacking hashes? 10:21
moritz_ ng: my %h; %h<a> = 'b'; say %h.keys 10:22
p6eval ng 920640: Cannot assign to readonly value␤current instr.: '&infix:<=>' pc 13684 (src/builtins/Junction.pir:124)␤
jnthn And how do we end up in Junction?! 10:23
moritz_ imagines ng has still a long path to walk 10:25
sjohnson y0
egypt y0 sjohnson, welcome :) 10:26
10:26 Baggio_ joined
moritz_ ok, I recompiled with --optimize and without ICU, that doesn't affect the errors in flip.t and comb.t 10:26
10:26 Baggio_ left
moritz_ www.twitalyzer.com/twitalyzer/profi...rl&p=7 10:28
ng: say (+'24').WHAT 10:32
p6eval ng 920640: Num()␤
moritz_ hugme: tweet rakudoperl Perl 6 Advent Calendar Day 9: beautiful arguments perl6advent.wordpress.com/2009/12/0...arameters/ 10:34
hugme moritz_: Sorry, too long (142 chars, 140 allowed)
moritz_ hugme: tweet rakudoperl Perl 6 Advent Calendar Day 9: Arguments perl6advent.wordpress.com/2009/12/0...arameters/
hugme hugs moritz_; tweet delivered
moritz_ hugme: tweet rakudoperl Perl 6 Advent Calendar Day 10: A Regex Story perl6advent.wordpress.com/2009/12/1...gex-story/ 10:35
hugme hugs moritz_; tweet delivered
moritz_ has neglected his duties... can we teach zaslon to tell hugme to twitter? :-)
egypt yayletthebotsdoeverything :P 10:36
jnthn Don't bots talking to each other cause the appocalypse?
10:37 SmokeMachine left
moritz_ hey, they should cause the synopsis instead :-) 10:38
egypt i think we'd still need human exegete. :) 10:39
*a human exegete
moritz_ egypt++ 10:40
10:41 JimmyZ left
Juerd_ perl6advent.wordpress.com/2009/12/0...arameters/ 10:46
Can you use whitespace around .=?
std: $foo.=bar()
p6eval std 29302: Potential difficulties:␤ Variable $foo is not predeclared at /tmp/br5bZIORAE line 1:␤------> $foo⏏.=bar()␤ok 00:01 107m␤
mathw needs to write the day 12 advent post tonight
Juerd_ std: $foo .= bar()
p6eval std 29302: Potential difficulties:␤ Variable $foo is not predeclared at /tmp/x0uVdZKCkN line 1:␤------> $foo⏏ .= bar()␤ Unsupported use of .= as append operator; in Perl 6 please use ~= at /tmp/x0uVdZKCkN line 1:␤------> $foo .=⏏ bar()␤ok 00:01 106m␤
Juerd_ Adventbug. Where to report?
mathw any one of us who have edit permissions 10:47
Juerd_ Do you?
mathw I did two days ago :)
Juerd_ Do you still have them? :) 10:48
mathw I think so
Juerd_ In day 9 there's $middle .= substr(0, 1);
Should probably be $middle.=substr(0, 1);
10:49 Alias joined
jnthn Juerd_: I call STD bug there. 10:50
std: my Int $foo .= new; 10:51
p6eval std 29302: ok 00:01 108m␤
jnthn std: my Int $foo .= new();
p6eval std 29302: ok 00:01 106m␤
jnthn std: my Int $foo; $foo .= new();
p6eval std 29302: ok 00:01 106m␤
jnthn huh...
jnthn wonders what heuristic it's going on.
Anyway, the answer is "you can use whitespace around it, but it's parsed a different way" 10:52
moritz_ aye, it should work
rakudo: my $x = 'foobar'; $x .= substr(0, 1); say $x 10:53
p6eval rakudo 7ef386: f␤
moritz_ and it does work :-)
Juerd_ Oh
moritz_ calls Juerd_bug :-) 10:54
Juerd_ :)
Does this mean whitespace around . is somehow possible too now, or is that still prohibited?
moritz_ Juerd_: it's special-cased
10:54 pmurias joined
moritz_ for example you can call methods as $foo.+bar, but $foo .+ bar is not allowed 10:54
and for whitespaces around . you need unspace 10:55
std: 'a'\. bar
p6eval std 29302: ===SORRY!===␤Confused at /tmp/3ZE4rcVjR4 line 1:␤------> 'a'\.⏏ bar␤ expecting postfix_prefix_meta_operator␤FAILED 00:01 104m␤
moritz_ std: 'a'.\ bar
p6eval std 29302: ok 00:01 104m␤
Juerd_ Why is .= special cased?
moritz_ std: 'a'\ .\ bar
p6eval std 29302: ok 00:01 104m␤
moritz_ Juerd_: might be related to my Type $x .= new being very common 10:56
mberends frowns at future newbie confusion about whitespace special cases
wayland76 experienced ranting on another channel today on that very topic 10:57
pmurias the p6 design minutes mention that Damian and TimToady gear up for a book, when is "Programming Perl 6" expected?
mberends after Christmas ;) 10:58
moritz_ hopes it's way after April, otherwise our combined book effort is likely to pale very quickly :-)
otoh I hope it's rather soon, so that I can finally read something that makes me understand Perl 6 :-)
Juerd_ Is there anything specific that you'd like to understand? 11:00
mberends moritz_: as long as the spec remains in whirlpool mode, the official book cannot be frozen either. 11:01
moritz_ Juerd_: there's a long mental list of topics I haven't grokked 11:02
like how slices and lazyness interact
or how the AST generation in macros work 11:03
11:03 PZt left
Juerd_ After the advent calendar it might be a nice project to collect vague and general questions like that, to find out what the community wants to know. 11:03
moritz_ and then there's a (varying) list of detail questions that aren't mentioned in the spec at all 11:04
pmurias moritz_: AST generation is a bit implementation specific, as you can use quasi quotes but for more details you need to assume a particular representation
moritz_ for example: which methods on the Whatever star are executed, and which generate a WhateverCode?
what about the corresponding functions? 11:05
is defined(*) the same as *.defined?
pmurias: but that still leaves question open... for example if I have an 'is parsed' macro, and match <EXPR> there, how do I get that AST from the parse tree? 11:07
how can I execute that statement immediately?
maybe I should write these questions down, as Juerd_++ suggested 11:09
11:10 Juerd_ is now known as Juerd
moritz_ or: how do I introspect attributes of foreign objects? 11:11
how should .perl serialize closures?
Juerd The questions quickly became very specific :) 11:12
But writing them down is probably still a good idea :)
11:15 lestrrat is now known as lest_away, cotto_w0rk left
moritz_ actually two weeks ago I had some less specific questions 11:16
but TimToady++ cleared some things up recently
11:18 PZt joined
jnthn If he clears these ones up, you'll only be back with more. ;-) 11:18
moritz_ sure 11:19
Juerd jnthn: That's okay because Perl 6 can handle infinity :) 11:20
Su-Shee moritz_: everybody will need both books. 11:23
11:26 alexn_org joined 11:33 wayland76 left 11:41 jferrero joined 11:42 flip214 left
jnthn bbs - dog walk... 11:43
Just about got has $.x = 42; style stuff in place again in ng.
mathw \o/ 11:48
12:00 Baggio_ joined, payload joined
jnthn back 12:01
12:03 envi^home left, Baggio_ left 12:04 SmokeMachine joined 12:06 envi^home joined 12:07 envi_home2 joined, envi_home2 left
masak Juerd: I like your idea about the vaguelist. 12:08
12:10 frettled sets mode: +o masak
frettled You'd lost your kanelbulle again. 12:10
masak op bit by liking stuff. 12:11
frettled: and I'm just leaving, so about to lose it again, I'm afraid.
but thanks. :)
12:11 masak left, envi_home joined
frettled I'll take care of it until next time. ;) 12:13
12:14 meppl joined 12:15 lest_away is now known as lestrrat
pugs_svn r29303 | mberends++ | [src/perl6/Makefile] added help and a few comments 12:17
12:19 Astoria` joined 12:20 Baggio_ joined
frettled nice! 12:23
12:24 envi_home2 joined, envi^home left 12:25 mikehh joined 12:37 egypt left 12:42 ejs1 joined 12:45 envi_home left 12:46 Astoria` left 12:48 envi_home2 left 12:50 hicx174 left 12:51 envi^home joined 12:52 ejs left 12:56 pmurias left
colomon Good morning! 13:06
13:09 quantumEd joined 13:12 SmokeMachine left 13:13 hicx174 joined 13:14 romanhunt left
moritz_ \o/ colomon 13:17
13:17 moritz_ sets mode: +o colomon
colomon Probably a waste of time promoting me to op the way my connection to the channel has been unstable for the last week, but thank you. :) 13:18
moritz_ <aragorn>There is always hope!</aragorn> 13:20
13:21 takadonet joined
takadonet morning all 13:21
colomon I figure its some sort of law of nature that there must always be at least one annoying issue with your computers.
takadonet: o/
takadonet colomon: how are you ? 13:22
colomon Just had my best night's sleep in over a year, I think.
:)
13:23 mikehh left
takadonet good to hear 13:23
colomon Now I just need to rearrange the ground level of our house, which is completely taken apart to let carpet cleaners get to it, and get a bunch of $work done today. 13:26
13:34 payload left 13:43 JimmyZ joined 13:45 JimmyZ left 13:59 jferrero left, beggars left
dalek kudo/ng: ecd068a | jnthn++ | src/metamodel/ClassHOW.pir:
Fixes to ClassHOW.attributes (it gets shorter...yay.)
14:26
kudo/ng: 3b958a6 | jnthn++ | src/Perl6/ (3 files):
Handle RHS of assignment to an attribute declaration being passed along as the build closure, including creating that closure and passing it when setting up the attribute. Needs updates to CREATE and BUILD before it'll all work though.
14:29 SmokeMachine joined
colomon \o/ patches! 14:29
14:30 iblechbot joined
jnthn Yeah. Wish I'd more, but this is a little...tricky. 14:31
moritz_ ng: say 1 ~~ Positional 14:33
p6eval ng 920640: 0␤
moritz_ ng: say Array ~~ Positional
p6eval ng 920640: Null PMC access in get_string()␤current instr.: 'perl6;Perl6Role;Str' pc -1 ((unknown file):-1)␤ 14:34
moritz_ the former died in ng before jnthn's patch
colomon so, progress! 14:35
errr.... that ng isn't using those patches, is it?
moritz_ it is 14:36
I just pulled and make'd on the server
which doesn't update the revision file
so, my fault
colomon ah.
colomon is easily mislead by lying computers.
s/mislead/misled/
14:37 ejs2 joined
moritz_ sometimes we miss lead, too :-) 14:38
jnthn Huh...I didn't know I'd fixed either of those. :-) 14:40
Hmm...half of S14-role/attributes.t passes now. 14:41
14:47 ejs1 left
colomon Based on what I was seeing yesterday, there are a number of test files which will (or easily could) half-pass. Things like pop where the method version works and the sub version doesn't... 14:47
14:57 quantumEd left, takadonet left
jnthn yay FINALLY 14:58
> class Foo { has $.x = 42; }; say Foo.new.x
42
lambdabot <no location info>: parse error on input `class'
15:00 gbacon left 15:01 moritz_ sets mode: +b *!*=lambdabo@*.members.linode.com, lambdabot was kicked by moritz_ (moritz_))
jnthn \o/ 15:01
...but...but...karma!
moritz_ sacrifizes karma logging for sanity
jnthn :-)
wfm.
TimToady: In S14 I find this:
Two C<has> attributes of the same
name, whether public or private, are simply merged into one slot,
provided the types are the same; otherwise, the composition fails.
Please can we kill this "types are the same" exception? 15:02
mathw agrees
jnthn I've never liked it, a Moose guy has said it's "just wrong".
And since has $.a; and has $.a; have the same type... 15:03
...well, it relies on people writing type annotations to get compositional safety. Which feels wrong.
mathw yes 15:04
and also it means that some collisions are going to silently resolve, where others don't, and that's a bit too weird 15:05
because you're probably still going to end up with lots of Wrong
15:05 lisppaste3 left
jnthn Yeha. 15:05
Feels dangerous.
15:08 lisppaste3 joined 15:09 takadonet joined
moritz_ wonders if in Perl 6 it's possible to have two types A and B with A !=== B but A ~~ B and B ~~ A 15:10
15:11 KyleHa joined
jnthn ooh...I've caught that pesky segv in flip.t under the debugger. 15:13
dalek kudo/ng: 8c95c34 | jnthn++ | src/metamodel/ClassHOW.pir:
Need to make .attributes and .parents not use e.g. Array so we can actually use these to more cleanly do BUILD and CREATE.
kudo/ng: aaf1b8d | jnthn++ | build/Makefile.in:
Need Parcel earlier on in the bootstrap.
kudo/ng: 949d32a | jnthn++ | src/metamodel/ClassHOW.pir:
Override P6metaclass's new_class helper method so we can get attribute handling correct (e.g. actually call add_attribute, not just hack it into the Parrot table and ignore the attribute protocol).
pmichaud good morning, #perl6
moritz_: one could override .ACCEPTS for A or B 15:14
(to accept the other)
jnthn pmichaud: morning.
moritz_ pmichaud: I've thought of that too, but it's not what I meant
pmichaud: good morning :-)
pmichaud: have you made a decision wrt release and ng?
pmichaud I've decided to postpone the decision until Sunday morning :-) 15:16
because I'm expecting a fair bit of ng hacking time on my part between now and then :-)
PerlJam: ping 15:17
jnthn Meh. 0xbaadf00d is a crappy pointer.
moritz_ pmichaud: sounds like a good plan
colomon woo-hoo, jnthn and pmichaud back to hacking on ng more actively! 15:18
dalek kudo/ng: 92cd743 | jnthn++ | src/builtins/Mu.pir:
Get BUILD working a bit more again; now it uses the .build closure, and actually deals with attributes through the protocol more (we still end up with one use of te underlying Parrot Class, but that's only for the benefit of getattribute).
kudo/ng: c959619 | jnthn++ | src/Perl6/Compiler/Role.pm:
Fix to role attribute's build closures. Gets us another test in S14-role/attributes.t.
frettled deadbeefcafef00dbabe 15:20
jnthn oh my. 15:21
I dunno how this happens, but Parort's internal state is REALLY f**ked when we segfault.
mathw :(
jnthn The current context is full of junk data.
15:25 alexn_org left
jnthn Trouble is, it's sufficiently messed up, I can't even work out what sub we're in. 15:33
Because the context and thus call chain is corrupt.
colomon :(
mathw ouch 15:34
colomon jnthn: this is on windows? 15:35
jnthn yup 15:36
worse
it goes away under -G
Which makes it look horribly like we're ending up with contexts, of all things, getting prematurely GC'd.
colomon I may be seeing similar sorts of things here... 15:37
I had a crash yesterday in unpolar.t every time I ran it.
jnthn colomon: If you've got set_returns in your bt, most likely.
colomon: It matchs at least one of the stacktraces you have sent me.
colomon Today after merging your changes it looks like it's switched to exp.t
jnthn Yeah
Seems it's a memory corruption bug, so they tend to move. 15:38
colomon Including moving when you switch debugging settings. :(
moritz_ my spectest run just was all PASS 15:39
jnthn Possible, hasn't done that to me.
moritz_: yay :-)
moritz_ on c959619e7451b3d82e218d58dd60cfd0f0ce8903 that is
colomon moritz_: that's where I am too.
jnthn moritz_: dunno if "has $.x = 42" style things working will let us claim back any more.
moritz_ runs tools/update_passing_test_data.pl 15:40
speaking of which... any objections to rename that beast?
tools/comb-spectests.pl?
jnthn tools/brush-spectests.pl? 15:41
tools/wash-and-blow-dry-spectests.pl
15:41 nihiliad joined
colomon This looks for spectests that aren't run but could work? 15:41
jnthn colomon: yeah 15:42
colomon Or does it look for unneeded fudges in the currently run tests?
jnthn I think both?
moritz_ no
jnthn colomon: oh noes. --trace=4, which mighta told me where we were when we crashed, also makes it go away.
moritz_ that's what tool/autounfudge.pl is for
15:43 Baggio_ left
jnthn Goes away with --gc-debug too... *sigh* 15:43
colomon jnthn: these sorts of bugs suck, no doubt.
moritz_ t/spec/S29-conversions/ord_and_chr.t passes all of 408 tests, and then aborts
don't know if it's a LHF
jnthn colomon: Yes. I feared from the stack trace it may be illusive 15:44
colomon moritz_: odds are its the bug we're looking at...
jnthn And digging in a bit further, it doesn't get any more obvious what could be wrong.
15:44 Psyche^ joined
jnthn Other than somehow we managed to lose a context. 15:45
colomon moritz_: yesterday unpolar.t would die in the middle of a loop, after the first N loops went just fine...
15:45 Baggio_ joined
moritz_ actually it dies with Method 'Int' not found for invocant of class 'Range' 15:45
so... probably blocks on pmichaud++
colomon moritz_: or it could be real LHF. :)
15:46 Patterner left, Psyche^ is now known as Patterner
moritz_ you mean s/ '..' /.../? 15:46
colomon Is Int on Range just supposed to be the number of elems if you turn the Range into a list?
moritz_: hold on, let me look at the test
moritz_ ng: say for 1..3
p6eval ng c95961: sh: ./perl6: No such file or directory␤
moritz_ oh
that does the trick 15:47
colomon moritz_: it's the 0..31 that's the problem?
15:47 justatheory joined
moritz_ aye 15:47
pugs_svn r29304 | moritz++ | [t/spec] use series instead of range in ord_and_chr.t
colomon yes, ... with two ints works.
woot, that's a nice big test to have working! 15:48
moritz_ that will crack the 2k limit :-) 15:49
jnthn \o/
15:49 xomas_ left
jnthn Crap! --trace=1 also hides the segfault...by causing a differnet segfault. 15:50
parrot--
ng: my Str $a = 'Hello World !'; say $a .= flip 15:51
p6eval ng c95961: ! dlroW olleH␤
15:52 nihiliad left
colomon The ... in ng is the dumbest one possible, I think, but it gets the job done a lot of the time. 15:52
jnthn trouble is, that on its own (the test where we segv) doesn't...only in the context of the test.
moritz_ which test, btw? 15:53
jnthn flip.t at the moment
But it moves around.
colomon Yeah, flip.t works for me but exp.t fails.
dalek kudo/ng: 695ca5c | moritz++ | t/spectest.data:
re-enable ord/chr tests
jnthn colomon: It's gonna be tricky to get to the bottom of this one, I fear. :-( 15:54
colomon it will drive us insane until we do...
KyleHa I get a segfault in S32-str/words.t
lisppaste3 moritz pasted "valgrind run on flip.t" at paste.lisp.org/display/91879
colomon pasted "valgrind error on exp.t" at paste.lisp.org/display/91880 15:55
colomon apparently moritz_ and I were thinking along the same lines there.
moritz_ :-) 15:56
I just fear it's not conclusive 15:57
if something corrupted the memory first, the calling conventions would be a natural place for it to show/blow up
15:58 nihiliad joined
colomon oh hey, yours is much more interesting than mine. 15:58
jnthn moritz_: Yeah. It doesn't ad a whole lot more info than the backtrace, sadly.
15:58 xomas_ joined
jnthn Yeah. It's gonna be a headache to get to the bottom of this one. :-( 16:00
moritz_ maybe you can motivate some parrot folks to work on it? :-) 16:01
Tene hides.
moritz_ "hey bacek, it segfaults in a function you recently touched, don't you wanna take a look?"
jnthn hehe!
frettled pmichaud: Thanks for the non-recursive version
jnthn It can be hard to re-produce 'cus it moves around. :-/
colomon jnthn: I started to say (and then got sidetracked), maybe you can run all the tests with the --trace=4 (or whatever), and see if it pops up someplace else then?
jnthn colomon: Hmm, could try that, yeah. 16:02
16:02 Baggio_ left
KyleHa My valgrind run on words.t looks like Moritz's run on flip.t (It says "Conditional jump or move depends on uninitialised value(s)"). Is it worth pasting? 16:04
16:05 literal left, literal joined 16:06 perlygatekeeper joined
pmichaud frettled: you're welcome -- thanks for the interesting post! Made me want to refresh my memory of euclid's algorithm a bit more. :-) 16:07
16:08 kcwu joined 16:11 alester joined
colomon KyleHa: where does it say that? That's normal (ugh!) for the garbage collector... 16:12
KyleHa I'll paste.
frettled :) 16:13
pmichaud: I'll keep this in mind; always blog while feverish. ;)
pmichaud (feverish blogging)++ 16:14
Tene pmichaud: is the O() stuff documented anywhere other than cheats/hll-grammar.pir? 16:19
pmichaud Tene: at present, no.
Tene Okay.
pmichaud I'd welcome some documentation, though :-). 16:20
the best place for now would be nqpbook
16:21 masak joined
Tene there's an nqp book? 16:21
jnthn mORNINGasak!
masak jnthn: you wish :)
pmichaud there's an empty shell for writing one :-)
moritz_ hugme: show nqpbook
hugme moritz_: the following people have power over 'nqpbook': PerlJam, TimToady, [particle], jnthn, masak, moritz_, pmichaud. URL: github.com/perl6/nqpbook/
jnthn oh wow, I had an unknown power 16:22
pmichaud my goal is to write a book about compiler writing in nqp
masak jnthn: I'm back in CEST now.
moritz_ hugme: add tene to nqpbook
hugme hugs tene. Welcome to nqpbook!
pugs_svn r29305 | pmichaud++ | [pm.txt]: Another question for TimToady++ . 16:23
r29305 |
r29305 | Pm-15: S11:300 gives the following as an example of importing
r29305 | a tagset into package scope:
r29305 |
r29305 | require Sense :OUR<ALL> # but this works
r29305 |
r29305 | Should this be :OUR(:ALL) instead? It seems to me that
r29305 | :OUR<ALL> would attempt to import a &ALL symbol (since
frettled whoa
pugs_svn r29305 | :MY<common> imports the &common symbol).
masak jnthn: I agree that we should kill off the 'provided the type names are the same' exception. 16:25
jnthn masak: Ooh, all the consensus is almost giving me a feeling of forgiveness over permission!
masak jnthn: I was just going to follow up with that. :)
pmichaud +1 from me
Tene jnthn: any chance you'll look into the vtable issue soon?
masak jnthn: if nothing else, we'll probably be able to pull off innocent looks when we reach the 'forgiveness' stage. 16:26
moritz_ +0.5 # I didn't think enough about it to give it a full +1 :-)
masak jnthn: with all the agreement flying around, I mean.
frettled masak: Are you hungry for a kanelbulle tonight? ;)
masak frettled: I seldom use it, but I think it suits me. :)
frettled I'm with moritz_ here :d
pmichaud I didn't think about it a lot either, but having attributes auto-merge sets off alarm bells in my head
16:26 frettled sets mode: +o masak
masak admires his kanelbulle in the mirror 16:26
jnthn OK I KILLZ IT 16:27
frettled masak: I apparently mostly use it to clone kanelbuller for you
pmichaud and anytime masak++ and jnthn++ agree on something, that's worth an extra +0.5 :)
frettled good point
jnthn what on earth is a kanelbulle?
masak I agree with jnthn that Indian food tastes yummy.
jnthn +0.5!
:-)
masak jnthn: it's a Swedish word. :)
frettled jnthn: commons.wikimedia.org/wiki/File:Kanelbulle.jpg
Su-Shee "really?" ;) 16:28
jnthn An animal that swims in canals and looks like a cow?
frettled the white stuff doesn't have to be there
masak jnthn: it means 'cinnamon bun', but here it's a description of the op @.
colomon what is the white stuff?
jnthn Meh, I wish my op tasted so good.
frettled colomon: sugar
jnthn colomon: Chunks of health sugar, no? :-)
masak colomon: melted sugar, I think.
Tene Looks like Su-Shee is the only person without a Kanelbulle chatting right now. 16:29
colomon drooooooollllll
16:29 jnthn sets mode: +o Su-Shee, jnthn sets mode: +s , ChanServ sets mode: -s
jnthn Kanelbulles all around! 16:29
Su-Shee great, now I'm hungry. ;) 16:30
jnthn masak: You know, I'm tempted to make bless handle the "rebless into a subclass" thingy.
masak: If only 'cus it lets me get rid of some magic in a place I don't want it... :-) 16:31
masak gently shoves jnthn towards the temptation
jnthn: I want to rebless something into a subclass. \o/
frettled blessed be the subclasses, for they shall inherit the ... 16:32
16:32 envi^home left
jnthn ...superclass. 16:32
16:33 thowe left, REPLeffect_ joined, KyleHa1 joined
jnthn ng: my @a; say @a eq [] 16:33
p6eval ng 695ca5: 1␤
jnthn phew
jnthn noticed that we have no hash support in ng yet either. :- 16:34
|
ETOOMUCHTODO
frettled #brownies
16:34 SmokeMachine left
frettled But I seem to have run out. 16:34
16:35 KyleHa left
frettled The fact that I never had any may be a good explanation for that. 16:35
jnthn: don't worry about today what you can worry about tomorrow :D
jnthn ng: role A { has $.x; }; role B { has $.x; }; class C does A does B { } # plz die kplzthnx 16:36
p6eval ng 695ca5: Attribute '$!x' conflicts in role composition␤current instr.: 'perl6;Perl6;Metamodel;RoleToRoleApplier;_block203' pc 6919 (src/gen/RoleToRoleApplier.pir:606)␤
jnthn whee
16:38 slavik left, supernovus joined, slavik joined
jnthn ng: role A { has $.x; }; class C does A { has $.x } # plz die kplzthnx 16:38
p6eval ng 695ca5: Attribute '$!x' already exists in the class, but a role also wishes to compose it␤current instr.: 'perl6;Perl6;Metamodel;RoleToClassApplier;_block179' pc 8328 (src/gen/RoleToClassApplier.pir:342)␤
jnthn hmmm...so why eval_dies_ok has a sad... :-/ 16:39
frettled I think those error messages are pretty awesome, they help me see the problem.
(if I hadn't already known that you were creating a problem, that is)
jnthn ng: use Test; role A { has $.x; }; eval_dies_ok 'class C does A { has $.x }'; 16:40
p6eval ng 695ca5: not ok 1 - ␤
jnthn wtf
ng: use Test; eval_dies_ok 'die "omg"'
p6eval ng 695ca5: ok 1 - ␤
jnthn :-/
masak jnthn: re 'attribute $!x already exists in the class, but a role also wishes to compose it'... what would it take to say *which* class and *which* role? 16:41
jnthn masak: Not too much. :-)
masak \o/
frettled ooh, that would be even grander!
jnthn masak: I didn't make .name on ClassHOW and RoleHOW work yet.
masak oh, ok.
in due time. 16:42
jnthn masak: oh btw, the composition algorithm and the thingy that gives that error is implemented in NQP. ;-)
That means you can hack on it too. ;-)
masak ORLY?
jnthn YA RLY
masak wai~!
jnthn OK, why does my eval_dies_ok not die... :-|
well, not recognized the death. 16:43
ng: eval 'our sub foo(Int $x) { say $x }'; foo("lol")
p6eval ng 695ca5: Could not find non-existent sub &foo␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
jnthn um.
pmichaud: I fear eval may not end up running the loadinits... :-/ 16:44
.oO( it's broke, innit? )
hmm...but why wouldn't it... :-S 16:46
Tene jnthn: stuff in eval runs inside a lexical scope.
although, it's our..., so nm
masak this looks interesting for metaheads like jnthn: www.shadowcat.co.uk/blog/matt-s-tro...g-a-moose/ 16:47
Tene ng: eval 'our sub foo { say "lol" }; foo()'; say 'h'i; foo();
p6eval ng 695ca5: sh: ./perl6: No such file or directory␤
jnthn masak: looks interesting. 16:49
ng: use Test; role A { has $.x; }; say eval 'class C does A { has $.x }'; say $!; 16:50
p6eval ng 695ca5: !class_init_21␤␤
16:50 astrojp joined
jnthn um 16:50
...so it's returning a reference to the block that does the class init rather than running it. That'd be a problem... 16:51
oh. putting those two on consecutive lins in the repl is fail too. 16:52
jnthn is has a confused
16:56 Astoria` joined 16:59 cornelius left
masak smiles at Sean Hunt's email to p6l 17:01
I bet that's another advent newbie. hope someone replies to him.
pmichaud jnthn: I'm pretty sure that eval runs the loadinits... I mean, it pretty much has to do so. 17:02
it's possible that it's not firing the phasers, though.
17:02 SmokeMachine joined
pugs_svn r29306 | jnthn++ | [t/spec] Get rid of same type = composition OK test. 17:02
jnthn pmichaud: It's Ok, I found it.
pmichaud: reentrancy bug. 17:03
S14-roles/attributes.t now passes in ng. 17:04
moritz_ ship it! 17:05
jnthn It's only 6 more tests, sadly. 17:06
17:06 SHTOPOR joined
colomon \o/ 17:06
jnthn Though a six that tell us quite a few things work.
17:06 SHTOPOR left
pugs_svn r29307 | jnthn++ | [spec] Kill the same type = attribute composition OK rule; now it's just always a conflict. 17:10
17:10 payload joined 17:11 cdarroch joined
masak jnthn: hehe, you edited the spec so as to contain the slightly slangy 'fail'-as-a-noun. :) 17:12
not that I mind. just amused. 17:13
17:14 dreadpiratepeter joined
jnthn masak: ;-) 17:15
17:19 cotto joined
dalek kudo/ng: b95e792 | jnthn++ | src/metamodel/RoleToInstanceApplier.nqp:
Fix one of the issues with attribute mix-ins; gets back another test.
17:20
kudo/ng: fd4738d | jnthn++ | src/Perl6/Actions.pm:
Fix a reentrancy issue.
kudo/ng: 71d5281 | jnthn++ | src/ (2 files):
s/Perl6Array/Array/
kudo/ng: 4a98e29 | jnthn++ | t/spectest.data:
S14-roles/attributes.t now passes.
17:23 Alias_ joined, Alias left 17:33 SHTOPOR joined 17:34 SHTOPOR left 17:35 SHTOPOR joined, SHTOPOR left, dreadpiratepeter left, SmokeMachine left, dreadpir` joined 17:36 SmokeMachine joined
masak by TimToady, 'a method declaration should fail outside of a class regardless of any qualifications to its invocant'. what about the converse? are any sort of qualifications to the invocant allowed in a method declaration inside a class? 17:41
diakopter std: submethod foo() { }; 17:43
p6eval std : ok 00:01 105m␤
diakopter std: method foo() { }; 17:44
p6eval std : ok 00:01 105m␤
diakopter NYEnforced
masak in other words, can I do something like this? class A; has $.robot-arm; multi method foo(A $me where { $.robot-arm eq 'spooky and intimidating' }, $a, $b, $c) { ... } 17:47
I suppose that's no problem. the invocant plays according to the ordinary rules of MMD. 17:48
jnthn ng: say Block
p6eval ng 4a98e2: Block()␤
masak I'm thinking whether there could be funny effects between invocant MMD and inheritance. 17:49
jnthn masak: I don't see why that wouldn't work.
p6eval?
masak needs to write a cranky editorial about how p6eval has 'missed the boat' 17:50
17:50 IllvilJa left
TimToady which boat were we aiming at? :P 17:50
colomon Love Boat. 17:51
17:51 Guest69693 joined
TimToady maybe it was just a shot across the bow 17:51
Guest69693 so perl6 has a formal definition ?
masak Guest69693: fsvo formal, yes.
TimToady more like semiformal, where the girls get to dress up, and the guys don't have to 17:52
masak we like it if it wears a tie, but it's not a must.
jnthn Guest69693: It has a formal grammar, a written spec and a test suite that forms a kind of "executable spec"
masak fsvo executable. :)
17:52 ejs2 left
jnthn :-P 17:52
TimToady Guest69693: what is your definition of "formal"? 17:54
Guest69693 like any other language, unlike perl5
TimToady that's a pretty informal definition of "formal" :) 17:55
Guest69693 you can't define formal formally
TimToady especially since there are other languages that are as informally defined as perl5, but I take your point 17:56
Guest69693 TimToady, like ?
well, none popular
TimToady but yes, p6 is certainly more formally defined than p5 17:57
Guest69693 haha
TimToady otoh, Perl 5 was one of the first scripting languages to actually come with a test suite, which says something 17:58
supernovus Ruby and Python have no "formal" specifications either, and I'd say they are popular. 18:01
18:01 payload left 18:02 stephenlb joined
TimToady I suppose one might say that French is more formally specified than English... 18:02
arnsholt TimToady: I blame the Academie Française for that 18:03
Prescriptivists (perhaps even proscriptivists) the lot of 'em
TimToady well, we've got plenty of those English too 18:04
which is why I try to bend English into a linguistic pretzel whenever possible 18:05
I think human languages should be first of all extensible :)
arnsholt Indeed. Mutable and extensible. Part of what makes them so interesting
supernovus Mutable and extensible, like Perl 6 itself. Any programming language that has "phaser blasts" in its official specification gets my seal of approval ;-) 18:07
jnthn ng: sub foo($x) { say "invoked"; True }; 1 ~~ &foo
p6eval ng 4a98e2: Method 'ACCEPTS' not found for invocant of class 'Perl6Sub'␤current instr.: '&infix:<~~>' pc 177563 (src/gen/perl6-actions.pir:12105)␤
18:07 thowe joined
thowe hi folks 18:08
colomon thowe: hello
TimToady howdy, just in time for me to leave for shirk^Wwork
commutating & 18:09
PerlJam pmichaud: pong 18:11
colomon ng: say Array ~~ Positional
p6eval ng 4a98e2: Null PMC access in get_string()␤current instr.: 'perl6;Perl6Role;Str' pc -1 ((unknown file):-1)␤
jnthn Heh. I really should try and fix that one... 18:12
colomon jnthn: Would be handy... :)
jnthn colomon: Still need to sort out how ng does does. 18:13
18:14 payload joined
colomon jnthn: I keep on hoping one of your changes will accidentally fix it. 18:14
jnthn colomon: Is a change where I deliberatel fix it OK too? ;-) 18:15
colomon jnthn: any fix is a good fix. 18:16
jnthn colomon: I'm sure I could think of a bad way to fix it too..
colomon Well, I suppose if you maybe anything ~~ Positional be true, that would be bad... 18:17
18:18 ShaneC joined 18:19 cotto left
jnthn hmm...S06-signature/introspection.t is massive fail (I think listy issues), but at least we can parse it now. :-) 18:20
18:21 ejs joined
colomon t/spec/S06-signature/introspection.... 18:21
Non-block anonymous sub-types su todo at line 72, near ") { };\n "
That's the massive fail you get?
jnthn colomon: That's the parse/compile issue I just fixed. 18:22
(not pusehd yet, verifying I didn't break any spectests)
colomon ah, okay.
jnthn I just put anonymous where blocks back in.
pmichaud PerlJam: In the p6advent post, I was curious if your use of '|' versus '||' is intentional. 18:23
PerlJam mostly :)
why? 18:24
dalek kudo/ng: 608e0f1 | jnthn++ | src/core/Parameter.pm:
Add missing attribute decl in Parameter.
kudo/ng: 2c77505 | jnthn++ | src/ (2 files):
Fix where blocks up a bit (includes adding ACCEPTS for code).
PerlJam Are you thinking I missed a good opportunity to introduce || ?
pmichaud no, I'm wondering if it actually will work with '|' 18:25
18:25 justatheory left, masak left
pmichaud i.e., how do we know that the first alternation will match if there's a color in parens at the end? 18:25
since the second one could match also
18:26 abra joined
PerlJam oh. I guess I was thinking || semantics when I wrote that then 18:26
18:26 abra left
pmichaud right :-) 18:26
thus my question. :-) 18:27
18:27 abra joined, justatheory joined
pmichaud I _think_ it might turn out alright in the end because the '(' literal ought to prioritize the ltm to the first alternative..... but I'm not entirely sure that's the case. 18:27
18:28 ejs left
pmichaud I'm not sure it's worth the difficulty of modifying the article at this point -- was just curious about it. 18:28
18:29 cotto_work joined
colomon jnthn: oh geez, we won't be passing that test for a long time... needs junctions, hyperoperators, etc. 18:29
jnthn colomon: Well, parallel dispatch wroks, I think...but yes. 18:31
18:31 Lorn left
jnthn colomon: I'll try and get .does stuff fixed up later on today. 18:35
pugs_svn r29308 | pmichaud++ | [S11]: 'import' is syntactic sugar for .EXPORTALL, not .import_alias . 18:36
pmichaud shoots directly for forgiveness > permission in S11. :-) 18:37
18:37 payload1 joined
pmichaud although perhaps the .WHO in that patch should be omitted. 18:39
18:42 ejs joined
jnthn takes a break for a nom 18:43
18:46 ejs left 18:47 payload left
TimToady PerlJam, pmichaud: the grammar does in fact work okay; since both tokens are the same length, it will pick the '('...')' one if it can, and fail over to the other 18:47
18:49 snearch joined 18:53 ejs joined 18:57 payload1 left
pmichaud TimToady++ 18:59
18:59 quantumEd joined
pmichaud TimToady: as you've probably guessed, I'm mucking about with S11 today -- feel free to update/revert anything I do that isn't correct :) 19:00
19:02 mariano__ joined
TimToady well, it's ruoso that's more likely to quibble, since that was his code :) 19:04
pmichaud ah. 19:05
he can feel free to update/revert things then as well :) 19:06
(actually, anyone can, of course)
19:07 hercynium left
pmichaud ugh, most of the import_alias and import_realias calls in S11 seem to have different interfaces 19:10
moritz_ feel free to unify :-)
pmichaud I think I shall. 19:11
oh, wait
we have 'install_alias', 'import_alias', and 'import_realias'
hrm.
I think I confused install_alias and import_alias 19:12
it's not clear to me why they need to be separate anyway, though. (I understand why import_realias is different.) 19:13
moritz_ hugme: tweet rakudoperl rakudo-ng now passes 2430 spectests 19:15
hugme hugs moritz_; tweet delivered
pmichaud \o/
only 30K-ish left to go! :)
moritz_ :-)
TimToady
.oO(plus however many more we write...)
19:16
19:17 tann1 joined, rgrau joined
pugs_svn r29309 | lwall++ | [STD,Cursor] move initparse into Cursor so other grammars don't have to define it 19:18
pmichaud left to go before we merge to master.... :)
19:19 payload joined
moritz_ .u hot beverage 19:20
phenny U+2615 HOT BEVERAGE (☕)
19:20 ejs left
Guest69693 ☕ a hot block of zeros for me 19:20
moritz_ rakudo: say '☕'.ord 19:21
p6eval rakudo 7ef386: 9749␤
moritz_ rakudo: say '☕'.ord.fmt('%h')
p6eval rakudo 7ef386: ␤
pmichaud ...%h?
moritz_ forgot what hex is
pmichaud hands moritz_++ a %x
moritz_ rakudo: say '☕'.ord.fmt('%x')
p6eval rakudo 7ef386: 2615␤
moritz_ pmichaud++
TimToady I don't think WHO.methodname can work; that's P5-think 19:24
methods don't live in packages anymore 19:25
pmichaud packages don't have methods? 19:26
this isn't asking for methods in the package, it's a method call *on* the package
i.e., the package is the invocant 19:27
19:27 gabiruh_ is now known as gabiruh
TimToady there might not even be a package, it might just be a lexical scope containing an EXPORT package 19:29
pmichaud hmmm. 19:30
Anyway, I was using .EXPORTALL here in the same sense as given by S11:108
The C<Foo> module will export C<&foo>, C<&bar> and C<&baz> by default;
calling C<Foo::Bar::.EXPORTALL> will export C<&bar> and C<&baz> at runtime
to the caller's package.
I do agree that .WHO probably needs to go, however.
because if Factorial is a class, then we want to use the class' EXPORTALL and not the EXPORTALL on its associated package/namespace 19:31
TimToady maybe 19:32
I'm thinking the exporting might actually be done by methods in the tag namespaces
under EXPORT:: 19:33
pmichaud maybe
.... then import XYZ <common @horse>; would end up using a method from EXPORT::ALL ?
er, XYZ::EXPORT::ALL ?
TimToady and we might want to detangle the notion of standard exporting from any extra hook that is for additional shenanigans
19:34 payload left
TimToady as well as a backchannel for macroish redefinition in the importing module, both textual and hygienic 19:35
in a sense, 'use' is a fancy macro
19:36 JeffreyKegler joined
TimToady and we should look at the extent to which the macro mechanism can do what we want without inventing a lot of new stuff 19:39
to the extent that they might be unified
pmichaud I'm fine with that... at the moment I'm just looking for an API that I can implement :-)
so, I'm looking at how one deals with something like 19:40
TimToady btw, currently Package isn't even a class in CORE.setting, it's just a role
my role Package does Stash { }
pmichaud use XYZ :OUR(:DEFAULT, 'common', '@horse'); # is this even legal?
TimToady and my role Module does Stash { }
but my role Class does Module { } 19:41
jnthn *cough*
Class?
moritz_ thought there was no Class class or role
jnthn Aye. :-) 19:42
TimToady it's just trying to capture the notion of what methods a Stash that is supporting a metaclass might provide
that's all
PerlJam Modules don't do the Package role?
jnthn TimToady: Oh, so a metaclass would do Class, for example? 19:43
TimToady: Of course, that gets a little fun in that Role also does Class about from Class is a role... ;-)
19:43 hercynium joined
TimToady I'm not thinking that the metaclass does Class 19:43
19:43 solarion joined
jnthn TimToady: ah, ok 19:43
TimToady just trying to clarify what different kinds of package there might be
could go away if it's a useless distinction 19:44
pmichaud at any rate, it feels as though Stash in general has methods for manipulating the stash
TimToady but anyway, the CORE lexpads are lexical scopes without packages, but they can have an EXPORT list anyway
pmichaud e.g. import_alias and EXPORTALL from S11 19:45
TimToady well, to the first approximation a Stash is just a Hash
a Stash for a lexical scope has an extra level of indirection over a package Stash
pmichaud right, it supports the hash interface
19:45 abra left
pmichaud but if we can export from a lexical scope, that is either a method on the lexical scope or some other helper function/method that does it for us, yes? 19:46
TimToady but to the extent possible, I'd like to run the export stuff lexically, and not assume the existence of a package on either end
pmichaud and presumably that would be similar to whatever handles exporting from packages and other stashes
TimToady but finding the EXPORT in a lexical scope (which is how Cursor does it) is related to the problem of finding lexically scoped constants 19:47
"all constants are 'our'" is kind of a workaround
pmichaud in order to export from a lexical scope, one would have to explicitly do something like module EXPORT::XYZ { ... } ? 19:48
TimToady if Num::pi can find pi even if pi isn't 'our', then that's much like finding EXPORT without requiring EXPORT to be 'our'
pmichaud or are you aiming at changing "our sub xyz() is export { ... }" to handle the "is export" in the lexpad instead of a package? 19:49
TimToady I think 'my sub xyz() is export' should also work
pmichaud right, my question is about the "is export" mechanics more than any my/our distinction 19:50
TimToady and anything that is exported should perhaps be nameable externally even without a package
well, the mechanics depend on where you're gonna look for the name
pmichaud right. currently that's done in EXPORT::foo packages 19:51
TimToady the tag spaces are packages, which means there's not really a need for the top level to be a package, as long as you can get to the EXPORT space
pmichaud well, the tag spaces really only have to be hashes also :)
TimToady packages are only just hashes, really :) 19:52
pmichaud so, the export space is just a HoH somehow
I'm perfectly fine with that. In many ways that would be far more acceptable to Parrot
19:52 JeffreyKegler left
pmichaud the question just then becomes "where does one find EXPORT" ? ;-) 19:53
TimToady so the notion is rather than looking up the name in the HoH to see if it's exportable, and then aliasing from the top package
you just export from the tag package
and maybe even with code defined in that package somehow (sub or method)
pmichaud right, I thought that's basically what EXPORTALL was doing :-) 19:54
TimToady well, as I mentioned, Cursor already looks for EXPORT in the lexical scope, not in the package
19:56 payload joined
pmichaud feels to me like the tag packages ought to be something other than "packages" though. "Exporters" or something like that. Or even "TagExports" 19:57
and then EXPORT is just a hash of exporters
TimToady currently trying to unify OUR:: with EXPORT::ALL:: in my head
pmichaud from my earlier example? or from a different situation? 19:58
::OUR and EXPORT::ALL:: don't feel like things that ought to be unified to me
*OUR::
EXPORT::ALL is a list of all exportable symbols, which might not be the same as OUR::. Or perhaps you're thinking of a different unification. 19:59
TimToady why would you declare anything 'our' if you didn't want to allow aliases to it?
pmichaud I'm thinking that EXPORT::ALL might contain symbols from subpackages 20:00
TimToady so might OUR:: 20:01
pmichaud i.e., module Foo { our sub abc is export {...}; module Bar { our sub def is export {...} } }
would we expect Foo::def there?
TimToady no, why would we? 20:02
two different packages, and two different lexical scopes
pmichaud right. But S11 currently says that Foo::Bar::def would appear in Foo's export list 20:03
thus Foo::EXPORT != Foo
(in terms of the symbols there)
TimToady hmm
that might be a fossil 20:04
pmichaud it's a long-standing fossil, if so :)
S11:94 is the current reference, at any rate. :)
anyway, I'm personally more comforted with the notion that the only things that get exported are those that are explicitly exported, and that "our" isn't sufficient to do that. 20:05
otoh, I see the issue with constants and the like.
TimToady our would be more 'exportable', but not by default, in that view 20:06
pmichaud right
just figured that out :)
so, 'our' causes things to appear in EXPORT::ALL (or whatever we end up calling it), but not in EXPORT::DEFAULT
and if you don't want it to appear in EXPORT::ALL, you use "my"
TimToady but the point of adding an import verb was to allow inlined modules to export to their surrounding scope, so the autoexport seems wrongish now 20:07
pmichaud right
in particular, the S11:94 part seems to imply that "is export" in any module automatically exports to its outer scope 20:08
which is probably not what we want.
20:08 _jaldhar joined
pmichaud and actually, exports to its outer scope*s* 20:08
TimToady a lot of my revisionist thinking is from trying to work out the namespace issues in the setting
pmichaud yes 20:09
TimToady where we're trying to avoid any overt package searching
pmichaud a lot of reason that Rakudo (master and ng both) don't always handle namespaces so well is because I couldn't get it to map well to S11 :-)
TimToady (except maybe embedded packages like EXPORT)
though moving more toward exporting lexicals rather than package vars does increase the potential of "alias will not stay shared" when cloning happens 20:10
at which point it becomes slightly beneficial to actually emphasize our-ness 20:11
though it makes it possible to export different clones of the same variable to different destinations, if that's what you want 20:12
TimToady keeps nudging package semantics and lexical semantics closer to each other to see where it exceeds critical mass and explodes :) 20:15
20:15 riffraff left
pmichaud ...it sounds as though S11 may go through another significant revision here... 20:15
jnthn TimToady: Well they're both just hashes, right? ;-) 20:16
TimToady different value type though
a package is more like a dynlexpad
with directly held containers
jnthn yeah
pmichaud jnthn: (both just hashes) -- yes, I've been looking at the hashness aspect quite a bit, especially with respect to mapping them to parrot constructs for hll-interop and exportation 20:17
TimToady a lexical scope pad just records positions in whatever the current dynlexpad is
20:17 payload left
pmichaud from a parrot hll-interop perspective, we really want export/import to be more of a function of the compiler than of the lexpad/package/whatever 20:17
so that we can do name mangling on either side
TimToady which is why I'd like to keep shenanigans as a separate mechanism, if possible 20:18
pmichaud agreed fully there
that thinking lends itself to thinking that namespaces, lexpads, and the like are things that are operated on, rather than things that do the operating.
which tends to move away from ".EXPORTALL" on packages 20:19
TimToady I want to think more about the notion of a module as a large hygienic macro though 20:20
where shenanigans might mean textual macro instead of hygienic 20:21
20:21 jaldhar left
TimToady install this AST here vs reparse this text than the 'use' returned 20:21
s/than/that/
where the latter degenerates to a simple include, when you think about it 20:22
pmichaud rakudo already tends towards the former, though. Are you thinking of aiming for the latter ? 20:23
TimToady I'm thinking the latter is the 'evalish/beginnish' escape valve that allows the former to be the correct default most of the time
pmichaud right 20:24
TimToady aliasing lives in the former
the 'shenanigans' live in the latter
pmichaud oh
hmmmmmmmmmmm
right now in order to get precompiled modules to work, we tend to try to put everything into the AST
(or the compiled form, whatever it happens to be) 20:25
TimToady but if a chunk of that AST is a hook that can be executed to return text to be macroized unhygienically, that's what I'm talking about
20:25 estrai left
pmichaud iiuc, you're suggesting that many shenanigans should remain as text and then be ..... right 20:25
TimToady it's even possible that lift could get implemented something like that, where the generic code gets instantiated at use time; though that might be doable hygienically 20:28
pmichaud I'm not sure that text-based shenanigans would work well from an hll-interop perspective, though.
TimToady well, you use a module that has that as part of its official interface, you lose.
that why text is unhygienic
20:29 payload joined
TimToady you can't predict the exact language it will be reparsed under 20:29
same problem with nested source filters
but it's possible that multis containing lift turn into hygienic macros transparently 20:30
which means it could be prototyped unhygienically, if the need arose
have to think about that with respect to the current caller semantics of lift 20:31
pmichaud I now have to think about all of this with respect to finishing my grant 1/2 :-) 20:32
TimToady it seems like it would work, since a macro by definition is in the caller's scope, if instantiated everywhere the same way
well, we can hope that *something* will be easier to change than *nothing* will, though that doesn't always work out in practice...
pmichaud for my grant I pretty much need to be able to handle import and export semantics 20:33
macros aren't part of the grant, nor lift, nor ... :)
20:34 xomas_ left
TimToady well, the standard export/import can be hidden under a compiler abstraction that may or may not implement it with macros 20:34
I think you are correct there about the passivity of the data
so just aim for that for now 20:35
pmichaud oh good (more)
yes, if I'm correct about passive data for export/import, then it becomes much easier on this end
I can put something together that's workable for now, supports some level of hll-interop, and we clean it up as we know more later
TimToady
.oO(I love it when it sounds like we know what we're talking about. :)
20:36
pmichaud lol
I'll just aim for some simple interfaces on compiler objects, along with various warning notes that it's still somewhat on the experimental side 20:37
(so the particulars may change)
we can then hide Perl 6 complexities under those interfaces when we have them
and, of course, a compiler talking to its own modules is generally free to ignore the interfaces anyway
20:37 payload left 20:38 payload joined
pmichaud afk, kid pickup 20:41
20:43 pmurias joined 20:44 snearch left 20:45 _jaldhar left 20:46 Tideflat joined
Tideflat rakudo: [*] [1,2,3,4]; 20:47
p6eval rakudo 7ef386: ( no output )
moritz_ rakudo: say [*] 1, 2, 3, 4
p6eval rakudo 7ef386: 24␤
Tideflat rakudo:say [*] [1,2,3,4]; 20:48
moritz_ you might need the space after ':'
Tideflat rakudo: say [*] [1,2,3,4];
p6eval rakudo 7ef386: 1 2 3 4␤
Tideflat oh
20:48 romanhunt joined
moritz_ reducing a list of one element returns that element 20:48
romanhunt hello all 20:49
moritz_ here it's an Array
hi romanhunt
Tideflat does perl 6 have "off the wall" support? Like how in python you use ' ' to mark blocks? 20:50
quantumEd don't think so..
moritz_ doesn't understand what that means
20:53 Tideflat left
colomon is with moritz_ here 20:55
sjohnson afternoon guys 20:56
moritz_: i think he means white-space significance in regards to delimit when a block starts and ends
TimToady yeah, he just means counting whitespace characters as syntax 20:57
pmichaud whitespace characters *are* syntax :) :)
TimToady but not counting them
pmichaud okay
TimToady well, except counting from 0 to 1 20:58
pmichaud I tend to say "whitespace as block delimiters" to get the point across :)
TimToady negative indentation to indicate something positive
but the whole notion of counting whitespace characters is really Unicode-unfriendly 20:59
moritz_ and evalbot-unfriendly :-)
TimToady and programmer unfriendly the moment your block exceeds the size of your screen
[particle] screens are cheap. 21:00
moritz_ programmers aren't :-)
TimToady even on the same screen, it can be hard to line things up vertically
romanhunt rakudo ng: say [1...4] 21:01
moritz_ it's just 'ng: '
romanhunt that just segfaulted my cp of ng
TimToady and ... nyi, I think
moritz_ ng: say [1...4]
p6eval ng 2c7750: 1 2 3 4␤
TimToady of course, I could be wrong... 21:02
pmichaud ng: say 1...4
TimToady ng: say 1 ... 4
p6eval ng 2c7750: 1234␤
moritz_ only the most basic, eager case is implemented in ng
rakudo: say 'a' ... 'd'
romanhunt mustve been something else it is running it now
TimToady ng: say 1 ... *+2, 5
p6eval rakudo 7ef386: abcd␤
ng 2c7750: too few positional arguments: 3 passed, 4 (or more) expected␤current instr.: 'perl6;Code;new' pc 11596 (src/builtins/Positional.pir:142)␤ 21:03
moritz_ rakudo: say 1 ... *+2, 5
p6eval rakudo 7ef386: 135␤
pmichaud ng doesn't whatever yet, I don't think.
TimToady ng: say 1,3,5 ... 9
p6eval ng 2c7750: No applicable candidates found to dispatch to for '&infix:<...>'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
pmichaud ng: say (*+2)(3)
p6eval ng 2c7750: too few positional arguments: 3 passed, 4 (or more) expected␤current instr.: 'perl6;Code;new' pc 11596 (src/builtins/Positional.pir:142)␤
pmichaud ...although implementing WhateverCode and the Whatever forms shouldn't be all that difficult. 21:04
TimToady ng: say 1 ... { $_ + 2 }, 5
pmichaud ng: say *.WHAT
p6eval ng 2c7750: No applicable candidates found to dispatch to for '&infix:<...>'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
ng 2c7750: too few positional arguments: 3 passed, 4 (or more) expected␤current instr.: 'perl6;Code;new' pc 11596 (src/builtins/Positional.pir:142)␤
pmichaud ng: my $x = *; say $x.PARROT; 21:05
p6eval ng 2c7750: too few positional arguments: 3 passed, 4 (or more) expected␤current instr.: 'perl6;Code;new' pc 11596 (src/builtins/Positional.pir:142)␤
pmichaud I think a dispatcher issue there.
afk, kid studies
jnthn Ah, just a problem in the way something is creating code objects. 21:06
pmichaud but * by itself shouldn't be a code object.... should it?
moritz_ nope 21:07
pmichaud it's just.... Whatever.
rakudo: my $x = *; say $x.PARROT;
jnthn pmichaud: Yes, but then you call a method on it.
p6eval rakudo 7ef386: !whatever_dispatch_helper␤
pmichaud oh, and calling a method on it turns it into a WhateverCode.... right
jnthn pmichaud: Right. 21:08
pmichaud: Apart from something is broken about that atm.
pmichaud right
jnthn I think it's untested and then never caught up with the lazy sig init changes.
sjohnson use python;
pmichaud use python; fail;
TimToady std: use python; 21:09
p6eval std : Potential difficulties:␤ Can't locate module python at /tmp/tLX7ySHFKu line 1:␤------> use python⏏;␤ok 00:01 104m␤
jnthn std: use whitespace;
p6eval std : Potential difficulties:␤ Can't locate module whitespace at /tmp/55i7EBqiV3 line 1:␤------> use whitespace⏏;␤ok 00:01 102m␤
TimToady std: use STD; 21:10
p6eval std : ok 00:01 123m␤
jnthn std: use STD:ver<6>; 21:12
p6eval std : Potential difficulties:␤ Can't locate module STD:ver<6> at /tmp/gGlDMzDQ8b line 1:␤------> use STD:ver<6>⏏;␤ok 00:01 103m␤
jnthn ;-)
TimToady std: use STD; my Cursor $c;
p6eval std : ===SORRY!===␤In "my" declaration, typename Cursor must be predeclared (or marked as declarative with :: prefix) at /tmp/n74wHEefrB line 1:␤------> use STD; my Cursor⏏ $c;␤FAILED 00:01 124m␤
TimToady std: use STD; my STD::Regex $r; 21:13
p6eval std : ok 00:01 126m␤
diakopter std: method foo() { method bar() { } } 21:16
p6eval std : ok 00:01 105m␤
21:16 Intensity joined
jnthn ng: class Dog { method foo() { say 1; method bar() { say 2 } } }; Dog.foo; Dog.bar; 21:17
p6eval ng 2c7750: sh: ./perl6: No such file or directory␤
jnthn ng: class Dog { method foo() { say 1; method bar() { say 2 } } }; Dog.foo; Dog.bar;
p6eval ng 2c7750: 1␤2␤ 21:18
jnthn :-)
pugs_svn r29310 | duff++ | [perl6advent] update schedule
21:19 meppl left 21:22 romanhunt left 21:24 cognominal left, supernovus left 21:26 payload left
diakopter std: class Bar is also { }; 21:33
p6eval std : ok 00:01 104m␤
21:33 cognominal joined 21:34 SmokeMachine left
diakopter std: class Foo { }; class Foo is also { }; 21:34
p6eval std : ===SORRY!===␤Illegal redeclaration of symbol 'GLOBAL::<Foo>' (from line 1) at /tmp/kQ5DPAG0T1 line 1:␤------> class Foo { }; class Foo⏏ is also { };␤FAILED 00:01 104m␤
pugs_svn r29311 | pmurias++ | [mildew] more porting to new STD 21:35
diakopter std: class Bar does Bar { };
p6eval std : ok 00:01 104m␤
21:38 guest28 joined
colomon TimToady: unless someone got up to something when I wasn't looking, ng so far only handles the n1 ... n2 case right now. It's as dumb as possible, just enough to get a bunch of tests that formerly used .. for that working. 21:39
pmurias shouldn't have let mildew lag behind STD so much :/ 21:41
guest28 Hi. Quick question: If Perl 6 is another language in the Perl family, and if Perl 5 keeps being referred to by many as simply "Perl", is Perl 6 always going to be called "Perl 6" (with a binary named "perl6")? 21:42
moritz_ guest28: I call both Perl 5 and Perl 6 "Perl" 21:43
guest28: but if a binary is called "perl", it must default to perl5 21:44
pmurias guest28: Perl 6 will replace Perl 5 once it good enough
21:44 pjcj_ joined
sjohnson pmurias: that will be a day to crack a celebration beer 21:46
jnthn pmurias: Provided people choose to use it instead of Perl 5. ;-)
TimToady when Perl 6 includes Perl 5 as a module, and Perl 5 includes Perl 6 as a module, we can call it all "Perl" :) 21:47
arnsholt jnthn: I think it's a (very) long term goal 21:49
After all, how long did it take before Perl 5 had entirely supplanted Perl 4? (If that has actually happened yet =)
21:49 pjcj left
diakopter thinks TimToady's last statement should be put into S01 21:51
guest28 Ok. I think I see. With Perl 5, the language is "Perl 5" and the implementation (the binary) is "perl". With Perl 6, the language is Perl 6 (which some might eventually just call "Perl"), and one implementation is called rakudo. 21:53
pugs_svn r29312 | pmurias++ | [mildew] ported over for
frettled guest28: That's nice and succintly put. 21:54
21:54 Astoria` left
frettled guest28: To some outsiders who don't care about Perl at all, they're both "Perl" already. :D 21:54
sjohnson how is SMOP coming along? 21:55
pmurias slowly
frettled I know this from trying my "hey, would you look at this, it's a new member of the Perl family" and getting a "meh, it's still Perl" response.
(and not just once!)
pmurias sjohnson: i'm updating mildew to the current STD.pm
sjohnson neat
guest28 @frettled: Well, I would hope so, no? I mean, that's a good sign if people look at Perl 6 code and say, "yeah, that's Perl alright". :) 21:56
21:57 perlygatekeeper left
sjohnson std: hi 21:57
p6eval std : Undeclared routine:␤ 'hi' used at line 1␤ok 00:01 105m␤
pmurias sjohnson: i added a js backend to mildew, and was focusing on it before as dealing with C and the assorted memory leaks is very fun
frettled guest28: Yep, it means it's still recognizable as such.
pmurias * isn't
frettled And that is sortof the point, isn't it?
21:57 hercynium left
moritz_ actually for perlgeek.de/blog-en/perl-6/rats-and...-pets.html I wrote code that's both valid Perl 5 and Perl 6 21:57
and it doesn't look too contrived 21:58
frettled moritz_: cool
guest28 The only trouble is, if I follow the instructions on the Perl 6 Advent calendar to build a Perl 6, I'm building rakudo, but I *get* a binary called "perl6" instead of "rakudo". 21:59
PerlJam guest28: how is that trouble? :) 22:00
frettled moritz_: huh? I suggested that blog post? Oh.
moritz_ frettled: you suggested the title :-)
frettled I must have been brilliant in September, for that was a very good blog post.
moritz_ guest28: at times that bothered me a bit too
guest28 Because rakudo is supposed to be only one particular impl of Perl 6.
sjohnson pmurias: keep up the good work 22:01
frettled guest28: Well, yes, ehrm. Season to taste, and all that. You get the same problem with Java, actually.
guest28: I think it may be more of a problem now when none of the implementations are quite 100% functionally compliant and bug-free, but when implementations are functionally equivalent, using the same binary name makes sens. 22:03
It's how we've traditionally done it with other executables in Unix, even with versions that _aren't_ functionally equivalent. (awk, nawk, gawk, ...) 22:04
guest28 So, perhaps rakudo will name its binary "rakudo" when other Perl 6 implementations come along?
frettled I don't think it should.
arnsholt It should certainly be an option to play nice with other implementations
guest28 Arg. Must go. Thanks for the clarifications all. Bye. 22:05
22:05 guest28 left
arnsholt But if your system has a Perl 6 implementation installed, it'd make sense to link one of the to /usr/bin/perl6 22:05
frettled arnsholt: like Debian's /etc/alternatives, I suppose
moritz_ I guess Debian would use the "alternatives" mechan... what frettled said :-) 22:06
frettled Too bad that our guest had to run, I was about to suggest just that, and that "perl6 --version" should say which implementation it is according to some standard.
22:06 Su-Shee left
frettled Rakudo already identifies itself as Rakudo, but I was thinking about something more similar to the java binary, actually. 22:07
lisppaste3 frettled pasted "Java version identifiers" at paste.lisp.org/display/91905 22:08
frettled Like that.
I don't think an exact copy of that would be necessary, but it's reasonably nice and clean. 22:09
22:09 Guest4923 left
moritz_ when we're so far I'd like to see language version, implementation and implementation version 22:10
moritz_ peels the Puma off his sweater
frettled That's essentially how it's done with Java. 22:11
TimToady peels the sweater off his puma 22:12
moritz_ in Soviet Russia Pumas peal you off :-) 22:13
diakopter pmichaud said that "maybe rakudo should [consider naming its fakecuteable rakudo]", if I recall correctly
frettled I don't really see any advantage to that. 22:16
jnthn gah...so I need to like, do some cleaning...and I can't figure out how on earth to use my family's super-advanced vacuum cleaner...
it blows rather than sucks...
frettled jnthn: Get paid help! :)
jnthn yeah!
diakopter frettled: for less confusion in the long run, imho
(because if the most-used distributions will rename it anyway and have an alternatives system.....) 22:17
frettled heh
lrwxrwxrwx 1 root root 40 2009-10-07 17:55 /etc/alternatives/java -> /usr/lib/jvm/java-6-openjdk/jre/bin/java 22:18
that one's not renamed
diakopter true.. I guess I meant renamed in the PATH resolution-namespace
frettled Nor is this one:
frettled skips that paste. 22:19
RHEL 5 also uses /etc/alternatives, BTW
I see they use a different Java version than Debian: /usr/lib/jvm/jre-1.4.2-gcj/bin/java 22:20
Anyway, I think it's reasonable that the executable is named perl6 to avoid unintentional side-effects from presumptious programs. :)
Now I'll crawl back into bed and hope that the fever gives up before tomorrow. :D Good-night! 22:21
TimToady get better! 22:22
22:22 IllvilJa joined
TimToady you'd better get better... 22:22
moritz_ get well soon!
diakopter frettled: I see, yeah... I guess we're talking about the 'install' target more than the default target 22:23
frettled Thanks, guys. diakopter: yup
sjohnson cya
diakopter apparently the BSDs/Solaris don't use a config-file/symlink-based system like that
sjohnson frettled: you need to do way instain flu bug> 22:24
jnthn My parry are with the frettled 22:25
sjohnson who lost his concentraiton 22:26
jnthn *lots
Know Your Memes!
pmurias moritz_: aren't pumas North American cats?
sjohnson jnthn: the lots is when we are "truly sorry" 22:27
jnthn oh!
damm!
I fail!
sjohnson but we are truly sorry for his lots none the less
moritz_ pmurias: this one was made in Herzogenaurch, Germany :-)
jnthn I am truly sorry for frettled's lots (of bacteria) though.
jnthn decides to procrastinate the .does changes until tomorrow. 22:29
Turned out not quite so straightforward as hoped. :-/
22:29 KyleHa1 left
jnthn Muchly because Parrot insists on being able to turn things into strings and compare them when pointer comp would be just fine (and what Rakudo is going to do...) 22:30
22:31 takadonet left 22:34 pmurias left
colomon is trying to install icu on his Mac.... 22:35
TimToady jnthn: I'm sure Dijkstra would have no difficulty pinning the brain rot onto the use of Perl 5, which is, after all, just a disguised form of BASIC 22:38
22:39 hercynium joined 22:46 TiMBuS joined
thowe that's a hell of a disguise 22:48
IllvilJa The last BASIC I dealt with were with that old Commodore 64 back in the 1980ies. Compared with that, Perl 5 is rocket science and LHC combined! 22:49
sjohnson basic is the first language i learned on an apple //e 22:50
daddy showed my brother and I how to write code. i thought it was pretty cool and straightforward
cognominal I did not know this one : "Object-oriented programming is an exceptionally bad idea which could only have originated in California"
colomon imagines LHC means "Low Hanging Chocolate"... 22:51
dbrock mmm...
cognominal he did not talk of the awful 00 Perl 5 syntax though, even if it is from California too 22:52
22:52 nihiliad left, nihiliad joined, mariano__ left
colomon Hmmm, with ICU the unpolar.t crash went away and now I have the words.t crash instead. 22:53
jnthn Ain't it wonderful to have a choice. 22:55
:-/
colomon: It'll just be slightly different memory layout causing the bug to manifest in different ways I guess.
colomon jnthn: something like that, I'm sure.
Any notion how I could help track it down here? 22:56
22:56 synth joined
jnthn colomon: I spent an hour or so looking...unfortunately, the debugger doesn't yield much. --trace=4 makes the problem go away...if we can catch it under that, it *may* help. 22:57
colomon: I'm not sure if knowing where we've been beforehand will tell us anything.
colomon Does that go in the perl6 command line?
jnthn No, you have to run Parrot with that flag. 22:58
path/to/parrot --trace=4 perl6.pbc script.p6
colomon okay, that's dumping a lot of something... :) 22:59
oh yup, with that turned on, no crash. 23:00
23:03 synth left 23:07 jferrero joined
thowe dang... C++ is hard 23:11
sjohnson thowe: ... and then Perl came along. you came to the right place 23:12
colomon rakudo: say hyper 1...10; 23:17
p6eval rakudo 7ef386: Could not find non-existent sub hyper␤in Main (file src/gen_setting.pm, line 324)␤
colomon hmmm... didn't expect it to do anything useful, but I thought it might at least be stubbed in there.
thowe been reading about and working with C++ for almost 2 years now and I feel like I know nothing... 23:18
maybe I'm reading the wrong stuff... 23:19
anyway, sorry.. OT Hurray for Perl!
colomon I've been working with C++ for 20 years now... 23:20
thowe so you almost have the hang of it then? 23:21
colomon I think I do okay, anyway. :)
I stay the hell away from template metaprogramming and things like that.
thowe Well, I eventually get stuff to work well, but I have to think about it hard. 23:22
It's not easy to read.
colomon It's incredibly verbose.
jnthn I suspect if I did C++ I'd find the template metaprogramming too hard not to try and do Crazy Stuff with... 23:23
thowe I like Qt4...
colomon I'm slowed down with trying funky new stuff because the C++ code I write has to be *very* portable.
That's as in, I got complaints when I did things earlier this year that made the code not compile on Microsoft's Visual C++ 6.0 Compiler, from circa 1999. 23:24
And I think some customers may still be using Borland's circa 2000 compiler. 23:25
jnthn: for what it's worth, I just got some bus errors using master, too.
23:25 iblechbot left 23:26 mberends left
thowe So, I see that there is a markdown "compiler" for Parrot. I'm not quite sure how to think about that, but does it mean that any parrot lang now can do markdown? 23:27
Can I stick markdown in my Perl 6 somehow for some reason?
if I am using Rakudo? 23:28
should I be bugging parrot guys with that one?
colomon thowe: I don't think so.
(I don't think you can do in rakudo, maybe the parrot guys can tell you more.) 23:29
jnthn: seems like the difference is in master I have to do a lot of computations before the bug triggers, in ng it happens pretty early. 23:31
jnthn thowe: If you can get things set up right, it's possible $output = eval($markdown_input, :lang<markdown>) or some such may work. 23:36
pugs_svn r29313 | lwall++ | [IO] long promised destruction of p{} 23:37
thowe hmm 23:38
23:39 Patterner left
colomon Oh, weird. I've been thinking about how to write a simple Mandelbrot program in p6. 23:44
It felt to me like it ought to be possible to code it using a hyperoperator, but I was having trouble figuring it out. 23:45
Just occurred to me the most natural way might be:
rakudo: class Complex is also { method mandel() { $z = 0i; my $i = 50; while $z.abs < 2 && $i-- { $z = $z * $z + self; } return $i == -1; }; }; say (0i).mandel; 23:46
p6eval rakudo 7ef386: Confused at line 2, near "return $i "␤in Main (file <unknown>, line <unknown>)␤
colomon rakudo: class Complex is also { method mandel() { $z = 0i; my $i = 50; while $z.abs < 2 && $i-- { $z = $z * $z + self; }; return $i == -1; }; }; say (0i).mandel; 23:47
p6eval rakudo 7ef386: Symbol '$z' not predeclared in mandel (/tmp/Yo858t1QYV:2)␤in Main (file <unknown>, line <unknown>)␤
colomon rakudo: class Complex is also { method mandel() { my $z = 0i; my $i = 50; while $z.abs < 2 && $i-- { $z = $z * $z + self; }; return $i == -1; }; }; say (0i).mandel;
p6eval rakudo 7ef386: 1␤
colomon That strikes me as a rude way to code it, but it's the best I've been able to figure out so far. 23:48
Then you can just load up a 2D list with the complex points you're interested in, and do >>.mandel on it. 23:49
23:50 coppro joined 23:51 Psyche^ joined, Psyche^ is now known as Patterner
colomon rakudo: say (0i ... 10i).perl 23:53
p6eval rakudo 7ef386: Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'␤in Main (file <unknown>, line <unknown>)␤
colomon rakudo: say (0i ... { $_ + (1/10)i }, 1i).perl 23:55
p6eval rakudo 7ef386: Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'␤in Main (file <unknown>, line <unknown>)␤
colomon rakudo: say (0i, (1/10)i, (2/10)i, ... 1i).perl 23:56
p6eval rakudo 7ef386: Confused at line 2, near "1i).perl"␤in Main (file <unknown>, line <unknown>)␤
colomon rakudo: say (0i, (1/10)i, (2/10)i ... 1i).perl
p6eval rakudo 7ef386: Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'␤in Main (file <unknown>, line <unknown>)␤ 23:57
coppro is the rule about 'default' coming last a syntactical one, or one of convenience? 23:58
(in a 'given' block)
colomon default will execute the block that follows whenever it is reached.
so anything that comes after it cannot be executed.
(Well, unless that block breaks or something like that.) 23:59
sorry, continues, not breaks.