1
1
mirror of https://github.com/kanaka/mal.git synced 2024-09-11 13:55:55 +03:00
Commit Graph

134 Commits

Author SHA1 Message Date
Joel Martin
021d107db7 Refactor Github Actions/Travis CI
- Dynamically generate a strategy matrix based on the list of changed
  files in this push/pull_request. If the changed files are restricted
  to implementations then only generate a matrix with those
  implementations. If the changes are to tests or other
  non-documentation files (runtest.py, IMPLS.yml, .github/*, etc) then
  run the full set. The matrix generation is done in get-ci-matrix.py.
- Split the implementation list for Github Actions out into a separate
  yaml file IMPLS.yml
- Reduce the travis file to just the OS X / XCode related builds that
  aren't supported on Github Actions.
- Rename the .travis_test.sh script to ci.sh since it is the general
  CI script used for both Travis CI and Github Actions.
2021-04-21 13:36:54 -05:00
Fabian
b9dd99f1a8 update CI info in FAQ 2021-04-17 17:54:12 -05:00
Nicolas Boulenguez
fbfe6784d2 Change quasiquote algorithm
- Add a `vec` built-in function in step7 so that `quasiquote` does not
  require `apply` from step9.
- Introduce quasiquoteexpand special in order to help debugging step7.
  This may also prepare newcomers to understand step8.
- Add soft tests.
- Do not quote numbers, strings and so on.

Should ideally have been in separate commits:
- elisp: simplify and fix (keyword :k)
- factor: fix copy/paste error in let*/step7, simplify eval-ast.
- guile: improve list/vector types
- haskell: revert evaluation during quasiquote
- logo, make: cosmetic issues
2020-08-11 01:01:56 +02:00
Nicolas Boulenguez
dcaf3f213c Improve answer to exercises
The identity function is not used in the answers.
Sort list, prn, hash-map by increasing difficulty.
Fix indentation consistency in concat.
Avoid using the same identifier twice.
In do3, make explicit that acc is not used.
In _quasiquote_iter, call the tested quasiquote2 instead of the original quasiquote.
In the quoting section, add foldr_pairs to hide recursions.
The compose function is not used in the answers.
2020-07-21 17:48:45 +02:00
Joel Martin
42e55b2947 graph: update stats, add new implementations.
New implementations: jq, pike, wren, zig, python #2, Swift 5.
2020-01-16 15:51:54 -06:00
Joel Martin
bada7900b0 docs/graph: js-yaml vulnerability fix.
Not a big issue since the source of the yaml is a local data file and
this is triggered manually to generate the impl graph.

https://github.com/kanaka/mal/network/alert/docs/graph/package.json/js-yaml/open
2019-08-08 13:44:42 -05:00
Joel Martin
72eb6c9e5b graph: update bbc-basic. Exclude more from LOC.
Pull in bbc-basic update that allows loccount to properly count the
files.
Exclude more documentation and configuration files from LOC counts.
2019-08-02 11:39:18 -05:00
Joel Martin
09fff6c9a9 graph: BASICs are statically typed. 2019-07-31 13:58:31 -05:00
Joel Martin
90d31e4f82 docs/graph: add bbc-basic, vala. General updates.
Incorporates fixed LOC stats that correctly ignores steps 0-9 and
ignores generated files and external downloaded dependencies.
2019-07-31 12:17:42 -05:00
Joel Martin
12c29f0c51
Merge pull request #361 from asarhaddon/exercise-native-implementations
Draft exercise, native implementations of some built-in functions.
2019-07-17 18:03:10 -05:00
Nicolas Boulenguez
26ced15b31 Remove gensym, inc and or from step files.
* Move `gensym` and `inc` from step files to `lib/trivial.mal`.
* Move `or` from step files to `lib/test_cascade.mal`.
  Shorten it because `(first ())` returns `nil`
* Update process and tests accordingly (not the figures yet).
2019-07-09 14:05:29 +02:00
Nicolas Boulenguez
9c20ca3f39 exercises: rebase, improve quasiquote and let*, avoid circular dependencies.
* Avoid including `lib/*.mal` to prevent unexpected circular
  dependencies (bitten by `foldr` using `nth`).
* Ask `quote` before `let*`, the latter requires the former.
  Answer previous questions without `let*`.
* Tell the reader that `let*` has various levels of difficulty.
* Drop implicit dependency on `or`, soon out of step files.
* Allow simple recursion in `let*` via a combinator.
2019-05-30 19:00:45 +02:00
Nicolas Boulenguez
7977c2cb5e exercises: quote with macros 2019-05-30 16:46:04 +02:00
Nicolas Boulenguez
4f72e010a6 Update paths to prepare merge of extend-core.mal branch 2019-05-30 16:46:04 +02:00
Nicolas Boulenguez
42d31a20ba exercises: recommend not to override nth permanently 2019-05-30 16:46:04 +02:00
Nicolas Boulenguez
9678065e17 Exercises: improve, add questions about folds.
Rename the question file for consistency with answer file.
Give an explicit command to copy/paste for tests.
Warn about defining `nth` with `cond`.
Fix typo in let2.
Use tools from core.mal in answers.
2019-05-30 16:46:04 +02:00
Nicolas Boulenguez
1ca3ee3dcd exercices: fix apply again. It must be a function, not a macro.
It is more interesting to ask an implementation of count from empty?
than the reverse.

Ask for nth, map, concat and conj.

Allow core.mal in answers. Currently, requires the branch with foldr.
2019-05-30 16:46:04 +02:00
Nicolas Boulenguez
304930e749 exercises: fix apply reimplementation, add Joel's hints for maps 2019-05-30 16:46:04 +02:00
Nicolas Boulenguez
0544b52f1a Draft exercise suggesting native implementations of some built-in functions. 2019-05-30 16:46:04 +02:00
Nicolas Boulenguez
3e9b89d4b5 Prepare move of reusable code to lib/.
Changes creating huge diffs, like file splits, have been delayed for
readability .
Also fix description of `and`.
2019-05-18 01:52:13 +02:00
Nicolas Boulenguez
14ab099cea gensym: hide the counter in an environment, define inc in stepA.
tests: check that `inc` is present in stepA.
nasm: split lines in mal_startup_string for readability.
objpascal: remove obsolete .orig file
swift: remove an unneeded line in template
swift4: remove duplicate definition of `or` macro
2019-05-11 16:37:26 +02:00
Joel Martin
d78d93938b FAQ: answer bang/star question. Misc cleanup/updates. 2019-04-03 13:56:30 -05:00
Joel Martin
93708da80e graph: update collected data with ada.2 updates. 2019-04-01 09:37:07 -05:00
Joel Martin
aa4dd9e824 graph: remove unnecessary popup line breaks. 2019-04-01 09:30:56 -05:00
Joel Martin
b284f4b844 guide.md: fix cheatsheet and language rank links. 2019-04-01 09:27:24 -05:00
Joel Martin
6d9e1684de graph: add ada.2, update perf numbers. 2019-03-28 00:17:07 -05:00
Joel Martin
36c54c9bd2 graph/README: fix code quoting. 2019-03-26 10:58:17 -05:00
Joel Martin
715bd98746 graph: sync notes with code updates. 2019-03-25 13:50:41 -05:00
Joel Martin
51ed67ae46 Graph: change X-axis default to GH pushes.
This is the option with the most languages that have data.
2019-03-25 12:52:46 -05:00
Joel Martin
9d68841dcd Add GH Pull/Push, StackOverflow tags, README.
- Add GitHub/GitHut pull requests and pushes.
- Add StackOverflow tag counts (this also involves some hard-coded
  rollup of certain tags).
- Add README with update instructions.
- Move graph specific data mangling from collect code to graph
  rendering code.
2019-03-25 12:47:17 -05:00
Joel Martin
b0e8fd0703 Move web files into docs/. Build docs/web/mal.js
To update the docs/web/mal.js script run `make -C js web/mal.js` from the
top-level (js/web is a symlink to docs/web).
2019-03-21 00:14:56 -05:00
Joel Martin
e1bc7804ad Popup caveats/notes. Dynamically generate controls. 2019-03-20 23:34:21 -05:00
Joel Martin
1eff25447a Stats collection script, dynamic scatter plot page 2019-03-20 23:34:21 -05:00
Joel Martin
130fdf5d18 Ignore rust/matlab runtime dirs. Typo in TODO. 2017-09-28 08:35:05 -05:00
Joel Martin
dd4020b944 Guide: fix TODOs. Add next steps section.
Also move a few general TODOs to docs/TODO.
2017-09-21 17:35:38 -05:00
Joel Martin
012e4179af FAQ: expand main repo merge expectations section. 2017-09-21 17:35:38 -05:00
Sebastian Rasmussen
0198b7a230 Fix a number of typos in documentation/comments. 2017-09-15 20:00:15 +02:00
Joel Martin
e17aef048e Misc fixes and TODO updates.
- Truncate ruby and python stacktraces since they can get very long
  in certain cases causing problems.
- Fix Clojure West example with proper escaping.
2017-09-15 00:00:23 -05:00
Joel Martin
a0e89ae42a Rust, miniMAL, VHDL: misc fixes.
- Fix rust Dockerfile working dir.
- Make top-level Makefile more generic. This makes it easier to use
  the Makefile with fewer changes in miniMAL.
- Simplify vhdl build when case is fixed in stepA_mal
- Remove BUILD_IMPL=js from miniMAL travis test. Just use a docker
  image specifically made for miniMAL.
- Update TODO
2017-02-11 00:40:23 -06:00
Dov Murik
d3c401c1e8 tests: Test *ARGV* is set correctly in step 6
Add new mini test harness run_argv_test.sh to run the Mal interpreter
with different command-line arguments and test the stdout of that
process.

The main Makefile will automatically run the new harness whenever step 6
is tested (either directly or during REGRESS=1 of a more advanced step).
2016-05-11 11:31:04 -04:00
Joel Martin
c4dd3eb8c4 Merge pull request #210 from dubek/test-slurp-newline
tests: Test slurp captures final newline in step6
2016-05-10 12:41:44 -05:00
Dov Murik
2cd015e56a tests: Test slurp captures final newline in step6 2016-05-10 12:36:06 -04:00
Joel Martin
dfa6d64050 Merge pull request #208 from dubek/vim-fix-time-ms
vimscript:  implement time-ms in C
2016-05-09 11:13:30 -05:00
Dov Murik
a5bdda6d64 python: Fix interop (py*, py!*)
py!*: Fix to work on both Python 2 and 3.

py*: Python types are converted to Mal types where applicable.

Added tests for Python interop.
2016-05-09 01:39:45 -04:00
Dov Murik
c19139e1af docs/Hints: vimscript no longer shells out in time-ms 2016-05-09 00:21:15 -04:00
Dov Murik
817316df0c docs/Hints: add questions about command-line arguments 2016-05-04 21:25:58 -04:00
Joel Martin
ae964c6865 Hints.md: fix formatting. 2016-05-04 14:24:04 -05:00
Joel Martin
df5589d9d7 Add Hints wiki page. 2016-05-04 01:10:34 -05:00
Joel Martin
c088d7cfa3 FAQ: add question about * and ! endings on forms. 2016-04-28 15:10:37 -05:00
Leandro Facchinetti
e1ab693cbe Fix typo in FAQ
`qestion` -> `question`.
2016-04-19 15:49:15 -04:00