view ChangeLog @ 264:61d1db1dfe2a 2.6

Build manual for release
author lost
date Tue, 22 Dec 2009 05:27:32 +0000
parents e27279180a73
children 1bdb4e256fc9 6e940229360b
line wrap: on
line source

The following includes the various changes in each release of LWTOOLS.

Each item is prefixed by a flag in []. The flags mean:

[*] Project structure or other "meta" change
[!] critical bug fix - code generation error, etc.
[+] new feature
[-] feature removed
[b] minor bugfix
[ ] general improvement

Also, the software affected may follow in [].

Version 2.6

[!] Fixed symbol resolution so all externally referenced objects, including
    within library archives, are properly included [LWLINK]
[!] Fixed bug that prevented setting non-default stack size for LWEX [LWLINK]
[+] Added structure support (struct, endstruct) [LWASM]
[+] Added "EXTDEP" pseudo op to force a dependency on an external symbol
    without an actual external reference - a zero-width external reference
    so to speak [LWASM,LWLINK]
[+] Decode known incomplete expression flags [LWOBJDUMP]
[+] Allow symbol to appear after whitespace if specified with a trailing :
    to improve compatibility with gcc6809 output [LWASM]
[b] Treat incomplete reference flags as specified in docs [LWLINK]
[ ] Changed default LWEX stack size to 1K [LWLINK]
[+] Accept ".bank" pseudo op and ignore it; bank support may be provided
    in the future if a reasonable model for such is determined; currently
    this is just provided for compatibility with the gcc6809 build process
    [LWASM]
[b] Fixed default linkscript for LWEX0 format to include the .ctors, .dtors,
    and related section [LWLINK]
[!] Fixed problem outputting LWEX0 binaries with non-zero BSS size [LWLINK]
[ ] Added rejection for comment not starting at start of line but which
    looks like a symbol (single word ending in :, no space after ; or *)
    [LWASM]
[+] Support input files with line numbers for compatibility with EDTASM
    and others that use line numbers [LWASM]
[+] Add support for an include path, always include from current dir
    unless file not found [LWASM]

Version 2.5

[!] Fixed error in the fix for invalid operands included in 2.4 [LWASM]
[b] Fixed bug with "include" directive operand parsing [LWASM]
[b] Fixed additional parsing errors with pseudo ops [LWASM]
[b] Fixed parsing error with various conditional nesting situations [LWASM]
[+] Added includebin directive to include the literal contents of a binary
    file at the current assembly address. [LWASM]
[+] Added || and && as boolean or and boolean and respectively [LWASM]
[+] Added COPY, COPY-, IMP, EXP, TFRP, TFRM, TFRS, TFRR as alternatives to
    the TFM instruction variations for compatibility with other assemblers
    [LWASM]
[+] Added --6809/-9 switch to cause 6309 instructions to be rejected; also
    included --6309/-3 switch to force default allow of 6309 instructions
    [LWASM]
[+] ALIGN now takes an optional padding value (ALIGN align,pad) to specify
    the byte value that will be used for padding if needed [LWASM]
[+] Added OS9 module target along with the OS9, MOD, and EMOD pseudo ops
    to allow building OS9 modules [LWASM]
[+] Added pragma "dollarlocal"/"nodollarlocal" and "dollarnotlocal"/
    "nodollarnotlocal" to control whether $ localizes a symbol [LWASM]
[ ] Fixed a few cosmetic issues with error reporting

Version 2.4

[!] Fixed off by one relocation offest for base page external references
    generated by lwasm [LWASM]
[b] Fixed segfault in "extern" pseudo op and allowed a symbol list as the
    operand just like "export" [LWASM]
[b] Fixed lack of error when there are extraneous characters at the end
    of the operand. This did not cause incorrect code generation for correct
    code but would silently generate incorrect code for some easy errors
[+] 8 bit immediate operands can now be external references [LWASM]

Version 2.3

[*] added support for compiling using MinGW and added portions of gnulib
    to support argp, among other things. Yah! A Windows build!
[+] added library search path (-L) and library specification (-l) to LWLINK
[+] added ability to specify section base addresses on the command line to
    LWLINK (they get prepended to the built in link script)
[+] added ability to output a "linkmap" to lwlink (--map, -m)
[+] added LWEX0 (LWOS simple binary) target to LWLINK
[+] added ability to extract files in LWAR
[+] added ability to "replace" members in LWAR
[+] added support for "sym=expr" in the opcode field; this will define a
    global symbol (non-section) if it resolves to a constant
[+] added operator ~ as a prefix operator for a 1s complement in LWASM
[+] allow exporting multiple symbols (export sym,sym,sym...)
[+] allow extern references in base page addresing mode, possibly buggy
    still (LWASM)
[+] handle 8 bit external references, possibly buggy still (LWLINK)
[+] arranged for unused members of library files (archives) to be ignored
    during linking to keep the final size of the binary down (LWLINK)
[b] arranged for output files for lwasm/lwlink to be removed if the assembly
    or linking fails
[b] fixed incorrect handling of library search path which caused only the
    last directory to ever matter
[ ] DECB output of LWLINK now collapses contiguous output blocks into single
    single blocks in the output file; this eliminates the explosion of
    preambles that previously occurred
[ ] LWLINK now displays *all* undefined symbols and references instead of
    bailing out after the first one

Version 2.2

[*] created LWAR to manage library/archive files
[+] cescapes pragma to allow C-style string escapes in FCC, FCS, and FCN
[+] .area alias for SECTION
[+] .globl alias for EXPORT; also accept name of symbol as operand
[+] various compatibility directive aliases for FCB, FDB, FQB, RMB, FCC,
    FCS, and FCN
[+] accept "*" has a prefix for base page addressing mode
[+] sections named "bss" or ".bss" in any case are now assumed to be
    BSS sections. The "!bss" flag can be used to remove that assumption.
[+] ignore lines starting with # to permit C pre-processor output to be used
    as input to lwasm
[+] allow "0x" and "0X" as prefixes to identify hexadecimal numbers
[+] added support for a simple library/archive file format to LWLINK
[b] actually show assembly errors when no list requested
[b] pragma and --pragma now actually take multiple pragmas as documented

Version 2.1

[*] merged LWLINK (1.0) and LWASM to create LWTOOLS
[+] [LWASM] pragmas can be specified on the command line
[+] [LWASM] undefextern pragma added (undefined symbols treated as external)
[+] documentation
[b] [LWASM] made pragmas case insensitive
[b] [LWASM] made EXTERN symbols never be part of a section in symbol table


LWASM Version 2.0

[*] major rewrite of the entire assembler
[+] object file support


LWLINK Version 1.0

[*] initial released version