Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ideas, queries and issues #18

Closed
ntrel opened this issue Mar 27, 2016 · 5 comments
Closed

Ideas, queries and issues #18

ntrel opened this issue Mar 27, 2016 · 5 comments

Comments

@ntrel
Copy link

ntrel commented Mar 27, 2016

Hi,
Over the years since D2 I've thought about what changes I'd make if starting again. I've written up a list on Google docs, hope that's OK. Not sure if there's another place for discussions.

https://docs.google.com/document/d/10S9357qY0NbCnsKyaefRQvBgmovtv4z_GYyGmcXUU1k/edit?usp=docslist_api

Hope you find it interesting.

@ntrel
Copy link
Author

ntrel commented Apr 22, 2016

Cleaned up & updated the document, also contains some queries about Volt vs D, feature and minor syntax ideas.

Please let me know if you don't like reading Google docs, I could port it to something else. I realise you probably have your own designs for some of my items - would like to see them :-)

@Wallbraker
Copy link
Member

Google docs works, I a bit busy right now so I haven't been able to comment, sorry.

Some quick stuff:

  • Heap closures should use new keyword
    Yes I agree fully, one of the goal of Volt is that if something uses the gc there should be a new keyword there.
  • Shorten immutable keyword or use let for locals
    Yeah shorter keywords is also something we are looking into.
  • Remove or limit comma op to void expressions
    Comma exp is already gone, its special cased in for, foreach & friends.
  • Bool should not be integer: overloading problems
    I dunno about this, forcing cast(int)boolVar to do math on bools seems iffy. But I wonder what such a rule would change. Maybe you could try to write a patch and see whats happens?
  • Struct zero arg runtime ctors? Struct dtors, RAII yes?
    I don't know if we want ctors and dtors for structs, we currently don't have them. There is a quite a bit of rules, corner cases for them and compiler support overhead. Then again the compiler code will be there for reference counting.
  • Ref counting in library?
    Leaning towards making them a inbuilt feature of the language.

Are some of the quick ones. Some of the changes you can try implementing yourself in the compiler, we are happy to answer questions.

@ntrel
Copy link
Author

ntrel commented Apr 23, 2016

No problem, I was busy yesterday after posting here :-) Thanks for the reply.

forcing cast(int)boolVar to do math on bools seems iffy

I think bool can implicitly convert to integer, but integer literals 0 and 1 should prefer proper integer overloads including long rather than a bool overload. See:
https://issues.dlang.org/show_bug.cgi?id=9999

I might have a look at the source for Volta and maybe implement some minor ideas, I've not tried to work on type system code before but who knows, possibly ;-)

I don't know if we want ctors and dtors for structs

OK, not having dtors might scare some C++ folks, but if we have scope (exit) and macros maybe that's enough, not sure. I appreciate it does make things simpler.

@Wallbraker
Copy link
Member

I think bool can implicitly convert to integer, but integer literals 0 and 1 should prefer proper integer overloads including long rather than a bool overload. See:
https://issues.dlang.org/show_bug.cgi?id=9999

Oh I see, I tested it and because you can't implicitly convert 0 and 1 to bool the long version is prefered. I don't think we want to implicitly convert 0 and 1 to bools at all so I think we should leave it at that.

Added test cases to our tester, see: VoltLang/Tesla@692e454

I might have a look at the source for Volta and maybe implement some minor ideas, I've not tried to work on type system code before but who knows, possibly ;-)

Even tho this wasn't issue feel free to try it out. Currently it isn't that easy to get started with Volt, but are willing to help out if you want to. We have a getting started guide here: https://www.volt-lang.org/doc/setup/volta.html

I don't know if we want ctors and dtors for structs

OK, not having dtors might scare some C++ folks, but if we have scope (exit) and macros maybe that's enough, not sure. I appreciate it does make things simpler.

I'm not sure myself, it hides whats actually going on where as scope (exit) is more explicit. But having a familiar environment for C++ folks is something good. It needs to be thought about.

@ntrel
Copy link
Author

ntrel commented Apr 25, 2016

I don't think we want to implicitly convert 0 and 1 to bools at all so I think we should leave it at that. Added test cases to our tester

Great :-)

are willing to help out if you want to. We have a getting started guide

Thanks.

@bhelyer bhelyer closed this as completed Jul 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants