Worklog for Brucey

Hwyl gyda crynoadyddion

Return to Worklogs

BlitzMax grows up...(Posted 2015-06-26)
SuperStrict

Framework brl.standardio

Local t:TMyType = New TMyType
t.test()
t.DoIt()

Local i:ISomething = New TMyType
i.DoIt()

Type TMyType Implements ISomething

	Method test()
		Print "test"
	End Method
	
	Method DoIt()
		Print "DoIt"
	End Method
	
End Type

Interface ISomething
	Method DoIt()
End Interface


output :
Executing:mytype
test
DoIt
DoIt

Process complete


:o)

-+ Brucey +-

Come to Brucey's Modules for useful BlitzMax Modules!! . . . See my Modules Worklog - wxMax -

* The Definitive Module List * Qt-On-BlitzMax

Oh my !(Posted 2015-01-22)
http://brucey.net/programming/blitz/bmx_ng/demos/hello_blitzmax.html

-+ Brucey +-

Come to Brucey's Modules for useful BlitzMax Modules!! . . . See my Modules Worklog - wxMax -

* The Definitive Module List * Qt-On-BlitzMax

And so work on a new target begins...(Posted 2014-11-30)
$ ./bmk makemods -l android -g arm -a brl.blitz
Compiling:blitz_app.c
...

...
Compiling:blitz.bmx
Archiving:blitz.release.android.arm.a


;-)

-+ Brucey +-

Come to Brucey's Modules for useful BlitzMax Modules!! . . . See my Modules Worklog - wxMax -

* The Definitive Module List * Qt-On-BlitzMax

NTS - Not Too Shabby(Posted 2014-11-23)
Been benchmarking some new Map types - TIntMap and TPtrMap for now.


Some stats, showing improved performance of using the primitive value as the key for the map :
Map
2567 : 100
2485 : 200
2431 : 300
2430 : 400

PtrMap
1554 : 100
1758 : 200
1460 : 300
1443 : 400


Interestingly, I ran the TMap code on the original bcc, and it comes up with this :
Map
2837 : 100
2953 : 200
2995 : 300
3139 : 400


I was expecting the generated asm to be much faster than my generated C, but was rather surprised to find the code running almost at the same speed, if not a wee bit faster!

(tested on OS X Mavericks i7, 32-bit binaries, Release mode)

Cool :-)

-+ Brucey +-

Come to Brucey's Modules for useful BlitzMax Modules!! . . . See my Modules Worklog - wxMax -

* The Definitive Module List * Qt-On-BlitzMax

Finally !(Posted 2014-07-17)
Things are finally coming together...
pi@raspberrypi ~/BlitzMax/bin $ ./bmk makemods -a brl.blitz
Compiling:blitz_app.c
Compiling:blitz_types.c
Compiling:blitz_cclib.c
Compiling:blitz_memory.c
Compiling:blitz_module.c
Compiling:blitz_object.c
Compiling:blitz_string.c
Compiling:blitz_array.c
Compiling:blitz_handle.c
Compiling:blitz_debug.c
Compiling:blitz_incbin.c
Compiling:blitz_ex.c
Compiling:blitz_gc.c
Compiling:reclaim.c
Compiling:allchblk.c
Compiling:misc.c
Compiling:alloc.c
Compiling:mach_dep.c
Compiling:os_dep.c
Compiling:mark_rts.c
Compiling:headers.c
Compiling:mark.c
Compiling:obj_map.c
Compiling:pcr_interface.c
Compiling:blacklst.c
Compiling:finalize.c
Compiling:new_hblk.c
Compiling:real_malloc.c
Compiling:dyn_load.c
Compiling:dbg_mlc.c
Compiling:malloc.c
Compiling:stubborn.c
Compiling:checksums.c
Compiling:pthread_start.c
Compiling:pthread_support.c
Compiling:pthread_stop_world.c
Compiling:darwin_stop_world.c
Compiling:typd_mlc.c
Compiling:ptr_chck.c
Compiling:mallocx.c
Compiling:gcj_mlc.c
Compiling:specific.c
Compiling:gc_dlopen.c
Compiling:backgraph.c
Compiling:win32_threads.c
Compiling:thread_local_alloc.c
Compiling:blitz.bmx
Archiving:blitz.debug.linux.arm.a
ar: creating /home/pi/BlitzMax/mod/brl.mod/blitz.mod/blitz.debug.linux.arm.a


Here we can see BlitzMax compiling the BRL.Blitz module to Linux ARM. The interesting thing to note here is that the whole process is running natively on the Raspberry Pi.
It's not fast, but it works ;-)

Interestingly, I had all kinds of problems cross-compiling on Linux (x86) to Linux (ARM). Issues with libraries and so on.
However, I discovered someone had built such a thing for OS X, which *just worked*, allowing me to firstly cross-compile BlitzMax on OS X to Linux ARM, and then ftp the bcc and bmk binaries to the raspberry pi, and start compiling natively there.
Cool beans!

:o)

-+ Brucey +-

Come to Brucey's Modules for useful BlitzMax Modules!! . . . See my Modules Worklog - wxMax -

* The Definitive Module List * Qt-On-BlitzMax

Throw "Up"(Posted 2014-05-17)
Building exceptions
Compiling:exceptions.bmx
Linking:exceptions
Executing:exceptions
Up
Process complete


:o)

-+ Brucey +-

Come to Brucey's Modules for useful BlitzMax Modules!! . . . See my Modules Worklog - wxMax -

* The Definitive Module List * Qt-On-BlitzMax

McVitie's!(Posted 2014-04-18)
Digesteroids sample running on OS X, 64-bit, NG... with working sound :o)



