flat assembler
Message board for the users of flat assembler.

Index > Main > fasm packaging as a project for the community

Goto page Previous  1, 2, 3, 4, 5  Next
Author
Thread Post new topic Reply to topic
f0dder



Joined: 19 Feb 2004
Posts: 3175
Location: Denmark
f0dder 09 Jan 2008, 11:36
I think the "split into many parts and use auto-download installer" idea is bad. It makes it a royal pain to grab everything you need and archive it, and especially people who don't have internet access at home will be at a loss. It's also more trouble to maintain.

A more reasonable splitting would be having a "source" distribution, and "binary" distributions for the various OSes. I guess most people just just the fasm binary and don't bother much about the source; this would also keep the distribution size down for those poor people on dialup.

The manual could also be moved to something that compresses better than .pdf... the windows version of FASM (fasmw16725.20071230) with the .pdf replaced by the DOS version's .txt, compressed with RAR, goes down from ~827kb to ~367kb. If source is excluded, we land at ~272kb. (Obviously a format like HTML should be used instead of .txt, but that should compress pretty equally).
Post 09 Jan 2008, 11:36
View user's profile Send private message Visit poster's website Reply with quote
Madis731



Joined: 25 Sep 2003
Posts: 2139
Location: Estonia
Madis731 13 Jan 2008, 15:13
@f0dder - btw, the PDF packed with 7z goes from 411KB to 320KB. I think the PDF isn't packed at all, maybe it was created by some plug-in for M$ Office or sth.

I'd like to give a very comparable example. I'm playing guitar and I've got a 114 pg document about the lyrics and chords. Its 91.3KB in ODT. Export to PDF gives 374KB, but with 7z I get 285KB.

Lets ask Tomasz! Lets try with OO.o 2.3.1 and Export as PDF. See what gives the best results

Very Happy He, I almost forgot that I had an idea for FASM ('advanced edition'). The purpose is to ease writing of code and maybe data. Most IDEs go as far as to cache all the variable names they know, but I was thinking on the lines of caching only the variables in the current context, which means opened file. Then you can Ctrl+Enter your way through the code.

When you add the ability to cache all open files (as in OpenOffice) or the ability to cache the include-files that may not necessarily be open, you can have a very powerful environment.
Post 13 Jan 2008, 15:13
View user's profile Send private message Visit poster's website Yahoo Messenger MSN Messenger Reply with quote
f0dder



Joined: 19 Feb 2004
Posts: 3175
Location: Denmark
f0dder 13 Jan 2008, 18:40
Madis731: I dunno if such a feature makes much sense for assembly programming - it certainly doesn't for my kind of assembly programming, but I dunno if even the die-hard "I code everything in 100% asm omfg" people would appreciate it?

For C++ programming, Visual Assist X by whole tomato software is very powerful, though. Things like "spell checking" your code might seem silly at first, but I find that all the visual clues, syntax coloring, etc. makes it so much faster to have a good overview of code structure, and I find myself doing less compiles/rebuilds in order to catch errors... and of course there's also so much more that VA-X does. Considering ordering it once my trial period expires...
Post 13 Jan 2008, 18:40
View user's profile Send private message Visit poster's website Reply with quote
Madis731



Joined: 25 Sep 2003
Posts: 2139
Location: Estonia
Madis731 13 Jan 2008, 19:15
I was just thinking about coding properly i.e. longer_descriptive_names db one, two, three Razz
This means that you need to type more and it would be really helpful to (like in command prompt) "TAB" your way through the names which are longer than 4 characters. Of course those small mov, xor don't need to be assisted, but ERROR_MORE_DATA could be written like "err"+CtrlEnt+"mor"+CtrlEnt...

Actually I think "I code everything in 100% asm omfg" ppl don't care about such features because they're hardcore. I was rather referring to people doing higher-level stuff and occasionally using ASM, but then again they might code and compile their ASM in another IDE Razz

Maybe its just a selfish feature request that only I would use :O

Btw, IntelliSense was the name for the long description and a question to you all. Haven't you ever struggled with Windows's or Linux's constant names that are some EQU listing files and you remember some word that only resembles it? Smile IntelliSense might help you shave off some minutes of digging through hundreds of KBs of source. Idea


Last edited by Madis731 on 13 Jan 2008, 19:23; edited 1 time in total
Post 13 Jan 2008, 19:15
View user's profile Send private message Visit poster's website Yahoo Messenger MSN Messenger Reply with quote
f0dder



