Skip to content

Commit df8df87

Browse files
authored
Merge pull request #478 from yamacir-kit/release-candidate
Release candidate
2 parents 0ea87fe + d7b9034 commit df8df87

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+2824
-2237
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
basis/src
22
build
3+
document
34
include/meevax/unicode
45
src/kernel/version.cpp

CMakeLists.txt

+13
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/include/${PROJECT_NAME}/unicode/upcase.hp
5959

6060
string(TOLOWER ${CMAKE_SYSTEM_NAME} ${PROJECT_NAME}_SYSTEM_NAME)
6161

62+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure/Doxyfile ${CMAKE_CURRENT_SOURCE_DIR}/document/Doxyfile)
6263
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure/README.md ${CMAKE_CURRENT_SOURCE_DIR}/README.md)
6364
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure/version.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/kernel/version.cpp)
6465

@@ -208,6 +209,18 @@ foreach(EACH IN LISTS ${PROJECT_NAME}_TEST_CPP)
208209
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_${FILENAME})
209210
endforeach()
210211

212+
file(GLOB ${PROJECT_NAME}_TEST_SH ${CMAKE_CURRENT_SOURCE_DIR}/test/*.sh)
213+
214+
foreach(EACH IN LISTS ${PROJECT_NAME}_TEST_SH)
215+
get_filename_component(FILENAME ${EACH} NAME_WE)
216+
add_test(
217+
NAME ${FILENAME}
218+
COMMAND ${${PROJECT_NAME}_MEMORY_CHECK_COMMAND}
219+
${${PROJECT_NAME}_MEMORY_CHECK_OPTIONS}
220+
${EACH}
221+
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/meevax)
222+
endforeach()
223+
211224
# ---- Additional Targets ------------------------------------------------------
212225

213226
execute_process(COMMAND nproc OUTPUT_VARIABLE ${PROJECT_NAME}_NPROC)

README.md

+40-31
Original file line numberDiff line numberDiff line change
@@ -21,24 +21,23 @@ Latest release is [here](https://github.com/yamacir-kit/meevax/releases).
2121

2222
### Features
2323

24-
- Traditional SECD machine [[Landin 1964](#Landin-1964)].
25-
- Low-level hygienic macro system, known as *syntactic closures* [[Bawden and
26-
Rees 1988](#Bawden-and-Rees-1988); [Hanson 1991](#Hanson-1991)] and *explicit
27-
renaming* [[Clinger 1991](#Clinger-1991)]. For these, the well-known macro
28-
transformers `sc-macro-transformer`, `rsc-macro-transformer` and
29-
`er-macro-transformer` from the library [`(meevax
30-
macro-transformer)`](./basis/meevax.ss) are provided. Note that these are
31-
non-Scheme standards.
32-
- C++ friendly precise garbage collection [[Kempf 2001a](#Kempf-2001a); [Kempf
33-
2001b](#Kempf-2001b)]
24+
- Traditional SECD machine [[2](#Landin-1964)].
25+
- Low-level hygienic macro system, known as *syntactic closures*
26+
[[4](#Bawden-and-Rees-1988), [6](#Hanson-1991)] and *explicit renaming*
27+
[[5](#Clinger-1991)]. For these, the well-known macro transformers
28+
`sc-macro-transformer`, `rsc-macro-transformer` and `er-macro-transformer`
29+
from the library [`(meevax macro-transformer)`](./basis/meevax.ss) are
30+
provided. Note that these are non-Scheme standards.
31+
- C++ friendly precise garbage collection [[10](#Kempf-2001a),
32+
[11](#Kempf-2001b)]
3433

3534
### Standards
3635

3736
Meevax can be used as an interpreter that supports the Scheme standard specified by the following report:
3837

39-
- Revised<sup>4</sup> Report on the Algorithmic Language Scheme (R4RS) [[Clinger and Rees 1991a](#Clinger-and-Rees-1991a)]
40-
- Revised<sup>5</sup> Report on the Algorithmic Language Scheme (R5RS) [[Kelsey, Clinger and Rees 1998](#Kelsey-Clinger-and-Rees-1998)]
41-
- Revised<sup>7</sup> Report on the Algorithmic Language Scheme (R7RS) [[Shinn, Cowan and Gleckler 2013](#Shinn-Cowan-and-Gleckler-2013)]
38+
- Revised<sup>4</sup> Report on the Algorithmic Language Scheme (R4RS) [[5](#Clinger-and-Rees-1991a)]
39+
- Revised<sup>5</sup> Report on the Algorithmic Language Scheme (R5RS) [[9](#Kelsey-Clinger-and-Rees-1998)]
40+
- Revised<sup>7</sup> Report on the Algorithmic Language Scheme (R7RS) [[13](#Shinn-Cowan-and-Gleckler-2013)]
4241

4342
Procedures for each standard are provided by the following R7RS-style libraries:
4443

@@ -91,7 +90,7 @@ Procedures for each standard are provided by the following R7RS-style libraries:
9190
cmake -B build -DCMAKE_BUILD_TYPE=Release
9291
cd build
9392
make package
94-
sudo apt install build/meevax_0.5.159_amd64.deb
93+
sudo apt install build/meevax_0.5.223_amd64.deb
9594
```
9695

9796
or
@@ -123,9 +122,9 @@ sudo rm -rf /usr/local/share/meevax
123122

124123
| Target Name | Description
125124
|-------------|-------------
126-
| `all` | Build shared-library `libmeevax.0.5.159.so` and executable `meevax`
125+
| `all` | Build shared-library `libmeevax.0.5.223.so` and executable `meevax`
127126
| `test` | Test executable `meevax`
128-
| `package` | Generate debian package `meevax_0.5.159_amd64.deb`
127+
| `package` | Generate debian package `meevax_0.5.223_amd64.deb`
129128
| `install` | Copy files into `/usr/local` directly
130129

131130
## Usage
@@ -149,18 +148,28 @@ See [LICENSE](./LICENSE).
149148

150149
## References
151150

152-
| Authors | Year | Title | Journal Title / Publisher | Pages |
153-
|--------------------------------------------------------------------------------------------------------|:----:|-------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------:|
154-
| <a id="McCarthy-1960" ></a> John McCarthy | 1960 | [Recursive functions of symbolic expressions and their computation by machine, Part I](https://dl.acm.org/doi/10.1145/367177.367199) | [Communications of the ACM, Volume 3, Issue 4](https://dl.acm.org/toc/cacm/1960/3/4) | 184&#x2011;195 |
155-
| <a id="Landin-1964" ></a> P. J. Landin | 1964 | [The Mechanical Evaluation of Expressions](https://academic.oup.com/comjnl/article/6/4/308/375725) | [The Computor Journal, Volume 6, Issue 4](https://academic.oup.com/comjnl/issue/6/4) | 308&#x2011;320 |
156-
| <a id="Henderson-1980" ></a> Peter Henderson | 1980 | [Functional Programming: Application and Implementation](https://archive.org/details/functionalprogra0000hend/mode/2up) | Prentice Hall | |
157-
| <a id="Bawden-and-Rees-1988" ></a> Alan Bawden and Jonathan Rees | 1988 | [Syntactic Closures](https://dl.acm.org/doi/10.1145/62678.62687) | [LFP '88: Proceedings of the 1988 ACM Conference on LISP and Functional Programming](https://dl.acm.org/doi/proceedings/10.1145/62678) | 86&#x2011;95 |
158-
| <a id="Clinger-and-Rees-1991a" ></a> William Clinger and Jonathan Rees (Editors) | 1991 | [Revised<sup>4</sup> Report on the Algorithmic Language Scheme](https://dl.acm.org/doi/10.1145/382130.382133) | [ACM SIGPLAN LISP Pointers, Volume IV, Issue 3](https://dl.acm.org/toc/sigplan-lisppointers/1991/IV/3) | 1&#x2011;55 |
159-
| <a id="Hanson-1991" ></a> Chris Hanson | 1991 | [A Syntactic Closures Macro Facility](https://dl.acm.org/doi/10.1145/1317265.1317267) | [ACM SIGPLAN LISP Pointers, Volume IV, Issue 4](https://dl.acm.org/toc/sigplan-lisppointers/1991/IV/4) | 9&#x2011;16 |
160-
| <a id="Clinger-1991" ></a> William Clinger | 1991 | [Hygienic Macros Through Explicit Renaming](https://dl.acm.org/doi/10.1145/1317265.1317269) | [ACM SIGPLAN LISP Pointers, Volume IV, Issue 4](https://dl.acm.org/toc/sigplan-lisppointers/1991/IV/4) | 25&#x2011;28 |
161-
| <a id="Clinger-and-Rees-1991b" ></a> William Clinger and Jonathan Rees | 1991 | [Macros That Work](https://dl.acm.org/doi/10.1145/99583.99607) | [POPL '91: Proceedings of the 18th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages](https://dl.acm.org/doi/proceedings/10.1145/99583) | 155&#x2011;162 |
162-
| <a id="Kelsey-Clinger-and-Rees-1998" ></a> Rechard Kelsey, William Clinger and Jonathan Rees (Editors) | 1998 | [Revised<sup>5</sup> Report on the Algorithmic Language Scheme](https://dl.acm.org/doi/10.1145/290229.290234) | [ACM SIGPLAN Notices, Volume 33, Issue 9](https://dl.acm.org/toc/sigplan/1998/33/9) | 26&#x2011;76 |
163-
| <a id="Kempf-2001a" ></a> William E. Kempf | 2001 | [A garbage collection framework for C++](https://www.codeproject.com/Articles/912/A-garbage-collection-framework-for-C) | https://www.codeproject.com/Articles/912/A-garbage-collection-framework-for-C | |
164-
| <a id="Kempf-2001b" ></a> William E. Kempf | 2001 | [A garbage collection framework for C++ - Part II](https://www.codeproject.com/Articles/938/A-garbage-collection-framework-for-C-Part-II) | https://www.codeproject.com/Articles/938/A-garbage-collection-framework-for-C-Part-II | |
165-
| <a id="Adams-and-Dybvig-2008" ></a> Michael D. Adams and R. Kent Dybvig | 2008 | [Efficient Nondestructive Equality Checking for Trees and Graphs](https://dl.acm.org/doi/10.1145/1411204.1411230) | [ICFP '08: Proceedings of the 13th ACM SIGPLAN International Conference on Functional Programming](https://dl.acm.org/doi/proceedings/10.1145/1411204) | 179&#x2011;188 |
166-
| <a id="Shinn-Cowan-and-Gleckler-2013"></a> Alex Shinn, John Cowan and Arthur A. Gleckler (Editors) | 2013 | [Revised<sup>7</sup> Report on the Algorithmic Language Scheme](https://standards.scheme.org/official/r7rs.pdf) | http://www.scheme-reports.org/ | |
151+
[<span id="McCarthy-1960">1</span>] John McCarthy. [Recursive functions of symbolic expressions and their computation by machine, Part I](https://dl.acm.org/doi/10.1145/367177.367199). *[Communications of the ACM](https://dl.acm.org/toc/cacm/1960/3/4)*, 3(4):184--195, 1960.
152+
153+
[<span id="Landin-1964">2</span>] Peter J. Landin. [The Mechanical Evaluation of Expressions](https://academic.oup.com/comjnl/article/6/4/308/375725). *[The Computor Journal](https://academic.oup.com/comjnl/issue/6/4)*, 6(4):308--320, 1964.
154+
155+
[<span id="Henderson-1980">3</span>] Peter Henderson. *[Functional Programming: Application and Implementation](https://archive.org/details/functionalprogra0000hend/mode/2up)*. Prentice Hall, 1980.
156+
157+
[<span id="Bawden-and-Rees-1988">4</span>] Alan Bawden and Jonathan Rees. [Syntactic Closures](https://dl.acm.org/doi/10.1145/62678.62687). In *[LFP '88: Proceedings of the 1988 ACM Conference on LISP and Functional Programming](https://dl.acm.org/doi/proceedings/10.1145/62678)*, pages 86--95, 1988.
158+
159+
[<span id="Clinger-and-Rees-1991a">5</span>] William Clinger and Jonathan Rees (Editors). [Revised<sup>4</sup> Report on the Algorithmic Language Scheme](https://dl.acm.org/doi/10.1145/382130.382133). *[ACM SIGPLAN LISP Pointers](https://dl.acm.org/toc/sigplan-lisppointers/1991/IV/3)*, IV(3):1--55, 1991.
160+
161+
[<span id="Hanson-1991">6</span>] Chris Hanson. [A Syntactic Closures Macro Facility](https://dl.acm.org/doi/10.1145/1317265.1317267). *[ACM SIGPLAN LISP Pointers](https://dl.acm.org/toc/sigplan-lisppointers/1991/IV/4)*, IV(4):9--16, 1991.
162+
163+
[<span id="Clinger-1991">7</span>] William Clinger. [Hygienic Macros Through Explicit Renaming](https://dl.acm.org/doi/10.1145/1317265.1317269). *[ACM SIGPLAN LISP Pointers](https://dl.acm.org/toc/sigplan-lisppointers/1991/IV/4)*, IV(4):25--28, 1991.
164+
165+
[<span id="Clinger-and-Rees-1991b">8</span>] William Clinger and Jonathan Rees. [Macros That Work](https://dl.acm.org/doi/10.1145/99583.99607). In *[POPL '91: Proceedings of the 18th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages](https://dl.acm.org/doi/proceedings/10.1145/99583)*, pages 155--162, 1991.
166+
167+
[<span id="Kelsey-Clinger-and-Rees-1998">9</span>] Rechard Kelsey, William Clinger, and Jonathan Rees (Editors). [Revised<sup>5</sup> Report on the Algorithmic Language Scheme](https://dl.acm.org/doi/10.1145/290229.290234). *[ACM SIGPLAN Notices](https://dl.acm.org/toc/sigplan/1998/33/9)*, 33(9):26--76, 1998.
168+
169+
[<span id="Kempf-2001a">10</span>] William E. Kempf. [A garbage collection framework for C++](https://www.codeproject.com/Articles/912/A-garbage-collection-framework-for-C), 2001.
170+
171+
[<span id="Kempf-2001b">11</span>] William E. Kempf. [A garbage collection framework for C++ - Part II](https://www.codeproject.com/Articles/938/A-garbage-collection-framework-for-C-Part-II), 2001.
172+
173+
[<span id="Adams-and-Dybvig-2008">12</span>] Michael D. Adams and R. Kent Dybvig. [Efficient Nondestructive Equality Checking for Trees and Graphs](https://dl.acm.org/doi/10.1145/1411204.1411230). In *[ICFP '08: Proceedings of the 13th ACM SIGPLAN International Conference on Functional Programming](https://dl.acm.org/doi/proceedings/10.1145/1411204)*, pages 179--188, 2008.
174+
175+
[<span id="Shinn-Cowan-and-Gleckler-2013">13</span>] Alex Shinn, John Cowan, and Arthur A. Gleckler (Editors). [Revised<sup>7</sup> Report on the Algorithmic Language Scheme](https://standards.scheme.org/official/r7rs.pdf). Technical report, http://www.scheme-reports.org/, 2013.

VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.5.159
1+
0.5.223

basis/srfi-0.ss

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
(define-library (srfi 0)
2-
(import (only (meevax core) implementation-dependent))
3-
(export (rename implementation-dependent cond-expand)))
2+
(import (only (meevax core) conditional-expand))
3+
(export (rename conditional-expand cond-expand)))

configure/Doxyfile

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
PROJECT_NAME = ${PROJECT_NAME}
2+
PROJECT_NUMBER = ${CURRENT_VERSION}
3+
OUTPUT_DIRECTORY = ${CMAKE_CURRENT_SOURCE_DIR}/document
4+
CREATE_SUBDIRS = YES
5+
INLINE_INHERITED_MEMB = YES
6+
STRIP_FROM_PATH = ${CMAKE_CURRENT_SOURCE_DIR}/basis/include \
7+
${CMAKE_CURRENT_SOURCE_DIR}/basis/src \
8+
${CMAKE_CURRENT_SOURCE_DIR}/include \
9+
${CMAKE_CURRENT_SOURCE_DIR}/src
10+
TAB_SIZE = 2
11+
BUILTIN_STL_SUPPORT = YES
12+
INLINE_SIMPLE_STRUCTS = YES
13+
14+
EXTRACT_ALL = YES
15+
EXTRACT_STATIC = YES
16+
SORT_MEMBERS_CTORS_1ST = YES
17+
SORT_BY_SCOPE_NAME = YES
18+
19+
QUIET = YES
20+
INPUT = ${CMAKE_CURRENT_SOURCE_DIR}/README.md \
21+
${CMAKE_CURRENT_SOURCE_DIR}/basis/include \
22+
${CMAKE_CURRENT_SOURCE_DIR}/basis/src \
23+
${CMAKE_CURRENT_SOURCE_DIR}/include \
24+
${CMAKE_CURRENT_SOURCE_DIR}/src
25+
RECURSIVE = YES
26+
EXCLUDE = ${CMAKE_CURRENT_SOURCE_DIR}/include/meevax/unicode
27+
USE_MDFILE_AS_MAINPAGE = ${CMAKE_CURRENT_SOURCE_DIR}/README.md
28+
29+
REFERENCED_BY_RELATION = YES
30+
REFERENCES_RELATION = YES
31+
32+
HTML_TIMESTAMP = YES
33+
HTML_DYNAMIC_SECTIONS = YES
34+
HTML_INDEX_NUM_ENTRIES = 1000
35+
SEARCHENGINE = NO
36+
37+
GENERATE_LATEX = NO
38+
39+
MACRO_EXPANSION = YES
40+
PREDEFINED = NDEBUG
41+
42+
UML_LOOK = YES
43+
UML_LIMIT_NUM_FIELDS = 100
44+
TEMPLATE_RELATIONS = YES
45+
CALL_GRAPH = YES
46+
INTERACTIVE_SVG = YES
47+
DOT_GRAPH_MAX_NODES = 1000

0 commit comments

Comments
 (0)