New BLIde open beta available

BlitzMax Forums/BlitzMax Programming/New BLIde open beta available

ziggy(Posted 2008) [#1]
Hello a new BLIde BETA version is available to those people that wish to test it and provide feedback in order for me to fix any possible issues before making an official release.

This is the changelog of this beta version in comparison to current official stable release:

Changes introduced on version 0.9.54-A

Cleaner code
I've cleaned a lot the internal BLIde code. Five years of development had converted some areas of the BLIde code a little nightmare to mantain, so I've decided to clean it up as much as possible. Surprisingly, while surfing trough all the code, I've managed to optimize some areas, so BLIde is now a lot faster in some areas.
Module cache configuration
I've also added a tool to 'exclude' some modules from the internal BLIde database. The object of this new tool is not to make BLIde faster, as BLIde is not suffering from slowdowns caused for the complexity of the framework. The intention of this is to let users disable intellisense for the modules they doesn't regulary use. I've got 3 3D modules installed and some of them share some base functionality and I was having intellisense from the 3 engines at the same time! A little bit confusing!
BLIde SDK generates native .net DLL files
The SDK can now generate native compiled .net DLLs to add functionality to BLIde. I'm more than happy with this part and that has improved BLIde loading time, and making the plugins source code more secure.
New SDK components and functionality
I've added a new component to the BLIde SDK that lets the SDK coder create tabbed documents in the BLĪde layout, as any other existing BLIde tool, and this is done in a complete transparent way for the Plugin users. I've also added a way to provide some basic intellisense to non bmx or sdk files, using the SDK. the final goal is that BLIde will be able to be configured to act as an IDE for virtually any language. Next step will be to add function parameter hint through the SDK and folding, and then... the parsers... a lot of pending work to do!!!...
Better intellisense
Also, I've made some improvements to the intellisense system. It is now a little bit faster and it is even more precise.
Improved localisation
Additionaly, I've changed the Ctrl+Enter functionality to Alt+Enter, as the Ctrl+Space is being used by chinese users to toggle the multilingual imput text mode (wich BLIde now supports nativelly.
New customer tool
I've also added a new little information tool in the Help panel that informs about the version number of any BLIde component installed. This tool is there just as a customer's support helper, so I can know what assemblys are being used with BLIde when a BLIde customer reports a bug.
Optimized layout serialization for projects and solutions
New system for session serialization, this new system has forced some changes in the internl BLIde and bls files formats. Now BLIde remembers the documents organization when the session is restored, including dual monitor setups configurations and complex multi-container layouts.
Changes introduced on version 0.9.54-B
Lots of fixes in the serialization algorithm that were affecting the creation of new Solutions, Projects and the restoriation of previously stored layouts on the window menu. Some of this fixes were serious stability fixes. Updating is highly recommended.
Changes introduced on version 0.9.54-C
Several otimizations on the intellisense speed. This optimizations are specially notorious on single core processors
Implemented internal file system watcher to detect changes on files being edited in several instances of BLIde or being edited from several programs at the same time.
Fixed some stability fixes on session status serialization
Added the view BLIde help and view BlitzMax help on the Help menu
Several fixes when mixing non-project related files with project/solution files in the same BLIde session and the session was restoring a serialization that included tabbed documents
Improved a little bit the BLIde start-up time on dual core systems
Some minor improvements on the TabControl component of the BLIde SDK
Tweaked the integrated plublisher to be compatible with the inminent release of BlitzMax 1.30 that has special attention to internal manifest files integration (that one was not very easy to do...9
The advanced module builder no longer depends on module cache, it takes the mods list directly from disk, so non active modules can also be build
Some internal improvements to the BLIde SDK to make existing API faster. A lot to do still in this area...
Organized the quick-info tooltips on code to make them look the same in every possible scenario

Changes introduced on version 0.9.55-A
Better intellisense (more precise and a little bit faster)
I've been fixing lots of small issues reported by users during this week. Everything starts to shape and the next beta 0.9.55 A seems to be very stable, so time to let it go and prepare an official update.
I've improved the way BLIde internally handles GDI resources to follow strict microsoft GDI+ rules.
I've fixed an issue with incbined media on solutions when a complex folder structure was pressent.
fixed also some issues on the code text auo-format algorithm
Fixed some issues on the inline bug analizer, interpreting complex IF single line sentences when using a NOT operator as the first operator of a sub-expression.
Fixed a compatibility issue with some third party modules (wxwidgets)
Improved start-up time a little bit
Several stability issues on the internal GUI engine
Improved intellisense mechanism (faster and more precise)
Added little funcionality to the SDK api
Updated some internal BLIde DLLs to fix some GDI+ issues


BLIde Plus users can download the beta here: http://www.blide.org/plus/
BLIde Free edition users can download the beta here: http://www.blide.org/index.php?section=getfree

Please, if you test this version, provide feedback.


Macguffin(Posted 2008) [#2]
That's great news! I'll pull it down after the long weekend (American 4th of July).


Stu_ovine(Posted 2008) [#3]
Module cache configuration

How is this activated ?


JoshK(Posted 2008) [#4]
I use BLIde Plus. So should you.

It would be nice if some of those compiler options like i686 and SSE could be set in BLIde. I think they can be passed to BMK in the command line. I am not sure if these affect imported C only, or if it affects BMX code as well. I am starting to use some C and CPP in my source code.

I would also like to see support for GLSL .frag, .vert, and .geom shader files. They don't need to be syntax-highlighted, but I would like to be able to open them from the open file dialog.

I don't know if this is already implemented, but it would be nice if I could compile a DLL straight from the IDE.

Is there an option to record the build number in the project? That would be interesting, and it would make it easier to distribute the project to licensees.

Everyone should buy a license for BLIde Plus if you want to be good.


Czar Flavius(Posted 2008) [#5]
Have some random suggestions: sorry if any are included in this latest version I can't check it right now.

* I would really like a truely intelligent indenting system. If you're editor could make it so that I never have to press tab, then I would be very happy.

* Sometimes when starting a thing such as a type or function, pressing enter doesn't plonk on the corrosponding end statements, which is annoying.

* Automatic capitalisation would be EXTREMELY useful. It annoys me know end having to press shift all the time in the name of "readable code", it slows my typing down. So if my type is declared TRabbit, and I write trabbit, it should correct to TRabbit. I would love that.

* Able to right click a function or something and open up its code (just for that thing) in a mini-window. Would make quick code editing and lookup more convienient - I hate too many tabs open.

Good night.


Muttley(Posted 2008) [#6]
@Leadworks: If you use the new Solution Manager you can set Major, Minor and Revision numbers and then access them from your code like:

My.Application.MajorVersion


ziggy(Posted 2008) [#7]
@OvineByDesign: In file / settings / module cache configuration
@Leadwerks: Now shure what compiler flags are there. I could add an additional compile options tab where you can literally TYPE any additional compilation flag you want to pass to the bmk. This could be set on the Advanced tab of the IDE preferences. What do you think?
You can add any file extension to any available BLIde parser in the file / settings menu. Select the parser at the left, and add a file extension. Then this file extension will be available on the Open File of BLIde. Also to the compiling DLLs, I don't think there's any official support for this and I'm not sure if BLIde should support user-made tweaks to the BlitzMax compiler. If there's a way to compile DLLs using BlitzMax with doesn't requiere a change in the BMK utility, please let me know it and I'll add it to BLIde. To the version numbering on a project; if your project is a solution, you can set version numbering in the properties window of any managed program on the solution. If the project is not a managed project, you can set a version number in the project info dialog, but in this case the versioning will not be reflected at runtime, and the users shuold check it by themselves.

@Czar Flavius: A truly automatic indenting system would mean reparse all the code at every line change, and that would have a very performace impact on BLIde. I'm making some changes in the internal parser structure to make this faster, but I'm not sure if this will be possible. Even Visual Studio have some issues with this... I will fix the non-autocompletion of types or the like as soon as I can see what's causing them. And to the automatic capitalisation... It is there, not sure what can be happening to you if you don't have it! If you create a type with a given name, and then after you write the type name somewhere else, it is not capitalized? Let me know it please.


Muttley(Posted 2008) [#8]
@ziggy: This beta seems to quite frequently hang when "Restoring session..."

Also, when it does work, it's a lot slower than before.


Muttley(Posted 2008) [#9]
Oh, another thing. When it does load successfully, and it's a Module Solution, the Solution Explorer tree doesn't show all of the files, even though they are all visible through Local Shortcuts. I'll zip up the solution so you can see the problem first hand.


Stu_ovine(Posted 2008) [#10]
@OvineByDesign: In file / settings / module cache configuration

I dont see Cache in the file/settings menu ?


Muttley(Posted 2008) [#11]
@OvineByDesign: It's where ziggy said: File -> Settings -> Module Cache Configuration. 3rd option down, right under Preferences.


Stu_ovine(Posted 2008) [#12]
Im still running 9.52 A ! :S

Suppose it helps to download the beta and not the current version (I'll go and hide in the corner)


Muttley(Posted 2008) [#13]
Hehe. It's been a long week, eh! ;)


ziggy(Posted 2008) [#14]
@Mutley:
Also, when it does work, it's a lot slower than before.
You mean the session restoriation or BLIde itself?

Yes please, if you could send me the source code...


JoshK(Posted 2008) [#15]
Select the parser at the left, and add a file extension.

I don't understand what this means. I don't see anything like this in the settings dialog.

Also to the compiling DLLs, I don't think there's any official support for this and I'm not sure if BLIde should support user-made tweaks to the BlitzMax compiler. If there's a way to compile DLLs using BlitzMax with doesn't requiere a change in the BMK utility, please let me know it and I'll add it to BLIde.

Just add -makelib in the bmk command line and a DLL will be compiled. It requires a .def file, and I am not sure how you should handle that, but it is officially supported. Maybe just leave it up to the user to supply the .def file in the same directory, or you could auto-generate one listing all functions in the source.

For compiler options, I think visual controls would be cooler, but agree that a command line is sufficient.


ziggy(Posted 2008) [#16]
@Leadwerks: If it is officially suported, I'll add it as a default build mode, but for the next verson (I mean, when current BETA gets release, I'll start adding this features. Now I'm a little bit worried about the session serialization issues found by Mutley as I can't reproduce them here, and honestly I have no idea where to start... (Hope to find a solution during the weekend).

EDIT: How is a def file syntax? any idea?


Muttley(Posted 2008) [#17]
@ziggy: E-mail sent.


JoshK(Posted 2008) [#18]
It's like this:

EXPORTS
CreateWindow=bb_CreateWindow
Flip=bb_Flip
GCCollect=bb_GCCollect

You have to add GCEnter() to the first line of every dll function. For this reason I would not recommend exporting every single function in the source or generating a .def file.


ziggy(Posted 2008) [#19]
There's a new beta update for plus users (0.9.55.b)

This new update adds the following changes:

* Several stability fixes that could be causing a crash of BLIde when BLIde was compiling a BlitzMax application

* Fixed an issue when loading the solution explorer file tree, and the files attributes at disk were not standard

* Fixed several memory issues

* Fixed a small memory leak

* Layout serialization reverted back to not include tabbed documents

* Added a plain txt parser to the list of available parser.



When updating from previous BETA version, an error message can be displayed when a solution or project is loaded. The error message will desapear after the solution is re-loaded.

This update is only available to BLIde Plus users. BLIde Free Edition users will have to wait to the official stable release, or a release candidate.

@Leadwerks, to define frag vert geo or whatever other text file format on BLIde, follow this simple steps:

1.- go to: File / Settings / Associate file extensions with BLIde Parsers

2.´- In the dialog, select the txt parser on the list at the left

3.- Add the additional extensions you want BLIde to understand as txt files at the right (one per line)



4.- Press the DONE button, and that's it :D


plash(Posted 2008) [#20]
(from the BLIde page)
You're not allowed to distribute comercially any game or application coded with BLIde Free Edition (you may purchase a Plus version before distributing a comercial game or app).
Wow.. I am no longer using your IDE sir.

PS, as a leaving gift, right as I tried to compile some code I got a "Library Bypassed" message, and the code didn't compile. Bye!


Retimer(Posted 2008) [#21]
Aren't we coding it IN Blide, and with blitzmax language?

I'm a tard with many legal issues, but would that not be the same as microsoft saying "anything you type in notepad can no longer be used as text until you purchase vista"?

Unless i'm missing a feature (I haven't update blide in ages) where you can create an installer through it? Then that would truly be distributing through blide, and such a matter could be dealt with legally, but coding in it? Then why not just use it as a demo and copy paste the code from it to MaxIDE?

I have absolutely no problems purchasing blide upon releasing a commercial product, but it does seem like a really bold statement. If Plash's understanding of your quote is correct, then you are going to lose a lot of integrity with blide.


ziggy(Posted 2008) [#22]
@Plash: Thanks for the gift. The idea behind this was to let the free edition to open source projects or free projects as BLIde is taking a lot of time of developmet and I think the small amount the plus version costs is usually one or two sells of any comercial game or application. I'm sure people that really valorate the amount of work involved on making and mantaining BLIde will have no problem with this. By the way, you were getting a library bypassed message becouse you were selecting the 'included library' build mode. It is explained on the IDE documentation and, believe it or not, it has sense.
The other option was to convert the BLIde Free Edition on a 30 day trial demo, but I preffer this approach as people doesn't have to buy a license untill they finish really a game or application and they're selling it.

@Retimer: Maybe you're right, I'm not sure how this would 'legaly fit'. As long as using solutions, part of the code is automatically generated by BLIde, so I'm sure there's no problem there. Anyway, if anybody thinks it is not legitimate to pay for the work involved on creating BLIde and at the same time they're using it to make money...

EDIT: Do you think that it wuld have more sense if I rename BLIde Free Edition to BLIde DEMO?

EDIT2: I've changed the text in the BLIde page, as I think it was a little bit too rude. Now it states:
You may purchase a BLIde Plus license if you're selling any game or application created in BLIde Free Edition. BLIde Free Edition is intended only to the creation of personal software, free software or open source software. If you're making money using BLIde, please suport the BLIde development team purchasing a Plus license.
Is this a better way to explain the situation?


Macguffin(Posted 2008) [#23]
@ziggy - I wouldn't soften the language on it. The way you have it right now, it sounds like a polite suggestion. But that is your call.

I think BLIde worked out to about $30 american for me, and honestly, it ranks at the very top for me in terms of dollars to productivity increases out of any piece of software I've ever bought. I think it's more than fair that you let people try it out as long as they want, and that if they want to publish their software, they send you $30.


plash(Posted 2008) [#24]
I'll agree it makes sense that you have it the way you do, it just seemed a bit harsh to be saying what you did.

you were getting a library bypassed message becouse you were selecting the 'included library' build mode

I never selected that, nor does it exist (9.52A).


ziggy(Posted 2008) [#25]
@Plash:

That's on BLIde 0.9.52 A. This build mode was introduced on solutions. I'll add a check to change the build mode just in case by accident the build mode gets changed for the main bmx file of a project, solution, or for a non-project bmx file, as in this scenarions, this build mode has not a real utility. I supose this change can be caused by the scroll wheel of the mouse when the combo has focus or something like that. That have happened to me sometimes.

It is a petty if BLIde looses you as a member, you've been always very helpful finding bugs and things that could be polished. Anyway, if you change your mind, you'll be more than welcome again.


Retimer(Posted 2008) [#26]
Is this a better way to explain the situation?


With your advanced module builder being plus only, and many other updates being only for plus users, I wouldn't worry about it too much. The kind of people that can afford, and really enjoy your software, i'm sure eventually will make a purchase due to just how awsome BLide is.

I just wanted to note that the previous quote did seem a bit pushy and I don't think BLide should lose its great integrity over an accidental series of words. Cheers


plash(Posted 2008) [#27]
Oh, there it is.. I wasn't looking in the right spot.

You've not lost me yet ;)


plash(Posted 2008) [#28]
No debug information for TList object (and when debugging ALOT of code, hardly anything comes up [hierarchically]):
BLIde (the TLists are 'expandable' but they don't show anything):
BlitzMax (full data shown):

The code:

As for lots of code, remember that all method->type instances had the expand icon (I clicked it, nothing came up).


ziggy(Posted 2008) [#29]
@Plash: I can debug and expand any item there... That's weird... Does this little sample show the problem? It seems to be working properly here, but I made some changes to the debuging engine on the version I'm currently testing, so I'm not sure if it's related.

I'll check the same on BLIde 0.9.52 A.

One question, are you debugging types that have fields that are function pointers? There can be an issue there I'm currently fixing.

EDIT: This can also be caused when trying to populate pointers pointing to NULL, after that the debuger could get unactive.


plash(Posted 2008) [#30]
Not entirely certain. The larger BLIde screenshot is of a type extended (ultimately from wxWindow {Brucey's wxMax module}) from wxFrame.

The same code in MaxIDE shows this.


ziggy(Posted 2008) [#31]
I have just seen that there are in fact empty memory addresses provided by the Max debuger. BLIde may be waiting for a response to the contents, but this response never comes. In your example, the problem happens when you try to expand the item poiting to the address $00000000 wich is an item pointing to NULL. I think I can fix this very easily for the next version, but I'm not sure if this may be the only scenario where the debuger just ignores the request of data... I'll add some security checks to prevent things not getting populated.

I'll get back to you as soon as I've found a possible solution. Do you mind if I send you an email?


plash(Posted 2008) [#32]
Do you mind if I send you an email?
Not at all.


ziggy(Posted 2008) [#33]
Just to inform that the Release Candidate 1 is ready.


To BLIde Free Edition Users: http://www.blide.org/index.php?section=getfree

To BLIde Plus Users: http://www.blide.org/plus

This release candidate fixes all non-showing-data debugger issues (I hope) and has some stability issues fixed.

Please, provide feedback.

EDIT: Also the Font Machine module and the BLIde Publisher have been updated and are available in the BLIde Plus section.


AlexO(Posted 2008) [#34]

BLIde now stores relative paths to included BMX files on solutions when they're stored in the same folder of the BLIde or BLS file, or in a subfolder.



*claps* I'm so happy to finally see this in there :D.




hahah last week I was looking all over the place where to set the build mode for individual files for quickie throw-away apps. *slaps face*. It wasn't in the more 'obvious' places I expected it to be like where you can set the 'debug' mode in the build menu. Just some usability feedback.


Armitage 1982(Posted 2008) [#35]
I'm still not running into particular issue with the last 00.09.57A Beta
Even if I'm wondering if my project file and region codes created with an older beta (like 52A) are still valid.
Do you think I should recreate a new project file just in case ?


ziggy(Posted 2008) [#36]
@Armitage 1982: No, eerytime you save the project, BLIde fixes any possible issue on the project file. The only possible issue would be if there's an error in the layout serialization xml part. To prevent any inconsistence there, it's a good idea to reload a pre-defined layout once your solution is loaded (in the windows dialog).

@AlexO: Do you think the Build mode should have to be also available due the build menu? As a side thing, be sure to recompile any DLL plugin you may have if you don't want to get some errors, as there has been a small change in the internal SDK api.


AlexO(Posted 2008) [#37]
In the MaxIDE under 'build options' it has debug, quick build, and console/gui app. I expected in BLIdein a similar location I would have the same options (under Building->Compiler Options). If anything, it'd help users coming from MaxIDE feel more familar in BLIde.


JoJo(Posted 2008) [#38]
How do you get the Framework inspector to identify new Frameworks?

I added the Chipmunk module and it doesn't show up in the Framework Inspector.


ziggy(Posted 2008) [#39]
Refresh the module's cache. (on the file menu).


JoJo(Posted 2008) [#40]
Doh! (slaps forhead)

Amazing...didn't even see that!

...and what about the documentation? I'm looking. I promise :)


Mahan(Posted 2008) [#41]
I got some questions about blide payments/versions:

* Do I make a onetime payment and then get patches/upgrades for free (somewhat like blitzmax) or do I need to pay for every patch?

* Will I have to "re-licence" when blide hits new major versions 1.0? 2.0? (or maybe development plans don't do that far yet) :)

(Personally I don't have a problem with re-licencing when a new major version hits every other year or so, considering its pricetag, but I just wanna know the premises.)

I'm sorry if this question has been answered before, but i couldn't find it neighter on this forums nor on the blide.org site.

If licencing works as I assume it does, I plan on purchasing blide this afternoon as when i get home from work.

I'll allow myself to make a suggestion for the blide site to include the information I asked for here on the blide.org site aswell. As said the pricetag is very nice and I say that eventhough I'm a pure hobbyist BlitzMax developer, but when I pull out my CC i wanna know exacly what I'm buying ;-)

That said I look forward to use blide as it looks like a very nice product.


ziggy(Posted 2008) [#42]
Do I make a onetime payment and then get patches/upgrades for free (somewhat like blitzmax) or do I need to pay for every patch?
No, once you get your license, you can get any patch for BLIde, forever. It's like the BlitzMax license.

Will I have to "re-licence" when blide hits new major versions 1.0? 2.0? (or maybe development plans don't do that far yet) :)
Current license does not expire, so you'll get any major update that may come in the future, forever.

thanks for the possitive feedback. I'll add this information to the BLIde website!