VoltLang / Volta

Compiler for the Volt Programming Language
157 stars 8 forks source link

Function decorator bloat #23

Closed bubnenkoff closed 2 months ago

bubnenkoff commented 7 years ago

This post was about D, but it's seems that Volt have some same issue. example: "Function decorator bloat: I recently tagged a function @property @nogc pure @safe override"

Wallbraker commented 7 years ago

We are looking into a way to make all functions in a module have a set of properties.

// Make all functions in this module @nogc and @system
default fn : @nogc @system;

@property is planned to be replaced with C# style properties @safe is planned to be default pure I'm not sure is needed in Volt override will stay, it catches errors, maybe shorten the keyword. ovrd or something else. @nogc will also stay, but with the default attribute per module shouldn't be that troublesome.

r-k-o commented 6 years ago

hi, i was tipped to your project. I am trying to find some thing for me just as D1 and i am glad to see that you guys get rid of that @ - eye cancer. do have a time frame on when the compiler will be compiles downloadable as an exe for windows x64? thanx

Wallbraker commented 6 years ago

Thanks!

Short answer in a couple of months you will be able to just install a VSCode extension and that would be that.

We have a CI that builds all of the needed executables (for windows) so if you feel adventures you can download battery and volta from there and have that work now. And using some manual work to get the VSCode extension working.

If you are IRC I recommend poking us in #volt on FreeNode. Or on one of the Twitter accounts @Wallbraker or @VoltLang. I would be happy to do some hand holding getting you setup.

r-k-o commented 6 years ago

thanks for the answer. will download and use.

r-k-o commented 6 years ago

https://ci.volt-lang.lv/ - doesn't work

Wallbraker commented 6 years ago

Oh it's on https://ci.walkyrie.se/

r-k-o commented 6 years ago

thanks

r-k-o commented 6 years ago

sorry for that, but where do i get llvm.dll or otheres in case they are needed? thanks in advance for your patience.

Wallbraker commented 6 years ago

Oh right, LLVM still doesn't ship a LLVM.dll file so you will need to build one yourself. Using the LLVM_BUILD_LLVM_C_DYLIB option should give you one, I don't have one laying around right now.

Sorry for this being so hard to setup. We have been poking the LLVM project for longer then a year and we only got it as far as them at least adding a switch to build a LLVM.dll.

r-k-o commented 6 years ago

ok, will do

Wallbraker commented 6 years ago

Oh make sure it's 64bit as we only support 64bit on windows.

bhelyer commented 6 years ago

If I could be forgiven some bikeshedding, I would like to be rid of the @ syntax for keywords entirely. If we need a keyword, we should add it. There's some stuff we could also clean up in regards to namespace issues -- we currently disallow member functions called 'init', as T.init gives you the default initialiser. Maybe this would be heresy, but we could just use T.default for that purpose, and get rid of that. Otherwise, making init a keyword would be my preference, but I don't see a reason we couldn't just appropriate default for that purpose.

r-k-o commented 6 years ago

Oh make sure it's 64bit as we only support 64bit on windows. yes

I would like to be rid of the @ syntax for keywords entirely 💯 If we need a keyword, we should add it. There's some stuff we could also clean up in regards to namespace issues -- we currently disallow member functions called 'init', as T.init gives you the default initialiser. Maybe this would be heresy, but we could just use T.default for that purpose, and get rid of that. Otherwise, making init a keyword would be my preference, but I don't see a reason we couldn't just appropriate default for that purpose. 👍