Starting project EuphoriaVista Interpreter

new topic     » topic index » view thread      » older message » newer message

Euphoria on Vista

  • Today, I am starting a project aimed at producing a stable and safe version of the Interpreter targeting the MS Windows Vista platform. I will be calling it tentatively "EuphoriaVista". This comes after the Euphoria Interpreter v3.1.1 for Windows, which seems to be targeting WinXP, crashed my system twice. I am not a full-time programmer, so I would be interested in whatever community support I could get with it.
  1. One of the problems is that GUI Windows (API calls from the Interpreter) wont work with DEP on. DEP protects Vista from malicious code and leaving it off leaves my system vulnerable to attack and file system corruption from other programs, as well as the ones I'm debugging. File system corruption could lead to "Genuine Windows" Anti-Piracy Limited Access Auto-Protect Mode (which happened to me once). In that mode, an annoying dialog pops up and you are limited to Internet access only, while you try to verify that your Windows copy is genuine. Once it's verified as genuine, you get your computer back.
  2. The next problem is that Microsoft is dropping support for older code and older APIs in favor of newer and "safer" APIs and system library functions (such as UNICODE instead of "ascii", TCHAR instead of CHAR for character data, StringCchPrintf instead of "sprintf" to avoid buffer overflow the length and the character count is passed, etc.)
  3. Since Windows 2000 (perhaps since NT), Windows is a UNICODE system internally. Any "ascii" strings passed to API functions using "functionA" format have to be converted to a UNICODE string before they are processed. This is provided for back-wards compatibility, however, all new programs targeting NT systems should be built using the "functionW" version of the API function passing a full UNICODE UTF-16 "like" string to the function. [The exact UNICODE encoding is based on the OS version, but they are all based on a 16-bit WCHAR]
  4. Most new programs targeting the MS Vista and later are meant to be written in "dot net" (.NET) a compiled executable format with a program compress inside it similar to Euphoria's *.il method. [Sun's Java uses a similar technique to produce Java class files.]
  5. Microsoft provides a free [for a home user at least, I don't know about commercial, someone would have to help me understand the legal jargon] programming tool "Microsoft Visual C++ 2008 Express Edition" (and other Express editions in VB, C#, Web) that compiles for the Vista platform [I think all Vista versions and supported processors, there are many output formats it supports] and can produce "dot net" (.NET) executables. (http://www.microsoft.com/Express/)
  6. 64-bit Operating Systems. A newer data type "long long" or "__int64" is used extensively, and the standard method for calling functions is different, but uniform across all function calls.
  7. Different privilege levels, and security descriptors that a programmer now has to account for.
  8. Vista and later systems use a method for protecting memory so that traditional Euphoria machine code embedded in source files does not work. [It has to be called from the program's own memory, I think, or it has to be hard-coded in the executable or in a project *.dll that the Interpreter can link to.]
  9. It may be easier to map the "dot net" (.NET) framework to the Interpreter its self. Each call to a "dot net" (.NET) function that the Interpreter uses could be in a C style switch statement.
  • Euphoria v3.1.1 still uses the "functionA" version of the Windows API. Many older libraries use outdated machine code that wont work on Vista.
  • EuphoriaVista will only use "safe" functions as specified by Microsoft and use recommended Windows API functions for the target Windows version whenever possible.
  • The goal is to write source code in Euphoria, and have it run on Vista in a safe and predictable manner.

These are only some of the problems when porting to Vista. I will be working on a "Hello World" Windowed App demo of my "EuphoriaVista" porting project to post to the archive.

I will also be reading up on results on the forum matching keyword Vista in the next few days, to see where the community stands on supporting the Vista OS.

jcmarsh

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu