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

Will nimskull embrace breaking changes? #8

Closed
ringabout opened this issue Oct 26, 2021 · 7 comments
Closed

Will nimskull embrace breaking changes? #8

ringabout opened this issue Oct 26, 2021 · 7 comments
Labels
documentation Improvements or additions to documentation

Comments

@ringabout
Copy link
Contributor

ringabout commented Oct 26, 2021

For instance, some features I want to see:

Or nimskull will be compatible with Nim as far as possible?

@saem
Copy link
Collaborator

saem commented Oct 26, 2021

Please see the readme specifically the direction section.

You'll see we're willing to make breaking changes; however, breaking for the sake of breaking or minor convenience isn't something we have the capacity to work through just yet.

If they're on mission then all good, otherwise they're presently a distraction. Specific areas where breaking changes are in fact very welcome are the currently on mission items. Chiefly, nkError related work.

We can consider further ones that aren't explicitly part of the current mission as long as they show excellent taste in reducing the over size of the language, standard library, tool chain, and/or bring about greater consistency in both the language and implementation.

The first two changes are to areas that aren't actively being thought about but I'm curious which unused features you'd consider removing?

@ringabout
Copy link
Contributor Author

ringabout commented Oct 26, 2021

Allowing identifiers starts with underscore was discussed:
nim-lang/RFCs#428

remove some nasty or unused features

such as drnim,
something like proc find*(buf: cstring, pattern: Regex, matches: var openArray[string], start = 0, bufSize: int),
replace generic threads procs with low level threads procs wrapper.
dispatching by procs parameter names (proc hello(a: int) and proc hello(b: int)),
remove owned

@haxscramper
Copy link
Collaborator

haxscramper commented Oct 26, 2021

nimsuggest could also be deprecated in the future in favor of much more widely used LSP protocol that is adopted by virtually any modern text editor there is.

Probably can kill TRM macros since there is hardly any use for them, even if they weren't that buggy.

Maybe move some stdlib modules out into https://github.com/disruptek/dist or deprecate them entirely.

@disruptek
Copy link
Contributor

Just my opinion, but the problem with term-rewriting macros is that they are just way too powerful and become essentially magical in use. It's a tough call.

@saem
Copy link
Collaborator

saem commented Oct 27, 2021

Just my opinion, but the problem with term-rewriting macros is that they are just way too powerful and become essentially magical in use. It's a tough call.

The amount of things that have to not only work well but be incredible transparent and easy to debug would put term rewriting macros incredibly out of reach for a good long while. Which means we can't really learn of it's a good idea or not.

@saem
Copy link
Collaborator

saem commented Oct 27, 2021

I'll leave this issue open for a day or two more, I think this should turn into some breaking changes guidance doc, that should answer the question:

"Under what circumstances is a breaking change acceptable?"

@ringabout
Copy link
Contributor Author

make sense!

@disruptek disruptek added the documentation Improvements or additions to documentation label Oct 30, 2021
bors bot referenced this issue Nov 8, 2022
459: add old code compat to the readme r=haxscramper a=haxscramper

This part had already been present in the readme for some time. 

Original version was

```
<details>
<summary class="blue">Will this break my Nim code?</summary>
</br>
Maybe. Many experienced users will know that a lot of current code 'works' because of various hacks, or create hacks themselves to make code work. See <a href="https://github.com/nim-works/nimskull/issues/8">#8</a> and the <a href="https://github.com/nim-works/nimskull#direction">direction</a> for more on this.
</details>
```  

I rephrased new to an extended, "maybe, but we won't have any guarantees on that matter"

Co-authored-by: haxscramper <haxscramper@gmail.com>
bors bot referenced this issue Nov 8, 2022
459: add old code compat to the readme r=haxscramper a=haxscramper

This part had already been present in the readme for some time. 

Original version was

```
<details>
<summary class="blue">Will this break my Nim code?</summary>
</br>
Maybe. Many experienced users will know that a lot of current code 'works' because of various hacks, or create hacks themselves to make code work. See <a href="https://github.com/nim-works/nimskull/issues/8">#8</a> and the <a href="https://github.com/nim-works/nimskull#direction">direction</a> for more on this.
</details>
```  

I rephrased new to an extended, "maybe, but we won't have any guarantees on that matter"

Co-authored-by: haxscramper <haxscramper@gmail.com>
alaviss added a commit to alaviss/nimskull that referenced this issue Apr 22, 2023
Queue test no 2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

4 participants