Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[libc][c11] implement ctime #86567

Closed
nickdesaulniers opened this issue Mar 25, 2024 · 13 comments · Fixed by #107285
Closed

[libc][c11] implement ctime #86567

nickdesaulniers opened this issue Mar 25, 2024 · 13 comments · Fixed by #107285
Assignees
Labels
c11 good first issue /~https://github.com/llvm/llvm-project/contribute libc

Comments

@nickdesaulniers
Copy link
Member

@alanzhao1 points out that quake3 uses man 3 ctime. We already support asctime; my guess is that ctime would be similar to implement in terms of LIBC_NAMESPACE::time_utils but for a different input parameter type.

@nickdesaulniers nickdesaulniers added good first issue /~https://github.com/llvm/llvm-project/contribute c11 libc labels Mar 25, 2024
@llvmbot
Copy link
Member

llvmbot commented Mar 25, 2024

Hi!

This issue may be a good introductory issue for people new to working on LLVM. If you would like to work on this issue, your first steps are:

  1. Check that no other contributor has already been assigned to this issue. If you believe that no one is actually working on it despite an assignment, ping the person. After one week without a response, the assignee may be changed.
  2. In the comments of this issue, request for it to be assigned to you, or just create a pull request after following the steps below. Mention this issue in the description of the pull request.
  3. Fix the issue locally.
  4. Run the test suite locally. Remember that the subdirectories under test/ create fine-grained testing targets, so you can e.g. use make check-clang-ast to only run Clang's AST tests.
  5. Create a Git commit.
  6. Run git clang-format HEAD~1 to format your changes.
  7. Open a pull request to the upstream repository on GitHub. Detailed instructions can be found in GitHub's documentation. Mention this issue in the description of the pull request.

If you have any further questions about this issue, don't hesitate to ask via a comment in the thread below.

@llvmbot
Copy link
Member

llvmbot commented Mar 25, 2024

@llvm/issue-subscribers-good-first-issue

Author: Nick Desaulniers (nickdesaulniers)

@alanzhao1 points out that quake3 uses `man 3 ctime`. We already support `asctime`; my guess is that `ctime` would be similar to implement in terms of `LIBC_NAMESPACE::time_utils` but for a different input parameter type.

@llvmbot
Copy link
Member

llvmbot commented Mar 25, 2024

@llvm/issue-subscribers-libc

Author: Nick Desaulniers (nickdesaulniers)

@alanzhao1 points out that quake3 uses `man 3 ctime`. We already support `asctime`; my guess is that `ctime` would be similar to implement in terms of `LIBC_NAMESPACE::time_utils` but for a different input parameter type.

@llvmbot
Copy link
Member

llvmbot commented Mar 25, 2024

@llvm/issue-subscribers-c11

Author: Nick Desaulniers (nickdesaulniers)

@alanzhao1 points out that quake3 uses `man 3 ctime`. We already support `asctime`; my guess is that `ctime` would be similar to implement in terms of `LIBC_NAMESPACE::time_utils` but for a different input parameter type.

@aniplcc
Copy link
Contributor

aniplcc commented Mar 25, 2024

I'd like to implement this.

@nickdesaulniers
Copy link
Member Author

Thanks @aniplcc !

@SharmaRithik
Copy link
Contributor

Can I request any update on this issue?

@aniplcc
Copy link
Contributor

aniplcc commented May 4, 2024

I'm working on it, (a bit busy with exams rn)
It actually involves two more dependencies,
man 3 tzset
and
man 3 localtime
to be implemented as well.

@SharmaRithik
Copy link
Contributor

Thanks for the update. Sounds good! Let me know if you need any help or reviews.

@tszhin-swe
Copy link
Contributor

Hello @aniplcc, are you still working on this? If not, I would be happy to take over.

@SharmaRithik
Copy link
Contributor

This has been up for a while. Thanks @tszhin-swe, please ping here for any questions!

@SharmaRithik SharmaRithik assigned tszhin-swe and unassigned aniplcc Jul 19, 2024
zimirza added a commit to zimirza/llvm-project that referenced this issue Sep 3, 2024
zimirza added a commit to zimirza/llvm-project that referenced this issue Sep 4, 2024
@zimirza
Copy link
Contributor

zimirza commented Sep 4, 2024

I hope it is ok if I created a pull request for this.

@michaelrj-google
Copy link
Contributor

Yes, I'll reassign this issue to you and review your PR soon.

michaelrj-google pushed a commit that referenced this issue Sep 16, 2024
This is an implementation of `ctime` and includes `ctime_r`.

According to documentation, `ctime` and `ctime_r` are defined as the
following:

```c
char *ctime(const time_t *timep);
char *ctime_r(const time_t *restrict timep, char buf[restrict 26]);
```

closes #86567
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c11 good first issue /~https://github.com/llvm/llvm-project/contribute libc
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants