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: 238

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
  • Monovertex Monovertex:
    How are you all? :D
    +1
  • Ghan Ghan:
    Howdy
  • Ghan Ghan:
    Still lurking
    +3
  • The Helper The Helper:
    I am great and it is fantastic to see you my friend!
    +1
  • The Helper The Helper:
    If you are new to the site please check out the Recipe and Food Forum https://www.thehelper.net/forums/recipes-and-food.220/
  • Monovertex Monovertex:
    How come you're so into recipes lately? Never saw this much interest in this topic in the old days of TH.net
  • Monovertex Monovertex:
    Hmm, how do I change my signature?
  • tom_mai78101 tom_mai78101:
    Signatures can be edit in your account profile. As for the old stuffs, I'm thinking it's because Blizzard is now under Microsoft, and because of Microsoft Xbox going the way it is, it's dreadful.
  • The Helper The Helper:
    I am not big on the recipes I am just promoting them - I use the site as a practice place promoting stuff
    +2
  • Monovertex Monovertex:
    @tom_mai78101 I must be blind. If I go on my profile I don't see any area to edit the signature; If I go to account details (settings) I don't see any signature area either.
  • The Helper The Helper:
    You can get there if you click the bell icon (alerts) and choose preferences from the bottom, signature will be in the menu on the left there https://www.thehelper.net/account/preferences
  • The Helper The Helper:
    I think I need to split the Sci/Tech news forum into 2 one for Science and one for Tech but I am hating all the moving of posts I would have to do
  • The Helper The Helper:
    What is up Old Mountain Shadow?
  • The Helper The Helper:
    Happy Thursday!
  • Varine Varine:
    Crazy how much 3d printing has come in the last few years. Sad that it's not as easily modifiable though
  • Varine Varine:
    I bought an Ender 3 during the pandemic and tinkered with it all the time. Just bought a Sovol, not as easy. I'm trying to make it use a different nozzle because I have a fuck ton of Volcanos, and they use what is basically a modified volcano that is just a smidge longer, and almost every part on this thing needs to be redone to make it work
  • Varine Varine:
    Luckily I have a 3d printer for that, I guess. But it's ridiculous. The regular volcanos are 21mm, these Sovol versions are about 23.5mm
  • Varine Varine:
    So, 2.5mm longer. But the thing that measures the bed is about 1.5mm above the nozzle, so if I swap it with a volcano then I'm 1mm behind it. So cool, new bracket to swap that, but THEN the fan shroud to direct air at the part is ALSO going to be .5mm to low, and so I need to redo that, but by doing that it is a little bit off where it should be blowing and it's throwing it at the heating block instead of the part, and fuck man
  • Varine Varine:
    I didn't realize they designed this entire thing to NOT be modded. I would have just got a fucking Bambu if I knew that, the whole point was I could fuck with this. And no one else makes shit for Sovol so I have to go through them, and they have... interesting pricing models. So I have a new extruder altogether that I'm taking apart and going to just design a whole new one to use my nozzles. Dumb design.
  • Varine Varine:
    Can't just buy a new heatblock, you need to get a whole hotend - so block, heater cartridge, thermistor, heatbreak, and nozzle. And they put this fucking paste in there so I can't take the thermistor or cartridge out with any ease, that's 30 dollars. Or you can get the whole extrudor with the direct driver AND that heatblock for like 50, but you still can't get any of it to come apart
  • Varine Varine:
    Partsbuilt has individual parts I found but they're expensive. I think I can get bits swapped around and make this work with generic shit though

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top