XBLite News
Version 2.41 released.

This release has minor updates to the compiler, libraries, and XBLite reference manual.

Also included in this update are 25 gdiplus example programs.

The exception functions are now back in the Xst library.

XstTry and other exception functions have been rewritten to better handle floating point exceptions.

Added XstSequentialParse$, XstBMSearch, and XstRemoveExcessDelimiters$ functions to Xsx library.

The compiler now checks the use of VOID as a function return value and provides an error when a VOID function attempts to return a value.

Added demos dlgtemplate.x, stickyedge.x, udt.x, rot13.x, makemultifolders.x, floatexception.x, xsttry.x, consolemouse.x, version.x, and underflow.x.

Thanks to MystikShadows, there is a new wikipedia article on XBLite at http://en.wikipedia.org/wiki/Xblite.

XBLite has moved to a new website at http://www.xblite.com/
An online XBLite forum has been started at http://www.xblite.com/forum/

Version 2.40 released.

This version has many compiler bug fixes and optimizations.

The output *.def file has been streamlined and is created only if a program is compiled as a library.

All of the Xst exception functions have been moved from Xst library to Xsx.

A new keyword, DATA has been added. The DATA statement is used for storing string data, eg,
     DATA "abcd", "123", "2.56"
     READ a$, b, c#

See demo program eliza.x

Xin, a winsock/internet protocol library, has been added. Also included are new demos using Xin for ftp, http, and smtp protocols.

The win32 helper functions XstCenterWindow, HIWORD, LOWORD, MAKELONG,  and RGB have been transferred from Xst to Xsx.

The internal XBLite memory management functions Xmalloc, Xrealloc, Xcalloc, and Xfree are now exported by Xst.

The internal call to Xit has been removed, so now all exception handling must be done by the programmer using XstTry.

The runtime library xbl.dll is 13% smaller and is now 58 kb.

A dbase III+/IV library,  Xdb3, has been added.

A ftp library, XinFtp, has been added.

Added new demo programs talk.x, vbscript.x, easun.x, eliza.x, gol.x, ping.x, xsttry.x, writecon.x, sourcesort.x, proplistbox.x, sizer.x, comgen.x, picturebox.x, unigui.x, define_guid.x, dma.x, xinclient.x, xinhttp.x, xinserver.x, xinsmtp.x, restart.x.

Two Pelles C utilities are included in the distribution, polink and polib.  They can be invoked by using a custom makefile, pelles.xxx. In the PROLOG, add:
      MAKEFILE "pelles.xxx"

The XBLite Reference Manual has been updated to v1.10.

Any program which exports functions must contain a PROGRAM statement, otherwise, it is not required.

Version 2.31 released.

Updated for bug fix for IMPORT statement, DLLs rebuilt without optimization, and added new gui demo transfoms.x.

Version 2.30 released.

XBLite can be installed into any folder on any drive. After unzipping the  \xblite package into a folder, run the install.exe program in the \xblite\bin folder to set the correct environment variables.

The compiler library, xcowlite.dll, and the compiler program, xblite.exe, have been combined into one program, xblite.exe.

The makefile program nmake.exe has been renamed to xmake.exe. This will prevent confusion with other versions of nmake.exe which may be installed on one's computer.

All batch files have been modified to remove references to xblite environment variables. These variables are now supported automatically after running the install.exe program. All make files now call xmake instead of nmake.

The compiler now supports a beta version of a peephole optimizer, Xpeeper, written by Greg Heller. Use the -o switch when compiling a program to run the optimizer on the output assembly.

You can now use variable names directly in inline assembly language code.  See asmvariable.x in \demo\asm\asmvariable\ folder.

The xsed editor has been updated to v1.23 with bug fixes and support for -o peephole optimizer switch.

The compiler and runtime library xbl.dll have been updated with many new optimizations and bug fixes.

Added two new custom controls, lcdpanel.x and led.x.

Added several new demo programs:

Added a new library to support unsigned 64-bit arithmetic math operations, see \xlibs\u64.x.

Updated the html help file to v1.09.

The utility program spasm is no longer needed and has been permanantly replaced by goasm.

Version 2.20 released.

Added support for line continuation using underscore character "_" at the end of a line. See the console demo helloworld.x.

Compiler optimizations and bug fixes.

The PROGRAM statement parameter must match program's filename, otherwise an error  will be displayed. This statement is only required when building libraries.

xsed v1.21 released with many new features and the xsed HTML Help manual is updated.

Added several new demo programs:

Version 2.10 released.

Added static libraries for all xblite DLLs, eg, xst_s.lib can be imported and will replace the need to link to xbl.dll.

IMPORT "xst_s.lib"   ' link to xst static library (aka, xbl.dll runtime library)
IMPORT "xsx_s.lib"   ' link to xsx static library
IMPORT "xio_s.lib"   ' link to xio static library

All static libraries have _s suffix. The utility buildlib.exe can be used to create static libraries. Static libraries are linked at compile-time by the linker so they are incorporated into the final executable, thus removing the need for external DLLs. Special thanks to Greg Heller for making this happen!

Added the ability to use the m4 macro preprocessor using a -m4 compiler option. This allows user defined macros and the ability to include external files into your programs. A manual for using m4 can be found in the  \xblite\manual\m4 folder, along with other articles on using m4.

The keyword COMMENT has been removed. Thus, COMMENT/END COMMENT blocks are not longer possible, so continue to use ' as comment.

The keyword ASM is now used instead of ! as the inline assembly marker.

The ? character can be used as an equivalent to using a PRINT statement.

