flat assembler
Message board for the users of flat assembler.

Index > High Level Languages > B0

Goto page Previous  1, 2, 3, 4  Next
Author
Thread Post new topic Reply to topic
Chewy509



Joined: 19 Jun 2003
Posts: 297
Location: Bris-vegas, Australia
Chewy509
Version 0.0.12 has been uploaded.

Majority of changes are bugfixes, and inclusion of 2 working examples. I have started on initial support structures as well...

The first example, is just a quick and dirty hello world, and the 2nd to test the unicode support provide by Linux.

(I haven't been working too much on b0 lately, due to a recent unemployment situation, however that should change now that I've found another job).
Post 21 Jul 2005, 23:20
View user's profile Send private message Visit poster's website Reply with quote
Chewy509



Joined: 19 Jun 2003
Posts: 297
Location: Bris-vegas, Australia
Chewy509
Version 0.0.13 has been uploaded.

Full support for structures has been added, and is usable.

Fixed:
A few bugs

Added:
call, jmp and ret keywords. (now allows for indirect jumps/calls).
Structures. Smile
3rd example showing how to make objects for Linux, to be linked by gcc.
man page for *nix systems.

Todo:
Improve code generation for structure addresses.

Highlights:
Compliles a 1million line source code file in about 6.1 secs on my Opteron 242 (1.6GHz) box running Linux (AMD64) w/1GB RAM.

PS. Ignore the warnings about structures in the manual. Structure support is available.

http://chewy509.atspace.com/b0.html
Post 15 Aug 2005, 02:57
View user's profile Send private message Visit poster's website Reply with quote
Chewy509



Joined: 19 Jun 2003
Posts: 297
Location: Bris-vegas, Australia
Chewy509
Hi Guys,

v0.0.14 has been uploaded and is available in both Linux and Windows versions.

Fixes/Additions:
Improved address generation code for variables.
Fixed bug in structure declarations.
Updated and corrected User Manual.
Added section in Makefile to generate PDF manual from HTML source, (requires html2ps and ghostscript).
Improved handled of uninitialised data and generation of bss.
Added in and out keywords.
Corrected bug, when handling included files.
Fixed up source line calculations when aborting on error.
This release took a little longer, due to having a personal life.
Corrected bug when using multiply libraries embedded in each other.
Reorganised source tree and Makefile (*nix systems).
Added ability to use zero-offset structures.

Todo or upcoming in the next release
GTK linux example.
Windows x64 support and example.
Improved stdlib.

ps. http://chewy509.atspace.com/b0.html
Post 18 Oct 2005, 02:16
View user's profile Send private message Visit poster's website Reply with quote
Chewy509



Joined: 19 Jun 2003
Posts: 297
Location: Bris-vegas, Australia
Chewy509
v0.0.15 has been uploaded.

This release now supports PE64 format (for Windows x64), and a simple 'Hello World' example is also available.

Also includes a 5th Linux Example (le5.b0) on linking to and using glibc.

Todo and upcoming in v0.0.16 -
- Completed Linux Syscall wrapper, and glibc wrapper of x86_64 systems.
- Include additional support for PE format, including Resources. (TBC)
Post 24 Oct 2005, 23:10
View user's profile Send private message Visit poster's website Reply with quote
Tommy



Joined: 17 Jun 2003
Posts: 489
Location: Norway
Tommy
great Razz
Post 25 Oct 2005, 17:46
View user's profile Send private message Visit poster's website Reply with quote
Chewy509



Joined: 19 Jun 2003
Posts: 297
Location: Bris-vegas, Australia
Chewy509
I'm currently working on v0.0.16.

