Worklog update!

BlitzMax Forums/BlitzMax Programming/Worklog update!

marksibly(Posted 2005) [#1]
Hi,

I just posted a largely BlitzMax related worklog update:

http://www.blitzbasic.com/logs/userlog.php?user=1&log=507


Red(Posted 2005) [#2]
oh
Threading ... It's great !


Rimmsy(Posted 2005) [#3]
I agree, don't work yourself into an early grave or release buggy crap. Just keep on the good work, Mark!


Space_guy(Posted 2005) [#4]
Very interessting. What i didnt understand fully though is that do we need to call Flushmem any more or is it fully automatic, or did flushmeme become a wiser function that we still should call in the same situations as we do now?

And good news about the threads. Keep it up!


Koriolis(Posted 2005) [#5]
So, building a real GC finally?. Great.
Weird, reminds me something, *sigh*...

Anyway, you obviously worked pretty hard, and these are all definitely good news.


semar(Posted 2005) [#6]
Very interesting stuff.

I just hope that the important concepts like FlushMem will be enough documented with a couple of examples.

Go on Mark ! Take your time, and keep us informed.

:-)

Sergio.


WendellM(Posted 2005) [#7]
Always nice to see what's happening - thanks for the info.


Matthew Smith(Posted 2005) [#8]
Thanks for the update Mark!


LarsG(Posted 2005) [#9]
Thanks, that was a great read.
It looks like there's alot of interresting times to come!! :D


maximo(Posted 2005) [#10]
ohh cool an update, thanks mark:)


Tom(Posted 2005) [#11]
Good read.

More frequent worklogs please! However big or small, they're nice to read and would keep the 'UGs' (update grumblers :P ) happy I'm sure.

Thanks
Tom


Ferminho(Posted 2005) [#12]
Great news to hear, I can't wait to try it out. Thanks for the info!


xlsior(Posted 2005) [#13]
Good to hear that threading is being looked into as well.

Thanks for the update


Leiden(Posted 2005) [#14]
Yay excellent read, it sounds like your doing wonders with BlitzMax! Nifty work, your doing an awesome job.


MrCredo(Posted 2005) [#15]
thank you!!!

I like this AutoFlushMems... I think i posted atter first release of blitzmax, that we need something like this.

Currently i add FlushMem at each Function + inside some "object-creating"-loops + Mainloop...

i can't wait for new update...

good job


peltazoid(Posted 2005) [#16]
err. sorry but what exactly is a GC?


Scott Shaver(Posted 2005) [#17]
Garbage Collector


deps(Posted 2005) [#18]
Garbage Collector. It frees all allocated memory that isn't used any more.


DStastny(Posted 2005) [#19]
This sounds very promising, lack of threading has had me looking in other directions.

Question for Mark if he reads: Is the GC implementation implemented as a thread? Your comments that the GC may be invoked while object state is questionable in case of CStrings seems to me that you implmented a Threaded GC, similar to .net?

If thats the case then at least I can do some native threaded code. If you can expose the basics cross platform capability without worrying about the entire runtime that would be huge!

Thanks
Doug Stastny


ziggy(Posted 2005) [#20]
Wow, great news!


Tom Darby(Posted 2005) [#21]
Thanks, Mark! Glad you're taking the time to do it right without killing yourself!


taumel(Posted 2005) [#22]
Thanks for the information and good luck for the further work!

Question which came up my mind was how realistic it is to hope for the 3d-engine beeing released this year...beside of a maybe preview christmas present.


Greetings,

taumel


tonyg(Posted 2005) [#23]
Damn!!! No mention of imagebuffers.


AntonyWells(Posted 2005) [#24]
I thread it all and all and I thread you're correcting in adding threading. it's about threading time.


skn3(Posted 2005) [#25]
Always enjoy reading updates :) thanks!


peltazoid(Posted 2005) [#26]
doh! ah thanks guys!


Steve Elliott(Posted 2005) [#27]

The compiler has received quite a few bugfixes and improvements, and I may do an interim 'compiler only' release if things take too much longer on the GUI front.



I would welcome this - regular small updates to the main core - rather than dabling with the GUI and the 3d engine and the compiler and bug fixes over several months.

Good to hear some official news though - rather than Mark's busy working on stuff - yes we know that! ;-)


kyoryu(Posted 2005) [#28]
Mark,

Speaking for myself only, the update is appreciated. While I don't think that anyone expects new versions weekly when there's so much to do as far as major systems (ui, 3d, etc.), I think that a lot of us would appreciate semi-regular updates on status, especially as there's so much to do as far as major systems ;)


dangerdave(Posted 2005) [#29]
I can understand not releasing buggy crap on Mac and Linux, but on Windows? Sheesh!

Thanks for the update Mark.


regaa(Posted 2005) [#30]
Great to hear this news. I think i am also one of the UGs who can't wait to get the gui modul onto the hd. btw: BlitzBasic was amazing, but BlitzMax makes coding like speaking whole stories to the computer and this one makes the app :p.
I am also one of the flsuhmem() haters, as i never explored a flushmem-like function in c# or other oop languages. Am i right, that with threading you can for example post the highscores to the webserver and continue playing your guesmaster2005-ish game while uploading the scores?

Great Job Mark!


EOF(Posted 2005) [#31]
Will there be GUI limitations or missing features if for example, one platform does not support feature X even though the other 2 do?

To help clarify that, lets say Windows and Linux GUI can get a system colour (Desktop background) but the MAC has no such function, would that mean both Windows and Linux have the feature disabled or stripped out?


Red(Posted 2005) [#32]
Windows and Linux have the feature disabled or stripped out?
probably


VIP3R(Posted 2005) [#33]
That was the most interesting Worklog entry I think I've ever read :)

Keep up the good work!


teamonkey(Posted 2005) [#34]
Nice update, very interesting. Always good to hear what's going on, even if we can't actually play with it. :)


marksibly(Posted 2005) [#35]
Hi,

Thanks for the supportive comments everyone!


What i didnt understand fully though is that do we need to call Flushmem any more or is it fully automatic



It will be fully automatic by default, but you'll be able to 'tune' it, turn it off and perform manual flushmems etc.

I still feel that manual flushmem is a good thing in your main game loop, as it keeps memory management nice and deterministic, and if you're 'pushing the 60hz' barrier or whatever this is important.

However, auto flushmem is really useful for non-realtime stuff, such as setup/initialization and apps like BMK.


Question which came up my mind was how realistic it is to hope for the 3d-engine beeing released this year



Unfortunately, it's not gonna happen. I will however do a worklog on 3D progress very soon - I had some cool occlusion stuff happening when I last played with it that people may want to plan for. I also plan to release many 'beta demo' releases of the 3D engine as I go.


Your comments that the GC may be invoked while object state is questionable in case of CStrings seems to me that you implmented a Threaded GC, similar to .net?



The CString issue is really to do with the fact that cstrings are not 'objects' as such, so really lie outside of the control of the garbage collector, eg stuff like:

wndClass.lpszClassName="Hello world".ToCString()

After this executes, who 'owns' the cstring? Not the Max app, as it doesn't have a handle on it. The WNDCLASS struct can't because it's just a plain c struct. etc...

To date, FlushMem would clean up these temporary cstrings. However, with auto flushmem there is the danger that a flushmem can kick in and destroy your cstrings without your knowledge. In fact, that possiblity really exists today - if you create a cstring then call a function that flushmem's you're stuffed if you still need the cstring 'alive'.

I'm currently leaning towards a 'mempool stack' system for dealing with problematic, non-Max mem allocations like this, but fortunately ToCString is pretty rarely used.


Will there be GUI limitations or missing features if for example, one platform does not support feature X even though the other 2 do?



Not initially but I think it's inevitable this will have to happen sooner or later.


Kuron(Posted 2005) [#36]
Wowzers, thanks for all the info, Mark. Definitely some good stuff to look forward to :c)

Any chance proper windowed mode support is coming in the future? I miss the ability to create various styles of windows like we can in Blitz Plus.


taumel(Posted 2005) [#37]
Unfortunately, it's not gonna happen. I will however do a worklog on 3D progress very soon - I had some cool occlusion stuff happening when I last played with it that people may want to plan for. I also plan to release many 'beta demo' releases of the 3D engine as I go.

Bad news and it was kind of obvious but on the other side good news how you're going to deal with it! I'm looking forward to infos and beta demo releases then. :O)


Greetings,

taumel


slenkar(Posted 2005) [#38]
Hi,I just wondered if the original blitz3d commands are created yet,
and if there are going to be several releases of the engine to allow people to create simple games or if you are just going to release the fininshed product at the end of development
thanks


Paradox7(Posted 2005) [#39]
No imagebuffers :( maybe squeeze it in? a possiblity? ;)


Xip(Posted 2005) [#40]
Paradox: i second that, i realy need imagebuffers! :D


smilertoo(Posted 2005) [#41]
Yup. Imagebuffers are dead useful.


Hotcakes(Posted 2005) [#42]
Maybe I should be annoying about Imagebuffers, instead of Max3D... because I need them more!