Windows 8 Support

Everything else that doesn't fall into one of the other PB categories.
Warmonger
Enthusiast
Enthusiast
Posts: 156
Joined: Wed Apr 20, 2011 4:24 pm

Windows 8 Support

Post by Warmonger »

Alright, I think its established that WinRT support and the new Windows Runtime is something that PB wont support. Tho the question is, will PB v5.00 support Windows 8? For such functions as compiler ifs, OSVersion(), etc? I know Windows 8 isn't released yet. But the Release Preview still carries the same base information required for determining if the OS is Windows 8 or not (NT 6.2). I think it would be a shame if v5.00 launches the same time as Windows 8 without the new OS supported.
Its Not A Bug, Its An Undocumented Feature!
Relax Its All Just Ones And Zeros
There Is No Place Like 127.0.0.1 Except ::1
I do things TO my computer, not WITH my computer... I am a nerd.
User avatar
TI-994A
Addict
Addict
Posts: 2778
Joined: Sat Feb 19, 2011 3:47 am
Location: Singapore
Contact:

Re: Windows 8 Support

Post by TI-994A »

Warmonger wrote:...WinRT support and the new Windows Runtime is something that PB wont support.
Hi Warmonger! You're right; as of now, PureBasic does not support the new Windows Runtime (both WinRT and Windows RT), but it should still work on Windows 8, and technically, even on the Surface Tablet Pro. The only compatibility issue is with Metro, which uses a COM-based API.
Texas Instruments TI-99/4A Home Computer: the first home computer with a 16bit processor, crammed into an 8bit architecture. Great hardware - Poor design - Wonderful BASIC engine. And it could talk too! Please visit my YouTube Channel :D
Warmonger
Enthusiast
Enthusiast
Posts: 156
Joined: Wed Apr 20, 2011 4:24 pm

Re: Windows 8 Support

Post by Warmonger »

TI-994A wrote:
Warmonger wrote:...WinRT support and the new Windows Runtime is something that PB wont support.
Hi Warmonger! You're right; as of now, PureBasic does not support the new Windows Runtime (both WinRT and Windows RT), but it should still work on Windows 8, and technically, even on the Surface Tablet Pro. The only compatibility issue is with Metro, which uses a COM-based API.
Why are you going off topic? :evil:
Its Not A Bug, Its An Undocumented Feature!
Relax Its All Just Ones And Zeros
There Is No Place Like 127.0.0.1 Except ::1
I do things TO my computer, not WITH my computer... I am a nerd.
User avatar
TI-994A
Addict
Addict
Posts: 2778
Joined: Sat Feb 19, 2011 3:47 am
Location: Singapore
Contact:

Re: Windows 8 Support

Post by TI-994A »

Warmonger wrote:
TI-994A wrote:
Warmonger wrote:...WinRT support and the new Windows Runtime is something that PB wont support.
Hi Warmonger! You're right; as of now, PureBasic does not support the new Windows Runtime (both WinRT and Windows RT), but it should still work on Windows 8, and technically, even on the Surface Tablet Pro. The only compatibility issue is with Metro, which uses a COM-based API.
Why are you going off topic? :evil:
Did I miss something? How's it off topic?
Texas Instruments TI-99/4A Home Computer: the first home computer with a 16bit processor, crammed into an 8bit architecture. Great hardware - Poor design - Wonderful BASIC engine. And it could talk too! Please visit my YouTube Channel :D
GoodNPlenty
Enthusiast
Enthusiast
Posts: 112
Joined: Wed May 13, 2009 8:38 am
Location: Arizona, USA

Re: Windows 8 Support

Post by GoodNPlenty »

I agree, Windows 8 will be available October 26th 2012 and to properly distinguish Windows 8 from other Windows operating systems we are relying on a workaround using current OSVersion() constants that will eventually break.

Code: Select all

If OSVersion() > #PB_OS_Windows_7       ; Probably Windows 8, but future compatibilty uncertain.
If OSVersion() = #PB_OS_Windows_Future  ; Windows 8 currently, but this will probably change. 
  
