Zinc

Azlier

Old World Ghost
Reaction score
461
I wonder if Vex just released a Jasshelper that rejects cJass. Hmm.
 

Azlier

Old World Ghost
Reaction score
461
Ah. So Zinc won't conflict with cJass? Good for people who use it, then.
 

Renendaru

(Evol)ution is nothing without love.
Reaction score
309
I do not like this Zinc, its syntax is complicated beyond what it should be.
 

Naga'sShadow

Ultra Cool Member
Reaction score
49
Defiantly get rep for this. Speaking of which This should require a new jasshelper compiler, or at least an update. When and where would we go to get this? Or are you still in beta stages? I don't think enough like a programmer to be any help in that regard.
 

Jesus4Lyf

Good Idea™
Reaction score
397
>_<

I like your static if.

>There are some differences regarding struct storage limit and array structs, mostly a side effect of killing the array keyword:
I hate you.

I see no attraction to Zinc. You kept all the mistakes you made with structs, it seems. I'm gonna make a guess that you don't give a damn what I think, because I'm still banned. But I'll state my opinions anyway.

  • Structs don't make sense, create contains allocate but destroy does not contain deallocate. You cannot produce a user interface that encapsulates things properly to something that doesn't need struct allocators.
  • vJass complaint: Modules still don't make sense, you can't have multiple modules that use onInit methods, which attacks their usability greatly.
  • Your allocators and deallocators should be overridable for those who aren't interested in what you consider a standard. Otherwise, they should be optional, as in your destroy method should not have to deallocate (think of your own example with RGB colours). Either way, I don't see why structs should be forced to use your allocate/deallocate stuff, any source of a unique integer is good enough for me (unit ids, hashes of things, even H2I's).
  • [LJASS]public function Factorial(integer n) -> integer[/LJASS]. What's wrong with [LJASS]public integer Factorial(integer n)[/LJASS].
  • There are heaps of bugs with vJass that I would've reported but am unable to. I'm losing my taste for all this, and cJass is looking good to me.
 

Vexorian

Why no custom sig?
Reaction score
187
Defiantly get rep for this. Speaking of which This should require a new jasshelper compiler, or at least an update. When and where would we go to get this? Or are you still in beta stages? I don't think enough like a programmer to be any help in that regard.

Just update jasshelper to 0.9.Z.0, it is quite "stable" - as much as code can be 4 days after you started writing it and with no external testing whatsoever.

Ah. So Zinc won't conflict with cJass? Good for people who use it, then.
It is made to be completely separated from vJass syntax. cJASS is meant to be within the JASS parts, so it should give no issues. The intended way for it to work is with //! import zinc, which should be evaluated after the cJASS phase.

I do not like this Zinc, its syntax is complicated beyond what it should be.
Stick to vJass or switch to cJASS.

vJass complaint: Modules still don't make sense, you can't have multiple modules that use onInit methods, which attacks their usability greatly
I will add onInit and onDestroy for modules. What's stopping me? Well, I randomly pick what to fix or do based on my current interest, I know it is very unpredictable. In the case of those module methods I have to rework something inside the structs phase for it to work and it has been getting a little tiresome...

What's wrong with public integer Factorial(integer n).

It seems backwards to me. There is another problem with not naming them functions or methods. And well, what really made me avoid the C/Java like way is, how about functions with no returns? I could be an absolute retard and say "public nothing onInit()" but that's stupid. Then I would have to rename nothing into void, which looks even worse to me.

There's also the problem of what to do for 'code' values after the removal of the function keyword.

There are heaps of bugs with vJass that I would've reported but am unable to.
There are heaps of bugs with vJass, and I know it. There are things that are fixable by making Zinc and other things that are only fixable by fixing the vJass bugs. Zinc is a proof of concept for a next step. A small 4 days-project to test grounds in new areas. But I won't give details right now. And honestly not really meant to replace any de-facto standard or get actually used for that matter.

I think though that you are right about deallocate, darn I should have seriously thought of that before, bah anyway, I think Zinc is young enough and I will be able to cut on backwards compatibility on version 0.2 .

Hmnn, now that I think of it, there is no reason I wouldn't add deallocate and make destroy overrideable in vJass as well, this does not break backwards compatibility. For that matter, I think I can add deallocate to vJass and zinc. I'll then just remove onDestroy from zinc... (hmnn though onDestroy would be probably necessary for modules anyway)


I'm gonna make a guess that you don't give a damn what I think, because I'm still banned.
It is just that you helped hijack my friend's map... wc3c bans are forever.

I'm losing my taste for all this, and cJass is looking good to me.
Aha.
 

Vexorian

Why no custom sig?
Reaction score
187
Do you want just onInit (i.e. can I temporarily get away by not making onDestroy work on modules? onInit is very easy to do and can do it even tonight.

I will also try to add deallocate/make destroy overrideable, let's see how it goes...
 

Jesus4Lyf

Good Idea™
Reaction score
397
>Hmnn, now that I think of it, there is no reason I wouldn't add deallocate and make destroy overrideable in vJass as well, this does not break backwards compatibility. For that matter, I think I can add deallocate to vJass and zinc. I'll then just remove onDestroy from zinc... (hmnn though onDestroy would be probably necessary for modules anyway)

You hero.
onInit would be great, that's why I thought it was ridiculous that you hadn't at least done that. I want AIDS/T32 structs. As soon as you do that, they will work. (Ie. unit data structs with a periodic effect.)

>It is just that you helped hijack my friend's map... wc3c bans are forever.
I understand that. I had no contact with the mapping community at that time and edited the map for my mates and I. I'm sure you understand why I did it just as much as I understand why you banned me. Things have changed since then, naturally. I won't go into how I have actually tried to make ammends, this thread isn't a plea to be unbanned.

>I will also try to add deallocate/make destroy overrideable, let's see how it goes...

You don't know how happy I am.

I just remembered two more things you may like to implement:
- For array structs, inheritance, please. I don't see why not inherit from an array struct...
- For array structs, enable [LJASS]integer i = 5 // can't specify initial values[/LJASS] and give some [LJASS].initValues()[/LJASS] method.

But yeah, I've been struggling with the onInit conflict for some time. If you turn inheritance on for array structs, I can implement workarounds for other things anyway. (Did I mention I'd love to be able to have no naming constaints for array structs? Could write my own .allocate() and .deallocate()!)
 

kingkingyyk3

Visitor (Welcome to the Jungle, Baby!)
Reaction score
216
lol, my AVG detected the new history.exe in jasshelper as Brontok.FF. Now jasshelper also have false positive now, like newgen.
 

Vexorian

Why no custom sig?
Reaction score
187
Default values for array structs requires me to do some changes to stuff.

I have already made deallocate work (It compiled right on some test maps heavy with structs usage, but I somehow expect this will somehow cause regressions with stuff related to extends, so I'll need to release it quick so people have a chance to test) . I will add onInit for modules and make it a 0.9.Z.1
 

Vexorian

Why no custom sig?
Reaction score
187
lol, my AVG detected the new history.exe in jasshelper as Brontok.FF. Now jasshelper also have false positive now, like newgen.
There's no supposed to be history.exe in jasshelper.exe ouch,

I got brontok ages ago when I still used windows, it is a pesky virus that creates copies of itself everywhere with the same name as folders. It took me ages to remove it completely.

It seems that since the delphi folders in my virtualbox machine are inherited from that old windows partition, it was still in one hidden folder in gold's source code.

Since I did modifications to gold's source code, I made the mistake of just copying the gold folder without verifying what was on it.

it is a virus, hehe, this is funny. Do not double click history.exe, I'll remove it ASAP..
 

Jesus4Lyf

Good Idea™
Reaction score
397
There's no supposed to be history.exe in jasshelper.exe ouch,

I got brontok ages ago when I still used windows, it is a pesky virus that creates copies of itself everywhere with the same name as folders. It took me ages to remove it completely.

It seems that since the delphi folders in my virtualbox machine are inherited from that old windows partition, it was still in one hidden folder in gold's source code.

Since I did modifications to gold's source code, I made the mistake of just copying the gold folder without verifying what was on it.

it is a virus, hehe, this is funny. Do not double click history.exe, I'll remove it ASAP..
LOL
>false positive now, like newgen.
FALSE POSITIVE
Isn't so false.
It's hilarious except that you just distributed a virus. But that is one of the more amusing ways I've seen a virus get distributed - an official release of an open source product? :D

>it is a virus,
We wouldn't know anyway. You could feed us anything, and we'd just disable our checkers. <3
 

Vexorian

Why no custom sig?
Reaction score
187
I grew a dislike of newgen pack because of that. The whole thing with the false postives is not good.

Anyway, the .exe was hidden in such an obscure place, that what made me unable to notice it would also made it incredibly hard to infect anything, unless of course my users were of the kind that browsed deep into folders and clicked at the first .exe they found...

Anyway Z.1 crisis dissolved, deallocate, modules onInit...
 

kingkingyyk3

Visitor (Welcome to the Jungle, Baby!)
Reaction score
216
my users were of the kind that browsed deep into folders and clicked at the first .exe they found...
I am that people, but I does not have interest of the history.exe. I know AVG will not let me to open it. :p
 

Jesus4Lyf

Good Idea™
Reaction score
397
OMG!
So cool!
Excuse the off topic, but...
This is one of the most powerful things...
JASS:
struct FlyingSystem extends array
    private static constant real DISTANCE = 200 * T32_PERIOD
    private static method AIDS_filter takes unit u returns boolean
        return IsUnitType(u,UNIT_TYPE_FLYING)
    endmethod
    //! runtextmacro AIDS()
    private method periodic takes nothing returns boolean
        local real r = GetUnitFacing(this.unit) * bj_DEGTORAD
        call SetUnitX(this.unit, GetUnitX(this.unit) + Cos(r) * thistype.DISTANCE)
        call SetUnitY(this.unit, GetUnitY(this.unit) + Sin(r) * thistype.DISTANCE)
        return GetWidgetLife(this.unit)&lt;=0.405 // Ever tried resurrecting a flying unit?
    endmethod
    implement T32
    private method AIDS_onCreate takes nothing returns nothing
        call this.startPeriodic()
    endmethod
endstruct
Just wanted to show Vex and whoever else why I wanted this kind of thing so bad.

AND OMG DESTROY OVERRIDE!
JASS:
struct KK
    static method create takes nothing returns thistype
        return thistype(3)
    endmethod
    method destroy takes nothing returns nothing
        call BJDebugMsg(I2S(this))
    endmethod
endstruct

function Trig_NewFeature2_Actions takes nothing returns nothing
    call KK.create().destroy()
    call KK.create().destroy()
    call KK(77).destroy()
endfunction

//===========================================================================
function InitTrig_NewFeature2 takes nothing returns nothing
    set gg_trg_NewFeature2 = CreateTrigger(  )
    call TriggerRegisterTimerEventSingle( gg_trg_NewFeature2, 1.00 )
    call TriggerAddAction( gg_trg_NewFeature2, function Trig_NewFeature2_Actions )
endfunction
TODAY IS A HAPPY DAY! :D (Ignore my crappy example, but this is epic win - no longer need extends array structs as much - only thing missing now is a method for resetting initial values. :thup:)

Can't believe structs are finally fixed!! :D

Thx Vex.
 

Attachments

  • AIDS_T32.w3m
    34.4 KB · Views: 233

Frozenhelfir

set Gwypaas = Guhveepaws
Reaction score
56
>only thing missing now is a method for resetting initial values.

Isn't that what the create method is for? I always reset the values in the create method o_o
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top