It is currently Fri Dec 06, 2019 2:26 pm

All times are UTC + 1 hour




Post new topic Reply to topic  [ 136 posts ]  Go to page 1, 2, 3, 4, 5 ... 10  Next
Author Message
 Post subject: New scripting engine - testers wanted!
PostPosted: Tue Dec 12, 2017 5:04 pm 
Offline
PureBasic Expert
PureBasic Expert

Joined: Wed Oct 29, 2003 4:35 pm
Posts: 10525
Location: Beyond the pale...
**EDIT : I have made the test files available to all. More details in a separate posting below.

DOWNLOAD minScript

================================


Hi,

I have a new scripting engine completed in PB and am looking for a handful of hearty souls to help me test this swine! :)

My first attempt at a useable scripting engine (eScript) turned out to be wholly unsuitable for a number of reasons, including the fact that it was an absolute bugger to actually integrate into a wannabe host app! It was also difficult to extend in that, for example, adding arrays was nigh on impossible - doh! Problem is that it was neither a scripting component or a full interpreted language when, stupidly, it tried to be both of these things!

minScript addresses all of eScript's many short-comings. It has been designed from the beginning for use in apps which either wish to automate some task or other (e.g. application installers) or offer up full scripting to their users.

I reckon I've finally nailed it with this one... but only time will tell.

minScript is pretty lightweight (currently under 12000 lines of OS independent PB code) and is an absolute breeze to integrate into a host app and it is a trivial matter to execute script code. It is simple to extend through the addition of run-time functions and/or user-defined reference types and so the business of customising it for use in a given host environment is straight forward. There are no external dependencies as minScript comes in full source code form.

It probably isn't the right time to outline minScript's features in detail and so I'll just list some of the main ones :

  • A small flat c-style API to customise the hosting environment by adding run-time functions and the like
  • A simple OOP interface for working with scripts
  • A large set of standard runtime functions included
  • Full compilation of scripts (to byte code) using a top-down recursive parser
  • Scripts are submitted for compilation in the form of modules. Add as many modules as you wish, when you wish. You do not need to submit code all in one lump!
  • Simple debugging features (I did not go overboard here - simple is good inmo!)
  • Full garbage collection.
  • Simple VB type syntax. Mix procedural and OOP syntax.
  • Code modules.
  • Classes and user-defined types
  • Arrays (inc arrays of arrays of arrays... and arrays of class objects etc.)

And so on!

To assist with testing (and instructing others how to code in minScript's language) I have created a simple editor which can be used to run and test scripts. It also serves as a non-trivial demo in how to make use of minScript.
I have already created a few test scripts which can be loaded into the editor, but I will be adding more and more as and when I can.

The hope is that I can fix bugs and add whatever obvious features I may have overlooked whilst working on more demos and the docs etc.

I don't have anywhere to upload the files at this time which is why I am just asking for a few testers to whom I can just email the package to as opposed to just opening up the testing to all.

Please send me a pm with an email address if you are interested.

Thanks.

_________________
I may look like a mule, but I'm not a complete ass.


Last edited by srod on Thu Dec 21, 2017 1:00 pm, edited 2 times in total.

Top
 Profile  
Reply with quote  
 Post subject: Re: New scripting engine - testers wanted!
PostPosted: Tue Dec 12, 2017 7:28 pm 
Offline
Addict
Addict

Joined: Fri Apr 25, 2003 11:10 pm
Posts: 1216
sounds very interesting, I don't qualify as a tester but am curious to know wether it will be a commercial product or free?
am looking forward to try it out when it's made available to the general public.


Top
 Profile  
Reply with quote  
 Post subject: Re: New scripting engine - testers wanted!
PostPosted: Tue Dec 12, 2017 8:49 pm 
Offline
PureBasic Expert
PureBasic Expert

Joined: Wed Oct 29, 2003 4:35 pm
Posts: 10525
Location: Beyond the pale...
jack wrote:
sounds very interesting, I don't qualify as a tester but am curious to know wether it will be a commercial product or free?
am looking forward to try it out when it's made available to the general public.


Freeware.

_________________
I may look like a mule, but I'm not a complete ass.


Top
 Profile  
Reply with quote  
 Post subject: Re: New scripting engine - testers wanted!
PostPosted: Tue Dec 12, 2017 10:13 pm 
Offline
Enthusiast
Enthusiast
User avatar

Joined: Wed Feb 01, 2012 3:30 pm
Posts: 750
Location: Nottinghamshire UK
Hi srod. As like Jack I Don`t qualify as a tester but I`m definitely interested. Nice to know your back :)
Zebuddi. :)