; We need a absolute definition such as:
#PB_OS_Windows_7 = 80
#PB_OS_Windows_8 = 90  ; It would be nice to define Windows 8 before 5.0 becomes final.
#PB_OS_Windows_Future = 100
User avatar
TI-994A
Addict
Addict
Posts: 2778
Joined: Sat Feb 19, 2011 3:47 am
Location: Singapore
Contact:

Re: Windows 8 Support

Post by TI-994A »

Hi GoodNPlenty. Just as they've done for every OS release in the past, I'm sure that the version constant for Windows 8 will be added to PureBasic soon enough. Until then, we'll just have to use the #PB_OS_Windows_Future constant, as we've done before.

Alternatively, you can also use the Windows API function GetVersionEx():

Code: Select all

CompilerIf #PB_Compiler_OS = #PB_OS_Windows
  osv.OSVERSIONINFO
  osv\dwOSVersionInfoSize = SizeOf(OSVERSIONINFO)
  GetVersionEx_(@osv)
  os.s = Str(osv\dwMajorVersion)
  os + "." + Str(osv\dwMinorVersion)
  os + "." + Str(osv\dwBuildNumber)
CompilerEndIf
Texas Instruments TI-99/4A Home Computer: the first home computer with a 16bit processor, crammed into an 8bit architecture. Great hardware - Poor design - Wonderful BASIC engine. And it could talk too! Please visit my YouTube Channel :D
GoodNPlenty
Enthusiast
Enthusiast
Posts: 112
Joined: Wed May 13, 2009 8:38 am
Location: Arizona, USA

Re: Windows 8 Support

Post by GoodNPlenty »

Thanks TI-994A for the GetVersionEX() example, that's a great workaround.
Warmonger
Enthusiast
Enthusiast
Posts: 156
Joined: Wed Apr 20, 2011 4:24 pm

Re: Windows 8 Support

Post by Warmonger »

GoodNPlenty wrote:I agree, Windows 8 will be available October 26th 2012 and to properly distinguish Windows 8 from other Windows operating systems we are relying on a workaround using current OSVersion() constants that will eventually break.

Code: Select all

If OSVersion() > #PB_OS_Windows_7       ; Probably Windows 8, but future compatibilty uncertain.
If OSVersion() = #PB_OS_Windows_Future  ; Windows 8 currently, but this will probably change. 
  
; We need a absolute definition such as:
#PB_OS_Windows_7 = 80
#PB_OS_Windows_8 = 90  ; It would be nice to define Windows 8 before 5.0 becomes final.
#PB_OS_Windows_Future = 100
Correct, Microsoft has Windows 8 (build 9200 retail version) available for Fred or whoever to download here (lasts 90 days).

http://msdn.microsoft.com/en-us/evalcen ... 54510.aspx

Which should give them no excuse not to update the constants and parameters of other functions that rely on the OS. It would be terrible to see 5.00 release and not at least support the already existing functions.
Its Not A Bug, Its An Undocumented Feature!
Relax Its All Just Ones And Zeros
There Is No Place Like 127.0.0.1 Except ::1
I do things TO my computer, not WITH my computer... I am a nerd.
User avatar
TI-994A
Addict
Addict
Posts: 2778
Joined: Sat Feb 19, 2011 3:47 am
Location: Singapore
Contact:

Re: Windows 8 Support

Post by TI-994A »

Warmonger wrote:...Which should give them no excuse not to update the constants and parameters of other functions that rely on the OS. It would be terrible to see 5.00 release and not at least support the already existing functions.
Hi Warmonger. Windows 8 has complete backwards compatibility with Windows 7. So, it will support all existing functions.

Besides including a new OSVersion() constant for Windows 8, what are the other Windows-8-specific functions that need updating?
Texas Instruments TI-99/4A Home Computer: the first home computer with a 16bit processor, crammed into an 8bit architecture. Great hardware - Poor design - Wonderful BASIC engine. And it could talk too! Please visit my YouTube Channel :D
Warmonger
Enthusiast
Enthusiast
Posts: 156
Joined: Wed Apr 20, 2011 4:24 pm

