heater said...
I'm using BST 0.18-Pre8, BSTC 0.15-pre6.
But I want to use $ instead of the "padding" label. Haven't managed to get it to work any way yet.
No, it won't ever. $ is a cog address only, so it won't do what you want it to do. I want to reproduce that bug however so I can fix it. I'll download the -pre8 bst and see what is going on. Thanks for your constant feedback and tolerance of the bugs, it's always appreciated [noparse]:)[/noparse]
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Eccles : How do I open the door?
Bluebottle : You turn the knob on your side
Eccles : I haven't got a knob on my side!
I seem to get BST into a strange state after a compiler crash where even if the code is edited back to be correct in still will not compile until I restart BST.
For example try to compile this:
PUB start
DAT
align LONG
first BYTE 0
second BYTE 0
BYTE 0[noparse][[/noparse]1024 - ($ - @first)]
testbyte BYTE 0
That's OK. Now compile this:
PUB start
DAT
align LONG
first BYTE 0
second BYTE 0
BYTE 0[noparse][[/noparse]1024 - (@$ - @first)]
testbyte BYTE 0
That crashes the compiler.
Now take the "@" away. It still will not compile.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
I must say if the compiler crashes things are likely to be pretty messed up. Maybe I should force a restart if the compiler crashes. When the compiler crashes it's usually trying to reference unallocated memory (which is often likely to really mess things up). It *used* to just crash *boom* but I made it catch the crash gracefully to allow you time to save your files and shut it down.
I'll fix the @$ crash, but don't do that, it won't work anyway.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Eccles : How do I open the door?
Bluebottle : You turn the knob on your side
Eccles : I haven't got a knob on my side!
No I was not expecting @$ to do anything nice I just knew it was a good crash grenade I could throw in there to demonstrate the point.
Thanks for you thanks by the way. As it happens I get a perverse kind of buzz out of finding other peoples bugs it makes a change from having to deal with so many of my own[noparse]:)[/noparse]
Also comes from years of writing test cases for flight control software on Airbus, Boeing 777 etc.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
For interest the @$ is not actually crashing the compiler, it's just returning -1 from the math evaluator which is then trying to allocate $FFFFFFFF bytes. Sooner or later the compiler will return either having exploded or telling you that it overflows the available memory. A unique bug I must say [noparse];)[/noparse]
That might be why bst is misbehaving with it. The compiler is still actually running, its closed but it hasn't died. I might see if I can sort that out before I fix the bug in the compiler. At least its an easy way to reproduce the bug, nice work!
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Eccles : How do I open the door?
Bluebottle : You turn the knob on your side
Eccles : I haven't got a knob on my side!
I was playing with FullDuplexSerialPlus from the PEKit connected to the serial terminal. I was hoping that I could copy and paste, from another window but it did not work. You think you could implement that?
I was playing with FullDuplexSerialPlus from the PEKit connected to the serial terminal. I was hoping that I could copy and paste, from another window but it did not work. You think you could implement that?
THanks,
Doug
I've done copy, but paste is a bit ugly. I'll look at it but I can't promise anything.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Eccles : How do I open the door?
Bluebottle : You turn the knob on your side
Eccles : I haven't got a knob on my side!
I just installed Fedora 11.0 on my laptop, and I am trying to get bst to find a port, it keeps coming up with, no port found. I just had bst installed on my Ubuntu computer, and it seems to find a port without any trouble. So, does anybody have bst installed on a Fedora 11.0 unit, and has gotten around the port issue? I wonder why bst is having issues with finding a port on a Fedora 11.0 setup?
A weeny bug: # defines and comments are fighting with each other.
The following produces a warning that something is being compiled in when it is not:
PUB start
DAT
#define DO_SOMETHING_IMPORTANT
mul {
mov foo, bar
#ifdef DO_SOMETHING_IMPORTANT
#warn Doing something important
and foo, bar
#else
#warn Not doing something important
mov foo, bar
#endif
}
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
Rsadeika said...
I just installed Fedora 11.0 on my laptop, and I am trying to get bst to find a port, it keeps coming up with, no port found. I just had bst installed on my Ubuntu computer, and it seems to find a port without any trouble. So, does anybody have bst installed on a Fedora 11.0 unit, and has gotten around the port issue? I wonder why bst is having issues with finding a port on a Fedora 11.0 setup?
Thanks
Ray
How does Fedora present the configured ports? Do you have permissions to access to the port? Can you see the port if you do..
ls -la /dev/ttyU*
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Missed it by ->" "<- that much!
BradC. Did I ever say "thank you" for creating and providing such a brilliant tool. I know it's a phenomenal lot of work. A tool that gives me one less reason to waste time firing up Windows which is now gathering dust in a VirtuaBox whilst at the same time adding features we sorely need. Amazing.
Thank you.
Bug reports might be a pain but that's what happens when one creates something people actually use. They find "features" and then ask for more features[noparse]:)[/noparse]
Thank you again.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
Brad, first I'll second what heater said, a great big thanks
Are you taking feature requests? If you are would it be possible to add the following to bst. If can do it without too much trouble and want to discuss it with me you should have my email address.
1. An extension to the '@' operator for objects. What I would like it to do is to return the index of the object in the method table when used like this
OBJ
obj1:"someObject"
VAR
long objIndex
PUB method1
objIndex:=@obj1 'value should be 2 in this case I think
This is so I can dynamically load an object and patch the object table without having to calculate the address by hand.
and
2. An extension to object declaration so that an object can be treated as a header. i.e. It is treated normally and allocated space in the object/method table but not included in the output binary file. Syntax could be either a new block type called OBJH (object header) or a marker before an object something like this
OBJ
#obj1:"someObject"
obj2:"someOtherObject"
This means that the binaries I generate to be dynamically can be a lot smaller and I have less mucking around to do to make duplicates of the files with the methods but without any of the code.
I realise these could be pretty easy or pretty difficult depending on exactly how your code is setup so if it's too hard don't worry about it.
Since M/S has made it next to impossible to buy a new machine with the English version of Vista bundled, I switched over to Ubuntu for 95% of my computing. If I were to want English, I have to upgrade to Vista Ultra for $$$ and the darned 64bit Quad computer came bundled with 32bit Vista no less! It is a Lemel [noparse][[/noparse]Asus motherboard, but discount brand for chassis, etc].
I retain a dual boot - mainly for Parallax IDEs - but my Vista remains all Chinese.
I've already shifted to using Eagle in Linux, so eventually doing the Propeller in Linux would be delightful.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Ain't gadetry a wonderful thing?
Just installed the MAC version. Got t all running and downloading OK, but I get no colour coding on the source code, and can't find an option to turn it on?
DarrenY said...
Just installed the MAC version. Got t all running and downloading OK, but I get no colour coding on the source code, and can't find an option to turn it on?
Try here :
Tools -> IDE Preferences -> Fonts and Colours -> Enable Colour Syntax Highlighting
I've made it the default for the forthcoming release, but having just moved house again my Macs are still in boxes and I'm back to a dialup internet (it's taken me nearly a minute just to load this page) so my release testing is a little slower than I'd like.
If you are using 0.17 I *strongly* suggest you update to the 0.18-pre8 snapshot. 0.17 has a couple of nasty crash bugs in it that are pretty frighteningly easy to hit in the editor.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Missed it by ->" "<- that much!
The IDE refuse to open files with the read-only flag set. Win-bst0.18-pre8. Usually I have lib files (eg. the ones in the PropTool dir) write protected: better to ask for new name/location when saved than refuse to open.
Brad,
Thank you for BST. I got to the Expo and only had an eeepc with ubuntu on it. I was lamenting that the prop ide did not run on linux but OBC said try BST. In less than 10 mins I had BST up and running on the EEEPC and was able to download to my prop board.
You are a lifesaver.
Again, Thanks
Earl
dMajo said...
BST: "Unable to open drive:\path\file.spin"
The IDE refuse to open files with the read-only flag set. Win-bst0.18-pre8. Usually I have lib files (eg. the ones in the PropTool dir) write protected: better to ask for new name/location when saved than refuse to open.
Regards
Hrm, that is most odd. I thought I had fixed that problem long ago. I've never really tested it on Windows though. Thanks for the headsup, I'll get it fixed.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Missed it by ->" "<- that much!
I'd have sworn it was emacs. [noparse]:ducks:[/noparse] just joking
I should have written the compiler in lisp [noparse]:)[/noparse]
But seriously, I do most of my editing between vi and gedit. I reckon now Catalina is up and running someone should try and compile the busybox version of vi (which is *tiny*) for the Propeller.
@AJM, Old Man Earl, heater & stevenmess2004 : Thanks for the kind words lads, I'm glad you get some use out of it.
I had planned a new release today, but I have to squash the read-only bug on Windows dMajo pointed out first. News at 11.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Missed it by ->" "<- that much!
Notable Changes :
- #define support
- Improvements to serial terminal (hex display, echo and internal improvements)
- Ability to click on a label and see its contents in the status bar (same as Propeller Tool) provided the file has not been modified since it was compiled (F9)
- OSX key mapping is closer to Apple HIG
- Allow copy text from serial terminal / list window
- Allow override of selected text colour in editor (for those using the blue theme on OSX) - its in the IDE config dialog
- Allow resizing of the Parallax special characters window
- Added a "Refresh" right click menu to the directory tree to allow manual refreshing of all directories (warning, this can be slow)
- All the fixes and improvements that went into bstc 0.15
- Splash screen [noparse]:)[/noparse]
- Better font rendering on OSX
- Loads of little things!
Known issues :
- The highlighter is not making some symbols bold where it should
- The serial terminal has "issues" on windows to do with the enter key sending a CR/CR/LF combo instead of a straight CR
<edit> - Redundant spin removal in bst uses the old method (poo). bstc uses the new method. I'll get that sorted. This means bstc makes smaller binaries than bst right now.
- Backspace malfunctions in the serial terminal <sigh>
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Missed it by ->" "<- that much!
Fixed bug in redundant spin elimination to save even more space.
To give you a rough idea of available space savings from just bolting objects together, here is one of my current test projects compile with and without optimisation.
brad@bkmac:/media/raid3/Viridian-Work/Prop-Projects$ bstc -L Library/ Stuff/CarComp.spin
Found a USB Serial Device
Brads Spin Tool Compiler v0.15.1 - Copyright 2008,2009 All rights reserved
Compiled for i386 Linux at 12:24:51 on 2009/07/03
Loading Object CarComp
Loading Object Servo32V3
Loading Object TV_TEXT
Loading Object tv
Loading Object RTC_002
Loading Object One_Wire_3PinP_001
Loading Object Simple_Numbers_BKC001
[b]Program size is 4376 longs[/b]
Compiled 1096 Lines of Code in 0.749 Seconds
brad@bkmac:/media/raid3/Viridian-Work/Prop-Projects$ bstc -L Library/ Stuff/CarComp.spin -Oa
Found a USB Serial Device
Brads Spin Tool Compiler v0.15.1 - Copyright 2008,2009 All rights reserved
Compiled for i386 Linux at 12:24:51 on 2009/07/03
Loading Object CarComp
Loading Object Servo32V3
Loading Object TV_TEXT
Loading Object tv
Loading Object RTC_002
Loading Object One_Wire_3PinP_001
Loading Object Simple_Numbers_BKC001
[b]Program size is 3628 longs[/b]
Compiled 1096 Lines of Code in 0.16 Seconds
brad@bkmac:/media/raid3/Viridian-Work/Prop-Projects$
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Missed it by ->" "<- that much!
Comments
No, it won't ever. $ is a cog address only, so it won't do what you want it to do. I want to reproduce that bug however so I can fix it. I'll download the -pre8 bst and see what is going on. Thanks for your constant feedback and tolerance of the bugs, it's always appreciated [noparse]:)[/noparse]
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Eccles : How do I open the door?
Bluebottle : You turn the knob on your side
Eccles : I haven't got a knob on my side!
I seem to get BST into a strange state after a compiler crash where even if the code is edited back to be correct in still will not compile until I restart BST.
For example try to compile this:
That's OK. Now compile this:
That crashes the compiler.
Now take the "@" away. It still will not compile.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
I'll fix the @$ crash, but don't do that, it won't work anyway.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Eccles : How do I open the door?
Bluebottle : You turn the knob on your side
Eccles : I haven't got a knob on my side!
Thanks for you thanks by the way. As it happens I get a perverse kind of buzz out of finding other peoples bugs it makes a change from having to deal with so many of my own[noparse]:)[/noparse]
Also comes from years of writing test cases for flight control software on Airbus, Boeing 777 etc.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
That might be why bst is misbehaving with it. The compiler is still actually running, its closed but it hasn't died. I might see if I can sort that out before I fix the bug in the compiler. At least its an easy way to reproduce the bug, nice work!
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Eccles : How do I open the door?
Bluebottle : You turn the knob on your side
Eccles : I haven't got a knob on my side!
I was playing with FullDuplexSerialPlus from the PEKit connected to the serial terminal. I was hoping that I could copy and paste, from another window but it did not work. You think you could implement that?
THanks,
Doug
I've done copy, but paste is a bit ugly. I'll look at it but I can't promise anything.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Eccles : How do I open the door?
Bluebottle : You turn the knob on your side
Eccles : I haven't got a knob on my side!
Thanks
Ray
The following produces a warning that something is being compiled in when it is not:
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
How does Fedora present the configured ports? Do you have permissions to access to the port? Can you see the port if you do..
ls -la /dev/ttyU*
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Missed it by ->" "<- that much!
Oh, well spotted! I'll get that fixed [noparse]:)[/noparse]
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Missed it by ->" "<- that much!
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
Indeed, it's not something I ever gave a thought to, but since you've raised it I'll add it in.
Cheers [noparse]:)[/noparse]
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Missed it by ->" "<- that much!
Thank you.
Bug reports might be a pain but that's what happens when one creates something people actually use. They find "features" and then ask for more features[noparse]:)[/noparse]
Thank you again.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
Are you taking feature requests? If you are would it be possible to add the following to bst. If can do it without too much trouble and want to discuss it with me you should have my email address.
1. An extension to the '@' operator for objects. What I would like it to do is to return the index of the object in the method table when used like this
This is so I can dynamically load an object and patch the object table without having to calculate the address by hand.
and
2. An extension to object declaration so that an object can be treated as a header. i.e. It is treated normally and allocated space in the object/method table but not included in the output binary file. Syntax could be either a new block type called OBJH (object header) or a marker before an object something like this
This means that the binaries I generate to be dynamically can be a lot smaller and I have less mucking around to do to make duplicates of the files with the methods but without any of the code.
I realise these could be pretty easy or pretty difficult depending on exactly how your code is setup so if it's too hard don't worry about it.
Since M/S has made it next to impossible to buy a new machine with the English version of Vista bundled, I switched over to Ubuntu for 95% of my computing. If I were to want English, I have to upgrade to Vista Ultra for $$$ and the darned 64bit Quad computer came bundled with 32bit Vista no less! It is a Lemel [noparse][[/noparse]Asus motherboard, but discount brand for chassis, etc].
I retain a dual boot - mainly for Parallax IDEs - but my Vista remains all Chinese.
I've already shifted to using Eagle in Linux, so eventually doing the Propeller in Linux would be delightful.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Ain't gadetry a wonderful thing?
aka G. Herzog [noparse][[/noparse] 黃鶴 ] in Taiwan
Try here :
Tools -> IDE Preferences -> Fonts and Colours -> Enable Colour Syntax Highlighting
I've made it the default for the forthcoming release, but having just moved house again my Macs are still in boxes and I'm back to a dialup internet (it's taken me nearly a minute just to load this page) so my release testing is a little slower than I'd like.
If you are using 0.17 I *strongly* suggest you update to the 0.18-pre8 snapshot. 0.17 has a couple of nasty crash bugs in it that are pretty frighteningly easy to hit in the editor.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Missed it by ->" "<- that much!
what is the development system and the programming language you made your BSTC with? I like that there is only on file.
My development system is vi. The compiler is freepascal (fpc).
bst uses the Lazarus framework and is fpc based also.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Missed it by ->" "<- that much!
Just wanted to say thanks for putting the time in effort into this project.
I would not have dove into using the propeller if it weren't for this software appearing last year.
Thanks for your work
The IDE refuse to open files with the read-only flag set. Win-bst0.18-pre8. Usually I have lib files (eg. the ones in the PropTool dir) write protected: better to ask for new name/location when saved than refuse to open.
Regards
Thank you for BST. I got to the Expo and only had an eeepc with ubuntu on it. I was lamenting that the prop ide did not run on linux but OBC said try BST. In less than 10 mins I had BST up and running on the EEEPC and was able to download to my prop board.
You are a lifesaver.
Again, Thanks
Earl
I'd have sworn it was emacs. [noparse]:ducks:[/noparse] just joking
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Visit the home of pPropQL: propeller.wikispaces.com/pPropQL
pPropQL020: propeller.wikispaces.com/pPropQL
OMU for the pPropQL/020 propeller.wikispaces.com/OMU
Hrm, that is most odd. I thought I had fixed that problem long ago. I've never really tested it on Windows though. Thanks for the headsup, I'll get it fixed.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Missed it by ->" "<- that much!
I should have written the compiler in lisp [noparse]:)[/noparse]
But seriously, I do most of my editing between vi and gedit. I reckon now Catalina is up and running someone should try and compile the busybox version of vi (which is *tiny*) for the Propeller.
@AJM, Old Man Earl, heater & stevenmess2004 : Thanks for the kind words lads, I'm glad you get some use out of it.
I had planned a new release today, but I have to squash the read-only bug on Windows dMajo pointed out first. News at 11.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Missed it by ->" "<- that much!
Changelog in top post.
Notable Changes :
- #define support
- Improvements to serial terminal (hex display, echo and internal improvements)
- Ability to click on a label and see its contents in the status bar (same as Propeller Tool) provided the file has not been modified since it was compiled (F9)
- OSX key mapping is closer to Apple HIG
- Allow copy text from serial terminal / list window
- Allow override of selected text colour in editor (for those using the blue theme on OSX) - its in the IDE config dialog
- Allow resizing of the Parallax special characters window
- Added a "Refresh" right click menu to the directory tree to allow manual refreshing of all directories (warning, this can be slow)
- All the fixes and improvements that went into bstc 0.15
- Splash screen [noparse]:)[/noparse]
- Better font rendering on OSX
- Loads of little things!
Known issues :
- The highlighter is not making some symbols bold where it should
- The serial terminal has "issues" on windows to do with the enter key sending a CR/CR/LF combo instead of a straight CR
<edit> - Redundant spin removal in bst uses the old method (poo). bstc uses the new method. I'll get that sorted. This means bstc makes smaller binaries than bst right now.
- Backspace malfunctions in the serial terminal <sigh>
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Missed it by ->" "<- that much!
Post Edited (BradC) : 7/3/2009 4:51:51 AM GMT
Fixed bug in redundant spin elimination to save even more space.
To give you a rough idea of available space savings from just bolting objects together, here is one of my current test projects compile with and without optimisation.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Missed it by ->" "<- that much!
Post Edited (BradC) : 7/3/2009 4:27:22 AM GMT
0.18.2 - Backspace behaviour in serial terminal fixed.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Missed it by ->" "<- that much!