Andrew Kelley
8766821157
rework std.math.big.Int
...
Now there are 3 types:
* std.math.big.int.Const
- the memory is immutable, only stores limbs and is_positive
- all methods operating on constant data go here
* std.math.big.int.Mutable
- the memory is mutable, stores capacity in addition to limbs and
is_positive
- methods here have some Mutable parameters and some Const
parameters. These methods expect callers to pre-calculate the
amount of resources required, and asserts that the resources are
available.
* std.math.big.int.Managed
- the memory is mutable and additionally stores an allocator.
- methods here perform the resource calculations for the programmer.
- this is the high level abstraction from before
Each of these 3 types can be converted to the other ones.
You can see the use case for this in the self-hosted compiler, where we
only store limbs, and construct the big ints as needed.
This gets rid of the hack where the allocator was optional and the
notion of "fixed" versions of the struct. Such things are now modeled
with the `big.int.Const` type.
2020-05-01 06:47:56 -04:00
Tadeo Kondrak
350b2adacd
std.meta.IntType -> std.meta.Int
2020-04-28 19:11:31 -06:00
Tadeo Kondrak
f977155fdb
@Vector -> std.meta.Vector
2020-04-28 00:47:13 -06:00
Timon Kruiper
c829f2f7b7
Add mips support to standard library
2020-04-24 15:28:55 -04:00
markfirmware
203d6554b1
Update fmt.zig
2020-04-03 12:12:40 -04:00
Andrew Kelley
53b5aa812b
Merge remote-tracking branch 'origin/master' into llvm10
2020-03-19 22:19:24 -04:00
Andrew Kelley
7fa88cc0a6
std lib fixups for new semantics
...
std lib tests are passing now
2020-03-19 09:53:55 -04:00
Andrew Kelley
656ba530d8
Merge remote-tracking branch 'origin/master' into llvm10
2020-03-13 15:17:53 -04:00
Andrew Kelley
4905102901
fix all the TODOs from the pull request
...
* `std.Buffer.print` is removed; use `buffer.outStream().print`
* `std.fmt.count` returns a `u64`
* `std.Fifo.print` is removed; use `fifo.outStream().print`
* `std.fmt.bufPrint` error is renamed from `BufferTooSmall`
to `NoSpaceLeft` to match `std.os.write`.
* `std.io.FixedBufferStream.getWritten` returns mutable buffer
if the buffer is mutable.
2020-03-13 12:02:58 -04:00
Benjamin Feng
4aae55b4cc
Replace fmt with new fmtstream
2020-03-12 10:41:09 -05:00
Michael Dusan
83f6f730cd
std: simplify format enum-literals
2020-03-10 18:09:41 -04:00
Andrew Kelley
96c07674fc
Merge remote-tracking branch 'origin/master' into llvm10
2020-03-07 12:18:41 -05:00
daurnimator
4114b63d75
std: use std.ArrayList instead of std.Buffer in std/fmt.zig tests
2020-03-06 18:49:13 -05:00
Michael Dusan
1091fee242
std: format enum-literals
2020-03-05 16:03:12 -05:00
daurnimator
488ba1560f
std: fix math.absCast on i1
2020-03-05 16:00:19 +11:00
daurnimator
4f58bfe1a8
std: fix formatting of i1 integers
2020-03-05 15:52:19 +11:00
daurnimator
d5359ea541
std: use testing.expectEqualSlices from tests
2020-03-05 15:51:21 +11:00
Andrew Kelley
d1cb16aace
Merge remote-tracking branch 'origin/master' into llvm10
2020-03-03 09:44:13 -05:00
Andrew Kelley
ef3d761da5
breaking: std.mem.len no longer takes a type argument
...
also update fmt code to use std.mem.span.
2020-03-01 13:21:39 -05:00
daurnimator
0b0de22fd1
std: format contents of sentinel terminated many pointers
...
std: add std.meta.Sentinel to get sentinel of a type
2020-03-01 13:04:29 -05:00
Vexu
22432b15e3
add test for @intToEnum
2020-02-26 11:19:40 -05:00
Andrew Kelley
f33bf48af7
Merge remote-tracking branch 'origin/master' into llvm10
2020-02-25 16:30:40 -05:00
Vexu
538d9a5dd8
remove uses of @ArgType
and @IntType
2020-02-24 23:39:03 +02:00
Vexu
45da72c5b6
remove usages of @typeId
, @memberCount
, @memberName
and @memberType
2020-02-24 23:09:01 +02:00
frmdstryr
597648231b
Format decmial 0.0 with no precision as just 0
2020-02-23 11:17:06 -05:00
Andrew Kelley
64365bc5d7
enable behavior and std lib tests for RISC-V 64-bit
...
closes #3338
2020-02-17 00:06:19 -05:00
Andrew Kelley
cdba521a06
annotate skipped test with issue link
2020-02-13 16:13:53 -05:00
data-man
948a463cf1
fmt: vector formatting
2020-02-13 16:12:54 -05:00
vegecode
d06bfc2e2a
Correct comment to include comptime attribute on format output fn parameter
...
Without comptime, printing custom type through the stream interface fails
2020-02-12 13:16:32 -06:00
LemonBoy
3237528a59
fmt: Pass the fmt string to the inner formatters
2020-02-10 19:43:11 -05:00
Andrew Kelley
84323504ac
std.fmt.format: comptime output parameter
2020-02-05 16:52:18 -05:00
daurnimator
a351350b88
std: format non-exhaustive enums
2020-01-31 22:33:56 +11:00
LemonBoy
d27678fe83
fmt: Refactor the arg fetching code
...
* Error out if the requested index is out-of-bound
* Tidy-up all the arg-related variables in a struct
2020-01-30 18:07:02 -05:00
Benjamin Feng
b077f3ab7d
Promoted "leak_count_allocator" to the main testing.allocator
2020-01-29 22:22:00 -06:00
Benjamin Feng
aa9caf5064
Create leak_count_allocator
2020-01-29 14:37:01 -06:00
Benjamin Feng
4d134a01f5
Move debug.global_allocator to testing.allocator
2020-01-29 12:21:29 -06:00
Andrew Kelley
9dffc369f1
Merge remote-tracking branch 'origin/master' into layneson-cpus_and_features
2020-01-25 23:25:29 -05:00
Nathan Michaels
0000de4fee
Handle {s} format for C strings. ( #4219 )
...
* Handle {s} format for C strings.
* Fix "cstr" test to actually use c strings.
2020-01-20 12:23:43 -05:00
Andrew Kelley
a867b43366
progress towards merging
...
see BRANCH_TODO file
2020-01-19 20:54:04 -05:00
LemonBoy
7e5e767ba0
Fix regression in char printing
...
Closes #4014
2020-01-16 12:17:16 -05:00
LemonBoy
e81b505960
Use the correct calling convention for AEABI intrinsics
2020-01-07 13:42:47 -05:00
Andrew Kelley
25051832b3
std.fmt.format: add helpful compile error for non-tuple args
2019-12-31 13:13:13 -05:00
Vexu
21bc3353b8
translate-c-2 character literals and more test fixes
2019-12-18 01:04:01 +02:00
LemonBoy
19ddbd9e9e
Make sure the address is aligned for intToPtr ops
...
Closes #773
2019-12-15 14:41:05 -05:00
Robin Voetter
8c096707b7
Additional replacements of @typeOf with @TypeOf
2019-12-10 11:09:41 -05:00
Robin Voetter
4b4fbe3887
Replace @typeOf with @TypeOf in all zig source
...
This change was mostly made with `zig fmt` and this also modified some whitespace. Note that in some files, `zig fmt` produced incorrect code, so the change was made manually.
2019-12-10 11:09:41 -05:00
Andrew Kelley
a3f6a58c77
remove var args from the language
...
closes #208
2019-12-09 15:27:27 -05:00
Andrew Kelley
5d82744f1c
ability to give comptime and non-comptime types to same parameter
2019-12-09 13:30:53 -05:00
Andrew Kelley
8b2622cdd5
std.fmt.format: tuple parameter instead of var args
2019-12-08 22:53:51 -05:00
Andrew Kelley
bef3769bb7
std.fmt.ParseUnsignedError is now public
2019-12-04 18:44:22 -05:00