redox-os issueshttps://gitlab.redox-os.org/groups/redox-os/-/issues2018-07-13T18:59:40Zhttps://gitlab.redox-os.org/redox-os/relibc/-/issues/67tests don't call relibc implementation of string functions.2018-07-13T18:59:40ZJeremy Sollertests don't call relibc implementation of string functions.*Created by: jrraymond*
I was implementing `strpbrk`, which calls `strcspn`. When called from inside my implementation of `strpbrk`, `strcspn` was crashing at `src/string/src/lib.rs:140: attempt to shift left with overflow` on the input...*Created by: jrraymond*
I was implementing `strpbrk`, which calls `strcspn`. When called from inside my implementation of `strpbrk`, `strcspn` was crashing at `src/string/src/lib.rs:140: attempt to shift left with overflow` on the inputs `hello, worlde`, `aeiouy`. However, when I called `strcspn` from the tests with the same inputs it worked.
So I commented out almost the entire implementaiton of `strcspn` so it would always return `0`. But when I run the tests `strcspn` still produces the correct results.
I also commented out most of the implementation of `strspn` and `strchr`, and they still produce the correct results. So I added back the `uniplemented!` macro and the tests still work.
I wonder if this is just some quirk of my system?https://gitlab.redox-os.org/redox-os/relibc/-/issues/70Provide crt1.o, crti.o, crtn.o2019-05-08T12:35:15ZJeremy SollerProvide crt1.o, crti.o, crtn.o*Created by: boomshroom*
While we have a crt0, when compiling, GCC expects to find the aforementioned files as well. One thing to note is that they all act as individual object files whereas cargo outputs archive files (libc.a, libcrt0....*Created by: boomshroom*
While we have a crt0, when compiling, GCC expects to find the aforementioned files as well. One thing to note is that they all act as individual object files whereas cargo outputs archive files (libc.a, libcrt0.a). An extra complication is that these files depend on special sections and are in an unusual format.
An alternative is just to tell users to compile as though they weren't using a libc and include libc.a and libcrt0.a manually.https://gitlab.redox-os.org/redox-os/relibc/-/issues/55stdio: Implement the snprintf and sprintf functions2018-07-13T18:59:40ZDan Robertsonstdio: Implement the snprintf and sprintf functionsThe [sprintf] functions have not been implemented yet.
- [x] `sprintf`
- [x] `snprintf`
Note: The stub functions have not been implemented yet.
[sprintf]: http://pubs.opengroup.org/onlinepubs/7908799/xsh/sprintf.htmlThe [sprintf] functions have not been implemented yet.
- [x] `sprintf`
- [x] `snprintf`
Note: The stub functions have not been implemented yet.
[sprintf]: http://pubs.opengroup.org/onlinepubs/7908799/xsh/sprintf.htmlhttps://gitlab.redox-os.org/redox-os/relibc/-/issues/64Functions defined in header files2018-10-07T13:46:39ZJeremy SollerFunctions defined in header files*Created by: Arcterus*
We really shouldn’t be defining functions in header files (_e.g._ `include/bits/stdio.h`). At a minimum, if we keep the definitions in the headers for some reason, we should mark them as `static`.*Created by: Arcterus*
We really shouldn’t be defining functions in header files (_e.g._ `include/bits/stdio.h`). At a minimum, if we keep the definitions in the headers for some reason, we should mark them as `static`.https://gitlab.redox-os.org/redox-os/relibc/-/issues/57fcntl: Ensure that the open oflag constants are exported into fcntl.h2018-07-13T18:59:40ZDan Robertsonfcntl: Ensure that the open oflag constants are exported into fcntl.hCurrently the constants defined in the `sys` module of `fcntl` ([src/fcntl/src/linux.rs] and [src/fcntl/src/redox.rs]) are not exported into the generated `fcntl.h`.
[src/fcntl/src/linux.rs]: https://github.com/redox-os/relibc/blob/ma...Currently the constants defined in the `sys` module of `fcntl` ([src/fcntl/src/linux.rs] and [src/fcntl/src/redox.rs]) are not exported into the generated `fcntl.h`.
[src/fcntl/src/linux.rs]: https://github.com/redox-os/relibc/blob/master/src/fcntl/src/linux.rs
[src/fcntl/src/redox.rs]: https://github.com/redox-os/relibc/blob/master/src/fcntl/src/redox.rshttps://gitlab.redox-os.org/redox-os/relibc/-/issues/53unistd: Implement exec functions2019-07-09T02:20:44ZDan Robertsonunistd: Implement exec functionsThe [exec] functions in [unistd] are currently unimplemented.
- [x] `execl`
- [x] `execv`
- [x] `execle`
- [x] `execve`
- [ ] `execlp`
- [ ] `execvp`
Note that `execl`, `execle`, and `execlp` will require the use of a `va_list`. ...The [exec] functions in [unistd] are currently unimplemented.
- [x] `execl`
- [x] `execv`
- [x] `execle`
- [x] `execve`
- [ ] `execlp`
- [ ] `execvp`
Note that `execl`, `execle`, and `execlp` will require the use of a `va_list`. See `printf`, `open`, and `fcntl` for existing functions that use `va_list`.
[unistd]: http://pubs.opengroup.org/onlinepubs/009695399/basedefs/unistd.h.html
[exec]: http://pubs.opengroup.org/onlinepubs/009695399/functions/exec.htmlhttps://gitlab.redox-os.org/redox-os/relibc/-/issues/51string: Implement the mem functions2018-07-02T20:11:44ZDan Robertsonstring: Implement the mem functionsMetabug for tracking the implementation of the commonly used `mem*` functions in [string.h]
- [x] [memccpy]
- [x] [memchr]
- [ ] [memcmp]
- [ ] [memcpy]
- [ ] [memmove]
- [ ] [memset]
The [musl string implementation] mig...Metabug for tracking the implementation of the commonly used `mem*` functions in [string.h]
- [x] [memccpy]
- [x] [memchr]
- [ ] [memcmp]
- [ ] [memcpy]
- [ ] [memmove]
- [ ] [memset]
The [musl string implementation] might be a reasonable reference.
Open questions:
- How will this work with the compiler builtin?
[memccpy]: http://pubs.opengroup.org/onlinepubs/7908799/xsh/memccpy.html
[memchr]: http://pubs.opengroup.org/onlinepubs/7908799/xsh/memchr.html
[memcmp]: http://pubs.opengroup.org/onlinepubs/7908799/xsh/memcmp.html
[memcpy]: http://pubs.opengroup.org/onlinepubs/7908799/xsh/memcpy.html
[memmove]: http://pubs.opengroup.org/onlinepubs/7908799/xsh/memmove.html
[memset]: http://pubs.opengroup.org/onlinepubs/7908799/xsh/memset.html
[string.h]: http://pubs.opengroup.org/onlinepubs/7908799/xsh/string.h.html
[musl string implementation]: https://git.musl-libc.org/cgit/musl/tree/src/stringhttps://gitlab.redox-os.org/redox-os/relibc/-/issues/37stdlib: Implement strto functions2018-07-13T18:59:41ZDan Robertsonstdlib: Implement strto functionsThe following string conversion functions are currently unimplemented.
- [x] [strtod]
- [x] [strtol]
- [ ] [strtoul]
- [x] [atof]
In addition to checking out the spec, it may help to check out the relevant [implementation in...The following string conversion functions are currently unimplemented.
- [x] [strtod]
- [x] [strtol]
- [ ] [strtoul]
- [x] [atof]
In addition to checking out the spec, it may help to check out the relevant [implementation in musl](https://git.musl-libc.org/cgit/musl/tree/src/stdlib).
[strtod]: http://pubs.opengroup.org/onlinepubs/007908799/xsh/strtod.html
[strtol]: http://pubs.opengroup.org/onlinepubs/007908799/xsh/strtol.html
[strtoul]: http://pubs.opengroup.org/onlinepubs/007908799/xsh/strtoul.html
[atof]: http://pubs.opengroup.org/onlinepubs/007908799/xsh/atof.htmlJeremy SollerJeremy Sollerhttps://gitlab.redox-os.org/redox-os/relibc/-/issues/36fcntl: implement the fcntl function2018-07-13T18:59:41ZDan Robertsonfcntl: implement the fcntl functionThe `fcntl` function is currently unimplemented. Both linux and redox support the fcntl syscall.
relevant files:
- `src/fcntl/src/lib.rs`: Generic platform independent code
- `src/platform/<os>/lib.rs`: Platform dependent wrapper ...The `fcntl` function is currently unimplemented. Both linux and redox support the fcntl syscall.
relevant files:
- `src/fcntl/src/lib.rs`: Generic platform independent code
- `src/platform/<os>/lib.rs`: Platform dependent wrapper around the syscall
spec:
- http://pubs.opengroup.org/onlinepubs/7908799/xsh/fcntl.htmlhttps://gitlab.redox-os.org/redox-os/relibc/-/issues/32Implement wctype.h2023-03-28T12:58:18ZDan RobertsonImplement wctype.hImplement the `wctype` following http://pubs.opengroup.org/onlinepubs/7908799/xsh/wctype.h.html
- Types
- [x] `wctype_t`
- Functions
- [x] `iswalnum`
- [x] `iswalpha`
- [x] `iswcntrl`
- [x] `iswdigit`
- [x] `iswgraph...Implement the `wctype` following http://pubs.opengroup.org/onlinepubs/7908799/xsh/wctype.h.html
- Types
- [x] `wctype_t`
- Functions
- [x] `iswalnum`
- [x] `iswalpha`
- [x] `iswcntrl`
- [x] `iswdigit`
- [x] `iswgraph`
- [x] `iswlower`
- [x] `iswprint`
- [x] `iswpunct`
- [x] `iswspace`
- [x] `iswupper`
- [x] `iswxdigit`
- [x] `iswctype`
- [ ] `towctrans` (stub missing)
- [x] `towlower`
- [x] `towupper`
- [ ] `wctrans` (stub missing)
- [x] `wctype`
See https://git.musl-libc.org/cgit/musl/tree/src/ctype for a good reference implementation.https://gitlab.redox-os.org/redox-os/relibc/-/issues/31Finish up ascii functions in ctype2018-07-13T18:59:41ZDan RobertsonFinish up ascii functions in ctype - [ ] `iscntrl`
- [ ] `isgraph`
- [ ] `isprint`
- [ ] `ispunct`
- [ ] `isxdigit`
- [ ] `toascii`
- [ ] `isblank` (No `unimplemented` stub yet)
See https://git.musl-libc.org/cgit/musl/tree/src/ctype for a good reference im... - [ ] `iscntrl`
- [ ] `isgraph`
- [ ] `isprint`
- [ ] `ispunct`
- [ ] `isxdigit`
- [ ] `toascii`
- [ ] `isblank` (No `unimplemented` stub yet)
See https://git.musl-libc.org/cgit/musl/tree/src/ctype for a good reference implementation.https://gitlab.redox-os.org/redox-os/relibc/-/issues/24Add readme2018-06-24T20:17:50ZJeremy SollerAdd readmeBefore posting this to the public, we should add a readme fileBefore posting this to the public, we should add a readme filehttps://gitlab.redox-os.org/redox-os/relibc/-/issues/22stdio using File2018-07-13T18:59:41ZJeremy Sollerstdio using File*Created by: pi-pi3*
The C standard doesn't specify any layout of the `FILE` struct and everywhere it's used, it's only used as a pointer `FILE *`. Would it be fine to make `FILE` a type alias of the Rust `File` type and define the `f`-...*Created by: pi-pi3*
The C standard doesn't specify any layout of the `FILE` struct and everywhere it's used, it's only used as a pointer `FILE *`. Would it be fine to make `FILE` a type alias of the Rust `File` type and define the `f`-family io operations in terms of `std::fs::File`?https://gitlab.redox-os.org/redox-os/relibc/-/issues/17Create a rustfmt.toml and add to CI2018-08-09T03:12:38ZDan RobertsonCreate a rustfmt.toml and add to CIA code style should be picked and a `rustfmt.toml` should be generated for this project. Then we should add a line to the `.travis.yml` script with something like the following.
```
- cargo fmt -- --write-mode=diff
```
**NB**: ...A code style should be picked and a `rustfmt.toml` should be generated for this project. Then we should add a line to the `.travis.yml` script with something like the following.
```
- cargo fmt -- --write-mode=diff
```
**NB**: There are a few things that make this a bit more difficult than running `cargo fmt` at the moment.
- A submodule e.g. `cbindgen`, `ralloc`, or `va_list` may not be formatted the same as this project.
- We currently visually align constants. AFAIK there is not a way to make rustfmt do this.https://gitlab.redox-os.org/redox-os/relibc/-/issues/4Is linux support on the radar?2018-08-09T03:12:38ZDan RobertsonIs linux support on the radar?The first priority should obviously be RedoxOS, but is there an interest in also adding support for linux? I was thinking along the lines of ion. It might help us to get more contributors, and could make some testing easier.The first priority should obviously be RedoxOS, but is there an interest in also adding support for linux? I was thinking along the lines of ion. It might help us to get more contributors, and could make some testing easier.https://gitlab.redox-os.org/redox-os/relibc/-/issues/3Avoid duplicating work done by rusl2020-02-12T22:59:06ZIan Douglas ScottAvoid duplicating work done by rusl[Rusl](https://github.com/anp/rusl) has different goals since it targets Linux. But some things, like the string code, should be fairly portable. I'm not sure how best to coordinate, but relibc should use that code (if it works, and seem...[Rusl](https://github.com/anp/rusl) has different goals since it targets Linux. But some things, like the string code, should be fairly portable. I'm not sure how best to coordinate, but relibc should use that code (if it works, and seems like a good implementation) and contribute relevant improvements back to rusl.https://gitlab.redox-os.org/redox-os/binutils/-/issues/1Strings Rewrite2018-06-16T04:21:14ZJeremy SollerStrings Rewrite*Created by: ddworken*
No idea if you are interested, but when I was first getting started with Rust I wrote [my own implementation of strings in rust](https://github.com/ddworken/RStrings). It already has support for Unicode, multiple ...*Created by: ddworken*
No idea if you are interested, but when I was first getting started with Rust I wrote [my own implementation of strings in rust](https://github.com/ddworken/RStrings). It already has support for Unicode, multiple threads, and a number of other helpful options (along with all of the other options that strings offers by default).
If you are interested I would be more than happy to re-license it as MIT so it can be merged.
I'll admit the code quality isn't great (if we're merging it I'll spend some time cleaning it up!) but it will save you some work with adding all the extra features.
https://gitlab.redox-os.org/redox-os/binutils/-/issues/5strings: Sort output to deal with false positives2019-12-09T18:27:58ZJeremy Sollerstrings: Sort output to deal with false positives*Created by: xTibor*
**The problem:**
Running `strings` on files with embedded media resources (GUI executables, video game ROMs, etc.) yields a lot of false positives. That garbage data makes harder to spot meaningful strings in the o...*Created by: xTibor*
**The problem:**
Running `strings` on files with embedded media resources (GUI executables, video game ROMs, etc.) yields a lot of false positives. That garbage data makes harder to spot meaningful strings in the output.
**Possible solution:**
`strings` could sort its output by doing an N-gram frequency analysis on each of the results to determine their meaningfulness and use that metric as a sort key. So English-like results would rise to the top and garbage would sink to the bottom of the output.https://gitlab.redox-os.org/redox-os/binutils/-/issues/4Use stderr for errors2018-06-16T04:21:14ZJeremy SollerUse stderr for errors*Created by: ticki*
*Created by: ticki*
https://gitlab.redox-os.org/redox-os/binutils/-/issues/3Reuse the stdout locks.2018-06-16T04:21:14ZJeremy SollerReuse the stdout locks.*Created by: ticki*
*Created by: ticki*