Omnimaga

Calculator Community => Major Community Projects => The Axe Parser Project => Topic started by: Runer112 on September 30, 2011, 02:04:12 am

Title: The Axe Issue Tracker (sort of)
Post by: Runer112 on September 30, 2011, 02:04:12 am
It's hard to keep track of bug reports, feature requests, and optimizations with the massive amount of posts in Axe threads. This is my attempt to compile all of them into one post in one thread. Hopefully this should make sure bug reports and good feature requests aren't lost and make it easier for Quigibo or any other coders who want to help to spend their time coming up with solutions instead of trying to find problems to solve.

If there are existing posts containing bug reports, feature requests, or optimizations that you don't see here, please try to direct me to the original post. If the post has some standing, I will add it to the list with ratings of importance and ease that I feel are appropriate. Please try not to debate much over the importance of items, the ratings I assign are just my rough opinions. Quigibo and any other coders can address items in any order they want.

Feel free to discuss any of these items either here or in their appropriate threads. I will try to merge good ideas and important points into the discussion section for each item.





Changelog



Spoiler For Old:
  • 12/10/11: [Axe 1.0.5]
    • +9 bugs
      • Multiple bugs with peephole optimizer
      • High-order multiplication calls the wrong routine
      • Erroneously throwing errors for some pointer reads
      • Precedence issue with negating constant pointer reads
      • Occasional issue importing tilemaps
      • The ? token lacks special meaning in strings
      • Address replacements fail in inline Axiom commands
      • Lbl and Goto mishandle spaces and periods
      • Incorrect key for float{ in command list
    • +3 feature requests
      • Improved handling of lowercase by getKey?
      • More meaningful compilation progress information
      • Inclusion of token strings as data
    • +3 optmization suggestions
      • Optimized sort and reciprocal commands
      • Peephole optimization of inc hl \ dec hl
      • Optimized input command
  • 10/18/11: [Axe 1.0.5]
    • +2 bugs
      • operandNAME() parses NAME as a variable, not a function
      • Lack of peephole optimizer control from API
    • +2 optmization suggestions
      • Optimized Bitmap() routine
      • Optimized checksum routine
  • 10/07/11: [Axe 1.0.5]
    • +1 bug
      • [Unconfirmed] Compiling from archive sometimes fails
    • +1 feature request
      • Including any external variable as data
  • 10/05/11: [Axe 1.0.5]
    • +1 feature request
      • Macros
  • 10/03/11: [Axe 1.0.5]
    • +3 bugs
      • CONST? as last line in source
      • ? and ? don't throw an error, given bad/no digits
      • [Unconfirmed] Use of bcalls not in old OSes
    • +1 optmization suggestion
      • Special comparisons for control structures
  • 09/31/11: [Axe 1.0.5]
    • -1 bug
      • [Unconfirmed] Instant goto corrupts program names
  • 09/31/11: [Axe 1.0.5]
    • +1 bug
      • Horizontal -(BUFF) does not properly adjust BUFF
    • +1 feature request
      • Proper inclusion of 2-byte tokens in strings
    • +3 optmization suggestions
      • Separating Vertical +/- variants from main routines
      • Loading a value before the jump in if statements
      • Short-circuit operators in if statements jump directly to destination
  • 09/30/11: [Axe 1.0.5]
    • +8 bugs. +51 feature requests. +12 optmization suggestions. No discussion about any items. No solutions for any items. Some items already have solutions, but I'm exhausted. I'll try to fill in all the discussion/solution fields tomorrow.




Bugs


Importance   Ease   Summary   Author   Discussion/Solution
****    *****   Misdocumented EndIf and End!If   jacobly (http://ourl.ca/4072/270632)   
****    ****    Duplication of commands referenced in Axioms   Runer112 (http://ourl.ca/4072/272323)   
****    ?   [Unconfirmed] Use of bcalls not in old OSes   Runer112 (http://ourl.ca/4072/248674)   List of bcalls used (http://ourl.ca/4072/269721)
***     *****   ClrHome does not obey split screen setting   Runer112 (http://ourl.ca/4072/239087)   
***     ***     Lbl and Goto mishandle spaces and periods   Runer112 (http://ourl.ca/4072/254325)   
***     ?   input clears existing homescreen text   Hot_Dog (http://ourl.ca/4072/217201)   
**      ***     Possible ERR:MEMORY when creating variables   Runer112 (http://ourl.ca/4072/176999)   
**      ***     Awkward signed division rounding   Runer112 (http://ourl.ca/4072/213957)   
*       ***     Various problems involving token 0x00   Runer112 (http://ourl.ca/4072/229700)   

Spoiler For Resolved:
Importance   Ease   Summary   Author   Discussion/Solution
*****   *****   Error thrown at empty hexadecimal data brackets   squidgetx (http://ourl.ca/4072/270343)   Fixed in 1.1.1
*****   ?   [Unconfirmed] Compiling from archive sometimes fails   Camdenmil (http://ourl.ca/4072/249820)   Multiple (http://ourl.ca/4072/270222) confirmation (http://ourl.ca/4072/270250) reports (http://ourl.ca/4072/270251)
Fixed in 1.1.1
****    *****   Issues with lowercase in getKey?   jacobly (http://ourl.ca/4072/270196)   Fixed in 1.1.1
*****   *****   operandNAME() parses NAME as a variable, not a function   Michael_Lee (http://ourl.ca/4072/253881)   Fixed in 1.1.0
*****   *****   Horizontal -(BUFF) does not properly adjust BUFF   Darl181 (http://ourl.ca/4072/247771)   Fixed in 1.1.0
*****   *****   High-order multiplication calls the wrong routine   jacobly (http://ourl.ca/4072/269788)   Fixed in 1.1.0
*****   *****   Erroneously throwing errors for some pointer reads   Builderboy (http://ourl.ca/4072/248706)   Fixed in 1.1.0
*****   ****    Multiple bugs with peephole optimizer   jacobly (http://ourl.ca/4072/254960)   Fixed in 1.1.0
      Multiple bugs with peephole optimizer   Runer112 (http://ourl.ca/4072/260887)   Fixed in 1.1.0
      Multiple bugs with peephole optimizer   Runer112 (http://ourl.ca/4072/262939)   Fixed in 1.1.0
****    *****   Precedence issue with negating constant pointer reads   Deep Thought (http://ourl.ca/4072/261556)   Fixed in 1.1.0
****    *****   Occasional issue importing tilemaps   Builderboy (http://ourl.ca/4072/267918)   Fixed in 1.1.0
****    *****   The Axe application doesn't disable G-T mode   Runer112 (http://ourl.ca/4072/239087)   Fixed in 1.1.0
***     *****   The ? token lacks special meaning in strings   jacboly (http://ourl.ca/4072/255567)   Fixed in 1.1.0
***     *****   Address replacements fail in inline Axiom commands   jacobly (http://ourl.ca/4072/254585)   Fixed in 1.1.0
***     *****   Buff(CONST) accepts undefined constants   Runer112 (http://ourl.ca/4072/237973)   Fixed in 1.1.0
***     ****    Lack of peephole optimizer control from API   thepenguin77 (http://ourl.ca/4072/252870)   Fixed in 1.1.0
***     ****    ? and ? don't throw an error, given bad/no digits   Runer112 (http://ourl.ca/4072/248674)   Fixed in 1.1.0
**      *****   Incorrect key for float{ in command list   CoolioJazz (http://ourl.ca/4072/264998)   Fixed in 1.1.0
**      ****    CONST? as last line in source   Runer112 (http://ourl.ca/4072/248674)   Fixed in 1.1.0
*****   ?   [Unconfirmed] Instant goto corrupts program names   Darl181 (http://ourl.ca/4072/242084)   Fixed in 1.0.5




Feature Requests


Importance   Ease   Summary   Author   Discussion/Solution
*****   *****   Higher maximum symbol length   Runer112 (http://ourl.ca/4057/229683)   
*****   *****   Fixed-point division   calc84maniac (http://ourl.ca/4175/220151)   
*****   ****    White and inverted line drawing   Builderboy (http://ourl.ca/4057/87471)   
*****   ****    FUNC()? recursive calling   Michael_Lee (http://ourl.ca/9165/244920)   
*****   ****    Automatic backup of included programs   epic7 (http://ourl.ca/4057/271408)   Extra pass?
*****   ***     Disabling of port 2E delays   Runer112 (http://ourl.ca/4057/244172)   
*****   ***     Variable increment for loop   Lord Coniupiter (http://ourl.ca/4057/102063)   
*****   ***     Line clipping   Builderboy (http://ourl.ca/4057/160431)   
*****   ***     ON key to halt execution   Builderboy (http://ourl.ca/4057/74991)   
*****   **      Token replacements for Axioms   Ashbad (http://ourl.ca/4057/186031)   
****    *****   Break and Continue   calc84maniac (http://ourl.ca/4057/110062)   
****    *****   Unclipped aligned sprite drawing   Quigibo (http://ourl.ca/4057/102185)   
****    ****    Random integer from A to B   Builderboy (http://ourl.ca/4057/74939)   
****    ****    White and outline rectangles   Builderboy (http://ourl.ca/4057/74939)   
****    ****    Horizontal and vertical line drawing   Quigibo (http://ourl.ca/4161/94886)   
****    ****    Custom interrupts that perform an rst 38h   Runer112 (http://ourl.ca/4057/205943)   
****    ***     On-calculator application signing   Quigibo (http://ourl.ca/4057/95576)   
****    ***     Compound assignment operators   SirCmpwn (http://ourl.ca/4057/80864)   
****    ***     Proper inclusion of 2-byte tokens in strings   Runer112 (http://ourl.ca/4072/246680)   
****    ***     Inclusion of token strings as data   Runer112 (http://ourl.ca/4057/256292)   
****    ***     Buffer display with bitwise logic   Happybobjr (http://ourl.ca/4057/156447)   
****    ***     Buffer combination with bitwise logic   ztrumpet (http://ourl.ca/4057/79129)   
****    ***     Improved Axiom header with version system   Runer112 (http://ourl.ca/4057/202502)   
****    ***     More intelligent parsing of similar Axiom commands   Runer112 (http://ourl.ca/4072/239843)   
****    ***     Arbitrary buffer support for all buffer/drawing commands   Runer112 (http://ourl.ca/4057/161735)   
****    **      Macros   Runer112 (http://ourl.ca/4072/238016)   
****    **      Optional Axiom priority over Axe commands   Runer112 (http://ourl.ca/4057/202502)   
****    *       Some degree of on-calculator documentation   Ashbad (http://ourl.ca/4057/126694)   
****    *       Authentic Axe libraries   Quigibo (http://ourl.ca/4057/87280)   
****    *       8-bit/32-bit mode   Runer112 (http://ourl.ca/4057/132747)   
***     *****   Native InsertMem and DelMem commands   calc84maniac (http://ourl.ca/4057/110868)   
***     *****   APD control   Runer112 (http://ourl.ca/4072/239087)   
***     *****   B_CALL(_DelRes)   Runer112 (http://ourl.ca/4072/183719)   
***     *****   B_CALL(_ForceFullScreen)   Runer112 (http://ourl.ca/4072/239087)   
***     ****    Signed for loop   Quigibo (http://ourl.ca/4057/84611)   
***     ****    Ability to execute programs upon compilation   thydowulays (http://ourl.ca/4057/271021)   
***     ****    16*16 sprite drawing command(s)   trevmeister66 (http://ourl.ca/4057/77424)   
***     ***     Switch statement   calc84maniac (http://ourl.ca/4057/77338)   Partially added in 1.1.1
***     ***     Manual stack control for experienced users   Quigibo (http://ourl.ca/4057/195758)   Partially (http://ourl.ca/4050/247882) added in 1.1.0
***     ***     Better sorting routines   ztrumpet (http://ourl.ca/4057/270145)   
***     ***     Safe copy display routines   calc84maniac (http://ourl.ca/4050/76836)   
***     **     Bit set/reset/get, esp. with memory   Runer112 (http://ourl.ca/4057/88808)   
**      *****   CRC-CCITT   Runer112 (http://ourl.ca/4072/227595)   
**      ****    Ability to call other assembly programs   ACagliano (http://ourl.ca/4057/124708)   
**      ****    8*n sprite drawing comamnd(s)   ztrumpet (http://ourl.ca/4057/124989)   
**      ****    Accessing the loop counter in For(CONST) loops   Runer112 (http://ourl.ca/4057/247735)   
**      ***     Buffer shifting by more than one pixel   guy6020665 (http://ourl.ca/4057/173432)   
**      ***     Nested preprocessor conditionals   jacobly (http://ourl.ca/4050/270111)   
**      ***     Axe API support   Broseph Radson (http://ourl.ca/4057/162772)   
**      **      Manual alteration of code origin   ztrumpet (http://ourl.ca/4057/143688)   
**      **      Defining constants from Axioms   Runer112 (http://ourl.ca/4057/207838)   
**      **      File-specific variable reallocation   Qwerty.55 (http://ourl.ca/4057/238759)   
**      *       USB support   graphmastur (http://ourl.ca/4057/105361)   
*       **      Inline TI-BASIC   Quigibo (http://ourl.ca/4057/80909)   

Spoiler For Resolved:
Importance   Ease   Summary   Author   Discussion/Solution
*****   ****    Reporting name of source file upon compile error   Darl181 (http://ourl.ca/4057/240626)   Added in 1.1.1
****    ***     More meaningful compilation progress information   Builderboy (http://ourl.ca/4057/254796)   Added in 1.1.1
***     ****    Display size of the compiled program during compiling   Happybobjr (http://ourl.ca/4057/270590)   Added in 1.1.1
*****   *****   Pre-processor conditionals   Eeems (http://ourl.ca/4057/77419)   Added in 1.1.0
****    *****   Improved handling of lowercase by getKey?   jacobly (http://ourl.ca/4175/269581)   Added in 1.1.0
****    ***     Arbitrary-sized sprite drawing command(s)   Raylin (http://ourl.ca/4057/84002)   Added in 1.1.0
***     ****    For(EXPR) loop   calc84maniac (http://ourl.ca/4057/229588)   Added in 1.1.0
***     ****    Including any external variable as data   buttsfredkin (http://ourl.ca/4057/249703)   Added in 1.1.0




Axiom Requests


Importance   Ease   Summary   Author   Discussion/Solution




Optimization Suggestions


Importance   Ease   Summary   Author   Discussion/Solution
*****   ***     Conditional jumping and calling   calcdude84se (http://ourl.ca/4057/140521)   
*****   **      Optimization of most/all commands for constant arguments   Runer112 (http://ourl.ca/4057/245943)   
****    *****   Make p_Log, p_Exp, p_GetBit, and p_GetBit16 subroutines   Runer112 (http://ourl.ca/4175/184304)   
****    *****   Removal of some port 6 interactions for interrupts in programs   Runer112 (http://ourl.ca/4175/218269)   
****    **      Special comparisons for control structures   calc84maniac (http://ourl.ca/4057/248755)   
****    **      Optimized constant storing   calc84maniac (http://ourl.ca/4175/162498)   
***     ****    Returning the full 32-bit result from the *^ operation   Quigibo (http://ourl.ca/4057/270389)   
***     ****    Separating Vertical +/- variants from main routines   Runer112   
***     ****    Loading a value before the jump in if statements   calc84maniac   
***     ***     Short-circuit operators in if statements jump directly to destination   calc84maniac   
***     ***     Double-buffered drawing   Freyaday (http://ourl.ca/4057/189002)   
***      ***     Parsing {CONST}? in expressions as a variable   Runer112 (http://ourl.ca/4057/131942)   
***     **      Optimized constant loading   calc84maniac (http://ourl.ca/4175/228099)   
**      ***     Optimized bitwise operations with set/res instructions   calc84maniac (http://ourl.ca/4057/89963)   
**     ***     Optimized DS<() structure   Runer112 (http://ourl.ca/4175/162131)   
**      *       Putting routines inline/in subroutines intelligently   Runer112 (http://ourl.ca/4057/93651)   

Spoiler For Resolved:
Importance   Ease   Summary   Author   Discussion/Solution
*****   *****   Optimized general mutliplication   Runer112 (http://ourl.ca/4175/270383)   Added in 1.1.1
****    *****   Optimized fixed-point multiplication   Runer112 (http://ourl.ca/4175/270641)   Added in 1.1.1
****    *****   Optimized signed division and reciprocal commands   jacobly (http://ourl.ca/4175/270215)   Added in 1.1.1
****    *****   Optimized sort and reciprocal commands   jacobly (http://ourl.ca/4175/268767)   Added in 1.1.0
****    *****   Peephole optimization of sbc hl,de \ ld a,h \ or l   jacobly (http://ourl.ca/4175/270039)   Added in 1.1.1
***     *****   Peephole optimization of inc hl \ dec hl   Runer112 (http://ourl.ca/4057/256292)   Added in 1.1.0
**      *****   Optimized Bitmap() command   calc84maniac (http://ourl.ca/4175/252407)   Removed in 1.1.0
**      *****   Optimized input command   jacobly (http://ourl.ca/4175/262258)   Added in 1.1.0
**      *****   Optimized checksum command   Xeda112358 (http://ourl.ca/4175/250723)   Added in 1.1.0
Title: Re: The Axe Bug, Feature Request, and Optimization List
Post by: Quigibo on September 30, 2011, 06:24:28 am
Some of those are already fixed/implemented.  Some are purposely left out.  Should I edit it to reflect changes, at least in the discussion tags?

This is a great idea though, to keep them in a neat list, it should make it easier for me to find things to improve.  But I think it is currently cluttered with a lot of things that I have no intention to add at any point in the future.  A lot of the feature requests are just way too specific to be included internally.
Title: Re: The Axe Bug, Feature Request, and Optimization List
Post by: Runer112 on September 30, 2011, 10:42:38 am
Yeah, the feature request list is a bit crowded. For requests for commands that you don't plan on adding, I'll make a separate section for Axiom requests and you can move anything you want into that section. But for everything that isn't simply a command request, instead of deleting things you don't plan on implementing, I think it would be better if it just had its importance dropped down to zero stars. If you want, you can add a short note in the discussion box explaining why it isn't a bug/why you won't implement the feature/why you won't implement the optimization. If you provide a good reason for not implementing it then I'll delete the entry altogether. Otherwise, I might follow it up with a counter-argument. ;)
Title: Re: The Axe Issue Tracker (sort of)
Post by: Deep Toaster on September 30, 2011, 06:11:38 pm
Epic post.
Title: Re: The Axe Issue Tracker (sort of)
Post by: Runer112 on October 03, 2011, 03:55:30 pm
Bump to tell Quigibo that I have added some bugs, and to remind him that he should feel free to move any feature requests he doesn't plan on implementing either down to zero stars of importance or into the Axiom requests section as appropriate, possibly with explanation. Also if there are any bugs that you don't think are bugs, feel free to drop them to zero stars of importance as well, again possibly with explanation.

Also, reminding everybody to speak up if they know of old bugs/feature requests/optimization suggestions that aren't found on this list. I want this to be an exhaustive list of pretty much everything, and I might have missed some. And don't be shy with strange feature requests, because I'll also be trying to fill out the Axiom requests section soon, where many requests could go. I wasn't originally looking for feature requests that might be useful as Axioms, so I know I've missed some of those.
Title: Re: The Axe Issue Tracker (sort of)
Post by: Art_of_camelot on October 04, 2011, 03:51:46 am
Wow, awesome work taking the time to organize this all in one section. =)
Title: Re: The Axe Issue Tracker (sort of)
Post by: DJ Omnimaga on October 17, 2011, 01:57:02 am
Darn nice list Runer112. This should hopefully reduce the amount of duplicate bug reports, even though they might still happen.
Title: Re: The Axe Issue Tracker (sort of)
Post by: Runer112 on December 11, 2011, 12:05:21 am
Finally forced myself to update this thing for the past 2 months of activity! XD And as you can see in the changelog, Axe 1.1.0 was quite an impressive release; it resolved 25 issues.

Phew, that took a while...


EDIT: After multiple reports, compiling from archive is definitely confirmed to have problems.
Title: Re: The Axe Issue Tracker (sort of)
Post by: Runer112 on December 18, 2011, 08:03:18 pm
Updated for the past week of bug reports, feature requests, and optimization suggestions. Also updated for the release of Axe 1.1.1! ;D