aboutsummaryrefslogtreecommitdiff
path: root/src/unicode.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add missing guards around push/pop pragmasbobsayshilol2024-10-271-3/+8
| | | | This matches all the other places where we silence Windows warnings.
* Avoid undefined arithmetic shiftingbobsayshilol2024-10-271-1/+1
| | | | | | | | | | | | | | | | | The result of a left shift on a positive signed integer (Rune) must fit into an unsigned integer otherwise it's undefined behaviour, as is left shifting a negative integer by any amount. This code can only be hit if |x >= 0xf0| and hence a left shift of 31 will always be undefined unless the input is 0 or 1. To avoid hitting this we can instead extend the lowest bit to be the mask if we assume that ints are 2's complement, which we already do elsewhere. This generates identical code in testing on Compiler Explorer and the Odin test suite passes locally with this change. Note that the original code would change to be defined behaviour in C++20, however we are currently build with |-std=c++14| in the build scripts.
* Add `UCG` library to Odin compilerFeoramund2024-06-291-0/+5
|
* `gb_internal` a lotgingerBill2022-12-181-5/+5
|
* Begin optimizing tokenizer; Replace `gb_utf8_decode` with `utf8_decode` (CC ↵gingerBill2021-08-011-0/+97
| | | | but easier to change later)
* Add `rune_is_letter_or_digit` for tokenizergingerBill2020-05-271-0/+23
|
* Optimize `rune_is_*` procedures for tokenizergingerBill2020-05-271-2/+2
|
* Change how foreign imports work for macgingerBill2019-09-291-1/+0
|
* Minor code organization changegingerBill2019-03-311-1/+1
|
* Clean up name mangling by using unique package names per projectgingerBill2018-05-271-5/+7
|
* Build as C++Ginger Bill2017-06-081-0/+43
|
* Change extensions .cpp to .cGinger Bill2016-11-231-66/+0
|
* Remove templated Map; replace with #include macro "templates" trickGinger Bill2016-11-231-5/+5
|
* Minor Style FixesGinger Bill2016-10-221-2/+2
|
* Minimal Dependency Map: Only build what is neededGinger Bill2016-09-271-4/+4
|
* Filename as default import name; as .; as _; panic()Ginger Bill2016-09-211-0/+25
|
* Pointer arithmetic builtin proceduresGinger Bill2016-08-271-0/+2
|
* Full Unicode SupportgingerBill2016-08-151-0/+39