Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Q: class name hashes

7 views
Skip to first unread message

Leopold Toetsch

unread,
Jun 22, 2004, 12:19:30 PM6/22/04
to Perl 6 Internals
We currently seem to have two different hashes for storing class names:
one for PMC base classes and one for dynamic PMCs and objects.

I think both should use just interpreter->class_hash. OTOH putting PMC
names into this one hash makes it more likely that we get name
collisions for user class names.

We should be able to subclass PMCs as real objects.

b3.py seems to do something like:
# class TT(T):
getclass $P0, "Integer" # Integer PMC class, Python: "int" class
subclass $P1, $P0, "TT" # subclass the PMC

Then it redefines the "__repr__" method, which we BTW don't have. Using
"get_string" instead could be a problem. Seems that we need a C<repr>
vtable, which gets called when printing PMCs.

Comments welcome,
leo

Dan Sugalski

unread,
Jun 22, 2004, 12:24:03 PM6/22/04
to Leopold Toetsch, Perl 6 Internals
On Tue, 22 Jun 2004, Leopold Toetsch wrote:

> We currently seem to have two different hashes for storing class names:
> one for PMC base classes and one for dynamic PMCs and objects.
>
> I think both should use just interpreter->class_hash. OTOH putting PMC
> names into this one hash makes it more likely that we get name
> collisions for user class names.

Yeah. We probably ought to go rename the PMC classes to have Parrot
prefixes.

> We should be able to subclass PMCs as real objects.

Yep. We need to reserve a bit in the pmc flag word for delegated pmcs too,
but that's a semi-separate issue.

> b3.py seems to do something like:
> # class TT(T):
> getclass $P0, "Integer" # Integer PMC class, Python: "int" class
> subclass $P1, $P0, "TT" # subclass the PMC
>
> Then it redefines the "__repr__" method, which we BTW don't have. Using
> "get_string" instead could be a problem. Seems that we need a C<repr>
> vtable, which gets called when printing PMCs.

We don't need a __repr__ method. That's just an alternate freeze format.
(Arguably we need a parameter to freeze to note which format to use)

Dan

--------------------------------------"it's like this"-------------------
Dan Sugalski even samurai
d...@sidhe.org have teddy bears and even
teddy bears get drunk

Leopold Toetsch

unread,
Jun 22, 2004, 2:01:44 PM6/22/04
to Dan Sugalski, perl6-i...@perl.org
Dan Sugalski <d...@sidhe.org> wrote:
> On Tue, 22 Jun 2004, Leopold Toetsch wrote:
>> I think both should use just interpreter->class_hash. OTOH putting PMC
>> names into this one hash makes it more likely that we get name
>> collisions for user class names.

> Yeah. We probably ought to go rename the PMC classes to have Parrot
> prefixes.

