I seriously doubt PyPy is going to work well at all under JASS2; it'll
probably be insanely slow.

This <http://www.wc3c.net/showthread.php?t=61352> would probably be better.
It's a Python-to-Jass converter.

On Wed, Mar 4, 2015 at 2:29 PM, Joonas Liik <liik.joo...@gmail.com> wrote:

> the host language is called JASS2*
>
> JASS2 is the underlying scripting language for game basically,(Blizzards
> Warcraft 3 from 2002/2003 depending on where you're from)
> It is
>     -strongly typed,
>     -not very fast,
>     -supports a grand total of 0 bit-wise operations
>     -it has obscure and arcane ways.. / limitations that need to be worked
> around*
>     -it has a type declaration, C-like.. a bit (type A extends B)
>     -it has no type-casting facilities at all.. (except for some number
> types and strings)**,
>     -oh and it the end product is larger then 4 Megabytes.. it will have
> significantly reduced usefulness(thx blizzard, you have awesome ideas..)
>     -FileIO is.. well it IS possible, surprisingly but it is so haxy you
> really wouldn't want to rely on it too much.. (oh.. u can write ur crap all
> overs peoples hard drives
>             but if you want to read it back you need to set a registry
> flag.. just .. charming..)
>     -oh.. if your snippet of code runs for more than 30 000 bytecode ops
> (internally there's a bytecode interpreter, we can't access it in any
> meaningful
>             way but some people have hacked away enough to prove it is
> there)***
>     - numeric types include "integer" == int32 and "real" == float32
> (except some funny NaN behaviour i've heard about but not verified)
>     - it is multithreaded... except it isn't. u can start many threads
> (using ExecuteFunc, TriggerExecute or.. what was that 3rd one..) but
>              they will run sequentially, this is useful for circumventing
> the OP limit.
>     - it has arrays****
>     - the arrays are sized (read: every array is exactly 8192 instances of
> which the last one you cant
>              really use because it is buggy (an off by 1 some place i
> guess...))
>     - classes? who needs em?! not us, no classes for you :P (there's a few
> custom dialects that mend this and usually
>              do a just good enough solution to be used by everyone and
> loved by none)
>     - It has a strange standard library that mainly consists of functions
> that swap its arguments and pass it to an underlying native..
>              or do a nested loop just to set a value in a table.. it is
> absolutely awesome! trembling with excitement ;)
>
>     - it doesn't seem to do any bounds checking ... anywhere (u can tell
> it to create a unit in a strange location and the whole game crashes)
>     - null is 0 .. almost. well it is when it matters and bites you in the
> ass.
>     - no introspection (the closest one can come is ExecuteFunc which
> actually takes a functions name to execute...(sic!)
>               but it is useless unless the function takes no parameters
> and returns none)
>     - I'm sure i missed a ton of other /great/ features ;)
>
>
> i can't emit assembler. (well i kind of CAN write files but they will emit
> so much extra garbage that there's very low (0) chance it will really be
> executable.. well except that the way to read files is basically to execute
> them("Preload"))
>
>
>
> So to sum it up.. if i can even compile RPython and have it not implode i
> would be rather happy.
>
> * a simpler compile target might be Galaxy Script (the scripting language
> for Starcraft 2) tho i probably wouldn't be motivated enough to finish this
> without the first one.
> ** theres about 20 built in types.. that are mostly ints in reality.. but
> you cant use that.
> *** this can be circumvented in a number of ways but at some cost ..  its
> a real pain tho if u want to calculate something expensive.
> **** of all types except "code" (meaning function) this can be
> circumvented by wrapping it in a boolexpr
>
>
>
> On 4 March 2015 at 20:48, Ryan Gonzalez <rym...@gmail.com> wrote:
>
>> Not necessarily. I figured that a C++ target might look a tad nicer
>> because it has built-in objects and exception handling.
>>
>> Of course, again, it'd likely have its own set of painful holes and would
>> be largely useless. But I still want to try it. ;)
>>
>> On Wed, Mar 4, 2015 at 12:23 PM, Maciej Fijalkowski <fij...@gmail.com>
>> wrote:
>>
>>> C is C++ right? or what precisely did you want to do?
>>>
>>> On Wed, Mar 4, 2015 at 8:15 PM, Ryan Gonzalez <rym...@gmail.com> wrote:
>>> > I'd kind of like to know this, too. I've wanted to try to get PyPy to
>>> > translate to C++. I doubt it would be of any advantage, but I'm just
>>> too
>>> > curious...
>>> >
>>> > On Wed, Mar 4, 2015 at 2:58 AM, Joonas Liik <liik.joo...@gmail.com>
>>> wrote:
>>> >>
>>> >> Hey
>>> >>
>>> >> If i wanted to translate PyPy in to another language..
>>> >>
>>> >> Where would i start?
>>> >> What would be the absolute minimum i had to do to get it working?
>>> >>
>>> >> I cant run any C code.. at all  (obscure sandboxed platform that only
>>> runs
>>> >> an obscure scripting language none of you has probably ever heard of)
>>> how
>>> >> much of a problem will this be? how to mitigate?
>>> >>
>>> >>
>>> >> _______________________________________________
>>> >> pypy-dev mailing list
>>> >> pypy-dev@python.org
>>> >> https://mail.python.org/mailman/listinfo/pypy-dev
>>> >>
>>> >
>>> >
>>> >
>>> > --
>>> > Ryan
>>> > If anybody ever asks me why I prefer C++ to C, my answer will be
>>> simple:
>>> > "It's becauseslejfp23(@#Q*(E*EIdc-SEGFAULT. Wait, I don't think that
>>> was
>>> > nul-terminated."
>>> > Personal reality distortion fields are immune to contradictory
>>> evidence. -
>>> > srean
>>> > Check out my website: http://kirbyfan64.github.io/
>>> >
>>> > _______________________________________________
>>> > pypy-dev mailing list
>>> > pypy-dev@python.org
>>> > https://mail.python.org/mailman/listinfo/pypy-dev
>>> >
>>>
>>
>>
>>
>> --
>> Ryan
>> If anybody ever asks me why I prefer C++ to C, my answer will be simple:
>> "It's becauseslejfp23(@#Q*(E*EIdc-SEGFAULT. Wait, I don't think that was
>> nul-terminated."
>> Personal reality distortion fields are immune to contradictory evidence.
>> - srean
>> Check out my website: http://kirbyfan64.github.io/
>>
>
>


-- 
Ryan
If anybody ever asks me why I prefer C++ to C, my answer will be simple:
"It's becauseslejfp23(@#Q*(E*EIdc-SEGFAULT. Wait, I don't think that was
nul-terminated."
Personal reality distortion fields are immune to contradictory evidence. -
srean
Check out my website: http://kirbyfan64.github.io/
_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
https://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to