Oxygen Basic
Information => Latest Version => Topic started by: Charles Pegge on August 31, 2011, 10:36:29 PM
-
This one should fix Peter's problem with the colons.
I will put out another release (37) shortly as we have accumulated quite a number of changes and new examples. The in-progress version continues to be updated almost on a daily basis.
Charles
[attachment deleted by admin]
-
Charles ...is this release still dependent on oxygen.dll or not ?
Ooups ...this is only a dll....
When we can see oxygen that works without dll?
-
Hi Aurel,
If you run any source code with the runtime library included at the top, it will compile to an independent exe (or dll) that has no further dependency on Oxygen.dll.
For Example, these 2 lines in the SearchFiles program perform this operation. I comment them out when performing direct execution from script, and uncomment them when I'm ready to make an exe
$filename "SearchFiles.exe"
#include "..\..\inc\rtl32.inc"
Charles
PS. Secondary or run-time compiling (using the compile and uncompile functions) will not work in independent mode. But this is the only exception as far as I know.
-
Hi Aurel,
When we can see oxygen that works without dll?
when this happens.
[attachment deleted by admin]
-
I see the four horsemen coming Peter.
-
So if i want make standalone exe without oxygen.dll i must include rtl32.inc.
Ok i will try....
I don't know that before.
-
Alpha 37
No major features in this release but a number of refinements, bug fixes and consistency fixes related to the self-compile project.
Peter's Window.h required 2 small mods, and I hope we resolved satisfactory rules for the use of colon labels :). (zip below)
wc.lpszMenuName = caption
wc.lpszClassName = "Oxygen"
wc.lpszMenuName = ?caption
wc.lpszClassName = @"Oxygen"
Charles
19:21 14/07/2011 Calling convention "cpu" for fast calls
10:52 16/07/2011 Replace mkl etc. mk2,mk4,mk8
16:37 20/07/2011 Fix Object pointer ecx: problem showed in /examples/oop/features/AttachObject
16:40 20/07/2011 Test CPU call for objects
05:54 22/07/2011 Scite Oxygen.properties change FilePath to FileNameExt (compat Win98..)
11:48 22/07/2011 Prepare o2lexi.bas: trans strptr varptr
12:12 22/07/2011 Transfer isn ascl asclc wval from o2runt to o2lexi
22:54 22/07/2011 Change word() to tword()
22:54 22/07/2011 Fix rtl [ebx+160]=... in o2sema.bas
21:38 23/07/2011 Trap missing right brackets (functions)
21:53 23/07/2011 Prevent macros (params) swallowing right brackets
21:54 23/07/2011 Allow asm mode to support &h &o etc.
03:06 24/07/2011 Line numbers now appear in Asm error messages
11:00 24/07/2011 "label" for procedures: adds plain label above signatured label
17:03 25/07/2011 Fix "export"
12:12 26/07/2011 Support string and wide string constants: const wstring s="abc"
05:10 27/07/2011 Fix function overloading (o2sema.bas)
11:38 28/07/2011 GXO2 & EXO2 Compilers fix -b option to print machine script
16:22 28/07/2011 Refactor o2hdrs.bas makePE decoupling.
11:33 02/08/2011 Refactor dic()
12:54 02/08/2011 Fix assign-within-bracket bug: Return 10+(number=number+1)+100
12:57 02/08/2011 Fix Return ++number
11:34 03/08/2011 Encode string literals as bstrings
14:22 03/08/2011 Const string returns address
06:38 04/08/2011 Dim/const string now supports series of data strings ('data' word is optional)
16:38 04/08/2011 Fix Asm bugs affecting 'test' and 'xchg': test [ebx+4096],eax : xchg [ebx+4096],eax
08:31 05/08/2011 Asm (internal) removal of redundant err messages. Mods to axdi and axim codings.
11:29 07/08/2011 Refactor string compatsig conversions for more efficient string param processing
11:30 07/08/2011 Fix len to return the number of characters in a wode string.
11:31 07/08/2011 Fix multiAssign to assign correctly to zstring ptr members
11:32 07/08/2011 Fix '@' / '&' to return address of string literal: @"ABC"
11:59 07/08/2011 Also applied to returning address of string constants
00:28 15/08/2011 Fix ++v --v when used with autodim: v=42 : a=++v
13:18 15/08/2011 Reintroduce 'exposed' functions (experimental'
07:28 17/08/2011 Allow comma separators between function tagwords: ..as long,callback,exposed etc
06:08 18/08/2011 Add error trap: "Too many procedure nesitings. Depth limit is currently 7
20:03 18/08/2011 ThinBasic Oxygen update
20:03 18/08/2011 Allow comma separators between class tagwords.
04:56 20/08/2011 Plug memory leak due to number-to-string autoconversion
15:30 21/08/2011 Extend string autoconversion for float intrinsics: sin "1"
08:27 23/08/2011 Fix negative variable handling in expressions: x/-v : x/-(v+4) : x/-v[10]
19:21 26/08/2011 Fix array param support in calls without protoypes: call c a[42]
22:06 26/08/2011 Trap mismatching parameters of higher type. apple a : banana b : EatBanana a
03:26 31/08/2011 Tools/search/SearchFiles utility
22:00 31/08/2011 Fix label/procedure colon confusion: fun: fun : fun():
06:22 01/09/2011 Refactor exportable labels
08:27 08/09/2011 RTL32 remove global variable 'a'
09:12 08/09/2011 Support dot labels placed to the left of an asm instruction
06:12 09/09/2011 Fix Void* tolerance when passing higher type params.
06:13 09/09/2011 Unfix label/procedure colon confusion: fun: fun : fun(): (not safe)
08:59 09/09/2011 Revoke signatured / exportable labels
13:25 09/09/2011 Fix multiline #defines (supports line numbers and Basic comments)
15:33 09/09/2011 Fix multiline named paramers (allow right bracket on separate line)
01:05 18/09/2011 Fix string literal assignment to integer types. string pointers must @"string"
10:45 18/09/2011 internal: uword() / wword() terminated by ; or '
11:34 18/09/2011 Internal: remove underscore from method labels
14:07 18/09/2011 Fix temp storage for autoconverted byref variables
13:11 20/09/2011 Colon labels must be on a line with no other statements
17:09 20/09/2011 FPU calling convention: not _return variable leave value on fpu stack.
00:08 25/09/2011 Fix Wstring byref/byval param bug (procedures)
07:50 25/09/2011 Fix wide string<->ascii autoconvert for user procedures
13:56 25/09/2011 Trap assignments to a bstring byval param in a procedure
05:14 26/09/2011 Fix zstring indrection problem with mid left getfile etc
05:37 26/09/2011 Fix assignments to string param passed byval (internal o2expr & o2assm)
22:22 26/09/2011 Line number tracking improvements
23:32 26/09/2011 Fix problem with comment lines following 'public' etc in class header.
11:15 27/09/2011 Changes to prototypes for: mid val unic asc len instr
12:49 27/09/2011 RTL len (lenz) for zstring and zstring2
13:27 27/09/2011 Trap invalid #file filename
16:34 28/09/2011 Revoke dotted macros (refactor macres)
21:32 28/09/2011 Fix data field delomiter misread (internal writestate/readstate)
05:22 29/09/2011 Refactor COM SAPI voice example
05:23 29/09/2011 Refactor 'new' and 'del' : (getmemory freememory)
05:42 29/09/2011 Revoke wide string literal form: w"..."
-
Oxygen In-progress
Extended Str for limiting decimal places()
double a=1.23456789
print str a
print str a,3 result: 1.235
Extended Hex for padding with leading zeros
print hex 15 'result F
print hex 15,4 'result 000F
Charles
-
Very handy and well thought out implementations Charles for useful features, thanks.
-
I have added a lot more error traps recently, Kent. So you may get some unexpected messages, when compiling your programs.
For instance reassigning to a string passed byval is no longer allowed within a function, since the function caller has sole responsibility for the creation and destruction of the string parameter.
But I'm keeping the programs in the projects section in sync. So you will be able to see any remedial alterations.
Charles
-
So you may get some unexpected messages, when compiling your programs.
This isn't problematic, I expected this in any case. Actually is this standard.
Luckily is there a hospital near of my home. :D
-
The 64 bit RTL is progressing rapidly. I hope to have some small programs running in a few days time.
A few minor changes to the compiler and assembler were also required, around the issue of 32 bit vs. 64 bit width pointers and stack.
So far the services of the men in white coats with the large syringe have not been required
(http://www.randomclipart.com/clipart/images/cartoon-doctor-1066.png)
-
(http://www.64bits.net/images/64bit_highway_3.png)
Looking forward to be driving on that new highway under construction. ;)
-
Side-note:
Downloaded the newest zip and saw that method overloading doesn't work.
Maybe still on the todo list...
Looking at the changelog:
Man are you busy :o
-
Alpha 38
Featuring 64-bit compiling.
Alpha038
22:22 30/09/2011 Fix Inferred Type Params: function f(txt="A ", va=42.0)
12:46 01/10/2011 Fix autoconversion (num followed by string function) (typg=0)
05:37 03/10/2011 Trap variables where constants are expected (declaring arrays etc)
11:33 04/10/2011 Fix number to zstring and zstring* param autoconversions
07:39 05/10/2011 Support multi-element 'as' in types & classes: a,b,c,d as string
18:49 05/10/2011 Support for pointered multielement vector *a,*b
22:49 05/10/2011 Revoke Statusof
22:49 05/10/2011 Remove outer quote marks from recordof and #recordof
11:31 06/10/2011 New traps for block errors
10:58 08/10/2011 Refactor 'for' with more error traps
20:16 08/10/2011 Correct handling for tmp strings and bstrings passed to byref proc.
20:18 08/10/2011 New RTL function asstmi [ebx+2232] ' fence + asstmp
12:00 10/10/2011 TB o2 updates
03:00 10/10/2011 Fix redefinitions of previously defined type
08:03 11/10/2011 delimit procs without params with +/\ but not * or -
17:56 11/10/2011 Refactor wval and ascii_to_float: update RTL32
04:24 12/10/2011 Fix protected/private methods in class header
04:25 12/10/2011 make class header "/\" more secure with cr
04:25 12/10/2011 Remove blanked lines from class headers (compacting)
06:38 13/10/2011 Refactor "Let"
18:17 13/10/2011 Refactor varbref (string params byref)
06:14 14/10/2011 Print prameter changed to cstr_
06:16 14/10/2011 _mid to modify zstrings
06:17 14/10/2011 Fix zstring concatenation width
06:18 14/10/2011 Replace all stp with cr in internal Assembler encodings
00:00 15/10/2011 Refactor local and temp garbage collection (to support re-entrancy in threads)
17:04 16/10/2011 Refactor attributes to support literalsa and type members as well as main variables
17:06 16/10/2011 New keyword: TypeCodeOf (to support new concatenator)
13:04 19/10/2011 Simplify top level array assigns detection (o2sema)
01:56 20/10/2011 New concatenator - local buffer to support reentrancy for multithreading
14:54 20/10/2011 Fix 64bit PE encoding glitch (Frank)
09:17 23/10/2011 Error traps around named parameters (Kent)
09:18 23/10/2011 Named parameters can be used without brackets
09:19 23/10/2011 Speech utility updated, (using thread safe string management)
09:22 23/10/2011 Improve line number tracking around classes and function prototypes
22:14 26/10/2011 64 bit mode float support
22:14 26/10/2011 RTL64 memory addlist, delist etc
07:43 27/10/2011 RTL64 prologs and epilog
07:44 27/10/2011 RTL64 bootstrap library
08:46 30/10/2011 Modify Attributes: strip quotes when 1st word in statement
08:47 30/10/2011 this supports sibling creation: fruit apple : typeof apple Bramley
13:21 30/10/2011 Tolerate 'void' as function return type
18:54 31/10/2011 NumberFormat 6 params controlling str() format
19:35 31/10/2011 Extended Hex 2nd param fixes width of number: hex(15,4): 000F
10:49 02/11/2011 Support #indexbase inside classes
11:37 02/11/2011 Trap unidentifed operands in Assembler construct: mov [u],eax
12:26 02/11/2011 Support arrays in prototype. (auto byref) long foo(long a[4]){...}
18:34 02/11/2011 Allow dotted members and indirect variables to be used with For: for fruit.i=1 to ...
08:39 04/11/2011 Trap undefined elements in structures
08:40 04/11/2011 Refactor 'ctype' function (internal)
13:59 04/11/2011 Review autoalign for primitives and inherited members
16:13 04/11/2011 Introduce 'packed' for packed types & typedefs (otherwise auto padded)
19:10 04/11/2011 O2 machine script numbers now tolerate gaps: hl 1234 same as hl1234
12:21 05/11/2011 Extended str(n) to limit decimal places. str(n,dp)
13:25 06/11/2011 fix array of objects / string element bug
12:30 09/11/2011 64 bit mode floats
12:30 09/11/2011 Refactor fpu types
07:33 10/11/2011 64 bit string functions debug
01:31 13/11/2011 64 bit compatibility for MinWin
01:32 13/11/2011 64 bit first windows program compiled
10:20 16/11/2011 64 bit classes
10:19 16/11/2011 64 bit DLL
13:16 16/11/2011 64 bit string param fix (Callcoc)
13:13 16/11/2011 64 bit ClassLibrary working.
23:42 18/11/2011 64 bit Opengl Working (compatibility wgl)
17:42 19/11/2011 change "sizeof" string/bstring/wstring/bstring2 to sys (4/8)
21:41 19/11/2011 Fix const evalualtion in MetaVal
00:39 20/11/2011 Fix Mid patch procedure for array elements and object string members
09:20 20/11/2011 Eliminate snap marker system (snp internal)
11:14 20/11/2011 Fix direct assignment for string functions (bypass concatenator)
22:35 20/11/2011 64 bit GDIplus images / Opengl texture transfer
21:56 21/11/2011 64 bit COM SAPI5 IspVoice speak
21:57 21/11/2011 Methods can no longer specify calling convention. Must match Extern spec.
22:00 21/11/2011 Check calling convention at start of procedures (internal)
07:16 26/11/2011 Fix attributes macro for "sizeof string" (corruption varf flag)
01:32 27/11/2011 64 bit compatible GDI (Peter)
09:43 28/11/2011 Add filenames for assembler error tracking
03:03 30/11/2011 Fix padding behaviour on inherited members
03:04 30/11/2011 64 bit string comparisons - stack alignment and calling rcx,rdx
03:53 30/11/2011 64 bit 3Dview now working
12:21 01/12/2011 64 bit comparisons in conditional statement: ensure stack alignment _sp
11:05 03/12/2011 Syntax option: declare abc() allowed as well as declare sub abc() or declare function abc()
12:29 04/12/2011 Fix name name clashes between methods and functions (efgee)
12:30 04/12/2011 Fix 64 bit autoconversion string to val.
15:28 04/12/2011 Fix 64 bit fpu calls: str(val())
04:53 05/12/2011 Passing strings to unprototyped procedures: @zstring, "literal", bstring, *string
05:53 05/12/2011 Support bothe arrays and functions as params in unprotoyped procedures
00:18 07/12/2011 Fix object/hilevel creation byref
19:37 08/12/2011 Refactor dim system: support mixed C and basic prototype members
19:38 08/12/2011 also supports any word order: function foo() export as long
01:20 09/12/2011 Fix dynamic compile string constants
02:12 09/12/2011 Revoke 'uncompile' procedure (now using inline data)
17:47 10/12/2011 Fix assembler error report (after include file) FILENAME: main source
06:40 12/12/2011 Fix conditional boolean function returning short: if GetAsyncKeyState(27) then ...
13:09 12/12/2011 Fix sticky byref/byval in declarations and prototypes
10:52 15/12/2011 64 bit loading of xmm registers put together with cpu registers. (Late)
09:10 21/12/2011 64 bit Internal (type -5) calls and classes use aligned cdecl, (not ms64)
Charles
-
Charles you are amazing. Are you sure you don't have a few hundred Chinese Hackers in an hidden underground dome bunker coding under you? Wow, how else can you get so much done? ;D
-
Occasionally I dream that I am debugging code, and going round in circles for hours on end. It is very strange - Another part of the brain learning how to program? :)
Charles
-
Thanks Charles.
Happy Incoming New Year!