Joined: 19 Feb 2004
Posts: 3175
Location: Denmark
f0dder 13 Jan 2008, 19:22
Madis731 wrote:

Actually I think "I code everything in 100% asm omfg" ppl don't care about such features because they're hardcore. I was rather referring to people doing higher-level stuff and occasionally using ASM, but then again they might code and compile their ASM in another IDE Razz

And that's what I was thinking as well - many people in the "hardcore" camp tend to scoff even at syntax highlighting...

For HLL code with long_descriptive_names, auto-complete (and other things intellisense and/or VA-X can offer) are very nice. The assembly code I write generally doesn't use l_d_n's though... Smile

_________________
Image - carpe noctem
Post 13 Jan 2008, 19:22
View user's profile Send private message Visit poster's website Reply with quote
AlexP



Joined: 14 Nov 2007
Posts: 561
Location: Out the window. Yes, that one.
AlexP 05 Feb 2008, 22:35
Retro-fit a version of fasm (or just an editor window by itself) to do just a binary assemble, no variable names, headers and everything included. Most it would do is calculate address offsets for those hard-core guys Smile I personaly prefer syntax highlighting.
Post 05 Feb 2008, 22:35
View user's profile Send private message Visit poster's website Reply with quote
Frank



Joined: 17 Jun 2003
Posts: 100
Frank 09 Feb 2008, 21:08
I am curious: Has any progress been made with the project?
Post 09 Feb 2008, 21:08
View user's profile Send private message Reply with quote
LocoDelAssembly
Your code has a bug


Joined: 06 May 2005
Posts: 4624
Location: Argentina
LocoDelAssembly 09 Feb 2008, 21:31
Thanks to the heap of things I have to do very few was done yet... I though that January would be very free for me to do this but I calculated wrong...

Still, I have progressed with the Ada Syntax and I think I'll get it finally work good and even with nesting (but I replaced the "=>" with "=" because it is very painful to use nesting since you have to escape ">").

I have not decided if I will inject this Ada thing into win32{a|w}xp.inc or if I will create a new include file but I think that the current one should be expanded since by "p" I understand "parameter checkings" and it is a good thing to have named arguments since it is very easy to put arguments in the wrong place (expecially in Assembly language where there is no type checking that could save you at times from those errors).

I want also to have a more complete headers since with the current ones you always end up checking the SDK headers (or MASM32 includes) to bring some undefined constants, and of course a more complete API set. When this things are done, it will be the first release, later I would like to have support for other platforms and when all that is done then start caring about tutorials and tool sets.

If someone would like to take over my "maintainer position" feel free to say that and if all (or most) agree then I will not be the maintainer anymore (something that would be best since as I've said when I offered myself there are clearly more skilled members here that could manage all this better).

PS: About named arguments, you are not forced to use them always, it works like Ada, you can start with positional parameters and continue with named parameters or use one flavor for all the parameters.
Post 09 Feb 2008, 21:31
View user's profile Send private message Reply with quote
Frank



Joined: 17 Jun 2003
Posts: 100
Frank 10 Feb 2008, 00:49
Loco, thank you for your answer. You should not take my question as criticism, but as a sign of interest in the project. Also I am sure everyone wants you to stay the project maintainer (I certainly do).

That said, let me spell out a few observations and suggestions.

Observations:

A) The project seems to progress rather slowly. Discussion in this thread has stopped mid-January. A first release is not in sight. No mechanism for user contributions has been established.

B) Work seems to be done on possibly too complicated things -- what the heck is Ada Syntax, and why is it so important that it can delay a first release?

C) You seem to be doing all the work yourself, as opposed to: dividing the work into subtasks that are then carried out by volunteers.

Suggestions:

A) People are probably more happy with an incomplete release than with no release at all. E.g., I would welcome a very simple release 0.0.1: a ZIP file that just creates a couple of empty directories on the harddisk.

B) I think the maintainer's task is to steer, oversee, and facilitate the project development, NOT to do all the programming work himself. Whatever that Ada Syntax thing may be, can't you give it out as a subtask to volunteers? The same holds for other subtasks such as extending the API headers.

C) Some mechanism is needed where people can make contributions and thereby take work off of you. A dedicated forum on this board would be nice.

Again, I write this NOT to criticize anyone, but in an attempt to get the project "up to speed".

