🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.pascal
Article #92626

Re: Kolejna prowokacja do dyskusji

#92626
From: Andrzej Grażyński
Date: Mon, 22 Sep 2008 19:52
74 lines
3630 bytes


Łukasz 'Maly' Ostrowski pisze:
> Andrzej Grażyński wrote:
>> 1. Co można by powiedzieć o metodach obiektów deklarowanych lokalnie?
> 
> Ża są lokalne względem scope'u zmiennych outer metody, i lokalne względem
> pól obiektu, czyli tak jakby, podwójnie lokalne(?). Błądzę w ciemnościach
> po omacku, żeby nie skłamać.
napisalem o tym, bo osobiście z tą tematyką jestem związany emocjonalnie.



Metody obiektó lokalnych musiałyby byc procedurami/funkcjami 
ZAGNIEŻDZONYMI. Sposób wywoływania takich procedur nie da się pogodzić 
ze sposobem wywoływania metod wirtualnych (rozpatrz przykład, gdy obiekt 
macierzysty jest globalny, a dziedziczący  niego - lokalny i mają metodę 
wirtualną).

Osobiście miałem kiedyś pomysł, jak to rozwiązać, akurat wtedy powstawał 
TP 5.5 i wprowadzano obiekty do Turbo Pascala, a ja byłem w ścisłym 
kontakcie (jako jeden z tysięcy entuzjastów) z autorami. Po długich 
dyskusjach główny Guru Turbo Pascala zdecydował, że będzie za trudne i 
że za mało czasu itd. itp.





> 
>> 2. Co można by powiedzieć o tablicach VMT obiektów deklarowanych
>> lokalnie?
> 
> 
> Tutaj podejrzewam jakichś internalowy myk z zajętymi rejestrami
> zarezerwowanymi na przekazanie adresu instancji obiektu / VMT
> albo coś w ten ton, ale tak samo jak  powyżej, ciemność, szczerze
> mówiąc :). 

Chodzi o to, że zestaw tabel VMT ustalony jest już na etapie kompilacji. 
W BP to jest konieczne, bo VMT są w segmencie DS, a tego nie można 
ruszyć po uruhcomieniu programu, bo jest absolutnie ustalony.

Gdyby można było dynamicznie powoływać unicestwiać deklaracje, trzeba by 
było dynamicznie tworzyć i unicestwiać tablice VMT. Moje opinia z czasów 
tworzenia TP  5.5, że upychanie tablic VMT w segmencie ograniczonym do 
64K jest szalone (jako niezmienne powinny być w statycznym segmencie 
kodu (lub kilku segmentach), tworzonym ad hoc) została zwyczajnie olana. 
Bo gdyby wyszło na moje, pole VMT Link musiałoby mieć 4 bajty, a to 
rzekomo marnotrawstwo.

I jak pojawił się BP 7.0 z trybem protected i pamięci na stercie można 
było wycisnąć co najmniej 32 MB (w XP, w Win98 udało mi się przydzielić 
na raty prawie 512 MB - ok. 8K segmentów po 64K.) to wszystko rozbija 
się o segment DS, który dalej może mieć  tylko 64K i w którym siedzą 
wszystkie VMT. Na szczęście w Delphi tego problemu juz nie ma.













Przejrzenie pobieżne asma nic mi nie dało. Przjerzenie
> google tez. Zbyt niskopoziomowe problemy to są dla
> mnie, chyba... :-/.
> 
Technical Details
Message-ID: <gb8t32$mv$1@news.onet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail
References: <20080905121945.03f2cdf2.solaris@be.inspired> <gb5u6p$icj$2@news.onet.pl> <gb6o7c$td5$1@news.dialog.net.pl> <gb8ish$ra6$1@news.onet.pl> <gb8p84$6ss$1@news.dialog.net.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail
From: Andrzej Grażyński <grazynsk@petex.com.pl>
Newsgroups: pl.comp.lang.pascal
Subject: Re: Kolejna prowokacja do dyskusji
Date: Mon, 22 Sep 2008 21:52:58 +0200
Organization: Onet.pl
Lines: 74
Message-ID: <gb8t32$mv$1@news.onet.pl>
References: <20080905121945.03f2cdf2.solaris@be.inspired> <gb5u6p$icj$2@news.onet.pl> <gb6o7c$td5$1@news.dialog.net.pl> <gb8ish$ra6$1@news.onet.pl> <gb8p84$6ss$1@news.dialog.net.pl>
NNTP-Posting-Host: 83-238-226-107.adsl.inetia.pl
Mime-Version: 1.0
X-Trace: news.onet.pl 1222113186 735 83.238.226.107 (22 Sep 2008 19:53:06 GMT)
X-Complaints-To: usenet@news.onet.pl
NNTP-Posting-Date: Mon, 22 Sep 2008 19:53:06 +0000 (UTC)
X-Sender: 2ysppuKZfnIJFd8Xm5/5BA==
In-Reply-To: <gb8p84$6ss$1@news.dialog.net.pl>
User-Agent: Thunderbird 2.0.0.16 (Windows/20080708)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit