- 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
- {env: IMPL=make, services: [docker]}
- {env: IMPL=mal BUILD_IMPL=js NO_PERF=1, services: [docker]}
- {env: IMPL=matlab, services: [docker]} # Uses Octave
- - {env: IMPL=miniMAL BUILD_IMPL=js, services: [docker]}
+ - {env: IMPL=miniMAL, services: [docker]}
- {env: IMPL=nim, services: [docker]}
- {env: IMPL=objpascal, services: [docker]}
- {env: IMPL=objc NO_DOCKER=1, os: osx, osx_image: xcode7}
python r racket rpython ruby rust scala skew swift swift3 tcl vb vhdl \
vimscript
+EXTENSION = .mal
+
step0 = step0_repl
step1 = step1_read_print
step2 = step2_eval
step9 = step9_try
stepA = stepA_mal
+argv_STEP = step6_file
+
+
regress_step0 = step0
regress_step1 = step1
regress_step2 = step2
# being tested.
STEP_TEST_FILES = $(strip $(wildcard \
$(foreach s,$(if $(strip $(REGRESS)),$(regress_$(2)),$(2)),\
- $(1)/tests/$($(s)).mal tests/$($(s)).mal)))
+ $(1)/tests/$($(s))$(EXTENSION) tests/$($(s))$(EXTENSION))))
# Map of step (e.g. "step8") to executable file for that step
ada_STEP_TO_PROG = ada/$($(1))
echo 'Testing $@; step file: $+, test file: $(test)' && \
echo 'Running: $(call get_runtest_cmd,$(impl),$(step)) ../$(test) -- ../$(impl)/run' && \
$(call get_runtest_cmd,$(impl),$(step)) ../$(test) -- ../$(impl)/run && \
- $(if $(filter tests/step6_file.mal,$(test)),\
+ $(if $(filter tests/$(argv_STEP)$(EXTENSION),$(test)),\
echo '----------------------------------------------' && \
echo 'Testing ARGV of $@; step file: $+' && \
echo 'Running: $(call get_argvtest_cmd,$(impl),$(step)) ../$(impl)/run ' && \
./core.mal to ./lib directory
- Finish guide.md
+ - Refactor ./run:
+ - java: build step, don't use mvn to run
+ - plpgsql: maybe combine wrap.sh and run
+ - vhdl: combine run_vhdl.sh and run
+ - vimscript: combine run_vimscript.sh and run
All Implementations:
- regular expression matching in runtest
ENV RUST_ARCHIVE=rust-1.14.0-x86_64-unknown-linux-gnu.tar.gz
ENV RUST_DOWNLOAD_URL=https://static.rust-lang.org/dist/$RUST_ARCHIVE
-RUN mkdir /rust
-WORKDIR /rust
-
-RUN curl -fsOSL $RUST_DOWNLOAD_URL \
+RUN mkdir -p /rust && cd /rust \
+ && curl -fsOSL $RUST_DOWNLOAD_URL \
&& curl -s $RUST_DOWNLOAD_URL.sha256 | sha256sum -c - \
&& tar -C /rust -xzf $RUST_ARCHIVE --strip-components=1 \
&& rm $RUST_ARCHIVE \
$(patsubst %.o,%,$(filter step%,$(OBJS))): $(OTHER_OBJS)
$(BINS): %: %.o
ghdl -e -g $@
-
-# The ghdl linker creates a lowercase executable file; rename it to stepA_mal
-stepA_mal: stepA_mal.o
- ghdl -e -g $@
- mv stepa_mal stepA_mal
+ # ghdl linker creates a lowercase executable; rename it to stepA_mal
+ if [ "$@" = "stepA_mal" ]; then mv stepa_mal $@; fi
clean:
rm -f $(OBJS) $(BINS) $(OTHER_OBJS) work-obj93.cf mal