Think twice before running "make install" for Pugs | moritz.faui2k3.org/irclog/ | pugscode.org | sial.org/pbot/perl6 | ?eval [~] <m oo se> | We do Haskell, too | > reverse (show (scanl (*) 1 [1..] !! 4)) | "Perl 6 Today" video from YAPC::Asia: xrl.us/v6op
Set by agentzh on 6 May 2007.
TimToady_ probably is considering each statement a separate scope 00:01
00:01 TimToady_ is now known as TimToady
Tene *nod* 00:02
japhb OK, I think I've got the smoking gun for my problem:
pugs> class Foo { has %.bar; method add_baz { %.bar<baz> = 'quux' } } my $foo = Foo.new; $foo.add_baz; say $foo.bar<baz>; 00:03
quux
pugs> class Foo { has %.bar; method init { .add_baz; } method add_baz { %.bar<baz> = 'quux' } } my $foo = Foo.new; $foo.init; say $foo.bar<baz>;
(That's a blank line there at the end)
TimToady why would method init have $_ set to self? 00:04
japhb Ah! So my code depended on now-dead syntax?
TimToady not dead, just means something other than $.add_baz
japhb Ah, so if I change all .method to $.method, it should work again? 00:05
TimToady in theory
japhb pugs> class Foo { has %.bar; method init { $.add_baz; } method add_baz { %.bar<baz> = 'quux' } } my $foo = Foo.new; $foo.init; say $foo.bar<baz>;
quux
EXCELLENT
TimToady or declare all your invocants to be named $_
japhb with 'method init($_:) { ... }' ? 00:06
TimToady yes, but I'm not recommending it...
japhb Oh, of course not, just making sure I'm halfway up on current syntax. 00:07
TimToady it's an invariant that <ws>.foo means $_.foo
and methods no longer set $_ to invocant
so you have to use either self.foo or $.foo
japhb will probably use the latter -- I really hate P5's constant $self->foo, because it fills the left column of text with repeated meaninglessness, forcing the important part into the middle of a visually dense mess 00:09
dduncan I'm not sure if this was previously declared universal or just certain platforms, but I also get "user error" concerning the prelude 00:10
japhb dduncan: seems universal 00:11
At least, win2k and debian
dduncan I've got Mac OS X PPC 10.4.9
japhb And there we go.
TimToady I didn't get it on my windows 2000 pro 00:12
dduncan where I got it was mid-way through "make" around the precompiling prelude ... but make didn't die and carried on until completion
running ./pugs says "loading prelude ... done" 00:13
japhb OK, gotta run for a bit. Will do the s/.foo/$.foo/g later and restest ....
dduncan so maybe the message I saw didn't actually affect anything important
japhb & # Mmm, dinner ...
Aankhen`` Is $.foo interchangeable with @.foo and %.foo for non-accessor methods, or is there something special about $.foo? 00:14
dduncan anyway, now starting "make smoke" ...
and that did die ... 00:15
Aankhen`` Awww.
dduncan no viable module found: syntax error at (eval 5) line 1, next token ??? 00:16
BEGIN failed--compilation aborted at ./util/yaml_harness.pl line 6.
Could not run yaml harness: at util/run-smoke.pl line 92.
00:16 theorbtwo joined
TimToady my smoke was a little slower, but not 2x slower 00:17
00:17 jrockway joined
dduncan could my last problem be caused by an older prerequisite Perl 5 module? 00:17
TimToady (linux smoke, that is)
yes, there were yaml changes not so long ago 00:18
dduncan so I'll try the latest YAML::Syck and try again ...
00:19 stevan_ joined, edenc joined
dduncan ... or I think it was actually just YAML that I had before ... unless Pugs can use either, or just Syck now 00:22
looking ...
yaml harness seems to accept either YAML::Syck 0.85+, or any YAML version, but I have a YAML installed ... 00:25
00:25 DarkWolf84 joined
dduncan version 0.39 00:25
TimToady I know I had to upgrade my YAML::Syck to 0.85 00:27
dduncan well, I'm going to use that now 00:28
installing YS 0.85 did the trick ... smoke is now running numbers ... 00:33
TimToady afk & 00:35
00:43 polettix is now known as poletti 00:45 poletti is now known as polettix 00:49 nipotaway is now known as nipotan 00:51 edenc joined 00:52 edenc joined 01:03 hatsuseno is now known as crashmatrix
Aankhen`` @tell agentzh I was just looking at smartlinks.pl again, and I was wondering why you explicitly set .smartlink_snippet { display: block; }, since it's a `div`, i.e. it's already a block-level element with a corresponding style. Was it showing up as an inline element for you? 01:04
lambdabot Consider it noted.
01:04 crashmatrix is now known as hatsuseno 01:05 SubStack joined
QtPlatypus wonders how difficult it would be to do stream fusion in perl6. Or even if it is possable. 01:13
01:20 kcwu joined
jrockway stream fusion? 01:27
wolverian trn's keys are supposed to do the right thing in each context--so why does 'q' quit the pager _and_ the thread selector in one go? I just wanted to quit the pager! 01:30
sorry, ww :) 01:31
dduncan I have a question: Supposedly The Perl Foundation holds the copyright on Perl 6, but what does that mean in practice?
AFAIK, no part of Pugs is copyrighted to them
SamB it means they own the ends of the world 01:32
wolverian they own the perl onion trademark. dunno about copyright.
whoh, perl is licensed under gpl _v1_ ? 01:33
jrockway perl is old
dduncan TPF's web site says they "hold the copyright on Perl 6 and Parrot"
wolverian jrockway, yeah. :)
jrockway there's no such thing as perl 6 though
it's a spec
wolverian about time for artistic 2
jrockway i guess they own the spec
anything that passes the spec can be called perl6 though
dduncan my own guess is what they mean is that they own copyright on the Perl 6 spec plus the Parrot implementation
the question is whether that is actually true or not 01:34
jrockway right now the parrot+perl6 is in the parrot tree, right
i assume they think they own everything in parrot svn
i think the thing we signed said something like that
(i was drunk when i signed it :D)
dduncan afaik, they sponsored people to write the Perl 6 specs, and parts of parrot, so that would be a reasonable claim ... but afaik they never sponsored any Pugs development, which was done "for fun" 01:35
jrockway who knows what TPF is up to :) 01:37
01:37 Tene is now known as tenen
jrockway i think we should start YATPF :) 01:37
i'm not too keen on someone owning trademarks on free software 01:38
but then... that's not my decision to make
01:39 thoughtpolice joined 01:41 ggoebel joined
obra Nobody claims ownership of pugs. 02:02
TPF does not claim ownership of pugs.
jrockway. great way to find out what TPF is up to is to volunteer.
one point of an organization like tpf owning the trademarks is to make sure that you don't see someone ELSE owning the trademark and starting to sue. 02:03
jrockway obra: any suggestions on what i can do to volunteer 02:04
tenen ?eval "foo foo" ~~ /(ident) <ws> $1/ 02:05
evalbot_r16421 *** Cannot parse regex: (ident) <ws> $1ā¤*** Error: ā¤Match.new(ā¤ ok => Bool::False, ā¤ from => 0, ā¤ to => 0, ā¤ str => "", ā¤ sub_pos => (), ā¤ sub_named => {}ā¤)
tenen ?eval "foo foo" ~~ /(<ident>) <ws> $1/
evalbot_r16421 *** Cannot parse regex: (<ident>) <ws> $1ā¤*** Error: ā¤Match.new(ā¤ ok => Bool::False, ā¤ from => 0, ā¤ to => 0, ā¤ str => "", ā¤ sub_pos => (), ā¤ sub_named => {}ā¤)
obra jrockway: helping to write up perl success stories for press releases is one thing that I keep hearing about. 02:06
jrockway i don't have a lot of perl success stories; most of my work is just OSS stuff
i think i've written 20 lines of code at work in the last 2 months or so :) 02:07
obra ...not suggesting TPF is not useful and should be replaced is probably another ;)
jrockway: other peoples' perl success stories. see the recent discussion on l.pm
jrockway TPF is just a little too slow-moving for my tastes... the grant program is fine though 02:09
little things like planet perl being python powered with we have plagger... etc. 02:10
i don't really care though
obra ok. what bits about TPF are too slow moving for you?
jrockway well, we missed the SoC deadline for this year IIRC?
and there's been plans for a perl.org calendar forever 02:11
obra that has NOTHING to do with TPF being too slow moving.
jrockway events calendar
ok
obra and tpf DID submit
Google chose not to accept tpf's application
great. perhaps you could help with making the event calendar happen?
jrockway sure 02:12
obra I've never heard anything about it.
jrockway i don't know what was holding it up before
i will find out
obra excellent
jrockway software, perhaps
obra well, brian foy is keeping a public google calendar of perlish events. 02:13
oh. no
it's cog
icalx.com/public/cog/perl.community.ics
jrockway i think we need a sidebar on perl.org (like php.net) 02:14
obra Great. jump on it. 02:15
jrockway k
02:16 justatheory joined 02:18 Aankhen`` joined
Aankhen`` Pugs build failed. :-( 02:19
Going to pastebin, waiting for Firefox to open.
pasteling "Aankhen" at 24.80.73.85 pasted "Pugs build failure on Debian" (747 lines, 50K) at sial.org/pbot/24955 02:24
Aankhen`` I've pasted the entire log in case there's anything of help.
The relevant portion, of course, is at the end. It fails on Pugs.Help, saying "error: Parrot_hsc.h: No such file or directory".
dduncan my smoke has just done 02:27
svnbot6 r16422 | tene++ | Fixes for Net:IRC::OO
dduncan so the wall clock time for my smoke was just under 2 hours 02:28
and its result is m19s28.vlinux.de/iblech/stuff/pugs-...5233f.html 02:29
lambdabot Title: TAP Matrix - Fri May 18 02:25:05 2007 GMT, tinyurl.com/26t8ye 02:30
03:15 mako132_ joined 03:21 bonesss joined, SCalimlim joined 03:44 mobutu joined 04:10 lisppaste3 joined 04:27 REPLeffect joined 04:30 SubStack joined 04:36 Tene joined 04:40 SubStack joined 04:43 SubStack joined 04:46 araujo joined 05:02 mobutu left 05:09 BooK_ joined
spinclad (pad-rewrite branch merge)++ 05:15
(audreyt being back)++ 05:16
audreyt+
+
(spoil my own punchline)--
audreyt++ 05:17
btw, re coolie: my dictionary (Random House college edition, 1968) gives: "[ < Urdu _kūlī_ < Tamil _kūli_ hire, hireling ]" 05:20
05:21 jisom joined
spinclad but (a) i can't vouch for its any greater accuracy, and (b) this doesn't rule out the Tamil term deriving from Chinese (unless it fits into the native Tamil web of words). 05:22
05:25 charsbar_ joined 05:27 sri__ joined 05:42 jisom_ joined 05:45 mjk joined, SubStack joined 06:19 amnesiac joined 06:26 Averell joined
dduncan TimToady, I just noticed a typo in S02: see the description of the Bag immutable type 06:26
Tene read that as "Blag"; too much xkcd
dduncan it says does KeyHash but should say does KeyBag
06:35 weinigLap_ is now known as weinigLap 06:38 kanru joined 06:43 iblechbot joined 07:01 franck__ joined 07:03 bsb left 07:05 devogon joined
svnbot6 r16423 | Darren_Duncan++ | ext/QDRDBMS/ : updated Language.pod to add quasi-nonscalar data types, for when plain nonscalar data types just won't do 07:11
07:20 buetow joined 07:24 SubStack_ joined 07:28 SubStack_ joined 07:29 SubStack_ is now known as SubStack 07:41 weinigLap joined
japhb OK, got another error trying to get some of my 3D code running under the latest pugs: 07:49
$ ./pugs -e 'use perl5:SDL::OpenGL; my %symbols = eval q{%SDL::OpenGL::}, :lang<perl5>; say %symbols.elems;'
2022
$ ./pugs -e 'use perl5:SDL::OpenGL; sub foo { my %symbols = eval q{%SDL::OpenGL::}, :lang<perl5>; say %symbols.elems; } foo()'
*** Odd number of elements found where hash expected: VStr "*SDL::OpenGL::"
at -e line 1, column 34-84
07:50 SCalimlim joined
Aankhen`` Small update: this time it looks like pugs compiled just fine. Going through the smoke now, on t/operators/negated_smartmatch.t 07:53
Ah man. 08:09
I named my file smoker.yml instead of .smoker.yml, so the `smokeserv-client.pl` didn't pick it up.
Hmm, 37.28 min, up from 24 last time. 08:10
08:13 drupek12 joined
japhb @tell audreyt Please take a look at moritz.faui2k3.org/irclog/out.pl?ch...18#id_l199 -- that smells like a bug in how the new pads and the Perl 5 bridge interact. This was confirmed to work correctly in the rev immediately before your big merge. 08:14
lambdabot Consider it noted.
japhb @tell audreyt (Or rather, the larger program using this construct was confirmed to work, rather than this test eval per se.) 08:16
lambdabot Consider it noted.
08:17 dduncan left
japhb blessed_sleep & # Good night all, and pleasant dreams .... 08:18
moritz japhb: good night ;)
08:27 rindolf joined 08:32 laye joined 08:39 ozo joined 08:46 prism joined 09:02 the_dormant joined 09:06 ozo joined 09:26 the_dormant_ joined 09:28 mr_ank joined 09:39 iblechbot joined
mr_ank hey one question... i'm slowly studying parsers. Is there a proof somewhere that perl 6's grammar is syntax-dependent and cannot be reduced to syntax-free? what about perl 5? 09:41
(i'm reading perl 5's perly.y/toke.c combination as well)
09:47 stef__ joined 09:48 kane_ joined 10:01 buetow joined
mr_ank oops. s/syntax-dependent/context-dependent/ and s/syntax-free/context-free/ 10:06
moritz we silently passed revision 2^14, and nobody noticed it ;) 10:10
mr_ank: I'm not a perl guru, but "proof" and "perl" don't sound as if the fit together very well ;)
10:11 ayrnieu joined 10:17 deq` joined 10:18 the_dormant joined 10:32 lampus_ joined
mr_ank moritz: hehehe. there's proof (in the "perl is very complex, dude!" sense) in places like www.perlmonks.org/?node_id=471598 and www.perlmonks.org/?node_id=44722 10:34
lambdabot Title: Perl not BNF-able??
mr_ank I had seen merlyn's post before but didn't know the grammar types until a few minutes ago. 10:35
Anyway, toke.c/perly.y are proof 10:41
gtg
10:47 rindolf joined
wolverian perly.y is relatively sane... and then you open toke.c and run out screaming 10:48
moritz hopes for a perl6 binary that exports syntax trees cleanly to enable syntax hilighting 10:50
11:00 franck__ joined 11:01 chris2 joined 11:16 elmex joined 11:34 fglock joined 11:40 ggoebel joined 11:41 sapir joined
fglock moritz: re cleanly: do you have an example of what it would look like? 12:04
12:05 ggoebel joined 12:08 fatman joined
fatman hello, i am fat-man and i weigh 400 pounds. you can see video of my supreme fatness at www.fat-man.org 12:08
12:08 fatman left
wolverian uh, okay. 12:11
12:13 lumi joined 12:16 nipotan is now known as nipotaway 12:20 tlb joined 12:21 Limbic_Region joined 12:23 buetow joined 12:26 buetow joined
Limbic_Region salutations all 12:32
12:32 DarkWolf84 joined 12:55 buetow joined, kanru joined
moritz @tell fglock for syntax hilighting it would be great if a list of tokens [$text, $type] or so would be available - but I guess it's not too hard to construct that from STD.pm 13:00
lambdabot Consider it noted.
13:00 rissy joined 13:03 ruoso joined 13:07 zperl joined 13:09 the_dormant joined 13:14 agentzh joined 13:16 stef_ joined
agentzh moose 13:16
lambdabot agentzh: You have 3 new messages. '/msg lambdabot @messages' to read them.
agentzh @messages 13:17
lambdabot Aankhen`` said 3d 6h 48m 40s ago: I'm not seeing the load handler run more than once on Firefox; a profiling session shows that it runs once, calling addEvent 83 times (or more, or less, depending
on the number of smartlink snippets). Which browser did you see this behaviour under?
perlDreamer said 2d 9h 25s ago: I think that the closure work is done in t/TASKS, but I'd like to double check with you since you added it. What specific things were you thinking of?
Aankhen`` said 12h 13m 2s ago: I was just looking at smartlinks.pl again, and I was wondering why you explicitly set .smartlink_snippet { display: block; }, since it's a `div`, i.e. it's already a
block-level element with a corresponding style. Was it showing up as an inline element for you?
moritz what would we do without lambdabot? 13:22
PerlJam moritz: we would notice something is missing and create it. 13:23
agentzh @tell Aankhen`` i was using the Win32 version of Firefox 1.x and added an "alert('blah');" line to the handler body. The alert function got called many times.
lambdabot Consider it noted.
moritz PerlJam: you're right ;)
13:25 ilbot-test joined 13:26 stef_ joined
moritz how do change the case (upper/lower) of a word in vim? 13:26
[particle] ~ iirc 13:27
oh, mayb ethat's a letter
moritz yes, one letter
blaze-x ~w?
13:27 fglock joined
moritz ho, that changes one letter, and then moves one word 13:28
blaze-x indeed, looking for the right answer, brb :)
moritz guW
no, gUw to change to uppper case
blaze-x darn ;p was into g~w :)
moritz and guw to lower case 13:29
a, thanks
13:30 stevan_ joined
blaze-x but you'd need to be at the word start, 13:30
[particle] b~ might do it 13:32
13:33 buetow joined
[particle] bgUw 13:33
agentzh @tell perlDreamer well, that entry was created in the last summer when i created the t/closure_traits directory and several .t files in it. I'm glad to see many new tests have been added there. feel free to remove the task if you think it's already done :) i'm lacking the tuits right now. 13:34
lambdabot Consider it noted.
agentzh @tell Aankhen`` i'm not an HTML person (unfortunately). "display: block" is mostly a placeholder since i previously wrote "display: none" there to debug the line-anchor stuff. :) 13:35
lambdabot Consider it noted.
svnbot6 r16424 | moritz++ | [irclog] preparations to add a primary key to the database
r16424 | moritz++ | (why didn't I do that in the first place? silly me).
r16424 | moritz++ | whitespace fixes.
13:36 irclogbot joined
avar @telll audreyt Please give me comaint (AVAR) on re::engine::PCRE so I can update it to work with blead (and PCRE 7.*) 13:39
lambdabot Consider it noted.
13:41 buetow joined
svnbot6 r16425 | rhr++ | [examples/unitsdat-grammar.pl] Add support for num^num, minor cleanups 13:48
rhr week-long vacation &
moritz can somebody tell me if t/operators/precedence.t is the right plae to test the precedence of self defined operators withe the is {looser,equiv,tighter} traits? 13:50
13:51 sapir joined
Limbic_Region moritz - it might be better to do create a precedence sub-directory t/operators/precedence/foo.t, user.t, etc.t 14:02
but then again, I had put in 40 hours of work by Wednesday this week and can't be trusted to be thinking coherently 14:03
14:08 rlb3_work joined
agentzh Limbic_Region: that sounds like a great idea. 14:12
i did the same thing for closure traits and it worked out quite well :) 14:13
bed &
14:13 agentzh left 14:21 lampus_ is now known as lampus 14:25 stef_ joined
moritz for the moment I continue in precedence.t, and when I'm more motivated or the file grows too large, I'll split it 14:25
avar it would probably be better if only builtins were there, but sure, do that:)
ideally the test suite would be in pseudo implementation-dependency-order 14:26
but it's really messy:)
moritz avar: where would non-builtin operators be tested for precedence?
avar t/operators/precedence/watchimacallit.t
just pick some name and fly with it:) 14:27
moritz ok 14:28
14:30 bernhard joined 14:31 rhandom joined
moritz wonders why he keeps wrting "pubs" instead of "pugs" ;) 14:31
Limbic_Region . o O ( cause it's Friday? ) 14:34
14:38 the_dormant_ joined
svnbot6 r16426 | moritz++ | splitted t/operators/precedence.t in precedence/{builtins,self-defined}.t 14:42
r16426 | moritz++ | added a more specific tests for prefix/infix/postfix operators.
avar wohoo:) 14:44
svnbot6 r16427 | moritz++ | [irclog] now output is ordered by id, so the correct ordering no longer 14:46
r16427 | moritz++ | depends on the goodwill of the mysql engine
14:48 REPLeffect joined 14:52 the_dormant joined 15:02 franck__ joined 15:04 rodi joined 15:14 iblechbot joined
TimToady my kitchen linux smoke went from 145 to 172 minutes, 18% slower 15:15
15:17 amerinese joined, amerinese left
Limbic_Region Wasn't the pad refactor supposed to make things faster? 15:18
TimToady mostly supposed to make things more correct 15:22
plus audrey had to disable an optimization for lack of support in 6.6; don't know how much effect that had 15:23
people with faster machines seem to be getting bigger slowdowns, but not many datapoints on that yet. 15:26
I left a smoke running at work on my windows box there, but it never showed up on smokeserver, so I'll have to see whether it didn't complete or just didn't send.
Limbic_Region I had a build failure and didn't run the smoke 15:31
I might try again tonight
Limbic_Region wanders off to find food
15:39 pbuetow joined 15:51 bonesss joined 16:00 weinigLap joined 16:02 toshinori joined 16:05 justatheory joined 16:08 deq` joined 16:10 fglock joined, silug joined
Jmax are there any platforms that are desired to be smoked on? 16:16
i have a rather large array of virtual machine images
Solaris, OpenBSD, FreeBSD, a few Linuces, SCO, XP, Vista, Windows 2000 come to mind 16:17
moritz openbsd has very little smokes
Jmax ok
moritz there is an overview of all available smokes on m19s28.vlinux.de/cgi-bin/pugs-smokeserv.pl 16:18
lambdabot Title: Pugs Smoke Reports
Jmax i wonder if there's a haskell compiler that works on sco 16:19
16:19 REPLeffect joined
[particle] jmax: any tuits to smoke parrot, too? 16:20
Jmax sure :)
[particle] yay!
Jmax does parrot come with a nice-and-easy "make smoke"? 16:21
moritz I seem to recall that there wereparrot regressions on freebsd
Jmax: of course ;)
[particle] yes, we've got "make smoke"
it submits to smoke.parrotcode.org/smoke 16:22
lambdabot Title: Parrot Smoke Reports
japhb [particle]++ # representing parrot here
[particle] you can see which platforms aren't represented there
svnbot6 r16428 | fglock++ | [v6-MiniPerl6-JVM] - MiniPerl6 for the Java Virtual Machine 16:31
r16428 | fglock++ | - "hello.pl" works
[particle] fglock++ 16:33
fglock that's phase III of the World Domination Plan(tm) 16:34
lambdabot fglock: You have 1 new message. '/msg lambdabot @messages' to read it.
[particle] now, to get java to compile to mp6 :) 16:36
fglock hmm - not quite there yet
16:40 haelix joined 17:09 Psyche^ joined
TimToady my windows box at work was 32% slower 17:10
but for some reason did not deign to turn smoke.yml into smoke.html. said it couldn't spawn the perl.exe but couldn't give a good reason why not... 17:14
svnbot6 r16429 | fglock++ | [mp6-jvm] t/01-sanity.t passes
TimToady will try again to see if it was just a cosmic ray
moritz fglock++ # multiple backends 17:15
fglock: do you compile to java code or to jvm byte code?
fglock moritz: I'm using Groovy - groovy.codehaus.org
lambdabot Title: Groovy - Home 17:16
fglock as an intermediate language
laziness
moritz cool ;) 17:17
TimToady how...OOish
moritz veraible interpolation without sigils ;) 17:18
TimToady we can do that too. :)
you just have to declare your variable as an rw sub...
then say "answer = {mysub}" 17:19
moritz is there anything we can't do with perl 6? 17:20
Juerd Perl 5 formats :)
[particle] parse perl 5 :) 17:21
TimToady hmm, still a little weak on logic programming, I expect
moritz TimToady: that can be left to modules ;)
TimToady translating toke.c to P6 might be "fun"
Oz claims to support eight paradigms 17:22
17:22 Psyche^_ joined
obra TimToady: indeed. I _almost_ convinced muttley that translating toke.c to a subset of perl5 would be worthwhile. 17:22
[particle] fglock will have an mp5 before you know it :)
fglock hmm 17:23
TimToady I haven't even figured out how to use mp3's yet... 17:24
moritz ;)
TimToady I wonder where Perl 6 should fit in terms of the paradigms on en.wikipedia.org/wiki/Multi-paradig...g_language
has Perl 5 down for 3 paradigms 17:25
Oz: concurrent, constraint, dataflow, distributed, functional (evaluation: eager, lazy), imperative, logic, object-oriented (class-based)
PerlJam TimToady: Perl 6 needs a new one--inifite paradigms ;)
17:26 Psyche^_ is now known as Patterner
fglock "it lets you implement your own paradigm" 17:26
TimToady I think they call that "dialectic"
PerlJam wonders why his fingers don't work well sometimes. 17:27
TimToady but maybe they're thinking in terms of dsl subsets mostly
rindolf Hi PerlJam, TimToady, fglock [particle], obra
moritz hi rindolf ;)
rindolf Hi moritz ! What's up?
PerlJam Hello rindolf.
rindolf PerlJam: hi.
PerlJam: what's up?
moritz rindolf: not mutch... my programs are still are not working ;) 17:28
PerlJam rindolf: apparently my fingers can't spell "infinite" without some prodding.
rindolf moritz: which programs?
moritz rindolf: I'm writing a program that recognizes eyes in images of human faces... 65% recognition rate only or so 17:29
rindolf moritz: oh nice. 17:35
moritz rindolf: I'm not yet satisfied
17:35 justatheory joined
rindolf moritz: what are you writing it in? 17:35
moritz rindolf: C 17:36
and in parallel I'm writing a pixel bases weak classifier to detect skin
diakopter TimToady: which paradigms (of the ones mentioned on that wikipedia page, and any that aren't) would Perl-6-As-Currently-Spec'd support OOTB?
moritz and I hope someday I can combine it
svnbot6 r16430 | fglock++ | [mp6-jvm] passes t/02-int.t 17:39
TimToady diakopter: it really kinda depends on which of those "paradigms" you consider to be subsets of the others 17:42
arguably if you have lazy functional, you already have the basis for dataflow 17:43
concurrent and distributed are much the same 17:44
is class-based OO different from prototype-based OO?
are our roles sufficiently parametric to count as generic programming? 17:45
offby1 looks deep within himself
my roles may be insufficiently parametric, but I blame my agent
TimToady and the set of paradigms there doesn't really use all the paradigms listed under en.wikipedia.org/wiki/Programming_paradigm 17:48
lambdabot Title: Programming paradigm - Wikipedia, the free encyclopedia
TimToady is AOP a paradigm? DBC? grammar-based programming?
we kinda do all of those 17:49
and we certainly do structural programming. :) 17:50
not to mention imperative and procedural
at some point the word paradigm starts going wonky on us
17:54 prism joined 17:58 Khisanth joined 18:03 dmq joined 18:04 SubStack joined
svnbot6 r16431 | fglock++ | [mp6-jvm] pass t/05-bind.t 18:06
obra TimToady: It might be interesting to see a talk on how "These fundamental properties of dynamic languages let you use _all_ n of these programming paradigms nicely. 18:09
"...And here are the paradigms that you could use, but require conceptual bludgeoning." 18:10
"...and here are a few new programming paradigms I made up during the coffee break. If you use them,
[particle] picks up a concept menacingly and looks around...
obra Damian will hunt you down and make you watch a lecture about object intercal"
TimToady sure, but then I'd have to do enough research to actually know what I'm talking about, or at least fake it better than I do... 18:11
diakopter I bet someone has published a dependency graph somewhere of those properties/categories. 18:27
18:34 obvio171_ joined
obra TimToady: quite possibly. But people might just believe you ;) 18:35
18:38 buetow joined
jrockway .PLEASE CREATE AN OBJECT WITH AN ACCESSOR NAMED FOO WHICH ACCESES A READ-ONLY MEMBER CALLED FOO 18:43
:) 18:44
[particle] what's that, oo-cobol? :)
svnbot6 r16432 | audreyt++ | * util/gen_prelude.pl: More sensible msg at the end of prelude generation.
18:47 jisom joined
avar audreyt: ! 18:47
avar bothers
does p6 have something like bless {} => sub {}; ? 18:49
svnbot6 r16433 | audreyt++ | * Pugs.Run: Eliminate the utterly unhelpful and harmless
r16433 | audreyt++ | "user error" message when recompiling prelude.
avar wants his objects to be completely lexical
I know you have lexical classes, hrm
I guess I'm wondering how dispatch ends up and how hackable that is:)
[particle] should be hackable though the MOP 18:51
diakopter TimToady: here's a bit of material for that research www.dmst.aueb.gr/dds/pubs/ his '94 thesis esp. 18:52
lambdabot Title: Diomidis Spinellis Publications
18:52 justatheory joined
TimToady maybe you should just ghostwrite my talk :) 18:52
then I wouldn't have to understand it....
diakopter better hope the WG2.8 folks aren't in attendance... 18:53
18:53 dduncan joined
svnbot6 r16434 | audreyt++ | * Prelude: &evalfile should refer to the global &*eval as such, 19:01
r16434 | audreyt++ | not assuming it's within the lexical scope.
19:21 polettix joined 19:33 REPLeffect joined 19:35 SamB joined 19:37 japhb joined
svnbot6 r16435 | audreyt++ | * Pugs.Parser.Util: Add parameter variables into the known-variable 19:55
r16435 | audreyt++ | set to be closed over.
19:57 the_dormant joined
svnbot6 r16436 | audreyt++ | * Pugs.Parser: This error is finally a compile-time one, instead 20:04
r16436 | audreyt++ | of a runtime one:
r16436 | audreyt++ | Global symbol "$foo" requires explicit package name
r16436 | audreyt++ | As a result, a lot of ext/ code broke -- but they were really
r16436 | audreyt++ | broken already. Fixes welcome!
20:06 baest joined
dduncan oh, I should have a look then ... so far, most of my tests are just that the code compiles 20:08
on a related note, it seems the compiler hadn't 2 days ago checked that references to attributes actually exist 20:09
whereas those should be checkable at compile time ... will test now ...
audreyt, are your commits of today all new work, or are they older stuff that was being checked in now more incrementally? 20:10
Jmax a bit off topic, did anyone get ghc 6.6+ working on openbsd? the port/package are a bit outdated 20:13
svnbot6 r16437 | audreyt++ | * Better diagnostics message for undeclared variable. 20:19
20:25 BooK joined 20:28 justatheory joined
svnbot6 r16438 | lwall++ | typo in new error message 20:31
Tene dduncan: last night she said she was going to commit more old stuff today. 20:33
dduncan I remembered a comment about "another half" of stuff to be committed in the near future, but I don't recall today specifically 20:34
in any event, still good to see it
fglock does anyone have a clue of Groovy syntax? I can't make a simple accessor 20:36
20:38 Aankhen`` joined
svnbot6 r16439 | audreyt++ | * Variables inside an eval"" is now correctly checked 20:40
r16439 | audreyt++ | against outer lexical scope.
20:53 thoughtpolice joined
svnbot6 r16440 | Darren_Duncan++ | ext/QDRDBMS/ : fixed a one-line bug in PhysType.pm that newest Pugs uncovered 20:55
dduncan and besides that one line, both of my ext/ projects have no compile errors now 20:56
that make-test reveals
svnbot6 r16441 | fglock++ | [mp6-jvm] class declarations, constructor, accessors
japhb I'm just starting to backlog, so forgive me if this has already been mentioned ... but I got a "server too busy" error from irc.pugscode.org. With a refresh, it went away, but that's still worrisome.
moritz japhb: did you get that response from irc.pugscode.org or from the server that it redirects to? 20:58
dduncan I normally use colabti.de/irclogger/irclogger_log/perl6 myself
japhb moritz: I'm not sure, actually 21:00
I think maybe the former
svnbot6 r16442 | audreyt++ | * Pugs.hs - Recover lexical scope continuation in interactive 21:08
r16442 | audreyt++ | shell, as reported by avar++
avar doesn't recall 21:09
21:11 moglum joined
TimToady I think it was Tene++ 21:11
21:12 bernhard joined
Tene What was me? 21:12
21:12 _bernhard joined
TimToady reporting the shell not keeping its lexicals from line to line 21:12
Tene Yes, that was me. 21:13
TimToady moritz.faui2k3.org/irclog/out.pl?ch...7#id_l1339
lambdabot Title: IRC log for #perl6, tinyurl.com/29p8sk
21:18 SubStack joined
svnbot6 r16443 | audreyt++ | * Some tidying up for preserving lexicals in interactive shell 21:19
r16443 | audreyt++ | (which was reported by Tene++ instead of avar++, mea culpa.)
japhb audreyt: did you have a chance to look at the problem I reported last night? Or is that delayed until after the MO merge?
dduncan is the MO merge happening today, or some later day? 21:20
I recall hearing something about instability yesterday
audreyt dduncan: it's happening not today. I hope early next week but no promises. 21:21
lambdabot audreyt: You have 3 new messages. '/msg lambdabot @messages' to read them.
dduncan okay 21:22
audreyt japhb: the eval"" bug? looking at it now
japhb audreyt: thanks
dduncan anyway, I still have significant additions to make to QDRDBMS before Pugs goes on CPAN again, so things like this happening later can possibly provide the time 21:23
aka, blessing in disguise
audreyt sure :)
dduncan fyi, I have so far been implementing my data types in terms of Hash and Array, like the Perl 5 versions, because afaik other types like Seq, Mapping, Set don't exist in Pugs yet, and won't until after the MO merge 21:25
audreyt japhb: try these two lines in your command line:
./pugs -e 'sub { say eval q[%ENV] :lang<perl5> }()'
./pugs -e '{ say eval q[%ENV] :lang<perl5> }' 21:26
or rather, the first line should be
./pugs -e '{ say eval q[%ENV] :lang<perl5> }()'
(same thing either way)
do they output different things?
dduncan likewise, I'm assuming that being able to use Object as a hash/mapping/set key won't work until after the MO merge
audreyt correct, and maybe not immediately after that, either 21:27
japhb audreyt: first and third are the same (as expected), and give just: '*main::ENV'
dduncan so I've hacked together my own in the mean time
audreyt (i.e. not considered a 6.28 blocker)
cool
japhb audreyt: the third gives a big pile of stuff
er, the *second*
audreyt japhb: k, so that's the bug. looking into it...
japhb audreyt: cool 21:28
dduncan likewise, I'm assuming that even if I declare desired data types of parameters, that they aren't actually being checked yet, so I still do explicit .does checks on arguments, as in Perl 5
audreyt I wonder at which circumstances will perl5 evaluate %ENV into *main::ENV
dduncan: at the moment they affect defaults, but not passed-in args 21:29
dduncan okay
audreyt sub f (Moose $x?) { ... } # Moose.new if you call f()
japhb audreyt: can you trace across the Haskell/P5 boundary? I can only imagine it's something like a context change
audreyt or rather actually ::Moose, not Moose.new
japhb scalar versus list, or something
audreyt but %ENV under scalar context is 17/32
still looking
dduncan either way, I've generally been treating Pugs' Perl 6 like it is Perl 5 as far as implemented features go, which has led to the code being more verbose ... but that's the cost of wanting it to work now 21:30
audreyt nodnod.
dduncan and I'll refactor it when Pugs implements things that I want
my own assumption so far is that once the MO is in place, implementing the things I want will be orders of magnitude easier, and come along relatively quickly 21:31
moritz just finished a smoke in 40m23
audreyt that is correct.
moritz: how much slower was that? I benched here and it's 15% or so slower
dduncan sounds good
dduncan away for a bit
moritz audreyt: 45%, but I had some load while smoking this time 21:33
audreyt k. will look at performance once the branch merge's glitches are ironed out (there doesn't seem like to be too many of them) 21:34
japhb: your intuition is entirely correct
%ENV evaluates to *main::ENV under void context
the question is now why this is in void context... 21:35
dduncan my last 2 smokes went from about 90 mins, a few months ago, to about 110 mins yesterday
dduncan away again
audreyt $ ./pugs -e '{ say want }()'
Void
moritz is it normal to have failing tests in ext/File-Spec/t/20_win32_test.t on linux? 21:37
audreyt it's a bug, but I havn't investigated. 21:38
svnbot6 r16444 | audreyt++ | * Make InvokePerl5Result derive Show/Typeable to make
r16444 | audreyt++ | debugging a bit easier.
audreyt I get it here too
moritz not very intuitive ;)
audreyt no ;) 21:39
21:40 zgh joined
thoughtpolice can anybody offer a reasonable way to get more into perl6/pugs development? i've been reading O'reilly's book and writing little snips of code on my openBSD box via pugs, but the actual implementation and development of it is still somewhat of a mystery; i assume getting a commit bit would be a good start, but i feel as if I'm getting dropped in foreign territory arbitrarily or somesuch 21:43
PerlJam thoughtpolice: yes, getting a commit bit would be a good start :-)
svnbot6 r16445 | moritz++ | ext/File-Util: fixed variable named that caused compiler errors
Tene thoughtpolice: PM me your email address and desired username and I'll send you a commit bit.
moritz thoughtpolice: for a start, we need an email address ;) 21:44
PerlJam thoughtpolice: do you know haskell?
offby1 thoughtpolice: I'm exactly the wrong person to ask
thoughtpolice: I just lurk here a lot, and occasionally write a tiny bit of perl6
thoughtpolice PerlJam: I've been really into haskell for the past 2 months or so now
PerlJam thoughtpolice: excellent! Perhaps you can help audrey & co. with the pugs implementation :)
thoughtpolice and pugs seems to be something like a bridge between perl6 and haskell, so it's only natural I get interested 21:45
PerlJam thoughtpolice: But if not, we still need more perl 6 tests, more docs, more ... well, everything
thoughtpolice i'm one of those types of people who have enough trouble writing docs for my own apps, unfortunately. :p 21:46
but pugs seems like a good project to get interested in because it has a good goal (so far I've been really impressed with perl6 in general,) and I like haskell a lot (in 2 months it ranked in as my favorite functional language by far for several good reasons)
japhb thoughtpolice: I would get yourself familiar more or less with the lay of the pugs code, and certainly the test library, but be aware that a big branch is being merged next week. (a big one got merged last night, too) 21:47
audreyt thoughtpolice: your email address pleaser? :)
*please
thoughtpolice audreyt: I gave it to Tene
audreyt oh ok. good
thoughtpolice audreyt: btw, i liked your presentation on pugs/perl6, I saw it on google video about 2 weeks ago.
Tene is loading commitbit interface as we speak. :) 21:48
thoughtpolice it cropped up on programming.reddit.com which I read pretty regularly.
:)
audreyt thoughtpolice: thanks :) in any case, search.cpan.org/dist/Perl6-Pugs/doc...c/Hack.pod can get you started
lambdabot Title: Pugs::Doc::Hack - How to hack on Pugs - search.cpan.org
audreyt the url there is now svn.pugscode.org/pugs instead of openfoundry
lambdabot Title: Revision 16445: /
thoughtpolice mucho appreciated. and yeah I have the svn repo here on my svn box.
er
s/svn/openbsd/ 21:49
PerlJam you have the openbsd repo on your svn box?
thoughtpolice of course that might need something like a :p5 annotation in this channel I guess?
PerlJam thoughtpolice: s:2nd/svn/openbsd/ # :-)
thoughtpolice :)
i'm simply glad this o'reilly book didn't lie when it said "most of what you read will be out of date when you read it," luckily wall's apocalypses are fun reads anyway. 21:50
audreyt thoughtpolice: I assume you've glanced at the synopses at spec.pugscode.org?
thoughtpolice yeah those're the ones that're cross referenced right? 21:51
audreyt aye
thoughtpolice i haven't quite looked through all of them, primarily I've been looking through the ones that've pertained to the little p6 app I've been tooling with recently to get the feel of the current spec. 21:52
but i like the results.
audreyt thoughtpolice: so just play with the pugs you built, and then check in your little p6 app under either ext/ or examples/, write some tests for it
and add your name to AUTHORS
actually, first add your name to AUTHORS
and then we'll take you rom there :)
*from 21:53
PerlJam thoughtpolice: what's your little p6 app?
Tene /admin/project/Pugs/people is still not loading for me.
audreyt japhb: finally located the bug into the fact that eval"" doesn't propagate context info anymore. testing and will commit in a bit
japhb audreyt: fantastic
thoughtpolice PerlJam: it's a little prompt implementation, the code is kind of ugly to a degree but it's just a test, mainly. gimme a sec, I was going to upload it to my site where I have my darcs repo's just now anyway 21:54
japhb Oh, svn v. darcs v. whatever reminds me:
avar audreyt: if it's not too much trouble, could you give me comaint on re::engine::PCRE? 21:55
I'm fixing up the re::engines after I broke everything in blead and I might as well do ::PCRE too:)
thoughtpolice PerlJam: anapnea.net/~thoughtpolice/promptr/
lambdabot Title: Index of /~thoughtpolice/promptr/
avar did my pcre comments get through? Cat disabled the internet connection:)
audreyt Tene: better now? 21:56
svnbot6 r16446 | moritz++ | ext/Set: fixed two typos/brainos that caused compiler errors
r16446 | moritz++ | audreyt++ # pugs detecting more errors
audreyt avar: doing so
Tene Internal Server Error now. :)
avar audreyt: whee:)
japhb I need to make a source repo (3D Perl, natch) available to myself and someone else. We're both behind firewalls at different companies, so neither of us can put up an SVN server that the other can see. Is there a source control system that works naturally via just email?
moritz japhb: is it open source? 21:57
japhb moritz: yes
offby1 use google code hosting?
audreyt Tene: I really don't know what's happening to commitbit/jifty on feather :/
japhb But for now it's just a couple blokes, so whatever it is must be *easy*, like commitbit easy 21:58
thoughtpolice japhb: you can just send your patches via darcs send, if that'll work.
japhb offby1: hmmmm, interesting. sf.net clone?
moritz offby1: I wanted to suggest the same ;)
thoughtpolice if you have some sort of client like mutt you can have it auto-apply them if the sender has sent a valid signed email as well.
japhb thoughtpolice: ooh, interesting.
Does darcs work across Win32/OS X/Linux/BSD? 21:59
offby1 japhb: kinda. Seems more reliable though.
thoughtpolice yeah, but it's kind of rough on win32.
offby1 japhb: and it has the advantage that a couple of the developers are frequently on #svn, and all-around nice guys
japhb offby1: that's key. I got burned before trying to use the svn hosting that Pugs used to be on.
21:59 irc joined
svnbot6 r16447 | audreyt++ | * Prelude: Work around the eval-not-propagating-context bug 21:59
r16447 | audreyt++ | by using no closures in the body of &eval.
TimToady load avg on feather currently 15
thoughtpolice japhb: for some reason darcs send doesn't like me (I have msmtp configured and it works too,) but you can just create a patch with darcs send, output it to a file and just attach the patch to an email and send it later 22:00
japhb offby1: you know, for some reason I am much more willing to use a service hosted by nice people. :-)
offby1 japhb: read their google groups archives to get an idea of the problems people have encountered
japhb offby1: cool, thank you
offby1 most have been fixed quickly, I think
oh, and mention my name so that I'm eligible for the $150 kickback! :-)
audreyt avar: you're comaint now, have fun :) 22:01
japhb thoughtpolice: and thank you, as well, I'll consider that
avar audreyt: woohoo:) 22:02
avar lurks and doesn't do anything with it for a few months:)
thoughtpolice japhb: currently there're some nasty darcs bugs however; most of them manifest themselves mainly in very large scale projects, however (see: the Glasgow Haskell Compiler)
japhb nasty darcs bugs?!? 22:03
thoughtpolice luckily one of haskell.org's google SoC projects is to fix the most major of the bugs
the main one is a conflict bug that just takes a long time to merge conflicts across branches of extremely large size, but that's most major one, but it's the one getting fixed in the SoC.
japhb OK, so it's perf bugs not "corrupting your repo" bugs? 22:04
avar yay student^Wslave labour
thoughtpolice no.
no real 'corruption' bugs
audreyt uh, it's O(n^2) perf bug
thoughtpolice yeah
when I said takes a long time
I meant it
but like I said, only very large scale projects (dealing with thousands and thousands of patches like GHC) seem to be affected most directly; reports have been ranging from hours to days to merge conflicts based on repo size. 22:05
TimToady anyone else had trouble with strawberry perl coredumping on Perl_regclass_swash()? I hit that when trying to run testgraph.pl, and haven't changed anything recently... 22:06
PerlJam O(2^n) would take a long time. O(n^2) is just a little while :)
thoughtpolice i've been aware of it for a while now 22:07
but it's posed no problems in my experiances
TimToady not for n == 3
audreyt PerlJam: well yeah :) that's why people still use darcs...
thoughtpolice then again I'm not writing a 100 kLOC application like GHC,
audreyt I've been bit by that repeatedly when working with ghc
thoughtpolice so you may wish to take my words with a grain of salt or two
audreyt: doesn't suprise me, marlow & co have talked about it with roundy on the darcs mailing lists. 22:08
audreyt if not for the bug it might be that I'll spend moretime hacking GHC than pugs ;)
thoughtpolice and roundy is addressing it by being the supervisor for the SoC project that's fixing the bug.
audreyt thoughtpolice: *nod*, we all voted on Jason's proposal -- I think it's the only unanimous one
PerlJam What is it that's missing for Perl 6 to have another water-shed event (like pugs) and become "real" in the popular sense? 22:09
thoughtpolice audreyt: yeah. roundy said it's not really that complicated of a fix, but it'll take some time and more technical considerations (efficiency, disk space, etc..)
dduncan some killer app written in perl 6 that is used in production
moritz PerlJam: a feature complete release? compiling to parrot?
audreyt PerlJam: the Camel book, then Llama book, and an implementation that runs them?
PerlJam dduncan: do you really think a killer app is necessary? 22:11
audreyt Tene: have you gone through with commitbitting to thoughtpolice?
PerlJam dduncan: You don't think "build it and they will come" works here? 22:12
moritz PerlJam: it will work for the perl folks, but perhaps not for other folks
PerlJam audreyt: well, what I mean is ... why don't we have that implementation already? Where are the roadblocks?
Tene audreyt: it only barely loaded.
TimToady loadavg is 11 22:13
audreyt TimToady: is this legal? sub f ($x = sub { $x }) {}
PerlJam And what would be a "killer app" for perl 6?
TimToady I think Perl 6 will be its own killer app once it can compile itself.
Tene sending now
dduncan let me clarify that a killer app is one way, not the only way
thoughtpolice PerlJam: wall is still working on the specs (along with the p6 lang mailing list,) so that's kind of a block right there since wall is BDFL of perl.
dduncan and yes, as TimToady says 22:14
audreyt thoughtpolice: around here usually "TimToady" instead of "wall", fyi :)
TimToady speaking of the thought police... :)
dduncan generally speaking, when we have something that people will do anything to get, that either is or requires Perl 6
thoughtpolice audreyt: thanks.
:p 22:15
PerlJam dduncan: perhaps I'm a pessimist today, but I don't see any such thing on the horizon.
(other than perl 6 itself)
moritz PerlJam: another good way would be really good integration for rules - that's kinda killer as well ;)
dduncan but I also agree with the idea of having a Perl 6 camel book et al should be a big driver ... basically when the average perl developer feels that Perl 6 can be used now
TimToady audreyt: it doesn't seem terribly useful to return a closure of the unbound parameter 22:16
audreyt TimToady: oh, but that construct is used here...
my $x = sub { $x };
which seems pretty useful
dduncan on a tangent, do any other languages have killer apps?
thoughtpolice library support is a huge issue in reality, luckily CPAN is pretty much the best there is, so we know there'll be lots of libraries already waiting for perl6.
PerlJam dduncan: ruby has rails. :)
thoughtpolice dduncan: rails contributed a lot to ruby
dduncan right 22:17
japhb What is wrong with this in current pugs?
%.lookup<command_action> = {
quit => &action_quit,
screenshot => &action_screenshot,
...
I get:
audreyt TimToady: so after the vardecl/signature unification, perhaps it's easier to apply the once-declared-it's-visible-to-the-right rule
japhb $ ~/svk/pugs/pugs step075-nogfx.p6 ***
Unexpected ","
expecting "::" or signature value
Variable "&action_quit" requires predeclaration or explicit package name
at step075-nogfx.p6 line 110, column 40
dduncan so is it not feasible that Perl 6 could have something that brings attention to it in similar ways, aside from just the language itself being good?
thoughtpolice i can't see the future, but django will probably work pretty well for python. also, seaside is working to smalltalk's advantage (i realize I'm going on about web frameworks here, but whatever :p)
japhb And I didn't get that yesterday
audreyt japhb: well, is &action_quit is in scope?
pugs just got the ability to check for stricture in compile time :) 22:18
japhb audreyt: yep, just farther down in the file. Do I need to stub at top of file now?
TimToady audreyt: in any case, the $x in the sub would certainly refer to the declared $x
audreyt japhb: spec is not terribly clear on that
TimToady assuming we don't come up with a good reason for breaking that consistency
audreyt from the current reading, only 22:19
action_quit(); ...; sub action_quit {...}
can compile correctly # provisional call
but
&action_quit ... ; sub action_quit {...}
thoughtpolice dduncan: library support, like I said, is extremely critical, but that's already covered. cpan is a good enough reason to consider perl for some of your tasks if you ask me.
audreyt should fail the same as as "$x ...; my $x" fails
thoughtpolice it may not be *the* reason you choose perl, but it would have a good factor in that decision I would assume.
japhb audreyt: AH, interesting!
audreyt but I'm not sure if spec has changed in the past two months
PerlJam I agree that some form of documentation (Camel,Llama,etc.) are needed, but I think Perl 6 doesn't need a "killer app" as much as it needs to be put into production (even if it's just pugs) in a visible and "eating our own dog food" way.
audreyt so a sanity check from TimToady would be appreciated :) 22:20
TimToady hasn't change in that respect
dduncan this could just be hubris, but I like to think that my database project will shake up the database world in general, and if so, provide a killer app for Perl since it is written in that
TimToady *changed
audreyt japhb: k, so predeclare.
dduncan still, Perl 6 should likely become its own killer app before that happens
Tene thoughtpolice: it *might* have sent youa commit bit.
thoughtpolice Tene: yeah I got it
Tene yay
audreyt Tene++
thoughtpolice :) 22:21
22:21 DrSlump joined
DrSlump hi 22:21
japhb audreyt: OK, thanks.
Does predeclare have to match signature, or can I just say 'method action_quit {...}' at the top?
audreyt japhb: we're used to the p5 way where all \& resolution is runtime and package scoped
and all other sigils are compile time and lexical
but in p6 everything is lexical if it looks lexical 22:22
japhb audreyt: yes, and that's a source of guaranteed perf loss, isn't it?
(I mean in P5 case)
audreyt oh yes.
japhb: another way is saying &ThisPackage::action_quit
explicitly
japhb audreyt: but wouldn't that make my class hard to inherit from?
Tene DrSlump: Hi! 22:23
audreyt japhb: uh, I think you really want
PerlJam japhb: nah, you just override &ThisPackage::action_quit from your subclasses when you need to ;-)
audreyt { self.action_quit }
or some such, instead of &action_quit
if you care about inheritance
{ $.action_quit }
means the same thing
thoughtpolice oi, Tene, now I'm sort of seeing why it might have taken so long.
Tene thoughtpolice: heh. Yeah, there are load problems on that box these days. 22:24
TimToady currently 13
thoughtpolice it's fine
diakopter TimToady: earlier you mentioned rw subs as sigil-free vars... how would one effect a pragma to allow one to declare such subs as in: Dim BareWord or var BareWord
japhb audreyt: well, methods from that table later get called using '$action.(self: $command, |@args);'
audreyt sees the "Dim" word and shudders
japhb s/methods from/methods looked up from/
thoughtpolice also, I should mention my svn up isn't working, and svn.pugscode.org/pugs is giving me a 403
i'm pretty sure that's not natural. 22:25
audreyt japhb: ah. in that case... just use strings.
TimToady presumably one would have to hook into the recognizer for unrecognized words in such declarations.
audreyt ?eval my $x = 'sqrt'; 123.$x
22:25 evalbot_r16421 is now known as evalbot_r16443
evalbot_r16443 11.090536506409418 22:25
TimToady and assume type prefixes will always be predeclared
audreyt and then invoke as
TimToady my Foo Bar baz;
audreyt self.$action($command, |@args)
TimToady is illegal unless Foo and Bar are predeclared 22:26
audreyt where $action is a simple Str
TimToady alternately do an inside-out shellish trick where declaring $baz also creates the bare func
japhb audreyt: but wouldn't that be slower than having $action be a Routine? 22:27
TimToady arguably already happens if you declare "my Foo Bar &baz;"
except that it deoesn't
audreyt japhb: but if $action is a Routine it's not upto inheritance anyway.
i.e. even if there's a subclass, you still run parent class's &action_quit
japhb (Note: I'm trying to learn the most performant way to do this ...)
audreyt even if subclass overrides ^action_quit 22:28
er &action_quit
TimToady sounds like you want to curry on the invocant, perhaps
japhb audreyt: ah! right. Duh.
audreyt for (I hope obvious) reasons...
japhb audreyt: yep, just needed the clue by four
audreyt :D
japhb OK, so there are really two requirements here:
1. My command lookup needs to be secure in the sense that noone can send me a requested action that is not in my list of safe actions. 22:29
2. It needs to be as fast as possible, as I'll be processing a LOT of them 22:30
audreyt but you want inheritance.
japhb Oh right, ("comfy chair!"):
audreyt so really, a by-name lookup checked against a junction (or a set, or a map, or a regex) seems like the only way out 22:31
facier if you obtain that check using a method so your subclass can override the check
*fancier
TimToady or self.$(%isok{$action}//fail)
amnesiac waves 22:32
audreyt right.
TimToady but if you know the allowed actions already, they're presumably defined methods
PerlJam introspection to the rescue!
japhb 3. And my method has to allow an inheriting class to override an action 22:33
audreyt: It would certainly be nice for an inheriting class to be able to extend the action list. But for now at least that's just a bonus. Override is a necessity.
TimToady what's the matter with self.$action(...)
svnbot6 r16448 | audreyt++ | * Allow params to refer to themselves in their initializing
r16448 | audreyt++ | expressions, for example:
r16448 | audreyt++ | sub f ($x = sub { $x }) { ... }
r16448 | audreyt++ | my $x = sub { $x }
audreyt TimToady: I advised a ($action ~~ any(< ok1 ok2 ok3 ok4 >)) and then a $.$action() 22:34
TimToady but then you can't add actions in a subclass
audreyt eq instead of ~~, anyway
and yes, the list would be obtained from a method, presumably
PerlJam Seems a simple naming convention would do.
TimToady self."ACTION_$action" is supposed to work 22:35
japhb PerlJam++ # The Lazy solution
PerlJam japhb: hey, perl taught me all about laziness, so TimToady++ :-) 22:36
japhb OK, either audreyt's latest or PerlJam/TimToady's latest will be my fallback position.
Now on to the premature optimization phase:
TimToady in this case, when I say "is supposed to work", I mean "is specced", not "is implemented yet" 22:38
audreyt I hear that premature evil is the root of all optimizations...
japhb If I know that no new class will get in the way of things at *runtime*, can I improve on this? Or does the "compilation units are separate" rule get in the way of doing the optimization that I know at program compile time the entire class heirarchy surrounding this module?
s/optimization that/optimizations based on knowing that/ 22:39
TimToady that's what all the verbiage about "the application as a whole gets to decide which classes can be finalized" is abpout
PerlJam japhb: well, now you're back to self.$action (given that you know new classes will "get in the way")
audreyt sorry, mind too fried to parse english. back to hacking a bit and then sleep...
PerlJam guten Nacht audreyt :-)
japhb audreyt: sleep well 22:40
audreyt 'nite :) &
thoughtpolice later
dduncan yes, that
amnesiac audreyt, so you're saving energy to parse Perl6 only?
clever.
TimToady see S12:1650
japhb Thank $deity for moritz++'s logbot 22:41
22:41 perlDreamer joined
thoughtpolice hm, pugs is available as a ghc lib? 22:42
learn something new every day
japhb TimToady: Ah, nice.
So what syntax could I use in my class to allow the top-level program to optimize things if it wants to? The lookup table using { $.action_foo } blocks? 22:43
dduncan so I guess 16448 is audrey's last commit before sleep, then? 22:44
in which case, I'll start a smoke
TimToady the point is that the top-level program is always allowed to decide
she said she was maybe going to do some sleephacking first 22:45
dduncan so not the last then?
fyi, it takes 2 hours for me to do a smoke, so I prefer to do so at optimal times
japhb TimToady: I understand that ... I meant, "How do I build my dispatcher such that I don't make it useless for the top-level program to decide to optimize?"
audreyt dduncan: I can make it the last, so let's call it the last :) 22:46
dduncan okay
japhb TimToady: or better "What construct do I use that is even amenable to optimization?"
TimToady that would depend on the optimizer, and whether it knows how to do something with self.$action 22:47
japhb TimToady: hmmmm
TimToady but all you have to do from the global standpoint is refrain from marking classes as open or non-final unnecessarily 22:48
using a construct like self.$action will not mark any classes
japhb decides to let Lazy take over from Impatient for now, and leave this to when an implementation actually has on optimizer
nodnod
TimToady deriving from a class markes it as non-final automatically
japhb right 22:49
TimToady s:2nd/e//
if you want to add classes at run-time, then you might be forced to mark a base class as non-final explicitly
japhb makes sense
TimToady I believe "basal" is the word currently used for that
but you'd only have to mark leaf nodes that way 22:50
japhb gotcha
TimToady dduncan: why does it matter how much CPU time you burn provisionally? If you see a new patch, just restart the build... 22:53
dduncan it's not a big deal 22:56
perlDreamer Is anyone else seeing build errors in a Prelude file?
lambdabot perlDreamer: You have 1 new message. '/msg lambdabot @messages' to read it.
perlDreamer @message
lambdabot Maybe you meant: messages messages?
perlDreamer @messages
lambdabot agentzh said 9h 22m 19s ago: well, that entry was created in the last summer when i created the t/closure_traits directory and several .t files in it. I'm glad to see many new tests have been added
there. feel free to remove the task if you think it's already done :) i'm lacking the tuits right now.
moritz perlDreamer: I just compiled successfully
perlDreamer What's the channel pasting policy? 22:57
avar to not have a policy about it
:)
but you can use the topic thingy for anything big-ish
moritz sial.org/pbot/perl6
lambdabot Title: sial.org Pastebot - pasteling
dduncan now starting smoke 22:58
pasteling "perlDreamer" at 204.17.142.54 pasted "pugs error during build of Prelude file" (13 lines, 689B) at sial.org/pbot/24975
perlDreamer thanks moritz
TimToady ignore that, unless you're trying to use the JS backend 22:59
it's undergone considerable bitrot in the last year 23:00
perlDreamer cool, thanks, TimToady 23:01
Yaakov Hello, Larry.
Hope you are wel.
l
TimToady I'm doing pretty good.
how are you?
mr_ank perl =~ /(ways todo it)+/ 23:12
perlDreamer When do the test-linked specs on perlcabal.org get updated? 23:19
moritz perlDreamer: I don't know when, just how often... 23:21
perlDreamer: it's once an hour, but the test results only once a day
perlDreamer thanks, moritz 23:23
moritz perlDreamer: thanks 23:24
japhb What is the current way to get from a string containing a method name to the Method itself? self.can('foo') doesn't seem to exist
avar .HOW? 23:30
svnbot6 r16449 | thoughtpolice++ | added name to AUTHORS
avar thoughtpolice: yay:) 23:31
moritz thoughtpolice++
are named arguments generally broken atm in pugs?
thoughtpolice :)
i'm so happy. 23:32
unfortunately though for the time being I have to jet
luckily school's over next week so I have about 3 months to contribute all I can.
later
23:38 REPLeffe1t joined
svnbot6 r16450 | moritz++ | Perl6::Value::List: fixed variable name that caused compiling error 23:38
23:42 justatheory joined
svnbot6 r16451 | moritz++ | removed :todo from succeeding tests in var/my.t 23:42
23:44 Southen_ joined
Jmax \/win 41 23:55
whoops!