_________________
malleo, caput, bang. Ego, comprehendunt in tempore


Top
 Profile  
Reply with quote  
 Post subject: Re: New scripting engine - testers wanted!
PostPosted: Tue Dec 12, 2017 10:53 pm 
Offline
PureBasic Expert
PureBasic Expert

Joined: Wed Oct 29, 2003 4:35 pm
Posts: 10525
Location: Beyond the pale...
I never really went away - just struggled to find much time for any coding. :)

Things have evened out a lot more now in terms of the amount of spare time I have and so I can code more!

minScript has taken quite some time to get it to this stage mind; mostly due to the aforementioned previous lack of spare time.

_________________
I may look like a mule, but I'm not a complete ass.


Top
 Profile  
Reply with quote  
 Post subject: Re: New scripting engine - testers wanted!
PostPosted: Tue Dec 12, 2017 11:17 pm 
Offline
Enthusiast
Enthusiast

Joined: Sat Apr 26, 2003 2:49 pm
Posts: 633
Sounds cool. Can the host app comunicate with the scripts passing and returning vars or objects?


Top
 Profile  
Reply with quote  
 Post subject: Re: New scripting engine - testers wanted!
PostPosted: Wed Dec 13, 2017 11:38 pm 
Offline
PureBasic Expert
PureBasic Expert

Joined: Wed Oct 29, 2003 4:35 pm
Posts: 10525
Location: Beyond the pale...
Justin wrote:
Sounds cool. Can the host app comunicate with the scripts passing and returning vars or objects?


The short answer is, yes. :)

If you are asking whether you can pass values in and out whilst a script is running then yes, you can do it through various mechanisms.

The easiest option is to simply pass values in when invoking a script function and then retrieving any return value. That of course is a fundamental requirement for any script engine. :) Incidentally, you do not need to invoke a full function in order to execute a script. minScript supports pre-compiled 'code snippets' which the host app can stash away and execute at any time and are intended for rapid and repeated execution etc. These snippets can then call into module functions and classes etc. The point is that you don't necessarily need to regard a script as a single large entity if you also make use of these snippets.

Second option is the fact that both the host app and scripts can set and retrieve the values of what we have called 'script variables'. These are top-level global variables (we have several levels of global variables). For example, the host app could create an array and assign it to a script variable and then this would be available to any script running under the relevant code object. This is a simple way of a host app communicating with a script etc.

Third option is the use of run-time functions. The host defines a run-time function which can be called by a script. Communication can thus be facilitated this way. In fact a run-time function can execute additional scripts if it so wishes - so scripts running within scripts!

Another more advanced option is through the use of what we have termed 'user-defined reference types'. These are similar to script classes (which minScript offers), but their definition and implementation sits in the Purebasic host app. For example, we have implemented arrays through the use of a suitable user-defined type (and script classes as it turns out!)
So if I use an array as an example, a script can create an integer array (for example) and assign it to a local variable. Whenever this variable is then acted on by a script (e.g. setting the value of one of the array elements) then control passes to the the host app (similar to a run-time function) in order for the relevant PB code to do it's thing!
This is an advanced option because user-defined types, for one thing, impact upon minScript's garbage collector and additional code has to be provided by the host to assist the garbage collector dispose of any 'wayward' instances of the underlying user-defined type. We had to create 'garbage collector extensions' for both arrays and script classes and these can be fiddly.

