|
|
#1 |
|
master of fugue
Join Date: Jun 2007
Posts: 2,558
![]() ![]() ![]() ![]()
|
Latest jasshelper: 2012-03-10
This is the thread for new jasshelper versions. I have taken over development since Vex has ridden into the sunset. New versions are intended to be absolutely backwards compatible with JassHelper 0.A.2.B (I made very good automatic tests so this is all but guarantied) I did a lot of code refactoring and comment writing. Than I added better loops JASS:// while unit has some buff do some healing while GetUnitAbilityLevel(whichUnit, 'Bhea') > 0 call SetWidgetLife(whichUnit, GetWidgetLife(whichUnit) + 10.) call TriggerSleepAction(0.1) endwhile // print out numbers from 1 to 10 with for loop for i = 1 to 10 call BJDebugMsg(I2S(i)) endfor // print only 1 2 3 for i = 1 to 10 call BJDebugMsg(I2S(i)) if i == 3 then break endif endfor // print out numbers from 10 downto 1 for i = 10 downto 1 call BJDebugMsg(I2S(i)) endfor // kill all units in a group for enumUnit in someGroup call KillUnit(enumUnit) endfor // WARNING: groups are empty after for loop You can download it from sourceforge: http://sourceforge.net/projects/c-jasshelper/ and insert into your NewGen Or even better download NewGen 1.5e directly: http://wc3modding.info/4263/the-jass...ack-jngp-1-5e/ Last edited by cohadar : 03-10-2013 at 09:00 AM. |
|
|
|
| Sponsored Links - Login to hide this ad! |
|
|
|
|
#2 |
|
User
Join Date: May 2006
Posts: 159
|
Hey,
__________________it would be great if you're going to continue development of the JassHelper although a complete rewrite would be better in the end. Is there any special reason why GOLD parser/JassHelper can show one single error only which is one of the most annoying things since you have to reparse everything over and over again until it becomes clear JASS code. Another question, especially important for myself: Is it possible to compile this on GNU/Linux (maybe using wine)? I've already read that you're going to add for loops. As many vJass users I have a small list of things which could be improved, so if this thread becomes the new JassHelper thread I could post it here but only if you're interested. |
|
|
|
|
|
#3 |
|
master of fugue
Join Date: Jun 2007
Posts: 2,558
![]() ![]() ![]() ![]()
|
I am doing a complete refactoring. (breaking down vexorians 13000 lines one-file-monster into multiple files)
__________________Jasshelper is not a real compiler, that is it does not use GOLD in the way it should. (it parses code only line-by-line) It is possible to compile this under linux, vexorian is on linux. Post any ideas you have, ideas are always welcome. |
|
|
|
|
|
#4 |
|
User
Join Date: May 2006
Posts: 159
|
Alright, so are you going to change to use of GOLD that it could show more then one line error or would this be a huge amount of work? I am sorry that I can't help without learning Pascal etc.
__________________The thing about Windows is that I really never compiled any Pascal written program and I only know the gpc but it shouldn't make any difference for now since I couldn't contribute anyway. So here are some things which would great to see in vJass:
Additionally, I have stored most links of my bug reports/feature requests (it's mostly the same like above): http://www.wc3c.net/showpost.php?p=1...postcount=3566 http://www.wc3c.net/showpost.php?p=1...postcount=3556 http://www.wc3c.net/showpost.php?p=1...postcount=3220 http://www.wc3c.net/showpost.php?p=1...postcount=3084 http://www.wc3c.net/showpost.php?p=1...postcount=2036 http://www.wc3c.net/showpost.php?p=1...postcount=3090 http://www.wc3c.net/showpost.php?p=1...postcount=3511 http://www.wc3c.net/showpost.php?p=1...postcount=3152 http://www.wc3c.net/showpost.php?p=1...postcount=3144 http://www.wc3c.net/showpost.php?p=1...postcount=3147 http://www.wc3c.net/showpost.php?p=1...postcount=3107 http://www.wc3c.net/showpost.php?p=1...postcount=3119 http://www.wc3c.net/showpost.php?p=1...postcount=3630 http://www.wc3c.net/showpost.php?p=1...postcount=3632 Btw. I don't care about Zinc, too. Once I wanted to move to Zinc and had to revert it since Zinc support was very bugged at that time. It would be great even if you would only support one single item of my huge list since I do still maintain my custom vJass script collection. |
|
|
|
|
|
#5 |
|
master of fugue
Join Date: Jun 2007
Posts: 2,558
![]() ![]() ![]() ![]()
|
I will not do any of the stuff you mentioned.
__________________Before you get disappointed let me explain. Vexorian made a huge mistake when he tried to make vjass into object oriented language. jass is a functional language and map scripting is a functional job in nature. Object paradigm is not inherently better than functional paradigm, and half-ass object paradigm is simply idiotic. Ok so why Vexorian did it? Because he was programming jasshelper in object pascal and he got under the influence of that language. Literally 80% of junk in jasshelper are language constructs from pascal. This was really unfortunate because functional paradigm is a lot more suited to jass, for example one of the most used and valuable advanced features in jass are function interfaces. And while Vex was adding unnecessary things like inheritances he neglected basic functional constructs that would be 100 times more useful and 100 times more be actually used by members of community. Compare next 2 scripts for example: JASS:set i = 1 loop exitwhen i > 4 call DoSomething() set i = i + 1 endloop JASS:for i = 1 to 4 do call DoSomething() endfor Notice how much more simpler, easier to understand and easier to write is the second script. THAT will be a real contribution to the community, and not some obscure inheritance feature that will be used by 1 maybe 2 crazy ass people. |
|
|
|
|
|
#6 |
|
User
Join Date: May 2006
Posts: 159
|
That might be true for some small systems and newcomers but when you're at the point where you have to create custom data types with properties you'll need at least structs. Otherwise you have to store everything in arrays or hashtables and you'll get much more errors with those ids/indices.
__________________And if you have structs some people might want to extend their functionality which was almost not possible until Vexorian added the "stub" keyword except you had some interfaces. I agree with you that Vexorian added many unnecessary things but in my opinion it's not that bad for all people to have some JASS based syntax. I myself moved from JASS to vJass a long time ago since I needed .evaluate()/.execute() because of the declaration order problem. Before I used vJass I wrote systems using integer based ids for custom types which was really annoying. The problem about your idea is that some people might use systems which are already written in JASS or vJass, so they will have to understand both. Even if you're just using an API I don't believe that this will really help people. For loops you can create macros in your favorite editor, for instance. |
|
|
|
|
|
#7 |
|
master of fugue
Join Date: Jun 2007
Posts: 2,558
![]() ![]() ![]() ![]()
|
You misunderstand.
__________________structs are functional data types, objects are object data types. structs are ok, struct interfaces & inheritance is useless. execute/evaluate are functional paradigm (they execute functions no?) I have no intention of breaking any backwards compatibility. I just don't plan on adding any more unnecessarry object stuff. |
|
|
|
|
|
#8 | |
|
User
Join Date: May 2006
Posts: 159
|
Quote:
Not breaking backwards compatibility is just useless if the language has a clear lack of features which prevents people who do OOP from using the language. |
|
|
|
|
|
|
#9 |
|
master of fugue
Join Date: Jun 2007
Posts: 2,558
![]() ![]() ![]() ![]()
|
Yeah, I might be right:
__________________ http://en.wikipedia.org/wiki/Struct_...ng_language%29 Not breaking backwards compatibility is ALWAYS GOOD. No one ever did any OOP in vjass because vjass has no OOP. For OOP you need this: http://en.wikipedia.org/wiki/Polymor...ed_programming Anyways I broke jasshelper down into parts:
Now I need to break preprocessor into: //! textmacros, //! imports, libraries and scopes Structs unit also needs to be broken but I have no idea into how many pieces, all I know is that it actually has a function with 2287 lines of code ![]() Last edited by cohadar : 12-16-2011 at 11:43 AM. |
|
|
|
|
|
#10 |
|
master of fugue
Join Date: Jun 2007
Posts: 2,558
![]() ![]() ![]() ![]()
|
I attached new version if anyone is interested, still only refactoring.
__________________(Well I did add much better console reports, ) JASS:================================================== == input\4vsUndead.j ================================================== common.j Opening: OK Loading: ...................OK Parsing: ...................OK Blizzard.j Opening: OK Loading: ...................OK Parsing: ...................OK PREPROCESSOR: Loading: OK Importing: ...................OK TextMacros Loading: ...................OK Textmacros Parsing: ...................OK Textmacros Writing: ...................OK Zinc: ...................OK Libraries Parsing: ...................OK Libraries Writing: ..................OK Time: 141 STRUCTS: Loading: ...................OK Modules Parse: ...................OK Modules Implement: ...................OK Conditional Blocks: ...................OK Parsing: ..................OK Evaluating: ..................OK Writing: ...................OK Time: 296 RETURN FIXER: Loading: ...................OK Processing: ...................OK Time: 47 SHADOW HELPER: Loading: ...................OK Processing: ...................OK Time: 31 INLINER: Loading: ...................OK Processing:...................OK Time: 47 ALL OK. |
|
|
|
|
|
#11 |
|
User
Join Date: May 2011
Posts: 85
![]()
|
You may want to check cJass out for some features (the project itself is, unfortunately, dead). I personally think that the JASS2 syntax is way too verbose, but I guess that's just me. Well, I don't plan on doing any WC3 project, so you are free to ignore my opinion.
|
|
|
|
|
|
#12 |
|
master of fugue
Join Date: Jun 2007
Posts: 2,558
![]() ![]() ![]() ![]()
|
New Version: 2011-12-17
__________________You might actually want to update to this one. It has much better progress display inside WE. It also knows to tells you to close & reopen your map if you used ObjectMerger or similar.. (see the picture in first post) Last edited by cohadar : 12-17-2011 at 12:11 PM. |
|
|
|
|
|
#13 |
|
Corkscrew Chainsaw!!!
|
The green on black progress text is annoying. The background should be fuchsia or melon.
__________________ |
|
|
|
|
|
#14 | |
|
Moderator
RP Section Moderator
|
Quote:
I'm afraid of updating to this JassHelper simply because I don't want to see my map malfunction... but as you say, it should be completely backwards compatible. If this version of JassHelper goes crazy on me, it should be easy to copy the old JassHelper and use that if I want to, right? So long as the file executables are the same, I think? |
|
|
|
|
|
|
#15 |
|
Corkscrew Chainsaw!!!
|
Just move the three files you are replacing somewhere else, so you don't overwrite them. If cohadar sucks (I haven't experienced any problems thus far except lame colors and what appears to be a longer compile time) you can just delete his files and move vex's back in.
__________________ |
|
|
|
![]() |
| Thread Tools | Search this Thread |
|
|
|
Donate |