Re: Windows 8 Support

Post by Warmonger »

TI-994A wrote:
Warmonger wrote:...Which should give them no excuse not to update the constants and parameters of other functions that rely on the OS. It would be terrible to see 5.00 release and not at least support the already existing functions.
Hi Warmonger. Windows 8 has complete backwards compatibility with Windows 7. So, it will support all existing functions.

Besides including a new OSVersion() constant for Windows 8, what are the other Windows-8-specific functions that need updating?
Of course most of the existing functions will still work as Win32 hasn't changed any. Tho Windows 8 handles memory and other things a little differently then previous OS's. So you can expect there to be a few bugs down the line.
Its Not A Bug, Its An Undocumented Feature!
Relax Its All Just Ones And Zeros
There Is No Place Like 127.0.0.1 Except ::1
I do things TO my computer, not WITH my computer... I am a nerd.
User avatar
TI-994A
Addict
Addict
Posts: 2778
Joined: Sat Feb 19, 2011 3:47 am
Location: Singapore
Contact:

Re: Windows 8 Support

Post by TI-994A »

Warmonger wrote:Of course most of the existing functions will still work as Win32 hasn't changed any. Tho Windows 8 handles memory and other things a little differently then previous OS's. So you can expect there to be a few bugs down the line.
Actually, Windows 8 has added more than a thousand new functions and hundreds of new classes to its API, but the earlier subsets are still in tact and fully functional. So, if it works on Windows 7, it should work on Windows 8, with no variance in memory or process handling. Accordingly, any existing inconsistencies in PureBasic would be carried over, but not likely caused by Windows 8 itself.
Texas Instruments TI-99/4A Home Computer: the first home computer with a 16bit processor, crammed into an 8bit architecture. Great hardware - Poor design - Wonderful BASIC engine. And it could talk too! Please visit my YouTube Channel :D
Warmonger
Enthusiast
Enthusiast
Posts: 156
Joined: Wed Apr 20, 2011 4:24 pm

Re: Windows 8 Support

Post by Warmonger »

TI-994A wrote:
Warmonger wrote:Of course most of the existing functions will still work as Win32 hasn't changed any. Tho Windows 8 handles memory and other things a little differently then previous OS's. So you can expect there to be a few bugs down the line.
Actually, Windows 8 has added more than a thousand new functions and hundreds of new classes to its API, but the earlier subsets are still in tact and fully functional. So, if it works on Windows 7, it should work on Windows 8, with no variance in memory or process handling. Accordingly, any existing inconsistencies in PureBasic would be carried over, but not likely caused by Windows 8 itself.
Actually none of them functions exist in Win32, you are thinking of WinRT. Something that PureBasic probably wont support ever. Most of everything is the same within the API, tho the way the OS handles things is completely different. Download and give it a look you will be surprised of all the core changes that has went into Windows 8. The the important thing is that all of the constants etc get updated to back Windows 8 launch.
Its Not A Bug, Its An Undocumented Feature!
Relax Its All Just Ones And Zeros
There Is No Place Like 127.0.0.1 Except ::1
I do things TO my computer, not WITH my computer... I am a nerd.
User avatar
TI-994A
Addict
Addict
Posts: 2778
Joined: Sat Feb 19, 2011 3:47 am
Location: Singapore
Contact:

Re: Windows 8 Support

Post by TI-994A »

