flat assembler
Message board for the users of flat assembler.

Index > Programming Language Design > FASM/G Build Performance - I Surmise not an Issue

Author
Thread Post new topic Reply to topic
Greg_M



Joined: 07 Jun 2025
Posts: 46
Greg_M 30 Dec 2025, 19:32
The flexibility of FASM/G allows using it to create new compiling/assembling solutions that are effectively pre-processed such that concern about FASM/G build times is a fallacy, and one need only use FASM/G (Compiled Macros) to create their own tools that build faster, e.g. for a specific CPU?

For example, FASM2 uses FASM/G and it's not significantly slower than FASM?

I.e. Help people understand the true power that FASM/G offers? I.e. Need to understand the whole point of FASM/G and the power it provides?

A key point that I am seeking to have addressed is the idea that FASM/G build times relative to FASM may be seen as a reason to not use FASM/G for compiler development, yet the tools produced by FASM/G can be much faster than any Rust or even C compiler?


Last edited by Greg_M on 31 Dec 2025, 03:35; edited 1 time in total
Post 30 Dec 2025, 19:32
View user's profile Send private message Reply with quote
bitRAKE



Joined: 21 Jul 2003
Posts: 4338
Location: vpcmpistri
bitRAKE 31 Dec 2025, 00:22
If build times were an issue, initial startup for a particular environment could be cached as part of the system support -- the same could be done for fasm, too. (Analogous to the pre-compiled headers, [s]ccache, modules of the high-level languages.) To my knowledge, no such effort has ever been made.
Post 31 Dec 2025, 00:22
View user's profile Send private message Visit poster's website Reply with quote
Greg_M



Joined: 07 Jun 2025
Posts: 46
Greg_M 31 Dec 2025, 21:25
Post from 2020. May cause concern for those considering FASM/G?
Quote:
...I don't use fasmg because it is too slow. I have to wait almost an hour to complete a compilation set...

https://board.flatassembler.net/topic.php?t=21488

It is from 2020, so perhaps improved now and/or perhaps when understood in the context, it's not an issue at all, hence my OP.
Post 31 Dec 2025, 21:25
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20809
Location: In your JS exploiting you and your system
revolution 31 Dec 2025, 22:50
For my use case fasmg is considerably slower than fasm and does cause anguish. There is a trend in software development to add more layers of abstractions and hobble code with more "baggage" making it slower and more resource hungry. I have a fast computer, dammit, I don't want to make it slower each time new code comes along. Other examples of this effect are MS Teams and all the electron apps.

In addition to performance is the extras that fasmg needs to make it a complete assembler with all the required extra supporting macro files. Zipping up a project with asm sources and the assembler and sending it as a stand-alone package to a another customer/client/user requires also sending all the extra support macros along with it to make a complete set. It complicates the process and clutters up the package with extra bloat. For small projects with a single asm source file the bloat is very noticeable and degrades the experience, compared to needing only one exe for the single asm when using fasm.

Keeping older versions available for fasm is easy, we just have each exe file with the version number appended to the filename, so assembling old code is straightforward. Supporting simultaneous older versions in fasmg needs a lot more work to setup separate folders to hold all the macros and have ways to specify those folders when assembling with different versions.

That is my experience with fasmg.
Post 31 Dec 2025, 22:50
View user's profile Send private message Visit poster's website Reply with quote
Greg_M



Joined: 07 Jun 2025
Posts: 46
Greg_M 31 Dec 2025, 23:36
revolution wrote:
...does cause anguish.
Sincere sympathy, but again, FASM/G is still _much_ faster than Rust, C++ or even C compiler?

revolution wrote:
There is a trend in software development to add more layers of abstractions and hobble code with more "baggage" making it slower and more resource hungry. Other examples of this effect are MS Teams and all the electron apps.
Agree! That's why I avoid Java and .NET and bloatware in general. Some exceptions, e.g., sometimes generics, such as list<T>, in a language are OK, provided that they are implemented efficiently.

revolution wrote:
In addition to performance is the extras that fasmg needs to make it a complete assembler with all the required extra supporting macro files. Zipping up a project with asm sources and the assembler and sending it as a stand-alone package to a another customer/client/user requires also sending all the extra support macros along with it to make a complete set. It complicates the process and clutters up the package with extra bloat.
That's related to my OP. A product based on FASM/G, e.g. FASM2 may be a bit slower than FASM but not much? Does FASM2 performance extrapolate to a compiler based on FASM/G? Is this basically moot because still, FASM/G is faster than even a C compiler? These are my key questions that I still seek an answer to.


Last edited by Greg_M on 01 Jan 2026, 02:59; edited 1 time in total
Post 31 Dec 2025, 23:36
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20809
Location: In your JS exploiting you and your system
revolution 01 Jan 2026, 00:35
fasmg doesn't compile C code. And C compilers don't assemble asm sources. I don't see how those can be compared in a meaningful way. Question
Post 01 Jan 2026, 00:35
View user's profile Send private message Visit poster's website Reply with quote
Greg_M



Joined: 07 Jun 2025
Posts: 46
Greg_M 01 Jan 2026, 01:29
revolution wrote:
fasmg doesn't compile C code. And C compilers don't assemble asm sources. I don't see how those can be compared in a meaningful way. :?:
Perspective.
Post 01 Jan 2026, 01:29
View user's profile Send private message Reply with quote
bitRAKE



Joined: 21 Jul 2003
Posts: 4338
Location: vpcmpistri
bitRAKE 01 Jan 2026, 03:10
revolution wrote:
C compilers don't assemble asm sources.
Modern compilers function less as monolithic translators and more as modular platforms or orchestrators. They act as a central interface (often called the Compiler Driver) that coordinates a pipeline of specialized components and exposes internal data structures to external developer tools.

Compiler drivers do process/assemble asm sources. For GCC the assembly tooling is separate, but Clang has an integrated assembler (which can be bypassed for the traditional external tool). This impacts both inline assembly and stand-alone files.

MSVC is a different beast - no inline assembly support - must use intrinsics or external assembly code. In that regard you are completely correct, but the other cases are more complicated as the compiler driver makes assembly integration seamless with other language support.

Yet, I agree with the comparison to fasmg being largely invalid. fasmg is somewhere between the compiler drivers and monolithic translators (fasm, tcc, etc.).

_________________
¯\(°_o)/¯ AI may [not] have aided with the above reply.
Post 01 Jan 2026, 03:10
View user's profile Send private message Visit poster's website Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.