El compilador de GCBasic no genera un archivo HEX con este programa , pero sí lo hace con otros de las demos incluidas en el compilador. El compilador no genera ningun error . Donde estoy fallando ?
Chris is correct with the errors, however, I have found that the third error was being incorrectly handled in later version of the compiler.
I now get - which is correct. And, I have added the actual error. There is a set of braces that confuse the compiler and they need to be removed - this compiler is trying to find a function... which it cannot find.
Gracias por su ayuda.
Cual es el procedimiento para aplicar un parche ?.
He descargado un archivo que señala como parche para la version 1077 pero no se que hacer con él.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Download the zip
unzip all files to a temp folder
apply all files to your installation replacing all the existing files
then, rename the compiler EXE for your operating system - you need to ensure either GCBASIC64.exe or GCBASIC32.exe is renamed as GCBASIC.exe
Enjoy
Using single files may make your installation unstable. Use all the patch files.
Manuel's little program uncovered a few issues deep inside the compiler but these issues were easy to trigger within the user code. As he found out. And, they are easy for new user get stuck on.
Serial programming when port not available.
Operations with braces that were not processed correctly.
Operations where a division of different types of variables were not processed correctly.
Programming when port not available - fixed
I hit this issue using the example code on a new build with default settings. I have seen it 100's of time but this time it annoyed me. The classic serial port/AVRDUDE lock up. The new code now checks the serial port just before passing programming to the external programmer. This resolves the IDE window sitting there and a new user having to use task manager to kill the session.
Operations with braces that were not processed correctly - fixed
An example: char=val((cad(cont - 1) or 0b10000000)) There is nothing wrong with the source but the compile cannot in this specific instance where a function VAL() is called with the Element Array CAD()the compile was not computing the example assignment correctly where a cad(cont - 1) or 0b10000000 was been created as the variable. Then, net result of this was the compiler crashed mid compilation with no exit code. This has been resolved.
Operations where a division of different types of variables were not processed correctly - fixed
An example: display_string = val( valor_calc / 100 ) where valor_calc is a string. This also crashed the compiler mid compilation with no exit code. Again, the compiler cannot resolve and therefore there was an unhandled error. This is was the string pointer fails to resolve the 'string / number' operation with the pointer address being returned as a very very large impractical memory address. This is now handle totally appropriately with an appropriate error message.
So, who knew that from a one post so many things would be resolved!
Evan
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
El compilador de GCBasic no genera un archivo HEX con este programa , pero sí lo hace con otros de las demos incluidas en el compilador. El compilador no genera ningun error . Donde estoy fallando ?
Hola Manuel,
I see errors:
Not sure of the reason though.
Chris is correct with the errors, however, I have found that the third error was being incorrectly handled in later version of the compiler.
I now get - which is correct. And, I have added the actual error. There is a set of braces that confuse the compiler and they need to be removed - this compiler is trying to find a function... which it cannot find.
Please apply the patches for build 1077
Evan
Read this! https://sourceforge.net/p/gcbasic/discussion/579127/thread/b867317011/
Remove the use of single and use factorisation instead.
Our goal is to resolve the real numbering issues in the next release.
Can't open link- access forbidden
Hserprint does not support multiple entries. Change this to:
Same applies to line 67 or any other that has multiple entries
Erroneous "do" Change this to:
And, apply the patch. As the compiler was crashing and not generating any output files.
A code segment to show how I would go about this display.
Gracias por su ayuda.
Cual es el procedimiento para aplicar un parche ?.
He descargado un archivo que señala como parche para la version 1077 pero no se que hacer con él.
Como dice desde donde descargaste.
Evan
**Version 0.99.xx Patches
To install these patches:
Download the zip
unzip all files to a temp folder
apply all files to your installation replacing all the existing files
then, rename the compiler EXE for your operating system - you need to ensure either GCBASIC64.exe or GCBASIC32.exe is renamed as GCBASIC.exe
Enjoy
Using single files may make your installation unstable. Use all the patch files.
See https://1drv.ms/x/s!Ase-PX_n_4cvhJAysbPF3VJAnYaj3A for changelog.
Please see here https://sourceforge.net/p/gcbasic/discussion/579126/thread/0d009b1785/ to see the Software Bill of Materials (SBOM) to meet the US.gov Executive Order May 2021 requirement.**
Manuel's little program uncovered a few issues deep inside the compiler but these issues were easy to trigger within the user code. As he found out. And, they are easy for new user get stuck on.
Operations where a division of different types of variables were not processed correctly.
Programming when port not available - fixed
I hit this issue using the example code on a new build with default settings. I have seen it 100's of time but this time it annoyed me. The classic serial port/AVRDUDE lock up. The new code now checks the serial port just before passing programming to the external programmer. This resolves the IDE window sitting there and a new user having to use task manager to kill the session.
An example:
char=val((cad(cont - 1) or 0b10000000))
There is nothing wrong with the source but the compile cannot in this specific instance where a functionVAL()
is called with the Element ArrayCAD()
the compile was not computing the example assignment correctly where acad(cont - 1) or 0b10000000
was been created as the variable. Then, net result of this was the compiler crashed mid compilation with no exit code. This has been resolved.An example:
display_string = val( valor_calc / 100 )
wherevalor_calc
is a string. This also crashed the compiler mid compilation with no exit code. Again, the compiler cannot resolve and therefore there was an unhandled error. This is was the string pointer fails to resolve the 'string / number' operation with the pointer address being returned as a very very large impractical memory address. This is now handle totally appropriately with an appropriate error message.So, who knew that from a one post so many things would be resolved!
Evan