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.
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
A new keyword, DATA has been added. The
DATA statement is used for storing string data, eg,
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,
and smtp protocols.
The win32 helper functions XstCenterWindow,
HIWORD, LOWORD, MAKELONG, and RGB have been transferred from Xst
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:
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
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.
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
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
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
Mini FAQ for
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
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.
XBLite Mailing List has been moved to GoogleGroups.
Version 1.4.2 released. XBLite now
color syntax code editor, XSED.
now will catch errors in *.dec declaration files. Many new example
programs have been added, so see whatsnew.txt
Version 1.4.1 released. This version also
includes a few new demo
programs: like.x, datetimeformat.x, finddirs.x, threadpool.x, and
Version 1.4.0 has a
critical bug. So until it is resolved, please use version 1.31.
released. This version includes math support and functions for a new
floating point data type. This data type is compatible with the native
C language long double type.
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
smaller. All console related functions have been moved from the Xst
new Xio library. Many new changes have been made to the
There are new demo programs
including xbgrid, an XBLite version of a
'babygrid' grid control. The HTML Help reference manual has been
Version 1.2.0 released. New
Handling functions. New
demos too numerous to list... including encryption examples and a
DirectDraw7 interface library.
1.1.0 released. New keywords added: CONSOLE, MAKEFILE, and PACKED.
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.
premier version of XBLite is released today. This new website is
dedicated to XBLite news, information, and programming.