ChangeLog 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. 2020-03-19 Eric Bavier <bavier@member.fsf.org>
  2. dist: Fix distcheck with V=1.
  3. * Makefile.am (.scm.go)[AM_V_P]: Fix stdout redirection.
  4. dist: Ensure fdl texi is distributed.
  5. * doc.am (doc_joy_TEXINFOS): New variable.
  6. doc: Fix compilation with recent texinfo.
  7. * doc/joy.texi (Primitives)<exit>: Remove "bottom" indication, which
  8. is intended to signify a sort of "null" result, but does not render
  9. well in either .texi or .tex.
  10. (Forth Aliases)<within, within?>: Use '@leq' and '<' rather than
  11. @math.
  12. build: Remove generated tests/package.m4 from version control.
  13. * tests/package.m4: Delete file.
  14. * .gitignore: Add it.
  15. * tests.am (EXTRA_DIST): Remove it
  16. (testsuite): Add dependency on package.m4
  17. joy: Minor adjustments to support Guile 3.x.
  18. * configure.ac: Add "3.0" to arguments for GUILE_PKG. Adjust error
  19. message for missing "guild". Remove unnecessary AC_CONFIG_MACRO_DIR.
  20. * language/joy/compile-tree-il.scm (call): Adjust version check to
  21. achieve a true ">= 2.2".
  22. 2018-02-10 Eric Bavier <bavier@member.fsf.org>
  23. joy: Support concatenating scripts and stack initialization.
  24. * joy/ui.scm (compile-and-run): Move compilation logic to...
  25. (compile-files): ...this new procedure.
  26. (simple-interpret): New procedure.
  27. (%options): Add "stack" option.
  28. (show-help): mention it.
  29. (joy-main): Collect stack non-option arguments after '--stack' into
  30. an initial stack, after being "interpreted".
  31. * doc/joy.texi (Invoking joy): Document command-line options.
  32. * tests/joy.at: New tests.
  33. * tests.am (TEST_MODULES): Add it.
  34. * tests/testsuite.at: Include it.
  35. * .dir-locals.el: Indent "parameterize"
  36. 2017-08-11 Eric Bavier <bavier@member.fsf.org>
  37. Add .dir-locals.el
  38. tests: Add simple tests for the REPL.
  39. * tests/joy-repl.at: New file.
  40. * tests/testsuite.at: Include it.
  41. * tests.am (TEST_MODULES): Add it.
  42. joy: Customize repl welcome banner.
  43. * joy/ui.scm (show-version): Simple reformatting to taste.
  44. (repl-welcome): New procedure. Override the one called by 'run-repl'.
  45. 2017-08-11 Eric Bavier <bavier@member.fsf.org>
  46. joy: Fix joy-repl for Guile 2.2.
  47. * language/joy-repl/spec.scm (call): New variable.
  48. (compile-repl-tree-il): Use it instead of "apply".
  49. 2017-08-11 Eric Bavier <bavier@member.fsf.org>
  50. joy: Fix distcheck.
  51. This is mostly fixing the 'joy' script so that it can load the modules
  52. it needs once they are installed, which means it can't load any itself
  53. until it has augmented Guile's load paths.
  54. * configure.ac (AC_CONFIG_FILES): Remove scripts/joy.
  55. * scripts/joy.in: Move the bulk of the interface to...
  56. * joy/ui.scm: ...this new file.
  57. * Makefile.am (MODULES): Add it.
  58. (JOY_MODULES): Prefix with "lib" directory, so we don't have to
  59. nobase.
  60. (scripts/joy): New target. Create at 'make' time, so that we can let
  61. make expand the directories we need to know about. This follows
  62. guidelines outlined in Automake's manual.
  63. (EXTRA_DIST): Add scripts/joy.in, as configure no longer handles it.
  64. (DISTCLEANFILES): New variable.
  65. (AM_V_GUILEC): Fix justification.
  66. * tests.am (CLEANFILES,DISTCLEANFILES): New variables.
  67. * language/joy/primitives.scm (include): Do not augment %load-path
  68. * pre-inst-env.in (GUILE_LOAD_COMPILED_PATH,GUILE_LOAD_PATH,PATH):
  69. Adjust for new module locations.
  70. * tests/test-base.joy, tests/test-forth.joy: Remove "tests/" prefix on
  71. includes.
  72. 2017-08-11 Eric Bavier <bavier@member.fsf.org>
  73. build: Move modules out of "modules" directory.
  74. * Makefile.am (MODULES): Remove "modules" prefix.
  75. (JOY_MODULES): ditto.
  76. * modules/joy: Move directory to lib/joy.
  77. * modules/language: Move to top_srcdir.
  78. 2017-08-11 Eric Bavier <bavier@member.fsf.org>
  79. tests: Use atconfig and atlocal.
  80. Previously 'testsuite' was not locating atconfig or atlocal, so we
  81. needed excessive variable exports.
  82. * configure.ac (AC_CONFIG_TESTDIR): Pass 'scripts' for test PATH.
  83. * tests.am (check-local, installcheck-local): Do not pass JOY or GREP
  84. variables to testsuite. Tell testsuite to change to 'tests'
  85. directory.
  86. (tests/atconfig, tests/atlocal): New targets.
  87. * tests/atlocal.in: Use properly as autoconf input. Define 'GREP'.
  88. * tests/joy-base.at, tests/joy-forth.at: Use 'joy' directly, rather
  89. than through "$JOY". Provide -I flags.
  90. * tests/local.at (AT_COPYRIGHT): Add 2017.
  91. (AT_TESTED): Add 'joy'.
  92. 2017-08-09 Eric Bavier <bavier@member.fsf.org>
  93. build: Use Guile's macros for installation directories.
  94. * configure.ac (GUILE,GUILD): Use GUILE_PKG and GUILE_PROGS macros.
  95. (guilemoduledir,guileobjectdir): Define with GUILE_EFFECTIVE_VERSION.
  96. * Makefile.am: Put modules in guilemoduledir and objects in
  97. guileobjectdir.
  98. doc: Populate README.
  99. * README: Include short summary.
  100. * doc/joy.texi (Copyright): Update with 2017.
  101. 2017-08-08 Eric Bavier <bavier@member.fsf.org>
  102. tests: Forward -j flags to testsuite.
  103. * tests.am (check-local,installcheck-local): Pass on -j flag.
  104. joy: Correctly idenitfy not-strings.
  105. * module/language/joy/primitives.scm (string): Return 'false' for
  106. non-character-only lists.
  107. * tests/inicheck.joy (list!string, num!string): New tests.
  108. joy: Adjust tree-il for Guile 2.2.
  109. * module/language/joy/compile-tree-il.scm (call): New variable.
  110. (compile-expr): Use it.
  111. Remove stray file.
  112. * module/language/joy/load.scm: Delete file.
  113. doc: Summarize Joy and document 'def'.
  114. * doc/joy.texi (Programming in Joy): New chapter.
  115. (Primitives)[def]: New definition.
  116. 2017-08-08 Eric Bavier <bavier@member.fsf.org>
  117. doc: Document '.' as an operator.
  118. * doc/joy.texi (Interactive Joy): Remove '.' from example input.
  119. (API Reference): ditto.
  120. (Primitives)[infra]: ditto.
  121. [write,.]: New primitive documentation.
  122. * module/language/joy/parser.scm (get-quote): Fix typo.
  123. 2016-03-11 Eric Bavier <bavier@member.fsf.org>
  124. repl: Do not use non-existent module.
  125. * module/language/joy-repl/spec.scm [modules]: Remove compile-scheme
  126. module.
  127. 2016-03-08 Eric Bavier <bavier@member.fsf.org>
  128. joy: Properly error on unknown file.
  129. * scripts/joy.in (compile-and-run): Properly exit with an error status
  130. if the given file could not be found.
  131. joy: Forth aliases.
  132. * module/joy/forth.joy: New file.
  133. * Makefile.am (JOY_MODULES): Add it.
  134. * doc/joy.texi (Forth Aliases): Document new aliases.
  135. * tests/joy-forth.at, tests/test-forth.joy: New files.
  136. * tests/testsuite.at: Include .at file.
  137. * tests.am (TEST_MODULES): Add it.
  138. (TEST_JOYS): New variable.
  139. (EXTRA_DIST): Distribute TEST_MODULES and TEST_JOYS.
  140. 2016-03-08 Eric Bavier <bavier@member.fsf.org>
  141. joy: Remove semantic meaning of `.' and definitions.
  142. * scripts/joy.in (print-joy): Move procedure to...
  143. * module/language/joy/write.scm (write-joy): here. New file.
  144. * Makefile.am (MODULES): Add it.
  145. * module/language/joy/lexer.scm (lex): Remove special treatment of `.'
  146. Explicitely mark newlines.
  147. * module/language/joy/parser.scm (lex-buffer): New procedure.
  148. Simplify parsing logic with lex-buffer; Delimit expressions based on
  149. newlines as requested.
  150. * module/language/joy/primitives.scm (write, .): New procedures.
  151. (string): Fix in response to strings-as-lists.
  152. * module/language/joy/compile-tree-il.scm: Adjust to simplified parsing.
  153. * module/language/joy/spec.scm (joy): Use new parse-joy.
  154. * module/language/joy-repl/spec.scm (joy-repl): Use new parse-joy*.
  155. * tests/inicheck.joy: Replace "display" usage with "putchars". Remove
  156. unnecessary `.'s.
  157. * tests/test-base.joy: Ditto.
  158. * module/joy/base.joy (flip3, flip4): Fix definitions.
  159. (drop, take): Rename to...
  160. (list-tail, list-head): respectively.
  161. (at): Adjust accordingly. Adjust callees.
  162. 2016-03-04 Eric Bavier <bavier@member.fsf.org>
  163. joy: Add 'def' primitive.
  164. * module/language/joy/primitives.scm (def): New variable.
  165. * module/language/joy/eval.scm: Adjust comment.
  166. 2016-03-03 Eric Bavier <bavier@member.fsf.org>
  167. repl: Disable value history.
  168. * scripts/joy.in [main]: Set repl 'value-history option to #f.
  169. * doc/joy.texi (Interactive Joy): Adjust example.
  170. repl: pretty-print results.
  171. * scripts/joy.in (print-joy): New procedure.
  172. [main]: Use it for the REPL's printer.
  173. * doc/joy.texi (Interactive Joy): Adjust examples.
  174. build: include spec.scm in MODULES.
  175. * Makefile.am (MODULES): Add module/language/joy/spec.scm.
  176. compiler: Make every expression an operator.
  177. * module/language/joy-repl/spec.scm: New file.
  178. * Makefile.am (MODULES): Add it.
  179. * module/language/joy/compile-tree-il.scm: Use parse-tree-il everywhere.
  180. (compile-definition): Put definitions in toplevel (joy) module.
  181. (compile-expr): Create procedures with a free variable for input
  182. stack.
  183. (compile-tree-il*): New procedure.
  184. * module/language/joy/eval.scm (eval): Lookup definitions in (joy).
  185. * module/language/joy/primitives.scm (include): Apply compiled include
  186. to input stack.
  187. * scripts/joy.in (compile-and-run): New 'args' parameter.
  188. [main]: start repl in 'joy-repl language.
  189. * doc/joy.texi (Interactive Joy): New chapter.
  190. 2016-02-29 Eric Bavier <bavier@member.fsf.org>
  191. joy: Support strings as "aggregates".
  192. * module/language/joy/compile-tree-il.scm (compile-factor): Compile
  193. strings to lists of characters.
  194. (compile-term): Simplify by compiling to list constants.
  195. * module/language/joy/primitives.scm (putchars, include): Adjust
  196. accordingly.
  197. Initial commit.