Commit graph

203 commits

Author SHA1 Message Date
Elliot Waite
f3d57761ab
Fix broken links in docs (#16336)
* Fix broken links in docs

* Fix rand HSlice links
2020-12-14 20:13:12 +01:00
ihlec
5c23ba7545
fixed article duplication typos (#16216) 2020-12-02 09:15:29 +01:00
Timothee Cour
50d035b789
defer: improve manual, clarify difference wrt try/finally (#16010) 2020-11-17 08:40:17 +01:00
Juan Carlos
1b9f37c6dc https://github.com/nim-lang/Nim/pull/15968/files#r523468677 2020-11-14 19:57:06 -03:00
Juan Carlos
c56a6133bb Fix #15806 2020-11-14 15:45:13 -03:00
Juan Carlos
9ab1a86b5b Fix #15806 2020-11-14 15:43:31 -03:00
Juan Carlos
3cebae492e Fix #15806 2020-11-14 15:39:03 -03:00
Juan Carlos
d0dda9efab Fix #15806 2020-11-14 15:31:59 -03:00
flywind
4663319bf5
follow #8463 #14157 and document cstring literals modification is not allowed (#15878)
* follow #8463 #14157 and document cstring literals
* Update doc/manual.rst

Co-authored-by: Juan Carlos <juancarlospaco@gmail.com>
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
2020-11-12 15:28:45 +01:00
flywind
5828620d47
uint and uint64 is Ordinal type since nim 1.0.0 (#15873) 2020-11-07 07:58:52 +00:00
Ivan Bobev
3c85aa9e53
Make {.requiresInit.} to work for distinct types (#15869)
Make `requiresInit` pragma to work for distinct types in addition to
objects. Tagging of distinct types with `requiresInit` pragma was
already supported, but its impact wasn't applied. Now its behavior when
applied on distinct types is as follows.

Given the following distinct type definitions:

  ```nim
  type
    DistinctObject {.requiresInit, borrow: `.`.} = distinct MyObject
    DistinctString {.requiresInit.} = distinct string
  ```

The following code blocks will fail to compile:

  ```nim
  var foo: DistinctFoo
  foo.x = "test"
  doAssert foo.x == "test"
  ```

  ```nim
  var s: DistinctString
  s = "test"
  doAssert s == "test"
  ```

But these ones will compile successfully:

  ```nim
  let foo = DistinctFoo(Foo(x: "test"))
  doAssert foo.x == "test"
  ```

  ```nim
  let s = "test"
  doAssert s == "test"
  ```
2020-11-06 18:56:09 +00:00
c-blake
f17555770e
Clarify the sense in which Nim supports recursive iterators in the (#15834)
manual, the tutorial, and the `tbintree` test.
2020-11-04 16:56:22 +01:00
Yanis Zafirópulos
0cae8ef2ca
Massive documentation fixes + copy editing (#15747) 2020-10-29 10:33:47 +01:00
Gampol T
b2f51e2950
Fix #13609 (#15567)
* add documentation that discardable pragma cannot use on template

* Update doc/manual.rst

Co-authored-by: Euan <euantorano@users.noreply.github.com>

* Update doc/manual.rst

Co-authored-by: Euan <euantorano@users.noreply.github.com>

Co-authored-by: Euan <euantorano@users.noreply.github.com>
2020-10-21 23:40:45 -04:00
narimiran
5e9dd81baa more "eg" fixes 2020-10-20 10:51:50 +02:00
Andreas Rumpf
51e3e0c7c4
implements https://github.com/nim-lang/RFCs/issues/260 (#15505)
* implements https://github.com/nim-lang/RFCs/issues/260

* added a test case
2020-10-07 00:09:28 +02:00
Andreas Rumpf
92163fa330
implements https://github.com/nim-lang/RFCs/issues/258 (#15503)
* implements https://github.com/nim-lang/RFCs/issues/258

* don't be too strict with custom pragma blocks

* cast pragmas: documentation

* added most missing inference query procs to effecttraits.nim
2020-10-06 16:47:15 +02:00
Andreas Rumpf
4058801607
spec for view types (#15424)
* spec for view types
* spec additions
* refactoring; there are two different kinds of views
* refactorings and spec additions
* enforce that view types are initialized
* enforce borrowing from the first formal parameter
* enforce lifetimes for borrowing of locals
* typo in the manual
* clarify in the implementation what a borrow operation really is
2020-09-29 23:42:38 +02:00
Miran
11c377c114
add enumerate macro (#15297)
* add `enumerate` macro

* address the comments

* put `enumerate` in its own module
2020-09-22 13:08:36 +02:00
flywind
0aaf4e2dfa
Methods docs improvement (#15338)
* docs improvement

* minor
2020-09-16 14:51:01 +02:00
narimiran
8a2cd7b24b [ci skip] fix typo in the manual 2020-09-09 12:59:14 +02:00
Miran
c49b88163c
"for-loop macros" are no longer an experimental feature (#15288) 2020-09-08 14:25:25 +02:00
Clyybber
fb58066b61
Fix #5691 (#15158)
* Fix #5691
* Cleanup and thoughts
* Use scope approach
* Seperate defined/declared/declaredInScope magics
* Fix declaredInScope
* Update spec accordingly
2020-08-27 15:50:59 +02:00
Ico Doornekamp
2260ede247
Added array type definition to manual (#15173)
Co-authored-by: Ico Doornekamp <git@zevv.nl>
2020-08-10 14:01:47 +02:00
awr1
37253d660f
Minor improvements to typecast section of manual (#14896)
* Minor improvements to typecast section of manual

* Clarification to casting w/ concrete types

* Added less ambiguous language
2020-07-07 10:22:55 +02:00
Timothee Cour
dc5a40f3f3
{.deprecated: [existsFile: fileExists].} (#14735)
* {.deprecated: [existsFile: fileExists].}

* s/existsFile/fileExists/ except under deps

* workaround pending #14819

* fix test
2020-07-02 16:19:13 +02:00
Danil Yarantsev
7936768560
Fix some typos (#14843) 2020-06-28 19:17:18 +02:00
Sizhe Zhao
ad00d616e8
Warn about calling wrappers at compile time until #14049 is fixed. (#14828) 2020-06-27 16:51:48 +02:00
Andreas Rumpf
da29222f86
init checks and 'out' parameters (#14521)
* I don't care about observable stores
* enforce explicit initializations
* cleaner code for the stdlib
* stdlib: use explicit initializations
* make tests green
* algorithm.nim: set result explicitly
* remove out parameters and bring the PR into a mergable state
* updated the changelog
2020-06-23 10:53:57 +02:00
Juan Carlos
99c198625c
Deprecate unroll pragma, remove from documentation (#14705) 2020-06-19 15:08:45 +02:00
Juan Carlos
a056b4c3f1
Change 'Future Directions' to link memory management documentation (#14664) 2020-06-15 08:55:24 +02:00
Dominik Picheta
d3b25a2948
Clarify imported exceptions note in manual 2020-06-13 11:44:01 +01:00
Ico Doornekamp
0489e76da7
manual: removed subjective phrase from 'macros' section (#14536)
Removed phrase "However, this is no real restriction because
Nim's syntax is flexible enough anyway." from the manual - I find it
very subjective, and I sometimes *do* find myself restricted by Nim's
syntax when writing DSLs
2020-06-01 14:02:17 +02:00
Araq
177c7f96e9 spec: be explicit that NRVO will evolve further 2020-05-30 19:55:01 +02:00
Araq
984af3d64e document NVRO and exception handling 2020-05-30 19:50:11 +02:00
Huy Doan
00fa7a5747
Add thiscall calling convention, mostly for hooking purpose (#14466)
* Add thiscall calling convention, mostly for hooking purpose
* add changelog and documentation
2020-05-27 16:24:47 +02:00
Andreas Rumpf
79e85cb0b5
manual.rst: updates [backport] (#14445) 2020-05-25 12:16:32 +02:00
Danil Yarantsev
1450924b1e
Fix some typos in the manual [backport] (#14399) 2020-05-20 09:28:47 +02:00
Timothee Cour
2627e1e945
refs #14369 improve docs for importcpp exceptions (#14391)
* refs #14369 improve docs for importcpp exceptions

* address comments
2020-05-18 17:10:30 +01:00
cooldome
810039ec0b
docs:getCurrentException() and getCurrentExceptionMsg() are not available for imported exceptions (#14392) 2020-05-18 08:15:10 -07:00
Bung
c32e1378eb
docfix: fix wrong link in doc/manual.rst (#14367) 2020-05-16 03:04:39 -07:00
PMunch
9acbf99efb
Allow let to not have value when using importc (#14258)
* Allow let to not have value when using importc

This allows a let statement with the `{.importc.}` pragma to not be
initialised with a value. This allows us to declare C constants as Nim
lets without putting the value in the Nim code (which can lead to
errors, and requires us to go looking for the value). Fixes #14253

* Proper fix and documentation + changelog entry

* Improve testcase with one from timotheecour

* Add test to verify it working with macros
2020-05-12 20:28:18 +02:00
Avahe Kellenberger
55446c05a4
Added a reference to ternary operators. (#14309)
`if expressions` are similar to ternary operators in other languages.
In order to make this easier to find in the manual, I've added a
sentence about it.
2020-05-12 08:28:10 +02:00
Andreas Rumpf
03c146cd93
do not track 'raise Defect' in the .raises: [] clause anymore (#14298)
* do not track 'raise Defect' in the .raises: [] clause anymore

* --panics:on maps 'raise Defect' to an unrecoverable fatal error

* make tests green again

* update the documentation too
2020-05-11 16:25:56 +02:00
hlaaftana
de27910ab7
make from an operator (#14241) 2020-05-08 07:54:46 +02:00
hlaaftana
f50377986a
exp. features now in correct manual, closes #11932 (#14195) 2020-05-02 22:30:08 +02:00
hlaaftana
9b01c6cf48
discardable async procs are now an error (#14176)
* add discard warning in manual
2020-05-01 09:49:13 +02:00
Jacek Sieka
7d6cbf290a
Error -> Defect for defects (#13908)
* Error -> Defect for defects

The distinction between Error and Defect is subjective,
context-dependent and somewhat arbitrary, so when looking at an
exception, it's hard to guess what it is - this happens often when
looking at a `raises` list _without_ opening the corresponding
definition and digging through layers of inheritance.

With the help of a little consistency in naming, it's at least possible
to start disentangling the two error types and the standard lib can set
a good example here.
2020-04-28 19:56:01 +02:00
hlaaftana
b2141fc2a1
changed type() to typeof() in docs and error messages (#14084) 2020-04-24 09:22:12 +02:00
Rory O’Kane
b8b0e9b21d
docs: move not nil to the experimental page (#14027)
When I heard that this feature existed, and found the 2018 changelog entry that said `not nil` was made experimental (https://github.com/nim-lang/Nim/blob/devel/changelogs/changelog_0_19_0.md#changes-affecting-backwards-compatibility), I looked for `not nil` documentation in https://nim-lang.org/docs/manual_experimental.html. When I didn’t find it there, I initially assumed the feature had no documentation. This change moves the documentation to where readers will expect it.

As well as moving the text to another file, I added instructions for enabling the experimental feature and tweaked some wording.
2020-04-21 14:54:43 +02:00