Frank
Post 10 Feb 2008, 00:49
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20361
Location: In your JS exploiting you and your system
revolution 24 Mar 2008, 05:29
This project seems to have stalled. It is also the last post made by LocoDelAssembly. Does anyone have an update on the status of LocoDelAssembly? Is it just an Internet connection difficulty?

I have read through this whole thread and am still not exactly sure what is being done. Have I got this right?

Tomasz Grysztar: Maintains fasm core. Specifically all the files directly in the 'source' subdirectory and presumably also fasmw.asm and fasmd.asm but what about the interfaces? Does Tomasz Grysztar also want to be maintaining the 'fasm.asm' files?

LocoDelAssembly: Maintains the packages. Specifically the files under the 'include' subdirectory and it's subdirectories. And also generates the zips for download.

That would seem to leave the examples part orphaned.



I have some ideas for improvement in the macros. I think a lot of the current macros are only suited to monolithic programming and very small projects. Generally I hold back on posting all my macros and stuff because of incompatibility issues but if I felt it was useful I don't mind posting a few more things.

Also I feel there is a lot can be done to ease the development of fasm towards being more friendly with things like fasmarm. A few small tweaks to the core would make porting other asm languages more straightforward. And once debugging info is included then the environment really becomes nice.

If we look towards the future then a fully modular system would help enormously. Specifically if the fasm core can be made without the use of global variables anywhere, then it would be easier to have a genuine 'core assembler' that can simply be included into one's project and used as an internal (or backend) assembler, perhaps even as a JIT compiler.

Basic wish list:
  • Core: remove reliance upon global variables
  • Core: be friendlier with fasmarm
  • Core: allocate memory only as required
  • Core: debug information
  • Macros: move away from the monolithic approach
  • Macros: call type checking (eg. "stdcall wsprintf,..." should give an error)
  • Includes: more symbolic constants and structures
  • Includes: support other OS constants and structures
  • Interfaces: more generic with only core OS functions
Post 24 Mar 2008, 05:29
View user's profile Send private message Visit poster's website Reply with quote
LocoDelAssembly
Your code has a bug


Joined: 06 May 2005
Posts: 4624
Location: Argentina
LocoDelAssembly 06 Apr 2008, 00:23
Quote:

LocoDelAssembly: Maintains the packages. Specifically the files under the 'include' subdirectory and it's subdirectories. And also generates the zips for download.


I don't think I can do it in the near future... If someone wants to lead this project please debate here with the active members but don't wait for my any longer because it will do nothing more than delay the project. Of course it is not an ultra time consuming task that but the mantainer must also coordinate the work and distribute it and I just have no time for this.

My idea about the direction of this project in the late times was to make it useful for advanced/active members and don't care about new commers. The reason is that the interest on this project seems to not be really big so I think it is better to make it useful for people that will contribute it and when that is done then arrange the package for a more general audience.

The first must have tool I was thinking and that I was going to develop myself was a COMPLETE C headers to fasm tool, such a tool should be one of the very first available to overcome the limitations of the standard fasm's win32 headers (missing of many constants, even the very common ones like INFINITE or DIB_RGB_COLORS, and APIs). If this tools is ever written take in mind that the STRUCT macro takes too much memory so it is better to emulate it by using struc and decorating it appropiatelly in order to make it compatible with a real STRUCT definition.

