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
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7106
Location: Slovakia
vid
Quote:
Also, i just noticed the post (and didn't read it all) and if the point hasn't been discussed yet, let's try to keep some packages optional. FASMLIB and other custom libraries should probably stay outside the standard downloads, especially since it's probably still under development and being revamped and things like that.

Thing is, to design basic package in a way, that if such optional packages (like FASMLIB) are added, they will integrate pretty well.

Another idea is to provide package that will be like you say - only stuff no one can argue with, and ANOTHER package that will be load of useful stuff, like MASM32. Such package may be useful to total newbies, who don't know how to set up env variables, don't know how to use linker, etc...

Quote:
Let's try not change that or even add too much to the point you have to take a course on fasm's macros along with assembly just to use fasm.

100% agree. We shouldn't rely on any macro.
Post 02 Dec 2007, 01:07
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4224
Location: 2018
edfed
what about a standard asm equ= file?
just like this:
Code:
include 'c:\asmx86\equates.equ'; ms
;include 'hda1/asmx86/equates' ; unix
;and then start to code
org 0
call vesa1024*32 ;it's a far pointer. or a paged pointer
;all function porting depend on the os and the lib used
call choosemouse.ps2
push ??
push ??
call stdout
invoke printf,esi,?,?    ; it's fom the librairy ??
;etc ...
mov esi,[commandline.current]  ;this symbol and all above are in equate file
jmp debut
include 'myfunction.inc'
include 'mytable.inc'
debut:  ;start
mov esi,mytable
call myfunction
cmp [exit],0   ;here exit is a local semaphore? 
je debut
ret
    

;? how does it work? only for windows, linux, menuet, dexos, msdos, unix etc etc?
not only for newbies, by installing fasm on various OSes, we can make a really fast common interface for everyX86 platform, including fasmlib, fasm compilator, fasm functions etc...??
like a RING0 plug in that brings the same asm interface on all systems ??

with regedit, i've add contextual menu items for FASM file type.
compile and run, a switch can make run, compile or open, the default leftclic
the installer, or fasm, can make this.

the big part is to make a complete and simple to use documentation and tutorial. everybody that code in web languages, they need a thing like this to start asm programming.
and then, every coder can be attracted by a standard asm multiplatform X86 fast librairy. then, computerX86 world will know peace and freedom.
and windows will die Twisted Evil
FASMOS, it's fabulos! Razz


Last edited by edfed on 02 Dec 2007, 02:45; edited 2 times in total
Post 02 Dec 2007, 01:29
View user's profile Send private message Visit poster's website Reply with quote
kohlrak



Joined: 21 Jul 2006
Posts: 1421
Location: Uncle Sam's Pad
kohlrak
Quote:
Another idea is to provide package that will be like you say - only stuff no one can argue with, and ANOTHER package that will be load of useful stuff, like MASM32. Such package may be useful to total newbies, who don't know how to set up env variables, don't know how to use linker, etc...


Agreed. 2 seperate packages (main package and beginner package) would be nice. Though it shouldn't be too hard for anyone to begin using the main package, maybe that could simplify things and be more appealing to people like the people afraid of assembly. Thing is though, we still want a package with only the stuff we need. We must remember to keep these seperate and not let one slowly seep to the other because the whole community eventually agrees on a certain code being useful. Even then, we should keep the beginner package simple so the non-beginners can leaf through it so we're not lost when a beginner asks for help. Chances are, a beginner won't be looking for sql macro and things like that so a beginner package would probably be just an interface like printing letters in a simple console or GUI setting. Though, personally, more than anything i think that tutorials using all the mneumonics and examples of where they're useful could help beginners (and also people who avoid learning about things such as interrupts and such because they think they'll just get into a complicated topic for something they'll never even use anyway). Personally, i'm avoiding most of the mneumonics (especially interrupts) because i feel i probably won't find a practnical use for them. We need some of these in fasm, rather than pointing people, using links, to sites with examples for other assemblers.
Post 02 Dec 2007, 01:46
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger Reply with quote
LocoDelAssembly
Your code has a bug


Joined: 06 May 2005
Posts: 4633
Location: Argentina
LocoDelAssembly
About macros, I need more clarification, what is the problem with them? Note that since fasm provides no built-ins for some constructs like PROC nor some facilities to place locally declared variables and values at some selected location all together, I understand that this package MUST provide macros. Also it must contain, apart of a SDK port (perhaps a lite version with the most essential subset and a big package with a full port), tutorials as it was mentioned already.

The packages IMHO MUST NOT be the big package that can support the entire galaxy, separated packages for every OS or OR families must be done and if someone needs to make portable apps then surely it is already skilled enough to download as many packages as needed and merge them all.

Of course some lite package can be made around FASMLIB and this one would be the one that support the "entire galaxy", but it should cover only features supported by FASMLIB, no extra attempts to overextend things too much for now.

vid, you will work with me on this or I will be the only maintainer for now?

PS: edfed, sorry I don't understand your proposal, and what is that "file 'c:\asmx86\equ.equ'", do you know what file directive does?
Post 02 Dec 2007, 02:30
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4224
Location: 2018
edfed
sorry, i am tired, i made a very big mistake Rolling Eyes Sad
include 'c:\....'

file is not for that , shame on me.oups... Embarassed
Post 02 Dec 2007, 02:43
View user's profile Send private message Visit poster's website Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7106
Location: Slovakia
vid
Quote:
About macros, I need more clarification, what is the problem with them? Note that since fasm provides no built-ins for some constructs like PROC nor some facilities to place locally declared variables and values at some selected location all together, I understand that this package MUST provide macros. Also it must contain, apart of a SDK port (perhaps a lite version with the most essential subset and a big package with a full port), tutorials as it was mentioned already.

No, I wasn't against providing macros. The point was not to RELY on any macro. Always leave way to use what we provide just with pure assembly. We don't want to enforce usage of macro on anyone - that's the idea. Same decision I did with FASMLIB, and it proved to be good decision.

Quote:
Of course some lite package can be made around FASMLIB and this one would be the one that support the "entire galaxy", but it should cover only features supported by FASMLIB, no extra attempts to overextend things too much for now.

So we agree on some idea of "starters" MASM32-like package, question is how much to include, right?

Quote:
vid, you will work with me on this or I will be the only maintainer for now?

I will for sure work on it (design stuff, writing macros, etc.), but i will not maintain it long term - i am already involved in too much stuff already (job, project with Don, FASMLIB, x86asm.net).
Post 02 Dec 2007, 02:44
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
kohlrak



Joined: 21 Jul 2006
Posts: 1421
Location: Uncle Sam's Pad
kohlrak
Quote:
So we agree on some idea of "starters" MASM32-like package, question is how much to include, right?


Well, think of how much you would want a beginner messing with. If you want a beginner sitting there making a full GUI and making computer games and charging moneey for them, then include just about everything under the sun. If you think a beginner should learn how to use assembly and at least the various standard macro before doing all that, make it only a simple print and get. And your beginner isn't going to know a bunch of fancy terms. Chances are, whatever you give them, they are going to take as far as they can. Beginners like to make commercial software off the bat as soon as they got the hello working. It's human nature. Give them some pretty toys and then give them some humble pie. It's like raising a child.
Post 02 Dec 2007, 12:29
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger Reply with quote
LocoDelAssembly
Your code has a bug


Joined: 06 May 2005
Posts: 4633
Location: Argentina
LocoDelAssembly
BTW, summer vacations starts on January here, so I'll will be available to start making the skeleton to be filled with submissions (and stuff from my part as well I hope).

vid, about MASM32, I will check it all among with any other existing assembly-related package to make the skeleton. One of the goals I expect however, is make a skeleton that will be the same for the main targets (Linux and Windows), but obviously both packages will be filled with the corresponding stuff.
Post 03 Dec 2007, 02:56
View user's profile Send private message Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7106
Location: Slovakia
vid
Loco: another (ambitious?) thing we need to keep in mind is to provide ability to produce both executables directly and objects, with provided headers. We shouldn't restrict ourselves to executable target only (especially with regard to some coming changes in FASM Smile )
Post 03 Dec 2007, 03:21
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
LocoDelAssembly
Your code has a bug


Joined: 06 May 2005
Posts: 4633
Location: Argentina
LocoDelAssembly
I'm not really convinced about such idea, as I said before, if a person is able to do cross-compiling then he/she surely can manage to download both packages and merge them. This implicitly means that the packages will be available in two flavors, installable and compressed-only.

I'm open to the idea anyway, but for now I think this just would make the people download a bigger package with a half that will be used by very few persons.
Post 03 Dec 2007, 03:46
View user's profile Send private message Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7106
Location: Slovakia
vid
Two "mergeable" packages are fine with me. Point was to keep at least some option for doing this. And yeah, people who want to write objects usually know something, and can handle installing extra package.
Post 03 Dec 2007, 12:09
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
Vortex



Joined: 17 Jun 2003
Posts: 335
Vortex
Quantum's MS COFF import library creator should be a nice addition to the package :

MS-COFF import libs in FASM

_________________
Code it... That's all...
Post 03 Dec 2007, 20:45
View user's profile Send private message Visit poster's website Reply with quote
shoorick



Joined: 25 Feb 2005
Posts: 1605
Location: Ukraine
shoorick
and Import scanner by Vortex is one of MUST-HAVE tools! Wink
Post 04 Dec 2007, 05:47
View user's profile Send private message Visit poster's website Reply with quote
Picnic



Joined: 05 May 2007
Posts: 1281
Location: countryside
Picnic
I like the idea of 2 seperated packages.
kohlrak wrote:
we should keep the beginner package simple..

I agree 100%, fasm's simplicity to install and use must remain the goal, at least for the beginner package.
Post 08 Dec 2007, 12:06
View user's profile Send private message Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7106
Location: Slovakia
vid
Quote:
I agree 100%, fasm's simplicity to install and use must remain the goal, at least for the beginner package.

agree
Post 08 Dec 2007, 13:23
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
kohlrak



Joined: 21 Jul 2006
Posts: 1421
Location: Uncle Sam's Pad
kohlrak
thimis wrote:
I like the idea of 2 seperated packages.
kohlrak wrote:
we should keep the beginner package simple..

I agree 100%, fasm's simplicity to install and use must remain the goal, at least for the beginner package.


Another thing is to give the beginner not enough stuff to become dependent on it. My guess is we woudln't want him becomming dependent on the beginner library for simple file operations either. You want the person to be able to realize they don't really have much to work with but that it's enough to learn. Once they learn, they can move onto using the actual libraries of their platform (whether it be windows, linux, etc). I'm guessing we'll need a basic framework to agree on, so i'll propose one below and we'll have one to build off of.

Quote:

-CONSOLE IO ONLY

--output string

---convert signed decimal to string

---convert unsigned decimal to string

---convert float to string ;Always signed and decimal from what i've seen

---convert hex-decimal to string ;we'll want it to output the letters, not be another decimal to string

---convert binary to string

--input string

--input int

--input hex

--input binary

--input float
Post 08 Dec 2007, 15:28
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger Reply with quote
OzzY



Joined: 19 Sep 2003
Posts: 1029
Location: Everywhere
OzzY
I like the idea of Tomasz taking care of FASM core and the community of the headers, macros, tools, etc. This will distribute better the works.
I also agree with kohlrak. FASM package is nice being small.
And for maintaining the packages I think Loco and vid are good for the task.

I think a good thing would be:
* Tomasz make available the FASM core.
* The packages maintainers make available the packages.
and we write a downloader/installer, that will download and install the FASM core and packages/tools selected by the user.
This way the user can install what he needs and if he wants FASM in a floppy, he just needs to carry the needed packages.
The installer would be similar to cygwin installer. (I think you already tried it, no?)

For example, a user who wants to program for Windows with FASM would select at the installer FASMW, Win32 includes, a Resource Editor, Windows API reference, and it would be installed and downloaded.
In the same way packages for DOS, Linux, FreeBSD, and packages like SDL, Allegro, zlib, could be provided too.
Post 09 Jan 2008, 04:03
View user's profile Send private message Reply with quote
LocoDelAssembly
Your code has a bug


Joined: 06 May 2005
Posts: 4633
Location: Argentina
LocoDelAssembly
I was thinking these days if provide packages for every suported OS or just one package supporting them all. This Ozzy's idea is interesting since now providing a single big package wouldn't be a concern anymore since the user can select interesting parts only and hence avoiding excesive download times (for dial-up connections).

As for the interface, I think a tree-view would be fine and I think GTK supports such control so Linux/Unix versions could be provided (binary for Linux, object ready to be linked for other unices providing autotools generated scripts*).

What do you think?

*Depending on community support, if people can provide binaries for other unices those could be hosted too.
Post 09 Jan 2008, 04:17
View user's profile Send private message Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7106
Location: Slovakia
vid
I would opt for all-in-one package, with optional parts, but note that result will be a bit more complicated for people to understand. Anyway, it's best for maintainability, and probably will cause least trouble to install properly, and will definitively be easiest to make modular.

so, something like following would do fine
Code:
/bin                         ;tools  ...  ?
/doc                  ;interesting documentation / articles we gather... ?
/inc                    ;includes
   /common         ;any platform
   /common32           ;any 32bit platform (proc macros, etc
   /common64
   /win            ;common equates for win32 and win64
   /win32                ;prototypes, structures for 32 bit
   /win64         ;prototypes, structures for 64 bit
   /linux         ;common equates for linux32 and linux64
   /linux32          ;prototypes, structures for 32 bit
   /linux64               ;prototypes, structures for 64 bit
   /fasmlib               ;  Very Happy
/lib                       ;if we want statical library support too
   /win32
   /win64
   /linux32
   /linux64
   /fasmlib
/examples
   /win32
   /win64
   /linux32
   /linux64
   /fasmlib    


Note that "libc" and other standard libs will be in according OS's files, because implementations differ anyway.

Support for statical linking / libraries is questionable, as it seems i am only one who wants it, but i think it is very important to support / demonstrate this option too. At least for mixing Asm with other languages, most common case of real-world usage of assembly.

Of course more libraries can be added in a manner similar to FASMLIB, i remember there was some nice FASM regexp library, etc...

So... what do you think?
Post 09 Jan 2008, 07:13
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
Madis731



Joined: 25 Sep 2003
Posts: 2145
Location: Estonia
Madis731
Preamble:
I stumbled on some ERROR_MORE_DATA message that I couldn't figure out. I finally found it to be 234 from a WinError.h file for C. I tried the easy way - handicraft Wink but it was over ½MB. So I tried SciTE and its great RegEx Find&Replace !!!

The stuff:
Here you go. The FASM error equations' file.


Description: Packed include file WinError.inc
Download
Filename: WinError.7z
Filesize: 83.98 KB
Downloaded: 443 Time(s)


_________________
My updated idol Very Happy http://www.agner.org/optimize/
Post 09 Jan 2008, 09:41
View user's profile Send private message Visit poster's website Yahoo Messenger MSN Messenger 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-2019, Tomasz Grysztar.

Powered by rwasa.