Commit Graph

538 Commits

Author SHA1 Message Date
jD91mZM2 edb95246d4 Fix bug in strncasecmp 2018-10-13 16:55:21 +02:00
jD91mZM2 63882684b2 Implement almost all of printf 2018-10-13 14:20:54 +02:00
jD91mZM2 1f3154b45c Invoke constructors and destructors
Huge thanks to @xtibor for both discovering that this was still an issue, and also providing information with how to fix it
2018-10-11 16:59:49 +02:00
jD91mZM2 f516ff72d8 Merge branch 'regoff_t' into 'master'
Move regoff_t to regex.h

See merge request redox-os/relibc!168
2018-10-09 14:49:53 +00:00
jD91mZM2 0469c0c2c6 Add tests for memcmp and fix a teeny tiny bug 2018-10-09 16:47:57 +02:00
Tibor Nagy 0f5fa8c9d4 Move regoff_t to regex.h 2018-10-09 16:43:34 +02:00
jD91mZM2 3f4fbf9084 Merge branch 'feature/optimise-memcmp' into 'master'
Optimise `memcmp` for speed

See merge request redox-os/relibc!167
2018-10-09 14:20:06 +00:00
Benedikt Rascher-Friesenhausen 8e2b7c11b4 Replace i32 with c_int in memcmp
As per the comments from jD91mZM2 on the merge request.
2018-10-07 17:40:30 +02:00
jD91mZM2 91675b5bc8 realpath on redox: don't forget the nul terminator 2018-10-07 15:12:41 +02:00
jD91mZM2 fba3bf5161 Merge branch 'assert' into 'master'
Make assert more hygienic

See merge request redox-os/relibc!166
2018-10-07 12:50:56 +00:00
jD91mZM2 758f681590 Implement scandir 2018-10-07 14:43:54 +02:00
jD91mZM2 3c8cb95b80 Cleanup strcasecmp 2018-10-07 13:02:05 +02:00
jD91mZM2 028378b8bf Fix double close
Accidentally made file references not count as references and therefore also close the fd. My bad.
2018-10-07 10:54:37 +02:00
jD91mZM2 418a960f3b Implement realpath 2018-10-07 10:32:51 +02:00
Benedikt Rascher-Friesenhausen e10a346356 Optimise memcmp for speed
I saw that in other parts of the `string` module iterations over `usize` were
used to increase iteration speed.  In this patch I apply the same logic to
`memcmp`.  With this change I measured a 7x speedup for `memcmp` on a ~1MB
buffer (comparing two buffers with the same content) on my machine (i7-7500U),
but I did not do any real world benchmarking for the change.  The increase in
speed comes with the tradeoff of both increased complexity and larger generated
assembly code for the function.

I tested the correctness of the implementation by generating two randomly filled
buffers and comparing the `memcmp` result of the old implementation against this
new one.

I ran the tests and currently currently three of them fail:
  - netdb (fails to run)
  - stdio/rename (fails to verify)
  - unistd/pipe (fails to verify)

They do so though regardless of this change, so I don't think they are related.
2018-10-07 10:25:19 +02:00
jD91mZM2 26d629674a Implement strcasestr 2018-10-06 17:37:50 +02:00
jD91mZM2 9d56ce42c6 Implement timer* macros, and GNU's getopt_long 2018-10-06 16:46:35 +02:00
Tibor Nagy 614b2f5103 Make assert more hygienic 2018-10-06 14:55:06 +02:00
jD91mZM2 baddbb98d5 Don't reinvent the wheel in strings.h 2018-10-05 19:33:41 +02:00
jD91mZM2 1acc2a1a32 Initial regex.h implementation 2018-10-05 18:07:43 +02:00
jD91mZM2 dfa3845c33 Make fread/fwrite retry their respective operations 2018-10-02 18:47:42 +02:00
jD91mZM2 6dcc8ee8d9 Implement strtof 2018-10-02 18:47:42 +02:00
Tibor Nagy db4452e98b Add termios baud rate functions 2018-09-29 22:52:12 +02:00
jD91mZM2 dd711f4dee Fix bug in fread
Bug discovered by @xTibor. Test and input data provided by him.
2018-09-29 15:04:58 +02:00
jD91mZM2 0451fac66c Delete RawFile in favor of File 2018-09-26 19:40:39 +02:00
jD91mZM2 4f187efc9b Change BUFSIZ type to work with cbindgen 2018-09-26 18:44:04 +02:00
jD91mZM2 243ce18ecd Implement ftell 2018-09-26 17:48:46 +02:00
jD91mZM2 21559bb503 Fix redox compilation 2018-09-26 16:40:23 +02:00
jD91mZM2 afc1ff134a Rewrite IO to use core-io library 2018-09-26 16:13:09 +02:00
Jeremy Soller aff35892be Add fs module 2018-09-24 21:40:40 -06:00
Jeremy Soller 7f14fcdee0 Remove c_str functions, replace with CStr 2018-09-24 21:08:29 -06:00
Jeremy Soller ef9fee5a2b Prepare for use of Write trait by renaming Write to WriteByte 2018-09-24 20:31:06 -06:00
Jeremy Soller 9eef8d7e2d Add core_io 2018-09-24 20:19:37 -06:00
jD91mZM2 d659377b24 VERY basic crti/crtn 2018-09-23 21:30:13 +02:00
jD91mZM2 6d99915154 Use RAII for file locking in stdio 2018-09-23 20:40:48 +02:00
Jeremy Soller 7e4a60f78b Fix possible deadlocks 2018-09-23 11:58:09 -06:00
jD91mZM2 658dc34d30 A few I/O related fixes 2018-09-23 17:28:42 +02:00
jD91mZM2 1e9dbfdf62 Use cbitset crate 2018-09-22 17:26:58 +02:00
jD91mZM2 2a8bc8331b Fix select return value 2018-09-22 11:12:31 +02:00
Tom Almeida b43299642b Fix buffering issue with large output through stdio 2018-09-21 15:21:39 +02:00
jD91mZM2 29b4c19d6e fixup! Untested fix for pwd.h on redox 2018-09-21 13:13:17 +02:00
jD91mZM2 64acfbb8e3 Format 2018-09-21 08:04:38 +02:00
jD91mZM2 9e9b850b90 Untested fix for pwd.h on redox 2018-09-21 08:04:06 +02:00
Jeremy Soller a0b4e21bbb Comment out SO_ERROR so it is not used 2018-09-20 15:41:59 -07:00
Jeremy Soller a567197b54 enable getsockopt and setsockopt 2018-09-20 14:39:58 -07:00
Jeremy Soller 9dbf49fdcd Format and add O_CLOEXEC where appropriate 2018-09-18 19:52:47 -06:00
jD91mZM2 2aa7597a2b Fix network problem with netdb on redox 2018-09-18 19:14:28 +02:00
Jeremy Soller 043ecf2cf9 Replace a println with a trace 2018-09-18 08:53:37 -06:00
Jeremy Soller 290ecb3e46 - fsync when tracing
- clean up trace macro some
2018-09-18 08:49:44 -06:00
Jeremy Soller 60f00508d3 Restore errno if trace_expr is successful 2018-09-18 08:34:06 -06:00