flat assembler
Message board for the users of flat assembler.

Index > Main > [fasmg] My early thoughts on CALM

Author
Thread Post new topic Reply to topic
Calanor



Joined: 19 Jul 2015
Posts: 45
Location: Sweden
Calanor 10 Jan 2021, 06:58
Having taken a long break from any programming due to health reasons, I recently started to pick things up again. I had a look at fasmg a couple of years ago, as it seemed to be even more perfect than fasm for my requirements. My intention is to create something along the lines of my own development environment to be used when coding a couple of rather ambitious - and big - projects. fasmg seemed perfect for this, except for one tiny little detail - the compilation speed. The latter made me concerned enough to put fasmg on the shelf.

When I read about CALM the other day, I decided to take another stab at fasmg. I rewrote my code that implements global declaration of data so that it'd use CALM instead of the standard macro language. The result was beyond my expectations; the code that handles this feature was compiled eight times faster than before! Eight times? OK, even though this is was just a quick test, it would seem that CALM makes fasmg a much more viable option when working on large projects. Before converting the code to CALM, I used a recursive macro and I suspect that getting rid of it might have contributed to the speed improvement. Just for the heck of it I also converted a very small macro that implements enum functionality. The speed increase was considerably less dramatic in this case, resulting in "only" a ≈70% increase in speed when compiling that particular part of the code. Still, we're talking about a small loop that creates some variables and increments a counter, so I'm quite satisfied anyway.

My first impression is that CALM is a superb addition to fasmg, but it's not all that easy to get into. I'm frequently running into problems with the scope of symbols, for instance. I believe that it would be of great help to somewhat thick-headed coders like myself if there were some tutorials available demonstrating various CALM features in depth, perhaps with a few neat tricks thrown into the mix. I realise that the manual might be a work in progress, yet even with that in mind some separate tutorials might make a great deal of difference.
Post 10 Jan 2021, 06:58
View user's profile Send private message Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8359
Location: Kraków, Poland
Tomasz Grysztar 10 Jan 2021, 10:42
Calanor wrote:
My first impression is that CALM is a superb addition to fasmg, but it's not all that easy to get into. I'm frequently running into problems with the scope of symbols, for instance. I believe that it would be of great help to somewhat thick-headed coders like myself if there were some tutorials available demonstrating various CALM features in depth, perhaps with a few neat tricks thrown into the mix. I realise that the manual might be a work in progress, yet even with that in mind some separate tutorials might make a great deal of difference.
Have you see the additional section about CALM that I wrote at the end of the introduction to fasm guide? If you have suggestions of specific issues to discuss if I write further segments, please let me know.

Also, there is an option of recording some video guides, so if there is an interest in this topic, I can record sessions concerning CALM, perhaps writing some new example packages in the process. A year ago, when CALM was a brand new thing, I did a live stream about it, but there were not many people interested and it was mostly me speaking to myself and trying how to explain some basic concepts.
Post 10 Jan 2021, 10:42
View user's profile Send private message Visit poster's website Reply with quote
Calanor



Joined: 19 Jul 2015
Posts: 45
Location: Sweden
Calanor 10 Jan 2021, 12:45
Yes, I did check out the CALM section in the introduction document. I admit that it wasn't the first place I checked (I'd previously read the intro before CALM was added), as I kind of assumed that anything in the intro would also be mentioned in the manual. Surprised

As for topics/issues in a tutorial, I am tempted to answer "anything and everything" Smile Scope in CALM-code is what's currently causing me the most headache, given that some instructions strip away the namespace context while others don't. Some more detailed examples of how to handle this might be of great help to me personally, but I really would appreciate just about anything regarding fasmg in general and CALM in particular.

It's a shame that there weren't that many who showed interest for the live stream. I'd have liked to watch it, but it was apparently only up for a limited time. I can see an enormous potential for fasmg, especially now that CALM has been included, but anything that might flatten the learning curve a bit would be great!
Post 10 Jan 2021, 12:45
View user's profile Send private message 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.