public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: "Rafał Pietrak" <embedded@ztk-rp.eu>
To: David Brown <david@westcontrol.com>,
	Martin Uecker <muecker@gwdg.de>,
	Ian Lance Taylor <iant@golang.org>
Cc: "Richard Earnshaw (lists)" <Richard.Earnshaw@arm.com>,
	"gcc@gcc.gnu.org" <gcc@gcc.gnu.org>
Subject: Re: wishlist: support for shorter pointers
Date: Wed, 5 Jul 2023 14:25:29 +0200	[thread overview]
Message-ID: <701a38b8-9e90-36ce-9357-8b648f04a4d8@ztk-rp.eu> (raw)
In-Reply-To: <25afc1cb-3a62-135d-3206-2d9eb6216944@westcontrol.com>

Hi,

W dniu 5.07.2023 o 13:55, David Brown pisze:
> On 05/07/2023 11:42, Rafał Pietrak via Gcc wrote:
[--------------]
>> Wouldn't it be easier and more natural to make the "named spaces" a 
>> synonym to specific linker sections (like section names, or section 
>> name prefix when instead of ".data.array.*" one gets 
>> ".mynamespace.array.*")?
> 
> You can, of course, write :
> 
> #define __smalldata __attribute__((section(".smalldata)))
> 
> I'd rather see the "section" attribute extended to allow it to specify a 
> prefix or suffix (to make subsections) than more named address spaces.

me to. (pun not intended :)

> I'm a big fan of only putting things in the compiler if they have to be 
> there - if a feature can be expressed in code (whether it be C, C++, or 
> preprocessor macros), then I see that as the best choice.

Fully agree. ... almost fully.

I'd rather say: "I'm a big fun of being able to tell the compiler what I 
mean, but leave functionality/algorithms in libs".

And I think this has some resonance to our discussion. I think, that as 
of today, C-sources (though the compiler) don't have enough "vocabulary" 
to tell the linker "what we mean", and so the ability to "select flash 
vs RAM" or "one RAM vs another" is limited. The compiler/linker language 
is pretty much limited to resolved/unresolved names and their binding to 
linker segments.... like you've pointed above.

[--------]
>> But let's have look at it. You say, that "names spaces affect 
>> allocation details, which cannot be done with C++". Pls consider:
>> 1. for small embedded devices C++ is not a particularly "seller". We 
>> even turn to assembler occasionally.
> 
> I have been writing code for small embedded systems for about 30 years. 
> I used to write a lot in assembly, but it is very rare now.  Almost all 
> of the assembly I write these days is inline assembly in gcc format - 
> and a lot of that actually contains no assembly at all, but is for 
> careful control of dependencies or code re-arrangements.  The smallest 
> device I have ever used was an AVR Tiny with no ram at all - just 2K 
> flash, a 3-level return stack and its 32 8-bit registers.  I programmed 
> that in C (with gcc).

Well, similar here, although not that intensive (hobby, not profession). 
Still, I've never touched the Tiny, as I wasn't able to wrap my head 
around those limited resources for anything more then a blinker.

[--------------]
> Allocation control is certainly important at times, but it's far from 
> being as commonly needed as you suggest.
> 
> (Dynamic allocation is a different matter, but I don't believe we are 
> talking about that here.)

yes, not about that.

> 
>> So your current objections to named spaces ... are in fact in favor of 
>> them. Isn't it so?
>>
> 
> Not really, no - I would rather see better ways to handle allocation and 
> section control than more named address spaces.

Doesn't it call for "something" that a c-source (through the compiler) 
can express to the linker programmers' intention?

-R

  reply	other threads:[~2023-07-05 12:26 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-27 12:26 Rafał Pietrak
2023-06-28  1:54 ` waffl3x
2023-06-28  7:13   ` Rafał Pietrak
2023-06-28  7:31     ` Jonathan Wakely
2023-06-28  8:35       ` Rafał Pietrak
2023-06-28  9:56         ` waffl3x
2023-06-28 10:43           ` Rafał Pietrak
2023-06-28 12:12             ` waffl3x
2023-06-28 12:23               ` Rafał Pietrak
2023-07-03 14:52         ` David Brown
2023-07-03 16:29           ` Rafał Pietrak
2023-07-04 14:20             ` Rafał Pietrak
2023-07-04 15:13               ` David Brown
2023-07-04 16:15                 ` Rafał Pietrak
2023-06-28  7:34     ` waffl3x
2023-06-28  8:41       ` Rafał Pietrak
2023-06-28 13:00 ` Martin Uecker
2023-06-28 14:51   ` Rafał Pietrak
2023-06-28 15:44     ` Richard Earnshaw (lists)
2023-06-28 16:07       ` Martin Uecker
2023-06-28 16:49         ` Richard Earnshaw (lists)
2023-06-28 17:00           ` Martin Uecker
2023-06-28 16:48       ` Rafał Pietrak
2023-06-29  6:19       ` Rafał Pietrak
2023-07-03 15:07         ` Ian Lance Taylor
2023-07-03 16:42           ` Rafał Pietrak
2023-07-03 16:57             ` Richard Earnshaw (lists)
2023-07-03 17:34               ` Rafał Pietrak
2023-07-04 12:38             ` David Brown
2023-07-04 12:57               ` Oleg Endo
2023-07-04 14:46               ` Rafał Pietrak
2023-07-04 15:55                 ` David Brown
2023-07-04 16:20                   ` Rafał Pietrak
2023-07-04 22:57                 ` Martin Uecker
2023-07-05  5:26                   ` Rafał Pietrak
2023-07-05  7:29                     ` Martin Uecker
2023-07-05  8:05                       ` Rafał Pietrak
2023-07-05  9:11                         ` David Brown
2023-07-05  9:25                           ` Martin Uecker
2023-07-05 11:34                             ` David Brown
2023-07-05 12:01                               ` Martin Uecker
2023-07-05  9:42                           ` Rafał Pietrak
2023-07-05 11:55                             ` David Brown
2023-07-05 12:25                               ` Rafał Pietrak [this message]
2023-07-05 12:57                                 ` David Brown
2023-07-05 13:29                                   ` Rafał Pietrak
2023-07-05 14:45                                     ` David Brown
2023-07-05 16:13                                       ` Rafał Pietrak
2023-07-05 17:39                                         ` David Brown
2023-07-06  7:00                                           ` Rafał Pietrak
2023-07-06 12:53                                             ` David Brown
2023-07-05  9:29                         ` Martin Uecker
2023-07-05 10:17                           ` Rafał Pietrak
2023-07-05 10:48                             ` Martin Uecker

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=701a38b8-9e90-36ce-9357-8b648f04a4d8@ztk-rp.eu \
    --to=embedded@ztk-rp.eu \
    --cc=Richard.Earnshaw@arm.com \
    --cc=david@westcontrol.com \
    --cc=gcc@gcc.gnu.org \
    --cc=iant@golang.org \
    --cc=muecker@gwdg.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).