Author Topic: BCX 7.3.6 Available For Download  (Read 4175 times)

MrBcx

  • Administrator
  • Hero Member
  • *****
  • Posts: 1885
    • View Profile
BCX 7.3.6 Available For Download
« on: November 26, 2019, 10:20:49 PM »
https://bcxbasiccoders.com/archives/YahooGroups/Bcx_Files_New/Bcx736.Zip

I sincerely apologize for all the unwanted excitement and frustration caused by 7.3.4 and 7.3.5

I am hopeful that everyone will be reasonably content with this version for a while.


Version 7.3.6 started with an unmodified copy of 7.3.2 dated March 2018.
To that version I made the following changes to BC.Bas  (again)

1) Changed BCX LICENSE from GPLV2 to MIT License and removed LICENSE EXCEPTION
2) Eliminated copyright notice from being emitted within users translated programs.
3) Broke out the Developer Rules, Revisions, and To-Do-Lists into separate text files
4) Added Windows 10 to the OSVERSION detection.  Returns 17 for any family of Windows 10 OS
5) Wording & cosmetic changes to several areas of displayed text (file and screen)
6) Modified DOWNLOAD statement to use DeleteUrlCacheEntryA instead of DeleteUrlCacheEntry
7) Added FUNCTION WordPairExist() which checks for and REPORTS these missing or mispelled pairs
   EXIT SUB, EXIT FUNCTION, EXIT FOR, EXIT XFOR, EXIT DO, EXIT WHILE, EXIT SELECT, EXIT NEST,
   AND EXIT LOOP  from inside FUNCTION Emit_ControlFlow.
(NOTE) "AUTO" and "REGISTER" are as they were in 7.3.2.  You should remove "AUTO" and
   "REGISTER" from any programs that you've written, as they have been deprecated by their
   respective governing bodies.  These may be removed from BCX or altered in the future.


Michael Henning

  • Newbie
  • *
  • Posts: 44
    • View Profile
Re: BCX 7.3.6 Available For Download
« Reply #1 on: November 27, 2019, 12:30:03 AM »
Getting much better. I've been converting any auto variables to a manual form until the newer versions are better tested. I do like the new variable redo tho. That was a long time coming  ;)  Your WordPairExist seems to work well. I still think all the extra c++ stuff would have been better for a forked version...but that's just my 2 cents.

Thanks,

Mike H

iancasey

  • Full Member
  • ***
  • Posts: 105
    • View Profile
Re: BCX 7.3.6 Available For Download
« Reply #2 on: November 27, 2019, 04:26:46 AM »
Kevin,
Thanks for the update, its working good so far.

Mike what are you converting the auto variables to. Your ra_grid code demo was where I saw that 7.3.5 was mangling the dim statement on auto and I would like to use the grid again.
Do you have a 64 bit version of the Ra_grid code? I see there are alot of replacements needed but mostly the same ones over..

Ian

MrBcx

  • Administrator
  • Hero Member
  • *****
  • Posts: 1885
    • View Profile
Re: BCX 7.3.6 Available For Download
« Reply #3 on: November 27, 2019, 07:49:02 AM »
Getting much better. I've been converting any auto variables to a manual form until the newer versions are better tested. I do like the new variable redo tho. That was a long time coming  ;)  Your WordPairExist seems to work well. I still think all the extra c++ stuff would have been better for a forked version...but that's just my 2 cents.

Thanks,

Mike H

Mike - I'm was relieved to read yours and Ian's posts on 7.3.6. this morning. 

I believe the current all-in-one model has become too bloated, tedious to maintain, and abstracted. 

I think a serious discussion of splitting out the two languages is needed.   If the goal is to target multiple languages,
splitting them out is the logical choice.  That idea could open doors to other targets like compiler-specific versions and
maybe new supported languages, like the Digital Mars "D" language or any of the multitude of C derivative languages.

