Re: How to handle qualified identifiers such as x.y in a Pascal-like language

BGB <cr88192@hotmail.com>
Sun, 03 Jul 2011 13:14:35 -0700

          From comp.compilers

Related articles
[12 earlier articles]
Re: How to handle qualified identifiers such as x.y in a Pascal-like l dot@dotat.at (Tony Finch) (2011-06-29)
Re: How to handle qualified identifiers such as x.y in a Pascal-like l cr88192@hotmail.com (BGB) (2011-06-29)
Re: How to handle qualified identifiers such as x.y in a Pascal-like l cr88192@hotmail.com (BGB) (2011-06-29)
Re: How to handle qualified identifiers such as x.y in a Pascal-like l cr88192@hotmail.com (BGB) (2011-07-01)
Re: How to handle qualified identifiers such as x.y in a Pascal-like l anton@mips.complang.tuwien.ac.at (2011-07-02)
Re: How to handle qualified identifiers such as x.y in a Pascal-like l gneuner2@comcast.net (George Neuner) (2011-07-02)
Re: How to handle qualified identifiers such as x.y in a Pascal-like l cr88192@hotmail.com (BGB) (2011-07-03)
Re: How to handle qualified identifiers such as x.y in a Pascal-like l torbenm@diku.dk (2011-07-07)
Re: How to handle qualified identifiers such as x.y in a Pascal-like l cr88192@hotmail.com (BGB) (2011-07-07)
| List of all articles for this month |
From: BGB <cr88192@hotmail.com>
Newsgroups: comp.compilers
Date: Sun, 03 Jul 2011 13:14:35 -0700
Organization: albasani.net
References: 11-06-037 11-06-039 11-06-045 11-07-004 11-07-008
Keywords: symbols, design, comment
Posted-Date: 07 Jul 2011 00:02:08 EDT

On 7/2/2011 10:13 AM, Anton Ertl wrote:
> BGB<cr88192@hotmail.com> writes:
>> I am still left to much wish Linux/... had adopted the Win64 ABI
>> instead
>
> That would have been quite an achievement, because the Windows x64 ABI
> came out quite some time after Linux and others adopted the SysV ABI,
> so it would have required looking into the future.
>


an idle wish doesn't need to be within the realm of "could have actually
happened...".


I am half still considering of using a custom calling-convention for
internal calls. I decided to leave out a more detailed description of
the considered register assignments, argument passing, ... and if/when I
would do something like this is uncertain.




I guess it is mostly just the annoyance that SysV is sufficiently
complex that none of my reflective-call stuff interacting with it can do
so particularly efficiently or correctly (lots of nasty cruft here).




also, it seems to interact badly with my C coding practices in general.


I suspect to work well, SysV/AMD64 expects functions accepting lots of
arguments and with most of the execution/computation being in leaf
functions.


coding practices where most of the computation is in non-leaf functions
and leaf-functions are generally short/trivial (such as performing a
simple operation or returning a status value), ... seem to not be the
ideal use-case.


all this seems to lead to my code generally performing somewhat better
on 32-bit x86 systems and on Win64.


for example, my assembler seems to run about 2x slower on 64-bit Linux
than on 64-bit Windows in my tests, ...




I don't imagine my coding practices are all that novel though.


however, other people have benchmarked other programs, and it seems many
types of programs (apparently especially data-compression and encryption
programs) seem to perform better on Linux x86-64 than on Win64 or on
32-bit systems.


it generally seems to be the reverse for larger programs though (web
browsers, games, office-type apps, ...) which seem to generally perform
better on 32-bit systems and on Windows.




granted, I can't claim any objectivity here, given my personal dislike
(in general) of the SysV/AMD64 ABI...
[It is my impression that a lot of languages that allow closures and the
like end up with their own calling sequences. -John]


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.