New intrinsics ROUND, ROUNDNE, and CEIL have been added.

New CSV functions by Alan Gent have been added to Xsx library:

New unicode functions by Alan Gent have been added to Xsx library:

Two new Xma functions by Alan Gent, Fmod and Fround.

The runtime library xbl.dll has been reduced in size to 71kb.

Added several new demo programs:
  editsubclass.x  - a demo to subclass edit control
  filetree.x - a tree control which displays a file/directory tree
  rtracer.x  - raytracing program(s)
  docksplitter.x  - a custom splitter control now used in xsed
  fround.x  - test of Fround function
  m4test.x  - test of using m4 preprocessor
  seive.x  - seive algorithm
  printdirect.x  - printing direct to printer w/o spooling
  quiner.x  - a new quine using ? as PRINT
  unicode.x  - demo of XstAnsiToUnicode function
  comparray1.x  - demo of new CSV functions
  comparray2.x  - ""

The xblite distribution has been split into two parts, with the compiler, libraries, and demos in one part, and the source code in the second part.

Updated xsed editor to use new splitter control and added command line options to compiler options dialog box. Select the -m4 option to use the m4 preprocessor.

The HTML Help file has been updated to reflect the above changes. Please review the new helpfile topics concerning the use of static libraries and the m4 preprocessor.

Version 2.0.1 fixes minor bugs in the compiler.

Mini FAQ for XBLite v2.0.1
Q. Why is Spasm still part of the distribution? 
A. Spasm is still used for building some parts of the instrinsic functions, contained in the static library xblib.lib.  When those functions are all converted (a painstakingly slow task) we can kiss Spasm goodbye completely.  The use of Spasm vs. GoAsm for that code has no effect whatsoever on the compiler efficiency or code output - it is not used by the compiler.

Q. Why are xcowlite.dll and xcowlite.x so much smaller? 
A.  The intrinsic functions were stripped out, and the compiler was significantly simplified.

Q. What is the xblib.lib library? 
A. This is a static library that contains all the intrinsic functions.  It is linked at compile time, there is no xblib.dll.

Q. Are there any new optimizations?  Are my programs going to be faster? 
A. Yes, but nothing that really uses the power of GoAsm yet, like MMX code.  The goal of this release was more to build a stable compiler that emits GoAsm code, and I hope we have accomplished that.

Q. What is the most significant optimization? 
A.  The function prolog is more efficient.  To see the difference, compile and run the benchmark.x program with the former build, and compare it with the benchmark.x results of the current build.  On my P4 the time to run was about 35% of the previous.  On my AMD the results are less dramatic, but still significant.  The reason is that the AMD runs the "unoptimized" code much better than the Pentium, so the opmization was not as dramatic on the AMD.

Q. Why are pelles' utilities polib, polink, & porc included  in the \bin folder?
A. These tools can be used to build slightly smaller executables. Use the template makefile pelles.xxx. In the future, we hope to migrate to the full suite of GO tools.  
Version 2.0.0 released today. The xblite compiler has been updated to generate assembly for the amazing 64-bit GoAsm assembler. This allows xblite to migrate to the future of 64-bit computing using 64-bit tools. Thanks to the work of Greg Heller, the xblite compiler can now utilize a complete range of assembly instructions. And, compiler optimizations now result in faster running programs (more to come!).

In additon, a new keyword, COMMENT, has been added to xblite. The COMMENT...END COMMENT block allows the use of commented blocks of code. Plus, the xsed code editor has been updated for use with GoAsm assembly files. And several new functions have been added to the Xsx library, XstCall, XstFileExists, XstStripChars, and XstTranslateChars. See whatsnew.txt for details.
Version 1.4.3 has been released. This version fixes many compiler errors when using LONGDOUBLE. Also, it updates and improves XSED, the programming editor. In addition, there are many new demos, especially look for the OpenGL demos for glfw by Michael McE. See whatsnew.txt for details.

The XBLite Mailing List has been moved to GoogleGroups.

Version 1.4.2 released. XBLite now has a color syntax code editor, XSED. The compiler now will catch errors in *.dec declaration files. Many new example programs have been added, so see whatsnew.txt for details.

Version 1.4.1 released. This version also includes a few new demo programs: like.x, datetimeformat.x, finddirs.x, threadpool.x, and xbgridfill.x.

Version 1.4.0 has a critical bug. So until it is resolved, please use version 1.31.

Version 1.4.0 released. This version includes math support and functions for a new LONGDOUBLE floating point data type. This data type is compatible with the native C language long double type.

Version 1.3.1 released. Minor compiler changes.

Version 1.3.0 released. New MAJOR changes that will break existing code.  The runtime library is now renamed to xbl.dll.  The runtime library xbl.dll is now 25% smaller. All console related functions have been moved from the Xst library to new Xio library. Many new changes have been made to the  compiler. There are new demo programs including xbgrid, an XBLite version of a 'babygrid' grid control. The HTML Help reference manual has been updated.

Version 1.2.0 released.  New Exception Handling functions. New demos too numerous to list... including encryption examples and a DirectDraw7 interface library.

Version 1.1.0 released. New keywords added: CONSOLE, MAKEFILE, and PACKED. Plus, the IMPORT statement has been extended. The newest changes should help with creating console apps. Also, there are new demos: geturl.x, threads.x, puzzle.x, dragndrop.x, and lorenz.x, and statbarprogbar.x.

The premier version of XBLite is released today. This new website is dedicated to XBLite news, information, and programming.

XBLite © 2002-2010 David Szafranski