Roadmap

155 views
Skip to first unread message

Bach Le

unread,
Mar 14, 2013, 11:03:59 PM3/14/13
to pawns...@googlegroups.com
Hi, I'm considering Pawn among other languages for game scripting. Static typing, pass by value and no gc are its strong points. However, some features are missing such as: higher order function(useful for callback and event handling) and closure. Is there a road map of what is being worked on and the plan to implement? Or is Pawn considered "done" like Lua and only gets update once in a while?

mat henshall

unread,
Mar 15, 2013, 2:46:51 AM3/15/13
to pawns...@googlegroups.com
I am considering forking pawn and collecting a set of requiremnts that people want - I know I have a number of things I'd really like - I wont have any time till later in the year to do any coding, but a discussion now would be good to start.

The problem is that it is too much for one developer to tackle so it needs at least two or three people willing to make it happen.

In particular, I think there are some language features that would be really useful and relatively easy to do - the equivilent of a function pointer is really very simple we just need a feature to in the language to get a functions index at compile time and then syntax to be able to call it (which could be done easily with native functions.

You can actually do this with public functions, but it is clumsy and rather unpleasant.

Mat

On Thu, Mar 14, 2013 at 8:03 PM, Bach Le <thebu...@gmail.com> wrote:
Hi, I'm considering Pawn among other languages for game scripting. Static typing, pass by value and no gc are its strong points. However, some features are missing such as: higher order function(useful for callback and event handling) and closure. Is there a road map of what is being worked on and the plan to implement? Or is Pawn considered "done" like Lua and only gets update once in a while?

--
You received this message because you are subscribed to the Google Groups "Pawn Scripting Language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pawnscript+...@googlegroups.com.
To post to this group, send email to pawns...@googlegroups.com.
Visit this group at http://groups.google.com/group/pawnscript?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--

Mat Henshall
Founder and CEO, Square Connect, Inc.
San Jose, CA
www.squareconnect.com
cell: 650.814.7585

Bach Le

unread,
Mar 15, 2013, 2:54:23 AM3/15/13
to pawns...@googlegroups.com
Yes, I realized the same thing with public function. One possible problem with introducing first-class function at native level (as opposed to VM level) is that the call goes from native (start script) ->script(call first-class function) -> native (implement first class function) then it returns  back to script. I don't know if the current VM is reentrant. That is a script can call a native function which in turns call a script function in the same VM.

You received this message because you are subscribed to a topic in the Google Groups "Pawn Scripting Language" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/pawnscript/B4akv3G42lw/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to pawnscript+...@googlegroups.com.

aweorit

unread,
Mar 21, 2013, 5:37:33 AM3/21/13
to pawns...@googlegroups.com, m...@squareconnect.com
It is actually possible (at least in Pawn 3.x) to get function address and call it using AMX inline assembly (the #emit directive), e.g.

public SomeFunction() {}

main() {
    new address;
    #emit const.pri SomeFunction
    #emit stor.s.pri address
}

This code will store the address of SomeFunction in "address" and print it. But there's one limitation - the function whose address you are taking should be already declared, and should be used somewhere else in the code or be public (otherwise it will be omitted by the compiler and you'll get a wrong address).

Once you know the address it's relatively easy to call the function:

CallFunction(address, 123, "hello");

where CallFunction is defined as http://pastebin.com/2e3U8e9A

Bach Le

unread,
Mar 21, 2013, 5:49:34 AM3/21/13
to pawns...@googlegroups.com
Cool! I didn't know that Pawn support inline assembly. This language keeps getting more and more interesting. It may even be possible to write a language that compile to this VM. The documentation didn't mention this though.

--
You received this message because you are subscribed to a topic in the Google Groups "Pawn Scripting Language" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/pawnscript/B4akv3G42lw/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to pawnscript+...@googlegroups.com.

mat henshall

unread,
Mar 21, 2013, 2:14:43 PM3/21/13
to pawns...@googlegroups.com
That is pretty cool. Thanks for the hint.
Reply all
Reply to author
Forward
0 new messages