* clarify `parseHexInt`, `parseOctInt` docstring and exception msgs
* add `parseBinInt` based on `parseutil.parseBin` implementation
Adds a `parseBinInt`, which parses a binary integer string and returns
it as an integer. This is based on the implementation of
`parseutil.parseBin`, removing the unnecessary parts.
* add tests for all `parse(Hex|Oct|Bin)Int` procs
* replace `parse*Int` proc impls by call to parseutil procs
Replaces the `parse(Hex|Oct|Bin)Int` procedure implementation by calls
to the `parseutil` procs, which receive a mutable argument.
Has the main advantage that the empty string as well as a "prefix
only" string, e.g. "0x" counts as an invalid integer.
Also moves the `parseOctInt` proc further up in the file so that all
`parse` procs are below one another.
* replace `var L` by `let L` in `parse` procs
There's no reason for the usage of `var` here.
* add `maxLen` optional arg for `parseutil.parse(Oct|Bin)`
Plus small change to test cases.
* update changelog about `parse*Int` procs
* fix `rejectParse` template in `tstrutils`
* make sure only `s.len` chars are parsed, if `maxLen+start` > s.len
Fixes a previous bug in `parseHex` (and now affected `parseOct` and
`parseBin`), which allowed to set `start + maxLen` to be larger than
the strings length. This resulted in an out of bounds access.
* move `parse*Int` proc change to breaking changes, add double `
The other variants are isLower, isUpperAscii and isLowerAscii
Fixes https://github.com/nim-lang/Nim/issues/7963.
This commit changes the behavior and signatures of:
- isUpper, isLower in the unicode module
- isUpperAscii, isLowerAscii in the strutils module
A second mandatory parameter skipNonAlpha is added to these 4 procs.
(This change affects only for the case where the input is a *string*.)
---
With skipNonAlpha set to true, the behavior mimics the Python isupper and
islower behavior i.e. non-alphabetic chars/runes are ignored when checking if
the string is upper-case or lower-case.
Before this commit:
doAssert(not isUpper("A B"))
After this commit:
doAssert(not isUpper("A B", false)) <-- old behavior
doAssert isUpper("A B", true)
Below two are equivalent:
isUpper("A B", true)
isAlpha("A B") and isUpper("A B", false)
.. and the similar for other 3 procs.
* Add secant, cosecant and cotangent.
* Add hyperbolic functions of cotangent, secant and cosecant.
* Add inverse hyperbolic functions.
* Change to use defined function of C and JS.
* Bug fix and refactoring.
* Add change to changelog.md
- new option --usenamespace to generate nim cpp code in its own namespace Nim
- minor changes for compatibility with the new Embarcadero = Borland C++-Builder (bcc)
* Support code hot reloading for JavaScript projects
* Add some missing JavaScript symbols and APIs
* fix the Travis build
* (review changes) remove the js type from the standard library as it doesn't follow NEP-1
* more additions to the DOM module
* Follow NEP-1 in jsffi; spell 'hot code reloading' correctly
* introduce a jscore module
* Document jscore module.
* readded js type
* Remove the '$' operator that doesn't behave