Discussion New Language - Discussion

Anyway, I wanted to ask a few questions before I started making the layout of the language.
What kind of language (and features) do you want?
I can add any kind of feature you guys want, provided it's possible, and I can find a way to make it (efficiently, of course).

Oh, i want parametric polymorhpie, typeclasses, patternmatching, pattern guards, higher order functions, lambdas and function currying.

Good Luck.

P.s.: no fucking switch-statement.
 
@ToolTipError :
Wth do you want mean ?

Lyerae said:
I want to do "classes", which are basically like vJASS structs, but use a global hashtable (which will have some huge, odd name to prevent it from being used accidentally. (okay, not that huge, but something people wouldn't use normally.)) instead of arrays. What do you guys think about that?
Seems fine but the user must choice it, mostly because of the 256 limit of hashtable, and the rest for the speed freak.
 
Troll Brain, it would be like making player groups, unit groups, but for all variable types. Sort of like a data base. [ljass] function PoolSpecialAffect takes effect whichEffect, pool whichPool, returns nothing[/ljass] It would sort of auto-add it to an array, but without numbers.
 
Troll Brain, it would be like making player groups, unit groups, but for all variable types. Sort of like a data base. [ljass] function PoolSpecialAffect takes effect whichEffect, pool whichPool, returns nothing[/ljass] It would sort of auto-add it to an array, but without numbers.

It still doesn't make sense for me.
I don't see how a such thing could be useful, a concrete example ?
 
JASS:
scope example initializer init

     globals
         private effect pool allEffects
         private   unit pool allUnits
         private location pool allLocations
     endglobals

     private function actions takes nothing returns nothing
          call AddSpecialEffectLoc(lalala) //I`m not on NewGen, ignore it, just imagine I entered something to create an effect
          call PoolSpecialEffect(allEffects,"lastcreatedeffect") // This will add the last created effect to the pool or database
          call TriggerSleepActon(234.00) // !!!!TSA (Just throwing in some timing.)
          call DestroyPool(allEffects) // Deletes all effects, kills all units, or whatever it has to do to destroy everything in the pool
          call EmptyPool(allEffects) // Deletes all effects ever made from someone casting a spell, or it may just remove them all from the pool?

          //create some unit here
          call PoolUnit(allUnits,"lastcreatedunit") // Adds the last created unit to the pool/database
          call DestroyPool(allUnits) // It will delete all the units in the pool, since it`s a unit pool, and not an effect pool

          set examplelocation = Location(somex,somey)
          call PoolLocation(allLocations,examplelocation) // Adds the location to a pool
          call DestroyPool(allLocations) // Removes all locations from the pool, no destruction, I guess.
     endfunction

     function init takes nothing returns nothing
         local trigger trig = CreateTrigger()
         call TriggerRegisterAnyUnitEventBJ(trig,EVENT_PLAYER_UNIT_SPELL_EFFECT)
         call TriggerAddAction(trig,function actions)
     endfunction
 endscope
 
In my mind, libraries, scopes and structs should be replaced with classes (still using "uses/needs/requires").

If you want to make the interface with WinAPI (without Qt or wXwidgets) I could help you on it. I've been working on how to make a WinAPI interface with .rc files.

-------

Also if you make it with Java, it will be portable without having to do the code again. The interfaces in Java are a piece of cake and also, Java is slower than C/C++ but, we're not doing a game so it's speed won't change anything.

-------

Whatever the coding language will be, what do you think of doing a dynamic error pointer, such as Eclipse or Netbeans does?
 
Libraries should stay, classes would be cool, and scopes shouldn't exist.

The 'pools' being talked about just seem like a system someone would make, not something that should be added to a new 'language'.

If you could implement most of the features of vJASS, just with less bugs, and maybe some of the other things that people seem to go crazy over in cJASS (talking about defines and stuff), I'd be pretty damn happy, and would definately consider using the language.

If you can keep things simple (a little simpler than vJASS) and effective (possibly more efficient), then you are definately on the right track. After all, even if you just remade vJASS but better, that alone would be a good reason to use it.

Edit:

Wishful thinking:

- It would be totally an absolutely incredible if you were able to have a compiler for mac at some stage. Not necessarily for world editor, just something that tells me that what I have written will save if I copy it over.
- A new TESH/Horus would be kick ass, even though this is something completely separate.
 
When I code vJass, one of the thing that pisses me the most are call/set keywords. I always forget them since no other language uses these and once I get back to another language, I put them :mad:. vJass without these would already be awesome.

It's easy to check if it's a call or a variable set. brackets. ()
 
Imho "scopes" are perfect for personal codes, it's kinda boring to requires needed common libraries for triggered spells, in example.
 
Scopes just seem redudant. Libraries have all the functionality and more.

Want to make it have requirements? Sure! Just add some on the end.

Don't want to? Just leave them out.

Libraries allow you too both, people are just comfortable with scopes now after being 'told' long ago that scopes could be used for spells, while libraries are for systems.

Interface would be cleaner without scopes. Don't want unnecessary things.
 
Scopes just seem redudant. Libraries have all the functionality and more.

Want to make it have requirements? Sure! Just add some on the end.

Don't want to? Just leave them out.

Libraries allow you too both, people are just comfortable with scopes now after being 'told' long ago that scopes could be used for spells, while libraries are for systems.

Interface would be cleaner without scopes. Don't want unnecessary things.

If libraries which are never required by an other one are placed the last in the script then it would be fine, but that's actually not the case with vJass.

But on a second though, yes scopes shouldn't exist but libraries should be handled like i say.
 
Yes, libraries should indeed be handled differently. Which is something to look into. ;)
 
Hmm wait ...
No it's still different to "scope" the common libraries must still be required at least one time by an other one.
Yes i know i can make a library which requires all used libraries but it's still annoying.
 
Why not rename libraries so we don`t completely copy vJASS? I`m thinking we should do something more interesting, like this, or we could do some .J type thing.

JASS:

 AIDS.J
 endAIDS


Or something else more Turing-Like.

JASS:

 start AIDS
 end AIDS


I really want to see libraries ending with their names.
 
Libraries are staying, though I think I like the the name "namespace" in stead of library.

Pools? I'm not quite sure what you mean on those.
On the topic of building this in Java, honestly, I don't like Java. Thouh I've been considering Python if I can find a cross-platform way to compile the parser.

Also, I'm considering adding a "hash" keyword for structs/classes, which automatically stores the information in a hashtable instead of an array, though it would do this automatically if needed.
 
Howabout extensions?

Code:
.L   --> Library
.S  --> Struct

JASS:

 AIDS.L
   UNIT.S
   endUNIT
 endAIDS
 
That looks like it would make the syntax messy.
 
Possibly.

We could also do it like this.

JASS:
.
 AIDS.LIB
 AIDS.END
 
Hmm. Interesting, but it still has the possibility of making the syntax messy...
It's definitely worth looking into though.
 
JASS:


 `aids.lib
 `aids.end

 *aids.lib
 *aids.end

 &aids.lib
 &&aids.lib

 ^aids.lib^
 ^^aids.lib^^

 (aids.lib<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile    :)" loading="lazy" data-shortname=":)" />
 <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile    :)" loading="lazy" data-shortname=":)" />aids.end)
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Varine Varine:
    I'm now realizing I could have cut out like 99% of this print and it would have been fine cuz I just need to see if a frame will fit over an LCD
  • Varine Varine:
    Oh well
  • Varine Varine:
    I'm not an engineer
  • Varine Varine:
    Although this filament is kind of expensive, I should probably be a bit more wary of that.
  • The Helper The Helper:
    I love the whole concept of 3D Printers and am very happy you have one so I can hear about them
  • The Helper The Helper:
  • Varine Varine:
    I have a couple of them, but I only have room for one to be set up at the moment
  • Varine Varine:
    So I picked the biggest one. When I bought it, I didn't realize that they used a lot of proprietary parts. So, I want to use these Volcano nozzles that are really cheap and easy to find instead of what they have, which are like, modified Volcano nozzles
  • Varine Varine:
    They are just a little bit longer than the regular ones. Like, we're talking .5mm or some shit. But that little bit makes the nozzle just long enough to extrude past the rest of the hardware on the extrusion system, I can't find my notes on it but I think it's like a .25mm gap from the end of the nozzle to the bed mesh sensor. Very small.
  • Varine Varine:
    So I bought a bunch of different parts to try and figure out how to make this work, and in the process changed some of the electrical components like the thermistors, but never got around to figuring out how to make the firmware account for the different hardware. Resulting in it not interpreting the voltage change to mean that the thermistor was above temperature, so it didn't shut off the heating core and it just kept pumping heat out
  • Varine Varine:
    I have most of the stuff I need to build an enclosure so I can heat the chamber for different plastics that need to have a pretty consistent temperature through the whole model, and then I can get my other ones set up too. I have a shitty Ender but that one is super easy to modify, but it's also very outdated and kind of a nightmare to work with. I think I'm going to cannibalize it for parts and just run my big one and another little one.
  • Varine Varine:
    I think I solved my problem with digitizing reels tho!
  • Varine Varine:
    Like Super 8 reels. Actual equipment to do it is like, thousands and thousands of dollars, and the cheap ones are useless, so I'm trying to build one so I can just use the same camera I use for slides and negatives. Much cheaper
  • Varine Varine:
    Anyway, it kind of works, but the take up reel is kind of tricky because you need to spin it directly to wind the tape onto it. And as it fills, you need to slow it down, and that's kind of complicated. More complicated than I wanted to try and account for, anyway.
  • Varine Varine:
    So I have the first motor that has gearing pull it from the original reel, through a set of pullies to keep some tension, and then a second motor synced with the first to guide it through the projection port so I can capture the images
  • Varine Varine:
    All that's easy enough, I just need to make sure I don't get too much force onto the film itself so I don't accidentally tear it.
  • Varine Varine:
    Then I think my solution to the take up reel is to have a kind of dancing lever on a spring in between two limit switches
  • Varine Varine:
    So, as the tape comes towards the take up reel and makes slack, that lever is pulled up by a spring to keep the tension on the film, it hits a limit switch to engage the take up reel motor at some point, and as that winds in the film, the film pushes the lever back down to a second limit switch to disengage the motor again. Slack builds up, spring pulls it back, ad infinitum
  • Varine Varine:
    Well, until the reel is empty anyway.
  • Varine Varine:
    I'm guessing it's going to be much harder than I feel like it is going to be right now, but I think it's a pretty elegant solution that doesn't rely on software to control it. The less software I need to use the better
  • Varine Varine:
    I'm just not a very good programmer, as much as I want to be I suck at it
  • The Helper The Helper:
    Programming that printer is going to be similar to programming a big machine like in a machine shop. There is good money in programming CNC machines.
  • The Helper The Helper:
    +1
  • Varine Varine:
    They are pretty similar, but this one is much less involved than a real CNC. A lot less moving parts
    +1
  • The Helper The Helper:
    Happy Monday!

      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