-+ Brucey +-

Come to Brucey's Modules for useful BlitzMax Modules!! . . . See my Modules Worklog - wxMax -

* The Definitive Module List * Qt-On-BlitzMax

64 Tiles(Posted 2014-04-12)
Tiledrop sample running on OS X, 64-bit, NG...



mmmmm... tiley...

-+ Brucey +-

Come to Brucey's Modules for useful BlitzMax Modules!! . . . See my Modules Worklog - wxMax -

* The Definitive Module List * Qt-On-BlitzMax

BIG spinny text(Posted 2014-03-27)
The spinny text sample running on OS X, 64-bit, NG :o)



$ file /somepath/spintext_64.app/Contents/MacOS/spintext_64 
/somepath/spintext_64.app/Contents/MacOS/spintext_64: Mach-O 64-bit executable x86_64


Mmmm, sixty four...

-+ Brucey +-

Come to Brucey's Modules for useful BlitzMax Modules!! . . . See my Modules Worklog - wxMax -

* The Definitive Module List * Qt-On-BlitzMax

Circlemania(Posted 2014-03-26)
The circlemania sample running on OS X, 32-bit, NG ;-)



mmmm... circly!

-+ Brucey +-

Come to Brucey's Modules for useful BlitzMax Modules!! . . . See my Modules Worklog - wxMax -

* The Definitive Module List * Qt-On-BlitzMax

Well ARMed(Posted 2014-03-16)
Hello world!

$ ./bmk makeapp -r -g arm -t console -o /somepath/helloworld /somepath/helloworld.bmx

$ file /somepath/helloworld
/somepath/helloworld: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26


Sometime later on the "other" box...
$ uname -a
Linux raspberrypi 3.6.11+ #474 PREEMPT Thu Jun 13 17:14:42 BST 2013 armv6l GNU/Linux

$ ./helloworld
Hello World !


Anyone for Pi ? ;-)

-+ Brucey +-

Come to Brucey's Modules for useful BlitzMax Modules!! . . . See my Modules Worklog - wxMax -

* The Definitive Module List * Qt-On-BlitzMax

Test(Posted 2014-03-08)
Automated regression testing...
$ ./sct ../src/bcc/tests
=== STARTING TESTS ===
* AMOUNT OF TESTS: 2
* RUNNING TEST: ../src/bcc/tests/framework/numerics/num_01.bmx
  COMMAND: bmk makeapp -a -t console -r -g x86 -o ../src/bcc/tests/framework/numerics/num_01 ../src/bcc/tests/framework/numerics/num_01.bmx
  VALIDATION SUCCESSFUL
  -> OK
* RUNNING TEST: ../src/bcc/tests/framework/numerics/num_02.bmx
  COMMAND: bmk makeapp -a -t console -r -g x86 -o ../src/bcc/tests/framework/numerics/num_02 ../src/bcc/tests/framework/numerics/num_02.bmx
  VALIDATION SUCCESSFUL
  -> OK
=== FINISHED TESTS ===
* FAILED: 0
* ERROR: 0
* OK: 2

mmmmmmm...

-+ Brucey +-

Come to Brucey's Modules for useful BlitzMax Modules!! . . . See my Modules Worklog - wxMax -

* The Definitive Module List * Qt-On-BlitzMax

Type(Posted 2014-03-06)
A basic Type test :
SuperStrict

Framework BRL.StandardIO

Local t:TType = New TType
t.SetA(150)

Print "a = " + t.GetA()

Type TType

	Field a:Int
	
	
	Method GetA:Int()
		Return a
	End Method
	
	Method SetA(value:Int)
		a = value
	End Method
	
End Type


Output :
Building test_02
Executing:test_02
a = 150

Process complete


-+ Brucey +-

Come to Brucey's Modules for useful BlitzMax Modules!! . . . See my Modules Worklog - wxMax -

* The Definitive Module List * Qt-On-BlitzMax

Compare(Posted 2014-03-06)
A basic test :
SuperStrict

Framework BRL.StandardIO

Local i:Int = 11
Local n:Double = 3.3

For Local count:Int = 0 Until 30
	n :* i
	Print "n = " + n
Next


Orig left, NG right :


-+ Brucey +-

Come to Brucey's Modules for useful BlitzMax Modules!! . . . See my Modules Worklog - wxMax -

* The Definitive Module List * Qt-On-BlitzMax

Twice 32 :-)(Posted 2014-03-05)
ho hum...

$ cat helloworld.bmx
SuperStrict

Framework BRL.StandardIO

Print "Hello World!"


$ ./bmk makeapp -a -g x64 -t console -r -o /somepath/helloworld /somepath/helloworld.bmx
Compiling:helloworld.bmx
Linking:helloworld


$ ./helloworld
Hello World!


$ file ./helloworld
./helloworld: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24


:o)

-+ Brucey +-

Come to Brucey's Modules for useful BlitzMax Modules!! . . . See my Modules Worklog - wxMax -

* The Definitive Module List * Qt-On-BlitzMax

32(Posted 2014-03-05)
dum de dum...

$ cat helloworld.bmx
SuperStrict

Framework BRL.StandardIO

Print "Hello World!"


$ ./bmk makeapp -a -t console -r -o /somepath/helloworld /somepath/helloworld.bmx
Compiling:helloworld.bmx
Linking:helloworld


$ ./helloworld
Hello World!


$ file helloworld
helloworld: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24



-+ Brucey +-

Come to Brucey's Modules for useful BlitzMax Modules!! . . . See my Modules Worklog - wxMax -

* The Definitive Module List * Qt-On-BlitzMax