Bug Tracking

Author Message


Joined: 06/06/2011
Location: Australia
Posts: 2818
Posted: 04:17am 04 Feb 2021      

Up to now I have been using a service called Lean Tracking to record and track bugs in MMBasic and the Micromites.  It was a great service... free, worked well and all the data was held in the cloud.

Then, a few weeks ago, they just turned it off.  Everything, the data, domain name, the whole system just vanished.  What got me was that they did not provide any warning - they just flipped the switch and walked away.

There is a big lesson here; don't trust anything that is free and any data held in the cloud can vanish in an instant.  Lesson learnt I have now built my own bug tracker with the data held on my own NAS which is fully backed up.

Fortunately I had downloaded a backup of the data last year so I have most of it but I have lost some of the bugs reported since then.  So, if you have reported a bug since June 2020 could you please let me know (a pointer to the original posting will suffice).  From memory there have only been a 2 or 3 reported but I hate to think that even one has escaped.

Below is the list of bugs that I do know of and should be fixed in the next release:
- Bug that causes a STATIC declaration to sometimes fail with "Error: Conflicting variable type" or "Error: Out of memory".
- An error when an array with eight dimensions is declared.
- A bug that causes GUI BITMAP to incorrectly display a bitmap with uneven width and/or height.
- A bug that can cause SELECT CASE to fail with a string select value.
- Closing a PWM channel sometimes does not work correctly.
- A problem in MMBasic recursive FOR loops (this may not be fixable)
- Possible errors in an If statement with bitwise AND
- Problem with SELECT CASE reported by twill
- Static variables in interrupt routines may clash with same named vars in other interrupt routines.

Edited 2021-02-04 15:28 by Geoffg


Joined: 11/12/2012
Location: United Kingdom
Posts: 4799
Posted: 07:55am 04 Feb 2021      

Can't read - ignore
Edited 2021-02-04 18:22 by matherp


Joined: 03/03/2016
Location: United States
Posts: 715
Posted: 10:17pm 04 Feb 2021      

Hi Geoffg,

Weren't you the guy who wondered if anyone would actually use a FoxPro workalike on the CMM2 when Lizby and I were proposing such a monster?????

It would be a great tool to have to keep track of these bugs.

We stopped planning it when almost no interest appeared.

You are completely correct when you say don't trust free programs and free cloud data storage.

I don't even trust the cloud data storage I pay for.

I do trust that 8 TB USB 3.0 disk which is plugged into one of my mesh routers.

I'm thinking about adding a second 8 TB disk plugged into another mesh node and running robocopy daily to keep the two drives more or less identical.

I have been know to wear both a belt and suspenders (whoops ... sorry braces   ).

Paul in NY



Joined: 06/06/2011
Location: Australia
Posts: 2818
Posted: 10:22pm 04 Feb 2021      

  Paul_L said  Weren't you the guy who wondered if anyone would actually use a FoxPro workalike on the CMM2 when Lizby and I were proposing such a monster?????

Sorry, you must be thinking of someone else.


Senior Member

Joined: 06/08/2020
Location: Canada
Posts: 277
Posted: 01:08pm 05 Feb 2021      

Paul, the idea of an old-school RDBMS like DBase or FoxPro is quite intriguing. It would be even more intriguing if DDL/DML support for an ".mdb" (Maximite DB) file format was built into MMBasic, but I imagine the existing support for random access files is adequate for most use cases that require structured data persisted to disk.
Edited 2021-02-06 01:13 by RetroJoe


Joined: 05/03/2018
Location: Netherlands
Posts: 570
Posted: 11:58am 08 Mar 2021      

Hi Geoff,

I am not sure if your bug fixing data lost also includes CMM1 bugs?

One of the things I ran into in my last effort for the 10 liner challenge is that the NEXT and LOOP commands must be at the beginning of a new line, where at the associated FOR and DO can be in the middle of a multi-statement line.

Not sure if you ever plan to release a new version of MMBasic for the maximite and color maximite, this may be addressed.

Example code:
Try moving the LOOP to the end of the previous line. Similar for the NEXT j,i.

s=13:Dim f(s,s),t(s,s):Do:Mode 4:z=9:Read x,y:For i=1To s:Read a$:l=Val("&h"+a$)
For j=1To s:w=2^((j-1)*2):m=3*w:f(i,j)=(l And m)/w:If f(i,j)<2Then t(i,j)=f(i,j)
Next j,i:Print @(99,10)"TLS":f(x,y)=4:Do:If a$="r"Then:Restore:Exit Do:EndIf:d=1
For i=1To s:For j=1To s:k=f(i,j):If k=1Then:d=0:EndIf:o=120+z*(i-6):p=100+z*(j-6)
Line(o,p)-(o+z-2,p+z-2),3And k,BF:If k=4Then Circle(o+z/2-1,p+z/2-1),3,6,,F:EndIf
Next j,i:If d=1Then:Exit Do:EndIf:Do:a$=Inkey$:Loop While a$="":n=3And Asc(a$)
If n<2Then:b=0:c=n*2-1:Else:b=n*2-5:c=0:EndIf:e=x+b:g=y+c:If f(e,g)=2Then
If f(e+b,g+c)=<1Then:f(e,g)=0+t(e,g):f(e+b,g+c)=2:Else:b=0:c=0:EndIf
ElseIf f(e,g)=3Then:b=0:c=0:EndIf:f(x,y)=t(x,y):x=x+b:y=y+c:f(x,y)=4
Loop:Loop:Data 2,2,FFFF,D5F3,CBC3,C023,C3CF,EC0F,C0FF,FFFF,0,0,0,0,0

Edited 2021-03-08 21:59 by Volhout


Senior Member

Joined: 30/07/2020
Location: Belgium
Posts: 184
Posted: 03:00pm 08 Mar 2021      

  Geoffg said  - A problem in MMBasic recursive FOR loops (this may not be fixable)

I actually can't get WHILE loops to work with recursive functions and use FOR loops as a workaround:

SUB recurseLoop(n%)
 IF n%=0 THEN

 LOCAL ii%=0

 'DO WHILE ii%<4 <-- This results in LOOP without a matching DO error.
 FOR ii%= 0 TO 3
   PRINT "*";
   recurseLoop n%-1
 '  INC ii%

recurseLoop 3


Regarding your experience with free cloud software, I once had an IOT project fall through, after launch, because the provider (Particle at the time), simply removed from they cloud API a key feature I relied on without notice. There was no workaround. I would have had to set up (and pay for) a bunch of cloud infrastructure myself to keep the project going.