How expression editor can be enable in REPL
Running REPL in the docker container, expression editor is not enable in REPL. As reference the chapter in the User's Guide document. it need TERM environment variable, what is the value of it. And also I tried the second way, which is that new-cafe is invoked explicitly from a top-level program. Like
(top-level-program
(import (rnrs))
(new-cafe (lambda (x) x)))
It is the same thing, I mean expression editor is not enable in REPL.
In the s/<machine-type>.def file (e.g., s/a6le.def), is expeditor included in the (features ...) list? Also, do you have curses or ncurses installed in your docker container?
Thanks. As checked the source of ./ChezScheme/, it has expeditor in the (features ...) list. But one step of Dockerfile file to build docker image is RUN sed -ie 's,expeditor,,' s/*.def. Not sure why it is. I will remove this step in Dockerfile ` file, then build a new image. The docker is from https://github.com/scheme-containers/chezscheme.
Thanks. As checked the source of ./ChezScheme/, it has expeditor in the (features ...) list. But in the Dockerfile file, which is what we build ChezScheme image ,seem like it remove the expeditor feature by running RUN sed -ie 's,expeditor,,' s/*.def ,and also ncurses by running RUN sed -ie 's,-lncurses,,' c/Mf-* . After removing the two of them, the docker image can be built, but as running scheme command, it has the following error.
cannot find compatible scheme.boot in search path
"/usr/lib/csv%v/%m"
Could you take time to have a look?Thanks in advance.
That error generally means one of two things:
- There is a value for
SCHEMEHEAPDIRSset in the environment, and its value is not a directory containingscheme.boot. This is alternative to the default of using theInstallLibpath set byconfigureinMf-install. Given the output you included, I suspect yourInstallLibis/usr/lib. - The
schemeexecutable cannot load thescheme.bootfile at theSCHEMEHEAPDIRSorInstallLibpath. This is likely due to a build error in thecorsdirectory that was not caught or a boot file built for an incompatible machine type, e.g., a boot file fora6osxloaded by ana6leexecutable on anx86_64system.
I briefly looked at the Dockerfile you linked, and it doesn't seem to set the SCHEMEHEAPDIRS environment variable, so the second option seems more likely. Hopefully, there's a simple build error in the c or s directory.
How can x86_64 machine build with this feature? Sound Like there is not theboot file x86_64 machine.
在 2021-11-14 22:57:51,"Chris Frisz" @.***> 写道:
That error generally means one of two things:
There is a value for SCHEMEHEAPDIRS set in the environment, and its value is not a directory containing scheme.boot. This is alternative to the default of using the InstallLib path set by configure in Mf-install. Given the output you included, I suspect your InstallLib is /usr/lib. The scheme executable cannot load the scheme.boot file at the SCHEMEHEAPDIRS or InstallLib path. This is likely due to a build error in the c or s directory that was not caught or a boot file built for an incompatible machine type, e.g., a boot file for a6osx loaded by an a6le executable on an x86_64 system.
I briefly looked at the Dockerfile you linked, and it doesn't seem to set the SCHEMEHEAPDIRS environment variable, so the second option seems more likely. Hopefully, there's a simple build error in the c or s directory.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.
If you are having trouble with the way a Dockerfile from some other project is building Chez Scheme, maybe you should open an issue with the other project.
Sorry, the build have not been done yet, it stopped at Step 13/26 as removing RUN sed -ie 's,expeditor,,' s/*.def and RUN sed -ie 's,-lncurses,,' c/Mf-*
(cd examples && make clean)
/bin/rm -f def.so edit.so fact.so fatfib.so fft.so fib.so freq.so interpret.so m4.so macro.so matrix.so object.so power.so queue.so rabbit.so rsa.so scons.so setof.so socket.so unify.so compat.so ez-grammar-test.so expr.md
(cd bintar && make clean)
rm -rf csv9.5.4 csv9.5.4-a6le.tar.gz
(cd rpm && make clean)
/bin/sh: 1: test: a6le: unexpected operator
/bin/sh: 1: test: a6le: unexpected operator
rm -rf /build/chezscheme/build/rpm/tmp ChezScheme-9.5.4-1.UNKNOWN.rpm
(cd pkg && make clean)
rm -rf csv9.5.4-a6le-1.pkg a6le9.5.4 csv9.5.4
rm -f Make.out
make: Leaving directory '/build/chezscheme/build'
Removing intermediate container 317d6bafbab5
---> 0037f3bb3570
Step 12/26 : RUN rm build/boot/*/equates.h
---> Running in 55a11d30a24f
Removing intermediate container 55a11d30a24f
---> 613aa45fe7fa
Step 13/26 : RUN cp -fr build/boot/* boot/
---> Running in 663cf11f0654
cp: 'build/boot/a6le/scheme.h' and 'boot/a6le/scheme.h' are the same file
The command '/bin/sh -c cp -fr build/boot/* boot/' returned a non-zero code: 1
@jltaylor-us The issue is about the Dockerfile, where I had removed two steps during installing the feature expeditor
I was wondering why this feature matter at the machine type.
Thanks