Ack. But ParrotResizableIntegerArray :(

> We don't need a __repr__ method. That's just an alternate freeze format.
> (Arguably we need a parameter to freeze to note which format to use)

I beg to differ. __repr__ is too universally used in Python. It's a
distinct method. A different freeze format is of course doable, but
overriding the C<repr> vtable method make this implementation a PITA.

> Dan

leo

Dan Sugalski

unread,
Jun 23, 2004, 10:19:51 AM6/23/04
to Leopold Toetsch, perl6-i...@perl.org
On Tue, 22 Jun 2004, Leopold Toetsch wrote:

> Dan Sugalski <d...@sidhe.org> wrote:
> > On Tue, 22 Jun 2004, Leopold Toetsch wrote:
> >> I think both should use just interpreter->class_hash. OTOH putting PMC
> >> names into this one hash makes it more likely that we get name
> >> collisions for user class names.
>
> > Yeah. We probably ought to go rename the PMC classes to have Parrot
> > prefixes.
>
> Ack. But ParrotResizableIntegerArray :(

Yeah, I know. It's nasty. :(

I suppose for internal things we could use a "non-legal" prefix character
in the name instead. Something like |Integer or :Integer. That's nasty
too, though, in its own way.

> > We don't need a __repr__ method. That's just an alternate freeze format.
> > (Arguably we need a parameter to freeze to note which format to use)
>
> I beg to differ. __repr__ is too universally used in Python. It's a
> distinct method. A different freeze format is of course doable, but
> overriding the C<repr> vtable method make this implementation a PITA.

I just went digging through the docs to make sure I knew what was going
on. __repr__ is the python-visible name for our get_string vtable method.
We don't need any support beyond tying names together in the namespaces,
so far as I can see.

Dennis Rieks

unread,
Jun 23, 2004, 4:17:50 PM6/23/04
to perl6-i...@perl.org
   
 
 
 
 
 

Sehr geehrter Herr Rieks,

Sommer, Sonne und Strand! Egal, wie das Wetter ist, ob zuhause oder verreist, zu keiner Zeit kann man so schön die Seele baumeln lassen, wie im Urlaub. Wir haben für Sie zahlreiche Tipps übersichtlich zusammengestellt. Top-Taschenbücher, Reiseführer und unsere Grill- und Partyhits allesamt zu super Schnäppchenpreisen. Gucken Sie doch mal rein in unsere Specials! Wir wünschen Ihnen eine wundervolle Urlaubszeit.
Ihr Team von Mayersche Buchhandlung

P.S. Für jeden Ihrer Freunde, der auf Ihre Empfehlung hin bei uns Kunde wird, bekommen Sie von uns 200 Prämienpunkte auf Ihrem "SPAR%BUCH" gutgeschrieben. Auf unserer Homepage erfahren Sie mehr unter dem Punkt "Freunde werben".
 
  Ihr persönlicher Sommer-Gutschein
Das Rabattgesetz ist verschwunden und damit auch der Sommerschlußverkauf. Als Ausgleich hierfür erhalten Sie hier von uns einen 3,00 EUR Gutschein*, damit Sie sich nicht zu stark über den Wegfall des SSV ärgern. Ihr persönlicher Gutscheincode lautet: 7P8Y5-R9L9-D9

* Gutschein gilt bis zum 31.08.04 für fremdsprachige Bücher, Filme, Hörbücher, CDs, Spiele und Software. Nur ein Gutschein pro Person und/oder Bestellung und nur für den Postversand.
Und hier erfahren Sie alles zur Einlösung
 
  Hier bekommen Sie alles für Urlaub, Sommer und Freizeit ... und Schule!
 
 Sommer-Seiten
 
Bücher für Strand und Urlaub
Echte Sommergefühle ab 7,90 EUR

"Last-Minute Lektüren" mit dem richtigen Sommer-Feeling. Spannend, erotisch, romantisch oder einfach heiß. Schnell bestellen und rein damit in die Reisetasche! Wir wünschen einen schönen Urlaub! mehr
 
 Meerchenhafte Sparpreise
 
Alle Reiseführer unter 5 EUR
Von Aachen bis Zimbabwe

Wohin soll die Reise gehen? Ob Nahziel oder Fernreise - zumindest an Ihrem Reiseführer können Sie kräftig sparen. Wir stellen Ihnen Reiseführer unter 5,- EUR vor, die umfassend und aktuell über Ihr Reiseziel informieren. mehr
 
 Günstig Grillen
 
Grill- und Party-Preishits für den gelungenen Sommerspaß
Ab 2,99 EUR

Wie kann man einen schönen Sommertag besser genießen, als in gemütlicher Runde zu grillen oder ein buntes Gartenfest zu feiern? Unsere Preishits rund ums Thema lassen auch bei Ausgefallenerem als Würstchen und Schnitzel Freude aufkommen! mehr
 
 Endlich erschienen!
 
Ich mache mir Sorgen, Mama
Wladimir Kaminer

In diesen hinreißend komischen Geschichten beschreibt Wladimir Kaminer (nach seinem Erfolgsroman Russendisko) den ganz normalen Wahnsinn des Alltags wieder von seiner unterhaltsamsten Seite. Wladimir Kaminer ist "... ein Candide der Normalität", urteilt DIE ZEIT mehr
18,00 EUR  
 ...und wenn der Urlaub vorbei ist: Schule
 
Alle Bücher für die Schule
Schulbücher, Atlanten & vieles mehr

Zugegeben, es gibt schönere Themen als Schule und Lernen. Aber was sein muss ... Wir bieten neben viel Unterhaltung auch über 50.000 Schulbücher. Schnell von uns liefern lassen, um sich dann noch schneller wieder ums Vergnügen kümmern zu können! mehr
 
 Erotische Geschichten zum Hören
 
Bitte streicheln sie hier!
Gesprochen von Steffen Kopetzky. vorgelesen: hrsg. Susann Rehlein, Doris Kunstmann.

Die verführerischsten, prickelndsten, überraschendsten und lustvollsten Geschichten aus der erotischen Anthologie. Sinnliche und gediegene erotische Geschichten zum Hören. Laufzeit 74 Minuten mehr
14,95 EUR  
 
  KONTAKT & SERVICE

Sollten Sie Fragen haben, können Sie sich natürlich wie gewohnt an unseren Kundenservice unter
0180 - 53 69 800(12 ct / min) oder per Email an ser...@libri.de

   
 
  ABMELDEN

Wenn Sie zukünftig keine Informationen über neue Services auf unseren Seiten erhalten möchten, klicken Sie bitte hier: Abmelden

   

Dennis Rieks

unread,
Jun 23, 2004, 4:25:15 PM6/23/04
to perl6-i...@perl.org
Don't know what happens to my Mailclient, but there are some Spam Messages
attached, sorry!

Dennis

--
Dennis Rieks
par...@deribo.de

Leopold Toetsch

unread,
Jun 24, 2004, 9:39:48 AM6/24/04
to Dan Sugalski, perl6-i...@perl.org
Dan Sugalski <d...@sidhe.org> wrote:

> I just went digging through the docs to make sure I knew what was going
> on. __repr__ is the python-visible name for our get_string vtable method.
> We don't need any support beyond tying names together in the namespaces,
> so far as I can see.

Sure?

>>> x=0.3
>>> str(x)
'0.3'
>>> repr(x)
'0.29999999999999999'
>>> s="a\n"
>>> str(s)
'a\n'
>>> repr(s)
"'a\\n'"

> Dan

leo

0 new messages