summaryrefslogtreecommitdiff
path: root/community/gsoc/project_ideas/rust.mdwn
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2023-02-08 00:27:13 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-02-08 00:27:13 +0100
commit5dcebdf9d24ea7ffe35878ab121d5f01e8272947 (patch)
tree1d1f71773d911a2cfb82639d3b31a0fbdd0a66e7 /community/gsoc/project_ideas/rust.mdwn
parent9977d96cc53d4bbd0a8d893f2c400348b039e61c (diff)
Add Rust port gsoc idea
Diffstat (limited to 'community/gsoc/project_ideas/rust.mdwn')
-rw-r--r--community/gsoc/project_ideas/rust.mdwn49
1 files changed, 49 insertions, 0 deletions
diff --git a/community/gsoc/project_ideas/rust.mdwn b/community/gsoc/project_ideas/rust.mdwn
new file mode 100644
index 00000000..ab003f93
--- /dev/null
+++ b/community/gsoc/project_ideas/rust.mdwn
@@ -0,0 +1,49 @@
+[[!meta copyright="Copyright © 2023 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="Porting Rust"]]
+
+The goal of this project is to make the [Rust
+language](https://www.rust-lang.org/) available on GNU/Hurd.
+
+Presumably less work will be needed on the language's frontend itself, but
+rather on the supporting libraries.
+
+
+The Rust language is being used more and more widely, and notably in
+rather fundamental libraries such as librsvg or python-cryptography. It
+is thus more and more pressing for GNU/Hurd to have a compiler for Rust.
+
+The Rust compiler itself is quite portable, but its runtime library
+needs to be ported to the GNU/Hurd system. This essentially consists in
+telling Rust how the standard C library functions can be called.
+
+And example of the main part of such port can be seen for the [VxWorks
+port](https://github.com/rust-lang/libc/blob/master/src/vxworks/mod.rs)
+
+The bulk of such a file can be mostly generated from the libc C
+headers thanks to the bindgen tool, it then needs to be cleaned up and
+integrated into the Rust build infrastructure, some preliminary work had
+already been investigated in that part.
+
+A good level of C programming will be welcome to understand the
+questions of ABI and the libc C functions being bound.
+
+Knowing the Rust language is not required: it can be learnt along the
+way, this can be a good occasion.
+
+Possible mentors: [[Samuel Thibault (youpi)|youpi]]
+
+Exercise: building rust on Linux.
+
+---
+
+[[Open Issue page|open_issues/gccgo]]. [Entry in the GCC
+wiki](http://gcc.gnu.org/wiki/SummerOfCode#gccgo_hurd).