summaryrefslogtreecommitdiff
path: root/CHANGELOG.txt
blob: db401a17e1be7d3507afe8f6e2b2204824f93713 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
| B

- Add function foreach: Run function on each element;
- Use directive globl instead of global in assembly;
- Use SIZE_MAX instead of negative one;
- Remove asflags from makefile;
- Don't require GNU Make;
- Change the type of fndbyte: (size_t (void const *,size_t,uint_least8_t)) => (size_t (void const *,size_t,unsigned char));
- Change the type of memfill: (void (void *,size_t,uint_least8_t)) => (void (void *,size_t,unsigned char));
- Update readme (add documentation for some functions);
- Update susinfo symbol names;

| C

- Fix install target;
- Remove type literals;

| B

- memdup: Use sus_unlikely instead of __builtin_expect;
- Rename project to zap (from rgo);
- Remove global license file (useless with MPL);
- Migrate test to C++ (for reasons which will be revealed later);
- Restructure headers;
- Add include guards to the private header;
- Add attribute useret to functions;
- Require GNU Make;
- Compile position independent code;
- Update readme;

| A

- Installation script: Create installation directories if they don't already exist;
- Don't use susinfo types;
- Remove declarations for getbinver;
- Add memcmp, strcmp;
- Update makefile;
- Reimplement fastimpl as a global variable;
- Change type of fastimpl (uint_least8_t => _Bool);
- Change the return types of memeq and streq (uint_least8_t => _Bool);
- Enable compilation warnings;
- Add type literals (like those from susinfo);
- Use *int_leastN_t instead of *intN_t;
- Remove restrict-qualifications;
- Remove C++ version of memdup;

| 9

- Fix readme not reflecting that we now support all platforms;
- Rename the 'Building' section in the readme to 'Building & Installing';

| 8

- Use susinfo;
- Implement algorithms in C (with inline assembly on supported platforms);
- Add comments;
- Fix strcpy counting the null-terminator;
- Fix strcpy taking a pointer-to-const as the output;
- Implement strcpy, streq in IA-32;
- Optimise streq: Only use the lower eight bytes for the return value;
- Optimise strlen: Use fewer registers;
- Fix memfill taking a pointer-to-const as the output;
- Fix strfill taking a pointer-to-const as the output;
- Update readme;
- Add private header;
- Remove assembly-specific version macro;

| 7

- Relicense under MPL2;
- Instead of throwing an error, define a macro when the header is included on an unsupported platform;

| 6

- Remove stupid debug return from memcpy;

| 5

- Fix compile flags not indicating new relative header location;

| 4

- Add install target to makefile;
- Merge makefiles;

| 3

- Enable compiler optimisations;
- Optimise memfill;
- Optimise memcpy: Use movdqu instead of movups (AMD64, i386 SSE2), add 256-bit copy (AMD64 AVX, i386 AVX);
- Update makefile;
- Implement fndbyte, fndchr, strlen in IA-32;
- Fix bug in test;
- Update readme;
- Add new planned architectures: Motorola 68000, Power ISA, RISC-V, Sparc;

| 2

- Fix target purge in makefile not being labeled phony;
- Add machien architecture check in header;
- Implement memcpy, memeq, memfill in IA-32;
- Fix some incorrect comments;
- Use a different register order for temporaries and optimise register usage;
- Fix bug in memeq: Should jump if zero, not if equal;
- Update readme;

| 1

- Fix indentation in license notices;
- Fix incorrect declaration for rgo_strcpy, rgo_streq;
- Implement fndbyte,memeq,strcpy,streq;
- Add new tests;
- Fix bug in memcpy: Should jump if zero, not if equal;
- Remove declaration for rgo_memcmp;
- Add macro rgo_ver, defined to the current version number;
- Add assembly declaration for rgo_fndchr, rgo_fndbyte;
- Fix some incorrect comments;
- Use movups instead of movdqu in memcpy;

| 0

- Initial.