Nevermind. The link seems dead. On Wed, Mar 4, 2015 at 3:41 PM, Ryan Gonzalez <rym...@gmail.com> wrote:
> 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/ > -- 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