public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* Gas developing
@ 2024-01-19  4:33 Azael Developer
  2024-01-22 16:51 ` Nick Clifton
  0 siblings, 1 reply; 7+ messages in thread
From: Azael Developer @ 2024-01-19  4:33 UTC (permalink / raw)
  To: binutils; +Cc: A Receiver

[-- Attachment #1: Type: text/plain, Size: 468 bytes --]

Few weeks ago I write a little assembler like a experiment, it's very basic
, but it has been help me to understand the problem to accomplish that, now
I want to create a useful assembler with new capabilities, even I want to
add a high level assembler like a C/C++ sintaxis, all that to support the
open source movement. I think in include a large list of processor. So I
going to be grateful if someone tell me what think the binutils project
about this possibility

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Gas developing
  2024-01-19  4:33 Gas developing Azael Developer
@ 2024-01-22 16:51 ` Nick Clifton
  2024-01-22 16:57   ` Azael Developer
  2024-01-22 17:25   ` Mike Frysinger
  0 siblings, 2 replies; 7+ messages in thread
From: Nick Clifton @ 2024-01-22 16:51 UTC (permalink / raw)
  To: Azael Developer, binutils; +Cc: A Receiver

Hi Azael,

> now I want to create a useful assembler with new capabilities, even I want to add a high level assembler like a C/C++ syntaxes, all that to support the open source movement.

Well I wish you luck.  I feel that I should point out that there
are already two open source assemblers available - the one from
the GNU binutils project and the one from the LLVM project.  So
you probably need to have some feature to make yours stand out.

Also please be prepared for the fact that creating a fully functional
assembler is no small task.  You will find that it will take up a
lot of your time.

As a suggestion I would restrict yourself to just supporting the
ELF file format and the DWARF debug format.  There are other
formats out there, but only supporting one does make things simpler.
Plus you may be able to take advantage of packages like the elfutils
which provide libraries for manipulating ELF and DWARF.

Another suggestion is to steal, sorry I mean borrow, all of the
tests used by the other assemblers.  Make sure that your assembler
can pass those tests too.  That should give you great confidence
that the assembler works.

Oh and one more thing - document everything.  Good documentation
and good comments are the key to a long lived open source project.

Cheers
   Nick


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Gas developing
  2024-01-22 16:51 ` Nick Clifton
@ 2024-01-22 16:57   ` Azael Developer
  2024-01-22 17:25   ` Mike Frysinger
  1 sibling, 0 replies; 7+ messages in thread
From: Azael Developer @ 2024-01-22 16:57 UTC (permalink / raw)
  To: Nick Clifton; +Cc: binutils, A Receiver

[-- Attachment #1: Type: text/plain, Size: 1491 bytes --]

Thanks for the advice Nick

On Mon, Jan 22, 2024 at 8:51 AM Nick Clifton <nickc@redhat.com> wrote:

> Hi Azael,
>
> > now I want to create a useful assembler with new capabilities, even I
> want to add a high level assembler like a C/C++ syntaxes, all that to
> support the open source movement.
>
> Well I wish you luck.  I feel that I should point out that there
> are already two open source assemblers available - the one from
> the GNU binutils project and the one from the LLVM project.  So
> you probably need to have some feature to make yours stand out.
>
> Also please be prepared for the fact that creating a fully functional
> assembler is no small task.  You will find that it will take up a
> lot of your time.
>
> As a suggestion I would restrict yourself to just supporting the
> ELF file format and the DWARF debug format.  There are other
> formats out there, but only supporting one does make things simpler.
> Plus you may be able to take advantage of packages like the elfutils
> which provide libraries for manipulating ELF and DWARF.
>
> Another suggestion is to steal, sorry I mean borrow, all of the
> tests used by the other assemblers.  Make sure that your assembler
> can pass those tests too.  That should give you great confidence
> that the assembler works.
>
> Oh and one more thing - document everything.  Good documentation
> and good comments are the key to a long lived open source project.
>
> Cheers
>    Nick
>
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Gas developing
  2024-01-22 16:51 ` Nick Clifton
  2024-01-22 16:57   ` Azael Developer
@ 2024-01-22 17:25   ` Mike Frysinger
  2024-01-22 18:37     ` Azael Developer
  2024-01-22 18:44     ` Azael Developer
  1 sibling, 2 replies; 7+ messages in thread
From: Mike Frysinger @ 2024-01-22 17:25 UTC (permalink / raw)
  To: Azael Developer; +Cc: binutils, A Receiver