Michael Henning

  • Newbie
  • *
  • Posts: 44
    • View Profile
Re: BCX 7.3.6 Available For Download
« Reply #4 on: November 27, 2019, 08:14:43 AM »
Quote
Mike what are you converting the auto variables to. Your ra_grid code demo was where I saw that 7.3.5 was mangling the dim statement on auto and I would like to use the grid again.
Do you have a 64 bit version of the Ra_grid code?

Hi Ian,

The use of auto was the easiest way of getting a non static variable that was initialized. The newer versions do this by simply using just Dim. For now as an example: dim auto buffer$ I'm changing to dim raw buffer[2048] = {0} as char. I haven't done anything for 64 bit yet. It shouldn't take much tho.

Quote
I believe the current all-in-one model has become too bloated, tedious to maintain, and abstracted.
I agree Kevin. It really seems like it's getting so complex that it's too easy to break something. I still need to study the current code to wrap my head around it. Working 3rd shift this week... It's killing me....lol....Heading to bed now.

Mike H.

Robert

  • Hero Member
  • *****
  • Posts: 1142
    • View Profile
Re: BCX 7.3.6 Available For Download
« Reply #5 on: November 27, 2019, 12:55:12 PM »
Mike - I'm was relieved to read yours and Ian's posts on 7.3.6. this morning. 

I believe the current all-in-one model has become too bloated, tedious to maintain, and abstracted. 

I think a serious discussion of splitting out the two languages is needed.   If the goal is to target multiple languages,
splitting them out is the logical choice.  That idea could open doors to other targets like compiler-specific versions and
maybe new supported languages, like the Digital Mars "D" language or any of the multitude of C derivative languages.

I whole heartedly agree that the C++ structural components, classes, namespace etc be removed either by deleting from existing code or beginning anew from perhaps MrBCX 6.2.2.

I do feel, however, that the deprecated POSIX function names be replaced with the ISO C++ conformant names. Replace mkdir with _mkdir ,  stricmp with _stricmp etc.

The many optional arguments used in BCX are not a standard C feature but an extension that Jacob and Pelle added to their compilers. Pelle did so at my request, for which I was grateful, although Mike Henning did write code that does provide the optional argument facility for those wanting to hold to strict C standards compliance and still have optional arguments. This considered, I think it would be wise to be sure that BCX can be compiled with C++ compilers.

This is a new begining.

Once more unto the breach, dear friends, once more;

Robert

iancasey

  • Full Member
  • ***
  • Posts: 105
    • View Profile
Re: BCX 7.3.6 Available For Download
« Reply #6 on: November 27, 2019, 02:25:07 PM »
I do feel, however, that the deprecated POSIX function names be replaced with the ISO C++ conformant names. Replace mkdir with _mkdir ,  stricmp with _stricmp etc.

I know this is a real ask, but why not go straight to the tchar routines. _mkdir, _tmkdir & _stricmp _tcsicmp  etc. have bcx decorate strings and make it ansi or unicode? Anyways the UnicodeLexer works well enough I don't mind using it.

Ian

Robert

  • Hero Member
  • *****
  • Posts: 1142
    • View Profile
Re: BCX 7.3.6 Available For Download
« Reply #7 on: December 08, 2019, 03:38:22 AM »
I do feel, however, that the deprecated POSIX function names be replaced with the ISO C++ conformant names. Replace mkdir with _mkdir ,  stricmp with _stricmp etc.

I know this is a real ask, but why not go straight to the tchar routines. _mkdir, _tmkdir & _stricmp _tcsicmp  etc. have bcx decorate strings and make it ansi or unicode? Anyways the UnicodeLexer works well enough I don't mind using it.

Ian

Hi Ian:

Unicode ?

Yeah, I'm with you brother.

I just spent ALL DAY consolidating Jeff's OSVERSION code with our existing BCX code and it went very well for a very short time and then it all turned into a total poop show.