Don't let this last option put you off mind as very very few people would need to concern themselves with implementing a user-defined type. I fully intend to add hash maps (in the form of Javascript style objects) and this will be a relatively simple application of the aforementioned user-defined types. Once I have created them then all users of minScript will be able to use them. :)

There is one last way of a host app communicating with a script (and vise versa) and that is through a debugger - though any such communication is rather limited as I have deliberately not overloaded minScript's debugging capabilities. I made that mistake with eScript!

I hope that answers your question.

_________________
I may look like a mule, but I'm not a complete ass.


Top
 Profile  
Reply with quote  
 Post subject: Re: New scripting engine - testers wanted!
PostPosted: Sat Dec 16, 2017 7:53 pm 
Offline
Addict
Addict
User avatar

Joined: Sun Nov 05, 2006 11:42 pm
Posts: 4542
Location: Lyon - France
Obviously, if you need someone for breaking your code and found much more bug what you have never dreaming...i'm your Grasshopper :mrgreen:
The other members say not be a tester...me i'm not sure i can run your futur jewel :oops: nut i promise you i try ..

Since all this time, you have helped me, one thousand of time, it's time to try to return to you 0.0000001% of your help.
If you need a donkey pure butter in your team...don't forget your little servent KCC for the life :D

_________________
ImageThe happiness is a road...
Not a destination


Top
 Profile  
Reply with quote  
 Post subject: Re: New scripting engine - testers wanted!
PostPosted: Sun Dec 17, 2017 9:52 am 
Offline
PureBasic Expert
PureBasic Expert

Joined: Wed Oct 29, 2003 4:35 pm
Posts: 10525
Location: Beyond the pale...
Thanks KCC. You definitely give new meaning to the term 'code breaker', though I am not sure Alan Turing would have approved! :)

Truth is that I am all the code breaker that is needed right now. In fact, breaking the code is easy; it's putting it back together again that is the problem! :) Damn garbage collector is giving me a headache, though I think I have it sorted now.

I'll put minScript out for all interested parties to tinker with pretty soon. Just want to finish hashmap and 'collection' support and a few other bits and bobs, not to mention the many bugs I keep finding, fixing and reintroducing with a vengeance! Damn bugs keep morphing into more complex entities. I swear some of these bugs I have created are damn near sentient; I caught one of them trying to hack into my own bank account when I specifically instructed it to hack into Fangbeasts many offshore accounts. That wasn't difficult mind when he has set all of his passwords to 'sheeploversanon'.

:)

_________________
I may look like a mule, but I'm not a complete ass.


Top
 Profile  
Reply with quote  
 Post subject: Re: New scripting engine - testers wanted!
PostPosted: Thu Dec 21, 2017 12:58 pm 
Offline
PureBasic Expert
PureBasic Expert

Joined: Wed Oct 29, 2003 4:35 pm
Posts: 10525
Location: Beyond the pale...
For anyone who wants to help out with the testing of minScript (or just wants to take a quick peek!) then I have temporarily uploaded the latest test version to my work's webspace. I will sort somewhere more appropriate after Xmas.

This is just a test version remember (v 1.0.1) so don't be alarmed if it misbehaves a little bit, especially as this latest version comes straight after some quite severe alterations to the compiler. What am I saying? Scratch that and don't be alarmed if it misbehaves a whole heap and turns your computer into a smoldering heap of molten plastic! :)

Please read the appropriate 'read me' before starting which will direct you to the simple 'qdMin' editor (and instructions on how to run it!) which is the best place to start along with the various demo scripts I have thrown in to the mix. I used (and still use) these scripts to test minScript. qdMin only allows a single code module and does not provide access to the global class library, but it is still more than adequate for testing scripts and the like.

For those wishing to delve deeper; in the 'specifications' folder you will find a bunch of text files outlining some of the finer details of minScript and how it works etc. These details will of course find their way into the docs I will eventually produce for minScript. There is also qdMin itself which doubles as a far from trivial demo program, showing, amongst other things, how to integrate minScript into a host app.

