Commit Graph

856 Commits

Author SHA1 Message Date
jD91mZM2 3c8cb95b80 Cleanup strcasecmp 2018-10-07 13:02:05 +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 afc1ff134a Rewrite IO to use core-io library 2018-09-26 16:13:09 +02: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
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
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
jD91mZM2 10a7944aef Avoid duplicate code 2018-09-18 08:08:55 +02:00
Jeremy Soller c2f4c1dbc9 Add trace macro and feature 2018-09-17 21:29:40 -06:00
jD91mZM2 d0a4f2f845 Delete a bunch of leftover constants 2018-09-17 18:44:33 +02:00
Jeremy Soller 76959416bb Add missing open flags 2018-09-17 09:59:41 -06:00
Jeremy Soller 716ea87bb4 Format 2018-09-17 09:46:47 -06:00
Jeremy Soller dfb07e473a Comment out functions not implemented by Redox 2018-09-15 12:31:40 -06:00
Jeremy Soller f661d5d1c0 Fix use of uninitialized memory 2018-09-15 11:14:51 -06:00
Jeremy Soller 706a8de7a0 Call _init and _fini 2018-09-15 11:14:05 -06:00
jD91mZM2 882b86e282 Revert 'fix netdb on names with spaces', just ignore invalid lines 2018-09-05 19:24:10 +02:00
jD91mZM2 49ccf364c2 Fix netdb getservbyname on names with spaces 2018-09-05 17:38:59 +02:00
jD91mZM2 eb6ddac1eb Unify gmtime and localtime code
Apparently gmtime was already implemented when I made localtime, so we had two different things written from scratch. We decided in the relibc channel of the Redox OS Mattermost chat to use my code, as it is more extensively tested and perhaps is clearer in how it works.
2018-09-05 15:52:25 +02:00
jD91mZM2 59d74e194d Fix CI 2018-09-04 15:31:43 +02:00
thedarkula e688d9c4d1 Updated url, implemented missing functions in header/arpa_inet/mod.rs 2018-09-04 02:59:59 +01:00
jD91mZM2 26f953e11f Run fmt.sh 2018-09-02 08:17:52 +02:00
jD91mZM2 6fe3e05ea0 Delete duplicate types
Now that we use cbindgen differently :D
2018-09-02 08:17:15 +02:00
Paul Sajna 07eb658a8a Netdb 2018-09-01 14:00:18 +00:00
Jeremy Soller b52c822150 Update Redox module to use CStr 2018-08-27 08:44:42 -06:00
Jeremy Soller c911facca6 Make pal functions take cstr 2018-08-27 08:33:12 -06:00
Jeremy Soller 16373257b0 format 2018-08-27 07:12:37 -06:00