I have so far, expanded the win64 demo app to use full unicode (or MS's bastardised version of it), and have completed the first GTK linux application. (A simple calendar).

v0.0.16 will focus on more complete documentation and additional libraries to help developers.
Post 26 Oct 2005, 03:35
View user's profile Send private message Visit poster's website Reply with quote
okasvi



Joined: 18 Aug 2005
Posts: 382
Location: Finland
okasvi
are you really sure that you dont want to add support for IA-32? Crying or Very sad

_________________
When We Ride On Our Enemies
support reverse smileys |:
Post 29 Dec 2005, 12:10
View user's profile Send private message MSN Messenger Reply with quote
Chewy509



Joined: 19 Jun 2003
Posts: 297
Location: Bris-vegas, Australia
Chewy509
okasvi wrote:
are you really sure that you dont want to add support for IA-32? Crying or Very sad


The simple answer is "maybe".

Once I finish v0.0.16 (which just needs some more tweaks and additions to the linux library), I'm planning on starting to rewrite the compiler in b0 itself.

I may, if bored enough, may do a one-time release of a IA32 version. However it will be totally unsupported, and will not come with any supporting libraries...

I know, the last release has been a while, but I have been busy with work and family life...

But upcoming in future versions:
v0.0.16 - Final alpha version. Completed language specification, and mostly complete linux kernel syscall wrapper library.
v0.0.16-32 - THIS IS STILL TO BE CONFIRMED - one off IA32 release (no supporting libraries).
v0.1.0 - Rewrite of b0 compiler in b0. (64bit only).

The final word is, if I do make a IA32 version, it will be a one-off release, with NO support. The aim of b0 was a machine-dependant 64bit language similar to assembler. However if someone wants to write there own IA32 version or modify my compiler, they are free to do so. I will even package it with the main distribution as well!

Or the other option is, buy an Athlon64 and install either Linux (AMD64) or WinXP x64!
Post 03 Jan 2006, 02:43
View user's profile Send private message Visit poster's website Reply with quote
Chewy509



Joined: 19 Jun 2003
Posts: 297
Location: Bris-vegas, Australia
Chewy509
After some delay, I'm releasing v0.0.16.

Changes include:
GTK v1.2 and GTK v2.0 examples provided for Linux (same app, just using different GTK versions).
Partial Linux Syscall wrapper library. (Linux only).
Added ability to encode strings as m8. These are encoded as UTF-8 in the asm output file.
Added a CGI example. (Yes, a CGI for web applications! see /examples/cgi1.b0)
Fixed bug where on a comment on the last line would cause the compiler into an endless loop.
Couple of other bugfixes, regarding end-of-line and end-of-file markers.
Fixed bug when generating UTF8 strings.
Added ability to jump based on the following CPU Flags: Parity, Carry, Overflow, Sign and Zero flags.
Included b0.xml style sheet for jEdit users. (Copy into the modes directory and add the item to the catalogue file).

PS. http://chewy509.atspace.com/b0.html
Post 08 Jan 2006, 22:53
View user's profile Send private message Visit poster's website Reply with quote
Chewy509



Joined: 19 Jun 2003
Posts: 297
Location: Bris-vegas, Australia
Chewy509
Changes:
Merged IA32 and AMD64 builds into single source file. Only requires a define to be added to build the IA32 version, eg -Di386 at the CLI.
Modified the while to produce slightly better code.
Modified output in regards to error strings.
Modified demo le5.b0 to also output argc and argv variables.
Added COMPILER_OPTION keyword to let the user set the output format and string type from within the source file.
Updated *nix man file.
Added ability to change the string format (UTF8/UTF16) on the fly within the source code file, by using the COMPILER_OPTION keyword.
Added additional buffer overflow checks on all structures and arrays...

PS. http://chewy509.atspace.com/b0.html
Post 15 Jan 2006, 23:10
View user's profile Send private message Visit poster's website Reply with quote
Steve



Joined: 10 Sep 2005
Posts: 10
Steve
Wow, I must say this is a really nice project. I looked at the syntax, seems very clean. Great work. Smile

- Steve
Post 27 Jan 2006, 20:35
View user's profile Send private message Reply with quote
Chewy509



Joined: 19 Jun 2003
Posts: 297
Location: Bris-vegas, Australia
Chewy509
Steve wrote:
Wow, I must say this is a really nice project. I looked at the syntax, seems very clean. Great work. Smile

- Steve

Thanks Steve,

As an update, I'm currently working on rewriting the whole compiler in b0, (I'm about 10% done), so there won't be too much of an update for a while.

Initially only a 64bit version will be available, but once released will look at producing a 32bit version (again written in b0, but with the IA32 build)... The 32bit version may be a while, as you need to remember while b0 is a LLL/HLL hybrid, it is also platform dependent... so there will essentially be 2 separate versions...

PS. The 64bit version will be able to produce 64bit and 32bit code, but will require a 64bit CPU/OS. The 32bit version which will come out later, will work on most i686 and will be able to produce both 32bit and 64bit code.

PPS. There will be a v0.0.18 release which includes a few bug fixes, but no enhancements. This should be the last version written in C, all future releases will be written in b0, well that's the plan anyway.

Darran.
Post 30 Jan 2006, 01:12
View user's profile Send private message Visit poster's website Reply with quote
Chewy509



Joined: 19 Jun 2003
Posts: 297
Location: Bris-vegas, Australia
Chewy509
Hi Guys,

