Earlier quoted context omitted.
I think you missed this detail: > ARC was first shipped with Nim 1.2... [ORC is] our main new feature for this release Seems like they should phrase it like "use ORC unless you know you don't have cycles" rather than "use ORC if you're not sure you have cycles", but that's a reasonable responsibility to take on if you're choosing to use an alternative garbage collector.
I'd prefer no phrasing at all. Just pick one that will work well in all cases, and don't give me any footguns.
Nim 1.4
21–30 of 144 posts
Re: Nim 1.4
#22There are a lot of gotchas with the new GC that make me nervous about this release: > As far as we know, ARC works with the complete standard library except for the current implementation of async... That's not a great endorsement... > If your code uses cyclic data structures, or if you’re not sure if your code produces cycles, you need to use --gc:orc and not --gc:arc. Seems like this is a big onus to put on the use…
Sorry if you got misled by the article - ORC is what you should use if your program has cycles. ORC deals with async just fine.
Re: Nim 1.4
#23Earlier quoted context omitted.
Sorry if you got misled by the article - ORC is what you should use if your program has cycles. ORC deals with async just fine.
Does ORC stand for something?
The loopy/circular character of the letter 'O' may be a secondary mnemonic since it collects cycles.
Re: Nim 1.4
#24Re: Nim 1.4
#25Earlier quoted context omitted.
I think you missed this detail: > ARC was first shipped with Nim 1.2... [ORC is] our main new feature for this release Seems like they should phrase it like "use ORC unless you know you don't have cycles" rather than "use ORC if you're not sure you have cycles", but that's a reasonable responsibility to take on if you're choosing to use an alternative garbage collector.
I'd prefer no phrasing at all. Just pick one that will work well in all cases, and don't give me any footguns.
Re: Nim 1.4
#26Earlier quoted context omitted.
I think you missed this detail: > ARC was first shipped with Nim 1.2... [ORC is] our main new feature for this release Seems like they should phrase it like "use ORC unless you know you don't have cycles" rather than "use ORC if you're not sure you have cycles", but that's a reasonable responsibility to take on if you're choosing to use an alternative garbage collector.
I'd prefer no phrasing at all. Just pick one that will work well in all cases, and don't give me any footguns.
Re: Nim 1.4
#27I am intrigued by Nim. Anyone know of the motivation for Nim? I was not able to find that out in their website.
> I started the Nim project after an unsuccessful search for a good systems programming language. Back then (2006) there were essentially two lines of systems programming languages:
> The C (C, C++, Objective C) family of languages.
> The Pascal (Pascal, Modula 2, Modula 3, Ada, Oberon) family of languages.
> The C-family of languages has quirky syntax, grossly unsafe semantics and slow compilers but is overall quite flexible to use. This is mostly thanks to its meta-programming features like the preprocessor and, in C++'s case, to templates.
> The Pascal family of languages has an unpleasant, overly verbose syntax but fast compilers. It also has stronger type systems and extensive runtime checks make it far safer to use. However, it lacks most of the metaprogramming capabilities that I wanted to see in a language.
> For some reason, neither family looked at Lisp to take inspiration from its macro system, which is a very nice fit for systems programming as a macro system pushes complexity from runtime to compile-time.
> And neither family looked much at the upcoming scripting languages like Python or Ruby which focussed on usability and making programmers more productive. Back then these attributes were ascribed to their usage of dynamic typing, but if you looked closely, most of their nice attributes were independent of dynamic typing.
> So that's why I had to create Nim; there was a hole in the programming language landscape for a systems programming language that took Ada's strong type system and safety aspects, Lisp's metaprogramming system so that the Nim programmer can operate on the level of abstraction that suits the problem domain and a language that uses Python's readable but concise syntax.
Re: Nim 1.4
#28There are a lot of gotchas with the new GC that make me nervous about this release: > As far as we know, ARC works with the complete standard library except for the current implementation of async... That's not a great endorsement... > If your code uses cyclic data structures, or if you’re not sure if your code produces cycles, you need to use --gc:orc and not --gc:arc. Seems like this is a big onus to put on the use…
A significant portion of the problems with cycles in ARC are parent references.
Re: Nim 1.4
#29I am intrigued by Nim. Anyone know of the motivation for Nim? I was not able to find that out in their website.
From this nice interview with Araq (language creator): http://157.245.209.254/andreas-rumpf-on-creating-and-growing... > I started the Nim project after an unsuccessful search for a good systems programming language. Back then (2006) there were essentially two lines of systems programming languages: > The C (C, C++, Objective C) family of languages. > The Pascal (Pascal, Modula 2, Modula 3, Ada, Oberon) family of lan…
Re: Nim 1.4
#30Earlier quoted context omitted.
I'd prefer no phrasing at all. Just pick one that will work well in all cases, and don't give me any footguns.
To clarify: By default Nim will still use the GC which doesn't have any "footguns". ARC and ORC are new features which have different trade-offs, and some limitations. You opt-in to using them if you're interested.