MonkeyPro V65 now up! [MONKEY NEWS]

Monkey Forums/Monkey Programming/MonkeyPro V65 now up! [MONKEY NEWS]

marksibly(Posted 2012) [#1]
Hi,

MonkeyPro65 is now available - lots of changes so highly experimental!

More details can be found here...

http://marksibly.blogspot.co.nz/


Modules:

mojo - Added async loaders.

mojo - fixed dependancies on bool config settings - changed lots of =="true" to =="1".

reflection - no longer sets reflection filter to '*', so by default nothing will be reflected even if you import reflection.

brl.databuffer - android version no longer supports 'direct' ByteBuffers.

Added brl modules: brl.asyncevent, brl.asyncstream, brl.asynctcpstream, brl.asynctcpconnector, brl.ringbuffer.


Targets:

Updated GLFW to 2.7.6 for Mac joypad support - added IOKit framework to glfw xcode project.

Converted all CONFIG.TXT files to monkey preprocessor source.


Trans (V1.41):

Target CONFIG.TXT files are now monkey files that are preprocessed only. This means you will need to prefix each CONFIG.TXT line with '#' and enquote params. This is a definite 'delete/update' .build dir change.

Added preprocessor config var += operator, mainly for use with adding reflection filters.

Preprocessor config vars can now be modified, UNTIL they are used - ie: once a config var is evaluated for use with #If, #Print, #Error #blah= etc, it cannot be modified.

Added String.ToChars:Int[]() method.




Jesse(Posted 2012) [#2]
Awesome!, Will Test.
Thank you.


Samah(Posted 2012) [#3]
I can see this being a monkey-ext nightmare... ;)


Amon(Posted 2012) [#4]
Nice! Thanks, Mark!


Samah(Posted 2012) [#5]
Mark, is everything in this zip (apart from modules/mojo) still considered public domain?
ie. can I merge it into monkey-ext?


TheRedFox(Posted 2012) [#6]
Hu ho, large changes...


Xaron(Posted 2012) [#7]
Great Mark, thanks! :)


teremochek(Posted 2012) [#8]
Good! :)


ziggy(Posted 2012) [#9]
Jungle Ide will be updated later today with support for the new version on its background compiler. (more info: http://www.jungleide.com )


Snader(Posted 2012) [#10]
Great stuff! Thanks!


Difference(Posted 2012) [#11]
WOW! Massive update, great stuff.
Inspiring blog post.


jondecker76(Posted 2012) [#12]
Awesome! Not only are the new features amazing, but your look ahead is exactly everything I've been waiting for with Monkey (Linux support and a better architecture for adding targets). This is all great news!


Xaron(Posted 2012) [#13]
Oh and Mark, I think you go the right direction with C++/DirectX for the Windows 8 target! :)


ziggy(Posted 2012) [#14]
@Mark: If I don't get it wrong, adding a new target will mean only copying the target folder to the appropiate location, and trans won't need to be recompiled unless this new target does also need a new builder?


Playniax(Posted 2012) [#15]
Great to see monkey is improving so much. Great work Mark!


Gerry Quinn(Posted 2012) [#16]
Looks great! All the needed features are coming, and Windows 8 support in the pipeline.

I agree with the architecture direction also.


Skn3(Posted 2012) [#17]
That's one small step for monkey, one giant leap for monkey kind!


dopeyrulz(Posted 2012) [#18]
Yep spot-on with the c++/directx target for Win8 apps - can't access native otherwise. Thanks for going that direction rather than c# or html5 - will be best in the long run even though you have had to do a lot more work upfront.

Got my Win 8 ultrabook already to go!


Neuro(Posted 2012) [#19]
Holy crap...one helluva update..


ziggy(Posted 2012) [#20]
EDIT: Forget it, it was me using a wrong version of the compiler.

EDIT2: Ok, I think it could be cosidered a bug or something unexpected, not sure how to classify it.

This code:
myfile.monkey
[monkeycode]Import reflection
#REFLECTION_FILTER+="myfile"

Function Main()
For Local i:ClassInfo = EachIn reflection.GetClasses()
Print i.Name
Next
Local m:MyClass = New MyClass
End

Class MyClass

End[/monkeycode]
Does not compile. I was expecting the += operator to work for any parameter that has a default value, even if it has not been set before. That's important as otherwise development of thirdparty modules can require users to always add (at least) an empty reflection filter for applications to compile. And I don't think it is as elegant as it could be, unless I'm missing something.
Other than that, I love this new version.



therevills(Posted 2012) [#21]
FYI: Everything in Mark's blog post isnt in v65 ;)
[removed version info since Mark has now added it to his first post]


marksibly(Posted 2012) [#22]
Hi,

> I was expecting the += operator to work for any parameter that has a default value, even if it has not been set before.

Weird, that's working here...will investigate.


marksibly(Posted 2012) [#23]
Hi,

What error are you getting?

Do you have your testfile in a 'parent' dir of the monkey release?


ziggy(Posted 2012) [#24]
I was getting this:
C:/Users/Manel/Documents/Jungle Ide Framework/Temporary Files/Untitled_1.monkey<2> : Error : Syntax error - expecting assignement
Untill I saw it was saying it was Trans 1.40 Somehow, while implementing the Trans variation Jungle Ide uses for background compile as you type, I replaced files, so you can happily forget my previous post as it is working well and I was just mangling my compiler folder. sorry to waste your time


marksibly(Posted 2012) [#25]
Hi,

Actually, I think you stumbled across a *different* bug - I can reproduce a weird 'reflection module not found error'! Will cheese it for now...


Samah(Posted 2012) [#26]
Self-quote: Mark, is everything in this zip (apart from modules/mojo) still considered public domain?
ie. can I merge it into monkey-ext?

Could I get an official word on this? ;)
<3


Midimaster(Posted 2012) [#27]
Only an idea:

During all this upgrade hype: do not forget to communicate the new features completely. And to continue writing the manual. Featurism without documentation is not helpful for people, who will join in future.

One of the reason for success of the old BlitzBasic was the documentation, which had a description of each command AND a runable sample code!

Perhaps you should start a online documentaion, where each command has its own thread and users can add articles to clarify the use.


Tibit(Posted 2012) [#28]
One of the reason for success of the old BlitzBasic was the documentation, which had a description of each command AND a runable sample code!
I 100% AGREE!

However I'm not sure Mark is the one to add the examples. One idea would beto have a sticky thread where people can submit examples each patch.

There is a wiki for the docs, but it is not as easy to add things there as it would be to just copy an answer to a forum question into another thread.

A lot of the times a user on this forum answers a question to another user that code could be an example and could be part of the docs. It would require some curation time, but maybe that could also be a community effort and for it to be a community effort it needs to be easy to do so!


ziggy(Posted 2012) [#29]
I was wondering if Mark is going to maintain both the wiki and the George based documentation in latest compiler version. If he's not going to work twice, maybe it would be a good idea to substitute current wiki with an online version of the new docs.


dragon(Posted 2012) [#30]
Syntax error - expecting assignement


i get same message here:

#MYVAR=1 'this work
#MYVAR = 1 'this not



ziggy(Posted 2012) [#31]
@Dragon: Spaces on compiler directives have never been allowed. Wheter it is a bug or not (I don't think so) it is not new.


dragon(Posted 2012) [#32]
>>>Spaces on compiler directives have never been allowed

this work:

#If xyz = 1
#end


bruZard(Posted 2012) [#33]
v65 killed miniB3D ;)


byo(Posted 2012) [#34]
Whoa! That's hot! Brilliant update. Gotta test this tonight.


AdamRedwoods(Posted 2012) [#35]
v65 killed miniB3D

Yes, I may have time today to get in there.


marksibly(Posted 2012) [#36]
Hi,

Yes, more examples is always better! generally try and add bananas samples for new features though, so look there first when new stuff is added.

> I was wondering if Mark is going to maintain both the wiki and the George based documentation in latest compiler version.

The wiki will be closing down soon. It'd be nice to have sexy online docs too, but it's just too much hassle - tweaking local doc files is 100 times easier/faster. I promised myself I'd stay away from web stuff a while back as it's an amazing time-sink, but I keep get sucked back in!

> #MYVAR=1 'this work
> #MYVAR = 1 'this not

Will be fixed.


Samah(Posted 2012) [#37]
Well I'm going to take that as a yes then.


marksibly(Posted 2012) [#38]
Hi,

Everything's PD except *anything* inside modules/mojo/

There should be a new README.TXT in modules/brl...?


Tibit(Posted 2012) [#39]
> The wiki will be closing down soon.

Mark, if one finds or creates sample code worthy of the docs then are they to be sent to you by e-mail? A forum thread? Other?


Samah(Posted 2012) [#40]
monkey-ext has been updated to v65. Only the windows binary has been built.

http://code.google.com/p/monkey-ext/
http://code.google.com/p/monkey-ext/source/detail?r=e1502dfdbc5823e7d459f6c7252f19d1508aa30a&name=development


golomp(Posted 2012) [#41]
Thank you Mark!


slenkar(Posted 2012) [#42]
how do you enable config vars in the source?

#GLFW_USE_MINGW="~qtrue~q" -used to work with monkey 64

I tried these with no success

#GLFW_USE_MINGW="~qtrue~q"
#GLFW_USE_MINGW="~qTrue~q"
#GLFW_USE_MINGW="True"

but none of them worked

#GLFW_USE_MINGW="~qtrue~q" -used to work with monkey 64

ohh its #GLFW_USE_MINGW=True :{)