Warmonger wrote:
TI-994A wrote:Actually, Windows 8 has added more than a thousand new functions and hundreds of new classes to its API...
Actually none of them functions exist in Win32, you are thinking of WinRT. Something that PureBasic probably wont support ever. Most of everything is the same within the API, tho the way the OS handles things is completely different. Download and give it a look you will be surprised of all the core changes that has went into Windows 8. The the important thing is that all of the constants etc get updated to back Windows 8 launch.
Hello again, Warmonger. There seems to be a confusion in terminologies. Firstly, the Windows 8 API is made up of both Win32 and WinRT. And secondly, even the Win32 libraries have been updated. New functions have been added to existing libraries like kernel32, user32 and dnsapi, just to name a few; and these new functions, for example, CopyFile2, CreateFile2, DnsQueryEx, GetPointerType, etc., all indicate Windows 8 as the minimum supported client. So, even based on pure Win32, you'll have backward compatibility, but not forward. And to be backward compatible, the handling of the older API functions must remain unchanged, regardless of the Windows version.

Bottom line: unless you're aiming for Metro-based apps, PureBasic should have no problem forging ahead into the world of Windows 8.
Texas Instruments TI-99/4A Home Computer: the first home computer with a 16bit processor, crammed into an 8bit architecture. Great hardware - Poor design - Wonderful BASIC engine. And it could talk too! Please visit my YouTube Channel :D
Warmonger
Enthusiast
Enthusiast
Posts: 156
Joined: Wed Apr 20, 2011 4:24 pm

Re: Windows 8 Support

Post by Warmonger »

TI-994A wrote:
Warmonger wrote:
TI-994A wrote:Actually, Windows 8 has added more than a thousand new functions and hundreds of new classes to its API...
Actually none of them functions exist in Win32, you are thinking of WinRT. Something that PureBasic probably wont support ever. Most of everything is the same within the API, tho the way the OS handles things is completely different. Download and give it a look you will be surprised of all the core changes that has went into Windows 8. The the important thing is that all of the constants etc get updated to back Windows 8 launch.
Hello again, Warmonger. There seems to be a confusion in terminologies. Firstly, the Windows 8 API is made up of both Win32 and WinRT. And secondly, even the Win32 libraries have been updated. New functions have been added to existing libraries like kernel32, user32 and dnsapi, just to name a few; and these new functions, for example, CopyFile2, CreateFile2, DnsQueryEx, GetPointerType, etc., all indicate Windows 8 as the minimum supported client. So, even based on pure Win32, you'll have backward compatibility, but not forward. And to be backward compatible, the handling of the older API functions must remain unchanged, regardless of the Windows version.

Bottom line: unless you're aiming for Metro-based apps, PureBasic should have no problem forging ahead into the world of Windows 8.
Wrong again, the Windows API is not made up of both Win32 and WinRT. WinRT is a side-by-side API that only relies on Win32. Microsoft has not incorporated WinRT into Win32 yet. Bottom line is, your looking for a reason to go off topic. I suggest you stop replying to my thread, because obviously you have no clue what you are talking about.
Its Not A Bug, Its An Undocumented Feature!
Relax Its All Just Ones And Zeros
There Is No Place Like 127.0.0.1 Except ::1
I do things TO my computer, not WITH my computer... I am a nerd.
User avatar
TI-994A
Addict
Addict
Posts: 2778
Joined: Sat Feb 19, 2011 3:47 am
Location: Singapore
Contact:

Re: Windows 8 Support

Post by TI-994A »

Warmonger wrote:Wrong again, the Windows API is not made up of both Win32 and WinRT. WinRT is a side-by-side API that only relies on Win32. Microsoft has not incorporated WinRT into Win32 yet. Bottom line is, your looking for a reason to go off topic. I suggest you stop replying to my thread, because obviously you have no clue what you are talking about.
Hi Warmonger. Why the sudden hostility? All my posts were in response to the question in your original post, "will PB v5.00 support Windows 8?"

In any case, with a statement like "Microsoft has not incorporated WinRT into Win32 yet," it's apparent that you're a little confused about the Windows 8 API. So, I suggest that you take a look at this MSDN document. which clearly shows that the Windows 8 API is made up of both Win32 and WinRT.
Texas Instruments TI-99/4A Home Computer: the first home computer with a 16bit processor, crammed into an 8bit architecture. Great hardware - Poor design - Wonderful BASIC engine. And it could talk too! Please visit my YouTube Channel :D
Locked