[-- Attachment #1: Type: text/plain, Size: 1045 bytes --]

On 22 Jan 2024 16:51, Nick Clifton wrote:
> > now I want to create a useful assembler with new capabilities, even I want to add a high level assembler like a C/C++ syntaxes, all that to support the open source movement.
> 
> Well I wish you luck.  I feel that I should point out that there
> are already two open source assemblers available - the one from
> the GNU binutils project and the one from the LLVM project.  So
> you probably need to have some feature to make yours stand out.

there's even more if the target is x86 -- nasm/yasm, and masm (Windows).
there's also dev86 which hasn't been updated in a while, but seems to be
used in a few places still.

creating an assembler can certainly be a useful learning exercise.  going
beyond that, everything Nick said is certainly true -- it's already a pretty
competitive landscape, so you'd want to identify a significant shortcoming
to make yours stand out as something people would care about.

just don't morph into something like High Level Assembly (HLA) :).
-mike

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Gas developing
  2024-01-22 17:25   ` Mike Frysinger
@ 2024-01-22 18:37     ` Azael Developer
  2024-01-22 20:30       ` Mike Frysinger
  2024-01-22 18:44     ` Azael Developer
  1 sibling, 1 reply; 7+ messages in thread
From: Azael Developer @ 2024-01-22 18:37 UTC (permalink / raw)
  To: Mike Frysinger; +Cc: binutils, A Receiver

[-- Attachment #1: Type: text/plain, Size: 1496 bytes --]

I was thinking of an update for GAS, not a competition with other
compilers. I was really hoping that the project had some plans about
it, I think I'm going to reevaluate my plan, as I already told you, I
already started the project and I know that I can still learn many
things.https://github.com/azaeldevel/OCC.git


On Mon, Jan 22, 2024 at 9:25 AM Mike Frysinger <vapier@gentoo.org> wrote:

> On 22 Jan 2024 16:51, Nick Clifton wrote:
> > > now I want to create a useful assembler with new capabilities, even I
> want to add a high level assembler like a C/C++ syntaxes, all that to
> support the open source movement.
> >
> > Well I wish you luck.  I feel that I should point out that there
> > are already two open source assemblers available - the one from
> > the GNU binutils project and the one from the LLVM project.  So
> > you probably need to have some feature to make yours stand out.
>
> there's even more if the target is x86 -- nasm/yasm, and masm (Windows).
> there's also dev86 which hasn't been updated in a while, but seems to be
> used in a few places still.
>
> creating an assembler can certainly be a useful learning exercise.  going
> beyond that, everything Nick said is certainly true -- it's already a
> pretty
> competitive landscape, so you'd want to identify a significant shortcoming
> to make yours stand out as something people would care about.
>
> just don't morph into something like High Level Assembly (HLA) :).
> -mike
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Gas developing
  2024-01-22 17:25   ` Mike Frysinger
  2024-01-22 18:37     ` Azael Developer
@ 2024-01-22 18:44     ` Azael Developer
  1 sibling, 0 replies; 7+ messages in thread
From: Azael Developer @ 2024-01-22 18:44 UTC (permalink / raw)
  To: Mike Frysinger; +Cc: binutils, A Receiver

[-- Attachment #1: Type: text/plain, Size: 1396 bytes --]

About HLA, I know I should mark a strict line between assembler and high
liver compiler, so I design the project to be completely independent, I was
thinking in support of high lever compiler C++ not a full C++ compiler.

On Mon, Jan 22, 2024 at 9:25 AM Mike Frysinger <vapier@gentoo.org> wrote:

> On 22 Jan 2024 16:51, Nick Clifton wrote:
> > > now I want to create a useful assembler with new capabilities, even I
> want to add a high level assembler like a C/C++ syntaxes, all that to
> support the open source movement.
> >
> > Well I wish you luck.  I feel that I should point out that there
> > are already two open source assemblers available - the one from
> > the GNU binutils project and the one from the LLVM project.  So
> > you probably need to have some feature to make yours stand out.
>
> there's even more if the target is x86 -- nasm/yasm, and masm (Windows).
> there's also dev86 which hasn't been updated in a while, but seems to be
> used in a few places still.
>
> creating an assembler can certainly be a useful learning exercise.  going
> beyond that, everything Nick said is certainly true -- it's already a
> pretty
> competitive landscape, so you'd want to identify a significant shortcoming
> to make yours stand out as something people would care about.
>
> just don't morph into something like High Level Assembly (HLA) :).
> -mike
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Gas developing
  2024-01-22 18:37     ` Azael Developer
@ 2024-01-22 20:30       ` Mike Frysinger
  0 siblings, 0 replies; 7+ messages in thread
From: Mike Frysinger @ 2024-01-22 20:30 UTC (permalink / raw)
  To: Azael Developer; +Cc: binutils, A Receiver

[-- Attachment #1: Type: text/plain, Size: 1273 bytes --]

On 22 Jan 2024 10:37, Azael Developer wrote:
> I was thinking of an update for GAS, not a competition with other
> compilers. I was really hoping that the project had some plans about
> it,

tbh, i think gas is a "finished" assembler at this point, and most new
work is going into other places like language frontends.  i don't think
the project is anti new-features, it's more "who is the audience" for
such changes, and does it make more sense to put things into gas vs just
(ab)using the preprocessor to largely get the same benefit.  e.g. it's
pretty common to create a .S file to run through cpp and gain benefit
from the various define's that the arch backend provides to produce the
.s file that gets fed to the assembler.  there are cases where i don't
have a preprocessor and can only write .s, but it's pretty uncommon.

personally i wish the macro language was a bit easier to use.

or you could see our existing gas bug list and whether there's any
feature requests that are interesting.
https://sourceware.org/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=SUSPENDED&bug_status=WAITING&bug_status=REOPENED&component=gas&list_id=80426&order=Importance&product=binutils&query_format=advanced
-mike

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2024-01-22 20:30 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-19  4:33 Gas developing Azael Developer
2024-01-22 16:51 ` Nick Clifton
2024-01-22 16:57   ` Azael Developer
2024-01-22 17:25   ` Mike Frysinger
2024-01-22 18:37     ` Azael Developer
2024-01-22 20:30       ` Mike Frysinger
2024-01-22 18:44     ` Azael Developer

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).