unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Efraim Flashner <efraim@flashner.co.il>
To: guix-devel@gnu.org
Subject: [GSoC] Bourne-shell compiler front-end for Guile
Date: Mon, 21 Mar 2016 14:22:05 +0200	[thread overview]
Message-ID: <20160321142205.5949d36c@debian-netbook> (raw)


[-- Attachment #1.1: Type: text/plain, Size: 396 bytes --]

I'm a student still this year and Guix is the only project I'm considering.

If there's anything I can do/change to make it more clear or thorough I'd
love to have some feedback.

-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #1.2: GSoC_2016_Efraim.txt --]
[-- Type: text/plain, Size: 2905 bytes --]

Write a Bourne-shell compiler front-end for Guile

Efraim Flashner
efraim@flashner.co.il

Who am I?

My name is Efraim, I’m currently living in Jerusalem, Israel. I’m a 3rd year Computer Science student at the Jerusalem College of Technology (Israel has the college/university split). One of my classes was on functional programming, where we covered prolog and lisp. I found the idea of functional programming interesting, and at the time even tried writing small programs using them.

I switched full-time to Linux in 2010, trying out Ubuntu and then switching to Debian, and currently I’m waiting on a blob-free wireless mini-pcie/usb before switching my laptop over to GuixSD. I haven’t had a lot of opportunity in Israel to meet up with Free Software or Linux people, and I’ve worked hard to make up for that by reading lots of online tutorials and experimenting on my machines. I first discovered Guix around June of last year and got involved shortly after.

The Plan:

As it currently stands, looking in gnu/packages/bootstrap/$ARCH/, in addition to guile there’s bash, mkdir, tar and xz. From the manual we have the bootstrapping methodology (https://www.gnu.org/software/guix/manual/html_node/Bootstrapping.html) which also uses gcc, binutils, coreutils, libc, etc. We also have guix/build/bournish.scm to act as a rescue-shell of sorts and in use in the initrd.

By extending/building upon bournish we can lessen the number of bootstrap binaries that we need to bootstrap a working system AND we get a more powerful shell to use when something™ happens during boot and we’re dropped down to a rescue shell.

Currently the idea on the GSoC idea wiki is to extend bournish so that it can cover everything needed by a configure script. This would of course allow us to decrease the number of binaries we need to get started. Looking at the list of bootstrap binaries, I’m most interested in including enough functionality to remove our dependance on bash which to me seems like a good security idea, as surely we wouldn’t want to have a vulnerability found for our bootstrap version of bash.

The Plan, Part 2:

From now until the start of GSoC I’d work on bettering my knowledge of guile and more closely analyzing the bootstrap process. I’ve had a look at Wikipedia’s entry on Unix shells and I’ll be grabbing the source of a few of them, including ash, scsh and busybox, for inspiration.

For the coding I plan on implementing the different features that we’d need for replacing a number of the bootstrap binaries. As a stretch-goal I’d like to see if it is possible to switch to using it as my user shell in place of bash. Part of this would of course come with deciding on how to use it to replace bootstrap binaries; whether to have additional binary outputs for the different binaries being replaced or to have one monolithic binary.

[-- Attachment #1.3: GSoC_proposal_Efraim_Flashner.pdf --]
[-- Type: application/pdf, Size: 34564 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

             reply	other threads:[~2016-03-21 12:22 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-21 12:22 Efraim Flashner [this message]
2016-03-21 22:27 ` [GSoC] Bourne-shell compiler front-end for Guile Ludovic Courtès
2016-03-22 19:18   ` Efraim Flashner
2016-03-23 14:05     ` Ludovic Courtès
2016-03-23 20:33       ` Efraim Flashner
2016-03-24 13:26         ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160321142205.5949d36c@debian-netbook \
    --to=efraim@flashner.co.il \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).