pugs.blogs.com/dist/Perl6-Pugs-6.2.13.tar.gz released! | run.pugscode.org | spec.pugscode.org | paste: sial.org/pbot/perl6 | pugs.blogs.com Set by audreyt on 17 October 2006. |
|||
00:10
thepler joined
00:34
SCalimlim joined
00:50
ferreira joined
01:12
hexmode joined
01:20
mjk joined
01:21
mauke joined
01:24
f0rth joined
01:25
seano joined
01:29
jarich left
01:39
mauke_ joined
01:45
jferrero joined
01:54
justatheory joined,
nothingmuch joined
01:58
weinig joined
02:03
nipotaway is now known as nipotan
02:18
mako132_ joined
02:37
weinig is now known as weinig|zZz
02:49
Pomin joined
03:06
araujo joined
03:36
nusgnaf joined
03:59
xern_ joined
04:41
penk joined
|
|||
clkao | audreyt: william.cswiz.org/blog/archives/200...ng-events/ # sadly, no mention to perl at all | 04:59 | |
lambdabot | Title: William’s Blog » Blog Archive » 幾則關於動態型別語言的事件, tinyurl.com/yfg7z7 | ||
05:15
BooK_ joined
05:25
[particle] joined
05:29
SubStack joined
06:34
Captain_Fourier left
06:38
iblechbot joined
06:47
marmic joined
|
|||
Debolaz | Hmm, why was it decided that perl 6 should be more sensitive to whitespace? | 07:02 | |
07:19
ditto joined
07:31
pmurias joined
|
|||
gugod | if I print a scalar ref returned from perl5, it gives me a SCALAR(0x20b9d04). How to let it print the referent ? | 08:00 | |
lambdabot | gugod: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
08:05
clyde joined
08:08
araujo joined
|
|||
dmq | if $foo is a scalar reference then you dereference it by saying $$foo | 08:13 | |
or by saying ${$foo} | |||
08:15
elmex joined
|
|||
gugod | right, I though so, but pugs doesn't seem to know that | 08:17 | |
my $a = eval('\42', :lang<perl5>); say $a,$a | |||
say $a, $$a | |||
theri output are the same | 08:18 | ||
08:22
drrho joined,
kensanata joined
|
|||
dmq | er, and what happens if you eval '\\42' and not '\42'? | 08:33 | |
does pugs have the same string semantics as perl5? is '\42' the same as '\\42' ? | 08:34 | ||
gugod | in pugs yes, '\\42' eq '\42' is true | 08:45 | |
08:45
clsung joined
08:47
ruoso joined
08:54
ozayam joined
09:04
dakkar joined
09:21
jferrero joined
09:37
buetow joined
|
|||
drrho is away: watching kommissar Rex | 09:42 | ||
10:04
TimToady joined
10:14
ditto joined
|
|||
TimToady | @tell Debolaz whitespace is discussed at S02:227 or thereabouts. The short answer is consistent parsing of postfix operators, both known and unknown. | 10:17 | |
lambdabot | Consider it noted. | ||
TimToady | zzz & | 10:18 | |
10:20
andara joined
10:31
nekokak joined
10:53
polettix joined
11:00
lichtkind joined,
Odin-LAP joined
|
|||
lichtkind | audreyt will there be future version of perl6::bible or you looking for new maintainer? | 11:01 | |
audreyt | lichtkind: docs/Perl6/ should be packed up and released to cpan | 11:08 | |
perl6::bible should disappear from cpan once Perl6-Doc/ is uplaoded | |||
lichtkind: are you willing to clean it up a bit, make sure p6doc is working, and upload? | |||
lichtkind | audreyt willing yes but currently dont have time to do so, currently have several project and yesterday just began to write again on tutorial adding the new stuff with captures and some smatmatch additions | 11:09 | |
audreyt | do you have a CPAN ID? curiously I can't seem to find you in AUTHORS... | ||
oh of course you do. it's just it's not in AUTHORS | 11:10 | ||
lichtkind | audreyt of course lichtkind | ||
audreyt there is currently a new attempt for unificated translated perldoc wich i also interested in + the new german perlcast + i never did author anything on cpan + my new soduko game written in wxperl but beside of that it attracts me :) | 11:12 | ||
audreyt | ok, you are now comaint of Perl6::Doc | 11:13 | |
svnbot6 | r14530 | audreyt++ | * Add LICHTKIND to AUTHORS | ||
audreyt | please make release whenever you feel lik :) | ||
11:13
ditto left
11:14
xinming_ joined
|
|||
lichtkind | audreyt you mean perl6::Doc :) | 11:16 | |
audreyt | well, I think I mean Perl6::Doc | ||
lichtkind | haha | 11:17 | |
audreyt sorry that i dindt mad much last weeks i had to help out family | 11:19 | ||
audreyt | that's just fine :) I didn't hack on Pugs as much in the last 3 days either... | 11:20 | |
but we did make comet (server-pushed event with publish/subscription) on Jifty work happily | 11:21 | ||
and that's all thanks to Perl6 for being a great prototype language! | |||
(I prototyped in Pugs and then hand-ported to perl5. once v6.pm has better "idiomatic output" the handport stage can go away) | |||
sleep a bit more, bbiab... | 11:23 | ||
11:27
fglock joined
|
|||
lichtkind | good night audrey | 11:27 | |
11:29
Psyche^ joined
11:46
Psyche^ is now known as Patterner
11:47
nipotan is now known as nipotaway
11:56
kensanata joined
12:03
Limbic_Region joined
12:13
pnu joined
12:20
pnu joined
12:26
pnu joined
12:29
nusgnaf joined
12:32
pnu joined
12:51
thepler joined
12:56
fglock joined
|
|||
nothingmuch | audreyt: ping | 13:01 | |
lambdabot | nothingmuch: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
nothingmuch | @moosages | ||
lambdabot | cmarcelo said 1d 13h 6m 38s ago: just commited more bits on moh, take a look to see where I'm having trouble understanding MO. I'll be back in about 2hr. | ||
nothingmuch | ah right | ||
@seen cmarcelo | |||
lambdabot | I saw cmarcelo leaving #perl6 1d 3h 2m 20s ago, and . | ||
nothingmuch | bleh ;-) | ||
13:02
iblechbot joined
13:12
Limbic_Region joined
13:20
polettix is now known as bond
13:22
bond is now known as polettix
13:42
chris2 joined
13:59
rlb3 joined
14:02
ruoso joined,
cmarcelo joined
|
|||
cmarcelo | nothingmuch: ping | 14:07 | |
nothingmuch | cmarcelo: ah! | ||
finally we're awake at the same time | |||
ik wanted to talk with you about Class, IORefs/STrefs etc | 14:08 | ||
cmarcelo | ok :) | 14:11 | |
nothingmuch | do you know [of] purely functional object oriented programming? | 14:12 | |
www.ccs.neu.edu/home/matthias/Prese...op2004.pdf # short and sweet | 14:13 | ||
lambdabot | tinyurl.com/y42fgq | ||
nothingmuch | essentially MO is a functional OO system | ||
meta classes with IORefs etc should be inverted before computation | |||
to keep the meta code simple | |||
inverted == traverse the meta class object tree, and map all all fields so that they are IORef x -> IO x | 14:14 | ||
and then return back an IO MetaclassTree | |||
instead of a IOMetaclassTree or something like that | 14:15 | ||
so, to KISS - simply ignore the need for IORefs right now, we'll glue them in like this when we actually need a rewritable meta model in pugsland | |||
maybe we can use functional reactive programming techniques to let the meta model recomputation happen "automatically" | 14:16 | ||
cmarcelo | hmm.. going to read about Fun OO then :).. about IORef I think I was worried about designing for this rewritable model. but agree on keep it simple. | 14:22 | |
nothingmuch | we don't really need to | 14:23 | |
we can just naively recompute it for starters | |||
the whole thing | |||
and worry about optimizing later | 14:24 | ||
the reason i don't wnat to be too clever up front is the whole target/origin schism | |||
sub objects are collected in the first pass | |||
and then compiled | |||
any related meta object (presumably the whole tree) changing might invalidate some seemingly unrelated computations | 14:25 | ||
for example if some class overrides the 'id' method | |||
first time ever | |||
and 'id' is inherited from the Object class | |||
then all the dispatch code that was previously allowed to assume 'id' can be statically dispatched must now be rewritten to make it a virtual dispatch | |||
it's not that we need to statically dispatch at all (we can make it all virtual dispatch) | 14:26 | ||
but MO is designed to allow static dispatch in it's protocol, and the dependency graph for revalidating that is just too large and too implementation specific to handle it within MO itself | |||
(it's the compiler toolchain that's reusing MO that's responsible for triggerring recomputations) | 14:27 | ||
cmarcelo | also, I'm a little bit blind on some concepts of MOP. specially applied to our case. for example, a method definition would be a piece of AST or p6 code or backend code? will it be desugared by MO, e.g., will replace method calls with proper MO calls? | ||
nothingmuch | ah | ||
this is just what i'm dealing with npow | |||
let me take my dog for a walk | |||
while you read up on FO | |||
i'll be back in 20-30 mins | |||
and we can discuss the emitter | 14:28 | ||
maybe you can help me out too =) | |||
the emitter is not as scary as it sounds though ;-) | |||
sounds good? | |||
cmarcelo | hmm.. lets do it in ~ 1h30 from now, my lunch time begins around 20-30 mins :o) | 14:29 | |
nothingmuch | okay | 14:30 | |
deal | |||
18:00 my time | |||
oh goody | |||
nothingmuch forgot he promised to help someone restore her disk | |||
i would have had to disappeaer in about 30 minutes anyway ;-) | |||
ttyl | |||
cmarcelo | ok | 14:31 | |
14:35
lichtkind joined
14:38
hexmode joined
14:46
weinig|zZz is now known as weinig,
jabbot joined
14:54
[particle] joined
14:58
pfenwick joined
15:01
gaal joined
15:21
rindolf joined
|
|||
rindolf | Hi all. | 15:21 | |
PerlJam | hello rindolf :-) | 15:28 | |
What brings you to #perl6 today? | |||
nothingmuch | www.haskell.org/yampa/AFPLectureNotes.pdf | 15:30 | |
great article | |||
lambdabot | tinyurl.com/y5xjat | ||
nothingmuch | cmarcelo: esp. for you =) | ||
cmarcelo | nothingmuch: i'm back | 15:37 | |
nothingmuch | yo | 15:38 | |
my mum's colleague (that needs rescuing) is late | |||
so we have some time | |||
rindolf | PerlJam: nothing in particular. | 15:40 | |
miyagawa_: here? | |||
I read miyagawa_'s presentation slides about Plagger now. | 15:41 | ||
miyagawa_ | hi | ||
rindolf: plagger.org/trac/wiki/PlaggerPresentations | |||
lambdabot | Title: PlaggerPresentations - Plagger - Trac, tinyurl.com/y4nnwd | ||
rindolf | Hi miyagawa_ | 15:42 | |
miyagawa_: I read the one you gave to YAPC::EU::2006 | |||
miyagawa_ | yep | ||
cmarcelo | nothingmuch: (did you read fglock questyions about MO on logs yesterday/daybefore?) | 15:43 | |
nothingmuch | nope | ||
i didn't see any | |||
maybe i forgot to set /away | |||
can you summarize shortly? or should I go log digging? | |||
15:44
justatheory joined
|
|||
cmarcelo | nothingmuch: colabti.de/irclogger/irclogger_log/...l=130#l273 | 15:44 | |
lambdabot | Title: #perl6 2006-10-24,Tue, tinyurl.com/yev396 | ||
nothingmuch | ah | ||
mo is orthogonal to ASTs | 15:45 | ||
Method::Compiled == the closest thing to a Code there is | |||
but it has no iomplications on runtime semantics | |||
MO will at best provide the runtime with a responder interface full of these | |||
the Method::* classes are responsible for generating/fetching them | |||
there are two possibilities: | |||
MO is just a pass through -- the input is predefined (Method::Simple carries around a 'definition' attr, which is just a Method::Compiled, presumably parsed from the class definition. This is an AST) | 15:46 | ||
MO is a generator -- constructors and accessors must be generated | |||
the latter is the problem i'm currently working on | |||
as for speed - MO is potentially compile time only | 15:47 | ||
and it gives the various meta objects enough data at the right time to violate encapsulation safely | 15:48 | ||
15:48
buetow joined
|
|||
nothingmuch | for example, type unboxing, accessor inlining, etc | 15:48 | |
fglock: please backlog =) | 15:49 | ||
as for serialzing - the idea is that the meta object is compiled down tto responder interfaces | |||
and then the responder interfaces are stripped of extra data | |||
(like the meta class that generated them) | |||
and these are cache | |||
d | |||
probably serialized as a .pm | |||
using Data::Dump::Streamer | |||
cmarcelo | but, the AST fragment inside M::C will probably call some method of something, so it will call MO again for resolving it. So isnt MO needed runtime (if we dont want to mess with AST fragments) ? | ||
nothingmuch | M::C in this context? | 15:50 | |
cmarcelo | method::compiled | ||
nothingmuch | ah | ||
there's two approaches | |||
one is to use the "native" dispatch vocabulary | |||
for example, compiling a MO::ResponderInterface::MethodTable into a perl 5 symbol table | |||
and uspporing only Invocation::Method | 15:51 | ||
using the -> | |||
that subset of mo's meta lingo is isomorphic with perl's (With some additional hacks... more on that in a bit) | |||
this is compiled MO | |||
interpreted MO is creating invocations etc at runti e | |||
and using the native dispatch vocabulary to talk with the meta objects only | 15:52 | ||
in a purely interpreted MO environment we can't self host | |||
currently i have a purely interpreted environment in perl 5 | |||
i'm working on a compiled environment in perl 5 | |||
does that clarify? | 15:53 | ||
cmarcelo | a little. the idea is, having a OO program, parse it, create MO-land structures, compile it (emit) into p5 code and use this code. (thinking only about Compiled MO).. right? | 15:56 | |
nothingmuch: in pugs, then, the compiled mo(h) would emit AST types? | 16:09 | ||
fglock | nothingmuch: backlogging | ||
16:13
ozayam joined
16:18
andara left
16:19
cjeris joined
|
|||
nothingmuch | cmarcelo: yes | 16:19 | |
cmarcelo: i think that moh should not be pugs specific | |||
it should be more like a library | 16:20 | ||
that pugs can load up | |||
and say give it a meta class where it creates e.g. Method::Pugs-ish that is a hs data type that has an instance of the type class for mo methods | |||
then MO does it's computations | |||
and returns responder interfaces | |||
with the Method::Pugs-ish redirected to the right places | 16:21 | ||
16:21
dmq joined
|
|||
nothingmuch | sorry, phone | 16:23 | |
anyway, for pugs it's now simpler to use the results, which are flattenned | |||
without having to implement a pugs meta model | |||
PerlJam | Are we going to have LARRY and CURLY to go along with MO? | 16:24 | |
Well, I guess we already have Larry. | |||
nothingmuch | no, h | 16:25 | |
that's too much to type =) | |||
okay, i have to go | 16:26 | ||
hd stuff | |||
cmarcelo | nothingmuch: ok. some concepts are clearer now.. :) | 16:27 | |
nothingmuch: btw, if you have a good pdf/link on MOP (unfortunately I don't have access to the art of mop book), please tell me.. | 16:28 | ||
16:32
amnesiac joined
16:33
weinig joined
16:36
nusgnaf left
16:37
araujo joined
|
|||
svnbot6 | r14531 | putter++ | Regexp/Engine/Reentrant - some very minor tweaks. | 16:42 | |
r14531 | putter++ | Development on hold pending exploration of Regexp::Parser::ReentrantEngine. | |||
16:43
fglock joined
16:44
fglock joined
|
|||
svnbot6 | r14532 | putter++ | regexp_engine_cruft/regexp_engine_factory.pl - removed some very dead code to make file more readable. | 16:45 | |
16:52
putter joined
17:01
justatheory joined
17:13
fglock joined
|
|||
putter | fglock: ping? | 17:15 | |
svnbot6 | r14533 | putter++ | Regexp-Parser-ReentrantEngine - created. A reentrant Perl 5 regexp engine. | ||
r14533 | putter++ | This is an initial cleanup and module-ization of February's regexp engine spike. | |||
r14533 | putter++ | Undocumented but simple api at bottom of ReentrantEngine.pm. Good coverage (23/961 of re_tests fail). Ok speed (a few seconds for re_tests). Untapped simple optimizations. Match class now non-spec. Capture code needs cleanup. Assorted bugs and needed cleanup remain. | |||
r14533 | putter++ | My own objective is to use this module only in passing, obsoleting it RSN, as soon as I get a free day, by moving it off Regexp::Parser. | |||
putter | & | 17:17 | |
17:20
seano joined
|
|||
Debolaz | Is YAML available for perl6/pugs? | 17:30 | |
lambdabot | Debolaz: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
nothingmuch | cmarcelo: i haven't read the art of mop either... uh... my best suggestion is to get to know Class::MOP well | ||
Debolaz: eval( :lang<yaml> ) | 17:31 | ||
?eval eval( "---\nfoo: bar\ngorch: [ 1, 2 ]\n", :lang<yaml> ) | |||
evalbot_r14533 | {("foo" => "bar"), ("gorch" => ["1", "2"])} | ||
nothingmuch | ?eval {foo => bar}.yaml | ||
evalbot_r14533 | Error: No compatible subroutine found: "&bar" | ||
nothingmuch | ?eval {foo => "bar"}.yaml | ||
evalbot_r14533 | "--- \n? foo\n: bar\n\n" | ||
Debolaz | Nifty. | 17:32 | |
nothingmuch | cmarcelo: FWIW, MOP is implemented as a layer over MO | ||
fglock | putter: pong | 17:35 | |
18:00
FOAD joined
18:38
bernhard joined
|
|||
TreyHarris | nothingmuch: remind me, please, where the MO docs you've written are? | 18:39 | |
18:44
the_dormant_ joined
|
|||
PerlJam | Is there a log of this channel somewhere? | 18:51 | |
I seem to recall that there is but I can't remember everything :) | |||
nothingmuch | nothingmuch.woobling.org/MO/lib/MO/Overview.pod | 18:54 | |
lambdabot | tinyurl.com/law9f | ||
TreyHarris | PerlJam: there is, and I searched it, but I typoed the date range and didn't come up with anything for 'MO'. i've had trouble with the logger search before so i thought it was just b0rken again. sorry | 18:56 | |
nothingmuch: thanks! | |||
19:02
kjw joined,
robotron joined
|
|||
robotron | hi, im trying to compile pugs on a dual p3 450mhz with 128mb ram | 19:03 | |
after "perl Makefile.PL" it seems to stuck in "Linking ./Setup ..." | |||
TimToady | how fast is your disk? you'll be thrashing it very heavily... | ||
robotron | cpu-usage is 0 | ||
TimToady | ghc can bring a 512MB system to a near halt. | 19:04 | |
robotron | hm, maybe 128mb is to weak | 19:05 | |
ld allocated 90% of memory | |||
wilx | Weak is too weak. | ||
TimToady | what's its virtual size compared to its resident set? | ||
nothingmuch | TreyHarris: sure thing | 19:06 | |
robotron | johbar 29362 1.0 70.0 116796 88524 pts/2 D+ 20:50 0:10 /usr/bin/ld | 19:07 | |
nothingmuch | TimToady: is there any value in "proposing" MO as the underlying metamodel for perl 6? | 19:08 | |
eviltwin_b | state D. somehoe I'm not surprised | ||
TimToady | nothingmuch: well, if it ends up the only one sitting behind .HOW, then it would be de facto the underlying metamodel. But Perl 6 is itself agnostic about what goes behind .HOW. | 19:10 | |
nothingmuch | why is that? | ||
perl 6 comes with a notion of "a class", etc | |||
TimToady | perl 6 comes with the notation of a prototype, but the classiness is hidden behind .HOW | 19:11 | |
robotron | eviltwin_b: i dont know what "D" means, but, what do u think? how long it will take to build pugs? | ||
nothingmuch would expect it to be the other way around ;-) | |||
TimToady | certainly when you say class {...} you're depending on something standard to be there | ||
robotron | roundabout | ||
eviltwin_b | D = disk wait | ||
nothingmuch | meta model api != meta model impl | 19:12 | |
eviltwin_b | the system is spending more time shuffling disk than doing actual work. (I'd suspect it's mostly swapping) | ||
robotron | ah yes, maybe | ||
[particle] | i don't think perl 6 hides it's classiness well enough | ||
robotron | i need more ram :) | ||
nothingmuch | there are also issues of e.g. role composition edge cases... are they defined as part of the language? | ||
[particle]: think of it as a default | 19:13 | ||
nobody knows it's not really classy | |||
till they need to do something nonclassy | |||
[particle] | perl 5 on the other hand... | ||
TimToady | robotron: let's put it this way, it'd probably be faster to go out and get more ram, put it in, and restart, than to wait for it to finish. | ||
nothingmuch | robotron: the best intermediate solution is probably to ask Juerd for an account on feather | ||
TimToady: i was ambiguous before, i realized now | 19:15 | ||
MO comes with two things | |||
one is not really perl 6 related | |||
but is usable in a perl 6 toolchain | |||
(the runtime model, etc) | |||
the other [much more interesting] component [for perl 6] is a reference implementation of the class behaviors | 19:16 | ||
this targets the first component, and models the ooish things in S* | |||
it's ~~ Class::MOP | |||
well, not true... it's 1/2 of Class::MOP | 19:17 | ||
Class::MOP also does part 1, but might stop doing that in the future ;-) | |||
TimToady | I guess I'm not sure what you mean by "part of the language" | 19:18 | |
nothingmuch | my point is, can class Foo { ... } result in two different behaviors (even subtly different) of a Foo object, in a perl 6 runtime? | ||
TimToady | depends on whether the metaclass that gets assigned to every .HOW at construction time allows for it. | ||
nothingmuch | where ... is any valid class definition in perl 6 | 19:19 | |
without an explicit meta class declaration in the source code defining Foo | |||
e.g. by the compiler | |||
to rephrase technically, the metaclass role that all metaclasses must adhere to | |||
TimToady | in general I think people will use different declarators if they want a different metaclass, syntactically speaking. | 19:20 | |
we don't have to shove everything through the "class" keyword | |||
just as we have a "role" keyword | |||
nothingmuch | *nod | ||
when i said class i meant all of these, tbh | |||
nothingmuch tries a third approach | 19:21 | ||
in "the" perl 6 test suite | |||
will there be meta class unit testss | |||
that a metaclass author can run their metaclass against? | |||
TimToady | that's...a good question | 19:22 | |
nothingmuch | ... what i meant to propose, in that sense, is the document that specifies what behaviors that test suite should check for | ||
TimToady | it's more of a metametaclass question, if we're talking about plugglable metaclasses. | 19:23 | |
nothingmuch | metameta is my favourute prefix lately | 19:24 | |
TimToady | I don't pretend to be an expert on mops, but I would like there to be a good default, with the ability to swap out the default. The syntax/semantics/api that surrounds that is certainly still negotiable, as long as it degenerates to something like what we currently have in the "simple" cases. | ||
PerlJam almost mistakes us for a culture of doubling for emphasis ;) | |||
nothingmuch | i want that default swappable too... hence mo =) | 19:25 | |
thge notioin of wtf is a method or invocant is also pluggable | |||
part 1 of MO is precisely the part that it simplifies down to | |||
TimToady | sure, that's why I've notionally tried to sweep everything under the abstract .HOW carpet. | 19:26 | |
nothingmuch | =) | ||
i think the answer is "not yet" ;-) | |||
TimToady | what we want to avoid at all costs is to make mere mortals gaze upon the elder gods... | ||
nothingmuch | the reason i asked is that this will let me talk about crap that MO let me do as if Perl 6 can let me do them | ||
who fills in the roles of mere mortals and elder gods? | 19:27 | ||
are we the mere mortals? | |||
or future perl 6 users? | |||
TimToady | it is my job to stand in for the future less-than-brilliant users of Perl 6. You don't qualify in the less-than-brilliant department, I'm afraid. :) | 19:28 | |
nothingmuch | elder gods == clos? | 19:29 | |
TimToady | cthulhu and friends. things with metameta-tenacles. | 19:31 | |
nothingmuch decides that TimToady is intentionally confusing him and goes to the shower instead ;-) | 19:32 | ||
since you mentioned defacto earlier, i guess it's fair enough to say that what MO can do Pelr 6 can do | |||
oh btw, i have a draft of role composable/inheritable attribute grammars | 19:33 | ||
which IMHO give much more value than "traditional' ones | |||
TimToady | cool | ||
nothingmuch | do you guys have tree processing sugar yet? | ||
because what I dealt with was mostly semantics | |||
TimToady | mostly, we have sigs/rules inside sigs/rules | 19:34 | |
but they aren't reversible quite, I don't think... | |||
nothingmuch | ah | ||
the impl i have discovers parents by introspecting objects on the dynamic stack | 19:35 | ||
TimToady | but we can certainly do recursive pattern matching sigwise. | ||
nothingmuch | and lazily evaluates / memoizes the attrs as method calls in a private namespace | ||
they are cached per AG instance | |||
so the aspect of sujgar for inheriting an attr to a specific child | 19:36 | ||
in some perl 6 ish collection type is sidestepped | |||
at a runtime cost and overall hackishness | |||
in practice there are benefits though | |||
in that child/parent relationships are not very strict | 19:37 | ||
but anymoose, shower time | |||
hopefully the ideas are compatible | |||
TimToady | I would like to see the tree rewriting abilities of Perl 6 to be sufficient to generalize into, say, parrot-land so they don't have to define their own tree-rewriting language | ||
lunchtime for me... | |||
nothingmuch | what i drew up is more traditional AGs | ||
which are simply in the host language | 19:38 | ||
but the "declarative" sugar becomes imperative | |||
which is easier to deal with but harder to validate | |||
TimToady | luqui did something like that a year or so ago... | ||
nothingmuch | yeah | ||
the attempt is partly based on his code | |||
but the evaluation strategy is more relaxed | |||
and there's composition | |||
TimToady | then went off into his "theories", which I'd still like to capture some notions from. | ||
but maybe not for 6.0, unless they're on the critical path. | 19:39 | ||
PerlJam | "tree-rewriting" sounds like TGE somewhat | ||
nothingmuch | TGE == AGs + sugar in my brain | ||
sugar for moving bits around | |||
unless it's only value rewriting | |||
TimToady | @Larry called it tree-rewriting before TGE was started | ||
lambdabot | Maybe you meant: arr yarr | ||
nothingmuch | (the tree has the same shape) | ||
TimToady | but reversibility is important for some uses | 19:40 | |
nothingmuch | err, i meant tree rewriting sounds like sugar over attribute grammar semantics | ||
aye | |||
"once a rocket goes up who cares if iti can be brought down with a full fuel tank, that's not my department" ;-) | 19:41 | ||
TimToady | and I realized when working on P5 madprops that reversibility is precisely what I dropped on the floor in the original design. | ||
when you lie to yourself, you darn well better remember that you're lying to yourself... | 19:42 | ||
nothingmuch had that sometimes | |||
lying to others | |||
and believing it myself | |||
so that it had become lying to myself and forgetting unintentionally | |||
mostly related to excuses/alibies at school | |||
TimToady | it's an easy trap, and we all fall into it. | 19:43 | |
nothingmuch tries to lie to himself about being clean, but it doesn't work ;-) | |||
TimToady | that's why you want friends that will yell at you occasionally. | ||
nothingmuch | =) | ||
stevan__: you hear that? | 19:44 | ||
sorry, obscure ref | |||
anymoose, really shower & | |||
*poof* | |||
19:50
frankg joined
|
|||
clkao | audreyt: our flight is canceled. rerouting | 20:02 | |
audreyt | wow | 20:06 | |
20:07
Cugel joined
|
|||
TreyHarris | clkao: flight where, to seattle? | 20:09 | |
[particle] | trey, audrey, i don't think i can make it tomorrow :( | 20:10 | |
TreyHarris | ?eval class A { has $.moose = 42 }; class B does A { has $.yak = 96 }; my B $foo .= new; [$foo.yak, $foo.moose] | 20:11 | |
evalbot_r14533 | [96, undef] | ||
TreyHarris | ?eval class A { has $.moose = 42 }; class B is A { has $.yak = 96 }; my B $foo .= new; [$foo.yak, $foo.moose] | 20:12 | |
evalbot_r14533 | [96, undef] | ||
TreyHarris | are both of these correct, neither, or one? | ||
clkao | TreyHarris: to bos. rerouted to sfo | ||
TreyHarris | [particle]: bummer! | ||
clkao: ahh | |||
audreyt | TreyHarris: neither | 20:16 | |
20:17
kjw left
|
|||
TreyHarris | audreyt: both should output [96, 42]? | 20:17 | |
ok. so what is the practical difference between C<class Klass is Klass1> and C<class Klass does Klass1>? | |||
audreyt | there's no SUPER:: in the latter. | 20:19 | |
"next METHOD" doesn't dispatch upwards. | |||
you get conflicts when you "does" two things that are incompatible. | |||
there's only one instance-slot storage instead of two, one for parent and one for children. | 20:20 | ||
(the last point is probably invisible to the general user) | |||
TreyHarris | right... for some reason i construed the lack of SUPER:: and next METHOD as meaning that $.moose shouldn't work in B does A above... because there's no moose in B, so it would have to go to the next method for moose, which it can't do | 20:22 | |
audreyt | there is moose; it's directly mixed in | ||
TreyHarris | ah, but if you overrode moose, you'd lose the ability to refer to A's moose in the C<B does A> case? | 20:23 | |
audreyt | that is exactly correct. | ||
TreyHarris | ok. i think i need to have running code to play with role-as-class and class-as-role to really get it gelled in my head | ||
does Moose do this yet? | 20:24 | ||
hm | |||
audreyt | try MO/MOH | ||
20:25
TimToady joined
|
|||
TreyHarris | huh, the OAD says that "overrode" was correct there. i was about to s/overrode/overrided/. regularization strikes again... | 20:26 | |
TreyHarris wanders off to meetings | |||
thanks audreyt! | |||
audreyt | no prob. I'm implementing default initializer inheritance/mixin now | 20:28 | |
let's see how long it takes... | |||
20:30
amnesiac_ joined,
amnesiac_ is now known as amnesiac
|
|||
audreyt | ..done. :) | 20:33 | |
TreyHarris | audreyt: did you commit? oh, have we moved from openfoundry? maybe that's my problem | 20:35 | |
TimToady | no, she just hasn't committed yet, as far as I know. | 20:37 | |
audreyt | it took a while to get thorugh 'sall. | 20:38 | |
TimToady | she has this terrible tendency to test her work... | ||
svnbot6 | r14534 | audreyt++ | * Pugs.Prim: Attribute initializers now carries through to derived classes: | ||
r14534 | audreyt++ | class C { has $.x = 9 }; | |||
r14534 | audreyt++ | class D is C; | |||
r14534 | audreyt++ | D.new.x; # 9 | |||
r14534 | audreyt++ | Same applies for "does". | |||
TreyHarris | TimToady: *grin* yes, but from my observation, when she says "done" or "fixed", that's usually the point at which she commits having already tested | 20:39 | |
TreyHarris really heads to his meeting now | 20:40 | ||
audreyt continues cleaning up IPC::PubSub for the eventual backport to ext/ | 20:44 | ||
svnbot6 | r14535 | audreyt++ | * inheritance.t: More tests about inheriting initialiizers | ||
20:45
the_dormant_ joined
21:01
Limbic_Region joined
21:10
avar joined
21:54
jojo left
22:04
penk joined
22:08
frederico joined,
ferreira joined
22:12
Daveman joined
22:20
Aankhen`` joined
22:22
jferrero joined
22:44
c6rbon joined
|
|||
TimToady | might or might not have something to do with upgrading to Fedora Core 6, but my smokes seem to be running 20-30% slower than a few days ago. | 22:55 | |
TreyHarris | TimToady: mine on osx are too, and i haven't upgraded anything | 22:56 | |
22:56
dduncan joined
|
|||
dduncan | fyi, have a look at www.ohloh.net/ , particularly www.ohloh.net/projects/3300 (Pugs) | 22:57 | |
lambdabot | Title: Ohloh Home Page | ||
dduncan | I heard about that open source project indexing site right when it was starting up, a few months ago, and submitted Pugs to it | ||
now I look back, and the latter url shows they paid attention and are following Pugs | 22:58 | ||
curiously, it lists audreyt et al as mainly C/C++ developers rather than Haskell ... maybe that's a result of shoehorning | |||
I didn't explicitly submit Parrot, and it isn't shown directly (under that name), though the "Ruby compiler project" that targets it shows up | 23:00 | ||
TimToady | their analyzer doesn't appear to recognize Haskell. | 23:01 | |
dduncan | so, the project cost calculator says it would take $2.7 milllion dollars to recreate Pugs | ||
TimToady | I wonder if their analyzer counts interspersed content as part of the PHP linecount. | ||
dduncan | I don't know | ||
23:01
awwaiid joined
23:07
cjeris left
|
|||
dduncan | come to think of it, perhaps my "consider this for inclusion" submission of a few months back wasn't what got it on the list ... the history page shows adamk as manually adding it 4 days ago | 23:08 | |
but whatever, nice to see it there | 23:09 | ||
eviltwin_b | hm. so, before I shoot myself in the foot: is it somehow expected that some of parrot's selftests core (SIGBUS) on OSX 10.4.8? | 23:19 | |
eviltwin_b suddenly does not have great confidence in this machine --- first dports blew up, now that it's supposedly fixed parrot is not happy and the pugs release was also a little shaky-seeming | 23:20 | ||
was going to try building parrot support into svn pugs, but somehow I think this is not a wise move now | 23:21 | ||
TreyHarris | eviltwin_b: i have sporadically seen sigbus's from various pugs and parrot operations for many months now, though only on PPC. my intel box does not display that behavior nearly as often (though i think it might still happen ocassionally). generally speaking, running the exact some code again will make mysteriously fix it (maybe after a couple tries) | 23:22 | |
eviltwin_b | so far it's been pretty repeatable :( | 23:23 | |
I'll just skip parrot support for now. | |||
pugs hasn't been coring, my initial build had unexpected test failure but rebuilding dports seemed to fix it mostly so now I'm trying from svn | 23:24 | ||
except that pugs seemed to think that I hadn' | |||
t installed some stuff in my existing perl5 that I had --- which might again be dports' fault | |||
(unlike freebsd ports it will happily overwrite someting you cpanned in) | |||
TreyHarris | hmmm... interesting. i haven't up till now seen any pattern in the code that does that, but i now wonder if it's possible that it was code with regexen (since i was using parrot for regexes until recently) | 23:26 | |
dduncan: it looks to me from some poking around like that website doesn't know haskell exists and somehow thinks haskell code looks like C++ | |||
dduncan | I hear that | 23:28 | |
on a separate note, I'm trying to use the latest CPANPLUS to install v6.pm, but it complains about a missing 'perlwrapper' ... this is probably a CPANPLUS problem and not a v6 problem, so I'm looking into it | 23:30 | ||
eviltwin_b | it sees the :: in type signatures and decides it's actually looking at classes? | 23:33 | |
(probably a trivial heuristic-based analyzer) | 23:34 | ||
TimToady | or maybe it decides .hs is a variant of .h | ||
23:40
SubStack joined
|
|||
eviltwin_b | hmph. poke at some of the optionl dependencies I chased down... greencard uses a deprecated interface. | 23:50 | |
(which I should have remembered from last time I looked at it) | 23:51 | ||
and darcs-1.0.8 looks like it might be using another deprecated interface (so I installed the 1.0.7 binary instead) | |||
23:52
bcorn joined
|
|||
eviltwin_b | this should teach me not to play the "hm, optional dependency, maybe I should install it" game | 23:54 | |
23:54
thepler joined
|