Initial version of hall.scm and the things it pulls in

This commit is contained in:
Christine Lemmer-Webber 2022-08-04 13:48:19 -04:00
parent 1046b9d655
commit a4e529db26
No known key found for this signature in database
GPG key ID: 4BC025925FF8F4D3
4 changed files with 182 additions and 0 deletions

65
.gitignore vendored Normal file
View file

@ -0,0 +1,65 @@
*.eps
*.go
*.log
*.pdf
*.png
*.tar.xz
*.tar.gz
*.tmp
*~
.#*
\#*\#
,*
/ABOUT-NLS
/INSTALL
/aclocal.m4
/autom4te.cache
/build-aux/ar-lib
/build-aux/compile
/build-aux/config.guess
/build-aux/config.rpath
/build-aux/config.sub
/build-aux/depcomp
/build-aux/install-sh
/build-aux/mdate-sh
/build-aux/missing
/build-aux/test-driver
/build-aux/texinfo.tex
/config.status
/configure
/doc/*.1
/doc/.dirstamp
/doc/contributing.*.texi
/doc/*.aux
/doc/*.cp
/doc/*.cps
/doc/*.fn
/doc/*.fns
/doc/*.html
/doc/*.info
/doc/*.info-[0-9]
/doc/*.ky
/doc/*.pg
/doc/*.toc
/doc/*.t2p
/doc/*.tp
/doc/*.vr
/doc/*.vrs
/doc/stamp-vti
/doc/version.texi
/doc/version-*.texi
/m4/*
/pre-inst-env
/test-env
/test-tmp
/tests/*.trs
GPATH
GRTAGS
GTAGS
Makefile
Makefile.in
config.cache
stamp-h[0-9]
tmp
/.version
/doc/stamp-[0-9]

47
HACKING Normal file
View file

@ -0,0 +1,47 @@
# -*- mode: org; coding: utf-8; -*-
#+TITLE: Hacking prescheme
* Contributing
By far the easiest way to hack on prescheme is to develop using Guix:
#+BEGIN_SRC bash
# Obtain the source code
cd /path/to/source-code
guix environment -l guix.scm
# In the new shell, run:
hall dist --execute && autoreconf -vif && ./configure && make check
#+END_SRC
You can now hack this project's files to your heart's content, whilst
testing them from your `guix environment' shell.
To try out any scripts in the project you can now use
#+BEGIN_SRC bash
./pre-inst-env scripts/${script-name}
#+END_SRC
If you'd like to tidy the project again, but retain the ability to test the
project from the commandline, simply run:
#+BEGIN_SRC bash
./hall clean --skip "scripts/${script-name},pre-inst-env" --execute
#+END_SRC
** Manual Installation
If you do not yet use Guix, you will have to install this project's
dependencies manually:
- autoconf
- automake
- pkg-config
- texinfo
- guile-hall
Once those dependencies are installed you can run:
#+BEGIN_SRC bash
hall dist -x && autoreconf -vif && ./configure && make check
#+END_SRC

30
guix.scm Normal file
View file

@ -0,0 +1,30 @@
(use-modules
(guix packages)
((guix licenses) #:prefix license:)
(guix download)
(guix build-system gnu)
(gnu packages)
(gnu packages autotools)
(gnu packages guile)
(gnu packages guile-xyz)
(gnu packages pkg-config)
(gnu packages texinfo))
(package
(name "guile-prescheme")
(version "0.1")
(source "./guile-prescheme-0.1.tar.gz")
(build-system gnu-build-system)
(arguments `())
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("pkg-config" ,pkg-config)
("texinfo" ,texinfo)))
(inputs `(("guile" ,guile-3.0)))
(propagated-inputs `())
(synopsis "")
(description "")
(home-page "")
(license license:gpl3+))

40
hall.scm Normal file
View file

@ -0,0 +1,40 @@
(hall-description
(name "prescheme")
(prefix "guile")
(version "0.1-pre")
(author "Andrew Whatson")
(copyright (2022))
(synopsis "Guile port of Pre-Scheme, a Scheme-like systems language")
(description "guile-prescheme is a port of the Pre-Scheme compiler from
Scheme 48. Pre-Scheme is a statically typed dialect of Scheme which
offers the efficiency and low-level machine access of C while
retaining many of the desirable features of Scheme.")
(home-page "https://gitlab.com/flatwhatson/guile-prescheme")
(license bsd-3)
(dependencies `())
(skip ())
(files (libraries
((directory
"prescheme"
((scheme-file "prescheme")
(scheme-file "s48-defrecord")
(scheme-file "syntax-utils")
(scheme-file "ps-record-types")
(scheme-file "platform")
(scheme-file "record-discloser")
(scheme-file "ps-defenum")
(scheme-file "s48-defenum")
(scheme-file "memory")
(scheme-file "scheme48")))))
(tests ((directory "tests" ())))
(programs ((directory "scripts" ())))
(documentation
((directory "doc" ((texi-file "prescheme")))
(text-file "COPYING")
(text-file "HACKING")
(symlink "README" "README.org")
(org-file "README")))
(infrastructure
((scheme-file "hall")
(text-file ".gitignore")
(scheme-file "guix")))))