v0.0.18 has been uploaded. (http://chewy509.atspace.com/b0.html)

Changes include:
* Added check for main(); when producing ELF executables.
* Started rewriting the b0 compiler in b0.
* Fixed bug in preprocessor, which was turning '-' characters within the string to a subtract token.
* Fixed bug in preprocessor, which will skip #endif if directly proceeded by a } and set to not generate code (as part of a #ifdef/#ifndef condition).
* Removed 0F and Flat output formats.
* Fixed bug in call procedure routine when dealing with PE executables.
* Fixed bug on performing signed compliment on floating point registers.
* Fixed bug in preprocesser when dealing with 0 offset structures.
* Fixed bug in call procedure when processing arguments. (It was possible to run off the token stack).

I've included the b0 compiler written in b0 in the tar.bz2 and zip files, however is largely incomplete, but should give you a good example for how b0 compares to other languages.
Post 14 Feb 2006, 00:19
View user's profile Send private message Visit poster's website Reply with quote
TmX



Joined: 02 Mar 2006
Posts: 824
Location: Jakarta, Indonesia
TmX
umm ... looks like your language seems to be interesting, but your website can't be accessed ... Sad

could you upload this b0 somewhere ?
Post 02 Mar 2006, 01:00
View user's profile Send private message Reply with quote
Chewy509



Joined: 19 Jun 2003
Posts: 297
Location: Bris-vegas, Australia
Chewy509
TmX wrote:
umm ... looks like your language seems to be interesting, but your website can't be accessed ... Sad

could you upload this b0 somewhere ?


Check the /doc directory for the manual (which is part of the website).


Description: B0 v0.0.18 (Win)
Download
Filename: b0.zip
Filesize: 194.98 KB
Downloaded: 458 Time(s)

Description: B0 v0.0.18 (Linux)
Download
Filename: b0.tar.bz2
Filesize: 101.47 KB
Downloaded: 445 Time(s)

Post 03 Mar 2006, 05:59
View user's profile Send private message Visit poster's website Reply with quote
veach1



Joined: 16 Jul 2004
Posts: 165
veach1
system: win2ksp4
tried to compile win32.b0 from examples (with -DEBUG option) and got: "b0.exe error at 0x00411EAA memory at 0x00000031 can`t be read"

without -DEBUG compiles ok
Post 03 Mar 2006, 07:25
View user's profile Send private message Reply with quote
Chewy509



Joined: 19 Jun 2003
Posts: 297
Location: Bris-vegas, Australia
Chewy509
veach1 wrote:
system: win2ksp4
tried to compile win32.b0 from examples (with -DEBUG option) and got: "b0.exe error at 0x00411EAA memory at 0x00000031 can`t be read"

without -DEBUG compiles ok


Try recompiling from source with the i386 define enabled... (top of b0.c or add -Di386 to the CLI)

Also at which point does the debug output stop?
Post 06 Mar 2006, 04:57
View user's profile Send private message Visit poster's website Reply with quote
veach1



Joined: 16 Jul 2004
Posts: 165
veach1
Quote:
Also at which point does the debug output stop?

2 files in the attach, stream output and screenshot of last debug lines


Description:
Download
Filename: 1.zip
Filesize: 8.13 KB
Downloaded: 434 Time(s)


_________________
dream of mind creates a monster
Post 06 Mar 2006, 07:28
View user's profile Send private message Reply with quote
Chewy509



Joined: 19 Jun 2003
Posts: 297
Location: Bris-vegas, Australia
Chewy509
veach1 wrote:
Quote:
Also at which point does the debug output stop?

2 files in the attach, stream output and screenshot of last debug lines


Thanks I'll look into it. (Appears to be crashing on displaying the final hash table).

PS. You do realise that the b0 version you are using outputs 64bit code and not 32bit code?
Post 07 Mar 2006, 02:10
View user's profile Send private message Visit poster's website Reply with quote
Chewy509



Joined: 19 Jun 2003
Posts: 297
Location: Bris-vegas, Australia
Chewy509
There seems to be some confusion over the different b0 compiler versions.

b0 is designed natively to output 64bit code only... It appears that some have been trying to use the 64bit compiler to generate 32bit code. To enable 32bit code generation, you will need to recompile from source with the -Di386 compiler option.

However I have done this and have attached the 32bit Windows version of the b0 compiler which produces 32bit code.

The easiest way to tell the difference between the versions is to look for the IA32 string in the version name. eg:

>b0 -v
b0 v0.0.19 - IA32
Copyright (C) 2005-2006, Darran Kartaschew.
All rights reserved.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

If you run >b0 -v and don't have the IA32 in the version string, then the compiler will generate 64bit code.


Description: b0 - IA32
Download
Filename: b0.zip
Filesize: 53.87 KB
Downloaded: 434 Time(s)

Post 07 Mar 2006, 05:40
View user's profile Send private message Visit poster's website Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page Previous  1, 2, 3, 4  Next

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2020, Tomasz Grysztar. Also on GitHub, YouTube, Twitter.

Website powered by rwasa.