I could not distinguish between Windows 10 and Windows Server 2016. The answer finally turned out to be that Microsoft had made the OSVERSIONINFO structures WIDE for the newer functions like RtlGetVersion to facilitate UNICODE. The fix was incredibly simple but it took me all day to find it. Jeez am I pissed off !!!

I know that I am just another ass dragging dinosaur luddite stuck in the ANSI mudhole and that I should have followed your lead on Unicode years ago. You know I could probably be programming coloured emojis in BCX if I had done that.  ;D ;D ;D ;D ;D


MrBcx

  • Administrator
  • Hero Member
  • *****
  • Posts: 1885
    • View Profile
Re: BCX 7.3.6 Available For Download
« Reply #8 on: December 08, 2019, 07:06:56 AM »
When your only tool is a hammer, everything looks like a nail ...

C:\Temp>wmic os get Version>version.txt
C:\Temp>type version.txt
Version
10.0.18362


(EDIT 1) -- Most ass-dragging dinosaur luddites (raises hand) would not expect that the contents in "version.txt" would actually be UNICODE!

(EDIT 2) -- I submit the following for your consideration and amusement
Code: [Select]
PRINT Brute_Force_OSVersion$()   ' Returns 10.0.18362 on my system

FUNCTION Brute_Force_OSVersion$
  SHELL "wmic os get Version>version.bin"
  SLEEP (500)
 
  DIM FileSize
  FileSize = LOF ("version.bin")
  DIM Buffer$ * FileSize
  DIM OurBstr AS BSTR

  OPEN "version.bin" FOR BINARY AS FP1
  GET$ FP1, Buffer$, FileSize
  CLOSE FP1

  KILL "version.bin"

  OurBstr  = (BSTR)Buffer$
  Buffer$ = WIDETOANSI$ (OurBstr)
  Buffer$ = RETAIN$ (Buffer$,".0123456789")

  FUNCTION = Buffer$
END FUNCTION

« Last Edit: December 08, 2019, 09:30:06 AM by MrBcx »

Robert

  • Hero Member
  • *****
  • Posts: 1142
    • View Profile
Re: BCX 7.3.6 Available For Download
« Reply #9 on: December 08, 2019, 03:56:50 PM »

(EDIT 1) -- Most ass-dragging dinosaur luddites (raises hand) would not expect that the contents in "version.txt" would actually be UNICODE!


Absolutely !!!

For those of us who are unable to discern the subtlety of MrBCX's submission, here is the hex content of version.bin

Code: [Select]

FF FE 56 00 65 00 72 00 73 00 69 00 6F 00 6E 00
20 00 20 00 20 00 20 00 20 00 0D 00 0A 00 31 00
30 00 2E 00 30 00 2E 00 31 00 38 00 33 00 36 00
33 00 20 00 20 00 0D 00 0A 00 00


You may say 不可能吗 不  or "Well, I'll be jiggered !" but yes my little lumpkins, that, indeed, is a UTF-16 BOM at the begining of the hex code. I shall have more to say about Microsoft's choice of using UTF-16 internally in Windows when I post my sample of printing emojis using BCX code. No, not coloured emojis.

iancasey

  • Full Member
  • ***
  • Posts: 105
    • View Profile
Re: BCX 7.3.6 Available For Download
« Reply #10 on: December 08, 2019, 11:42:56 PM »
At least MS included the BOM, so many utf16 files do not and it is up to the program to figure it out.
I was having problems when I started using this laptop with BCX. nothing new would compile, I later found out that BCX didn't like the UTF16 BOM my editor added to new files even if it was later saved as ascii.

Ian

Wayne Halsdorf

  • Newbie
  • *
  • Posts: 28
    • View Profile
Re: BCX 7.3.6 Available For Download
« Reply #11 on: February 11, 2020, 09:24:19 AM »
I expect all aspect of windows to be in unicode joust to make it easier for them to support all the spoken languages. Better to start now than latter.