As an addition to core, it would be great to have apart of macros and strucs, also have assembly-time functions or a way to instruct the assembler to "call" an assembly code line and hence avoiding the macro expansion that sucks lots of memory (for example revolution's PUSH/POP macro challenge could reduce its memory requirements by using macros just for a very minimal setup and later "call" a common (compile-time) code. I have no specifications for this feature because I could check if such thing is possible in fasm or if by desing this can't be done but the idea in my head was pushing all the context, setting the parameters as assembly-time variables initialized with the caller provided values and then change the "line pointer" to the entry point of the function, later, the "end function" directive just pops the context and hence the line pointer is restored to the line just after the call.

Well, that's all, sorry for the deception...
Post 06 Apr 2008, 00:23
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20361
Location: In your JS exploiting you and your system
revolution 06 Apr 2008, 01:17
LocoDelAssembly wrote:
As an addition to core, it would be great to have apart of macros and strucs, also have assembly-time functions or a way to instruct the assembler to "call" an assembly code line and hence avoiding the macro expansion that sucks lots of memory (for example revolution's PUSH/POP macro challenge could reduce its memory requirements by using macros just for a very minimal setup and later "call" a common (compile-time) code. I have no specifications for this feature because I could check if such thing is possible in fasm or if by desing this can't be done but the idea in my head was pushing all the context, setting the parameters as assembly-time variables initialized with the caller provided values and then change the "line pointer" to the entry point of the function, later, the "end function" directive just pops the context and hence the line pointer is restored to the line just after the call.
One major problem with that is the local labels. The multi-stage approach used in fasm means that the local labels are generated and memory is allocated before entering the assembly stage. It would become very complicate with macros generated by macros that use local labels. And it can extend to any depth. The only way I can see that happening is to merge the assembler and pre-processor together, but, of course, they are not so easily merged since the parser needs to so it's pass in the middle of them.
Post 06 Apr 2008, 01:17
View user's profile Send private message Visit poster's website Reply with quote
madmatt



Joined: 07 Oct 2003
Posts: 1045
Location: Michigan, USA
madmatt 06 May 2008, 05:13
Hello Everyone,
I have an (much) extended set of equates and api defines on my website. Soon, I'll be posting an update with even more additions to the include folder. the macros and other things are slightly modified from the originals. Also, the structure definitions have all the underscores removed (all equates with underscores are unmodified though), typing goes faster with the underscores removed. That's all folks.
Madmatt
Post 06 May 2008, 05:13
View user's profile Send private message Reply with quote
asmfan



Joined: 11 Aug 2006
Posts: 392
Location: Russian
asmfan 06 May 2008, 06:05
Will fasm package provide driver related stuff? includes, structures, macroses etc.? does anyone have up-to-date includes to contribute?
Post 06 May 2008, 06:05
View user's profile Send private message Reply with quote
LocoDelAssembly
Your code has a bug


Joined: 06 May 2005
Posts: 4624
Location: Argentina
LocoDelAssembly 07 May 2008, 21:25
After a PM with madmatt he agreed in allowing me to suggest him as the maintainer for this project.

What do you think? At least for me is a great idea. He also said me that he is not very confident with his macro programming skills but well, that is not supposed to be the maintainer's task, it is the contributors that should submit macros, tools and anything that makes the package useful and the maintainer that the one that puts it all togheter (with some quality criteria to not include random and useless stuff Wink)
Post 07 May 2008, 21:25
View user's profile Send private message Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7105
Location: Slovakia
vid 08 May 2008, 05:49
agree... macros are not so important now. Starting the basic package (something like win32 FASM distro) is.
Post 08 May 2008, 05:49
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
madmatt



Joined: 07 Oct 2003
Posts: 1045
Location: Michigan, USA
madmatt 09 May 2008, 21:48
asmfan wrote:
Will fasm package provide driver related stuff? includes, structures, macroses etc.? does anyone have up-to-date includes to contribute?


I've started looking into device driver (DDK) includes and equates, while doing the standard api stuff. I'll have to do a bit more research because I have Zero experience writing device drivers. Even though I haven't written a device driver I decided to convert the usb includes into the fasmw format. Others should come in a little while.
MadMatt
Post 09 May 2008, 21:48
View user's profile Send private message Reply with quote
comrade



Joined: 16 Jun 2003
Posts: 1150
Location: Russian Federation
comrade 06 Jul 2008, 02:43
Here is the Toolhelp32 APIs, translated from tlhelp32.h.

This equate should be under FASM/INCLUDE/EQUATES, and it should work with FASM 1.67.26.


Description:
Download
Filename: TLHELP32.INC
Filesize: 4.15 KB
Downloaded: 1293 Time(s)


_________________
comrade (comrade64@live.com; http://comrade.ownz.com/)
Post 06 Jul 2008, 02:43
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger ICQ Number Reply with quote
madmatt



Joined: 07 Oct 2003
Posts: 1045
Location: Michigan, USA
madmatt 06 Jul 2008, 05:41
Thanks Comrade Cool , I'll include it in my fasmw include package also. Smile

_________________
Gimme a sledge hammer! I'LL FIX IT!
Post 06 Jul 2008, 05:41
View user's profile Send private message Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8356
Location: Kraków, Poland
Tomasz Grysztar 13 Feb 2009, 13:57
More than half of a year has passed. Is there any progress, or shall we consider this project dead?
Post 13 Feb 2009, 13:57
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:  
Goto page Previous  1, 2, 3, 4, 5  Next

< 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-2024, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.