DOWNLOAD minScript

_________________
I may look like a mule, but I'm not a complete ass.


Top
 Profile  
Reply with quote  
 Post subject: Re: New scripting engine - testers wanted!
PostPosted: Thu Dec 21, 2017 5:45 pm 
Offline
Addict
Addict
User avatar

Joined: Sun Nov 05, 2006 11:42 pm
Posts: 4542
Location: Lyon - France
Hello master of all my life 8)
Thanks a lot for sharing with us

Like promise i have try to only run your splendid jewel.
And like promises, i have already breaking it, after 0.000002 second, i'm really the better of the bad :oops:

I have renamed the
Code:
#minScript_HOME = "E:\A\Q\B\minScript\Source\" 
and i have this :
Quote:
line 1287
blnBracketsEncountered = 1<<62
overtaking error: a value of type long is between -2147483648 et +4294967295.
Quote:
[COMPILER] Ligne 1287: Erreur de depassement: une valeur de type 'long' (.l) est comprise entre -2147483648 et +4294967295.
I use : W7 X86 / V5.61 X86

_________________
ImageThe happiness is a road...
Not a destination


Top
 Profile  
Reply with quote  
 Post subject: Re: New scripting engine - testers wanted!
PostPosted: Thu Dec 21, 2017 6:44 pm 
Offline
PureBasic Expert
PureBasic Expert

Joined: Wed Oct 29, 2003 4:35 pm
Posts: 10525
Location: Beyond the pale...
Ah I am running on Winx64... yes that bug is clear - doh!

Let me sort that out.

Thanks Kwai.

**FIXED (version 1.0.2) ** Should run fine on Win x86 now.

_________________
I may look like a mule, but I'm not a complete ass.


Last edited by srod on Thu Dec 21, 2017 7:19 pm, edited 2 times in total.

Top
 Profile  
Reply with quote  
 Post subject: Re: New scripting engine - testers wanted!
PostPosted: Thu Dec 21, 2017 7:03 pm 
Offline
Addict
Addict
User avatar

Joined: Sun Nov 05, 2006 11:42 pm
Posts: 4542
Location: Lyon - France
Quote:
yes that bug is clear - doh!
For MASTER...all is always clear :shock:
Quote:
Thanks Kwai.
For my life your servant MASTER Image

_________________
ImageThe happiness is a road...
Not a destination


Top
 Profile  
Reply with quote  
 Post subject: Re: New scripting engine - testers wanted!
PostPosted: Thu Dec 21, 2017 7:19 pm 
Offline
PureBasic Expert
PureBasic Expert

Joined: Wed Oct 29, 2003 4:35 pm
Posts: 10525
Location: Beyond the pale...
Kwai chang caine wrote:
Quote:
yes that bug is clear - doh!
For MASTER...all is always clear :shock:
Quote:
Thanks Kwai.
For my life your servant MASTER Image


FIXED (version 1.0.2).

Should run fine on Win x86 now.

_________________
I may look like a mule, but I'm not a complete ass.


Top
 Profile  
Reply with quote  
 Post subject: Re: New scripting engine - testers wanted!
PostPosted: Thu Dec 21, 2017 7:28 pm 
Offline
Addict
Addict
User avatar

Joined: Sun Nov 05, 2006 11:42 pm
Posts: 4542
Location: Lyon - France
Waoooouuuuh !!! Splendid !!! :shock:
Now, i must try to understand how this "space engine" works :mrgreen:
But already...that run
Thanks MASTER 8)

_________________
ImageThe happiness is a road...
Not a destination


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 136 posts ]  Go to page 1, 2, 3, 4, 5 ... 10  Next

All times are UTC + 1 hour


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  

 


Powered by phpBB © 2008 phpBB Group
subSilver+ theme by Canver Software, sponsor Sanal Modifiye