testing/squeak-vm: new aport

Full-featured implementation of the Smalltalk programming language and environment
http://squeakvm.org
This commit is contained in:
Victor Diego Alegandro Diaz Urbaneja 2020-01-31 02:37:25 -04:00 committed by Rasmus Thomsen
parent 0e276a3dc1
commit 50bcf01e59
2 changed files with 81 additions and 0 deletions

View File

@ -0,0 +1,32 @@
# Contributor: Díaz Urbaneja Diego <sodomon2@gmail.com>
# Maintainer: Díaz Urbaneja Diego <sodomon2@gmail.com>
pkgname=squeak-vm
pkgver=4.10.2.2614
pkgrel=0
pkgdesc="Full-featured implementation of the Smalltalk programming language and environment"
url="http://squeakvm.org"
arch="x86_64 s390x armv7" #disabled for the other architectures due to compiling problems
license="MIT"
depends="mesa-gl libxrender"
makedepends="make cmake"
options="!check" #make check not implemented
subpackages="$pkgname-doc"
source="http://squeakvm.org/unix/release/Squeak-$pkgver-src.tar.gz
sqVirtualMachine.patch"
builddir="$srcdir/Squeak-$pkgver-src/"
build() {
./unix/cmake/configure \
--prefix=/usr \
--without-quartz \
--with-x \
--enable-mpg-mmx
make
}
package() {
make DESTDIR="$pkgdir" install
}
sha512sums="b823fb97f7826dbbae5feeb15ffc3ab7e11cf27c5a3cc3f2cf2f8c39b56af5f9d0078d020a4b8f72b997198d296be6d85ec10e0bca10d5214bf586e1e0587f07 Squeak-4.10.2.2614-src.tar.gz
e63b3151f7f6febf472a70838995ae4ebdb8ddf728fb9de0a78c4bf29f8ab9b5481422bf88718fdf22d75b67e41795aff9dc2827037357084fd9a94738821054 sqVirtualMachine.patch"

View File

@ -0,0 +1,49 @@
--- a/Cross/vm/sqVirtualMachine.c
+++ b/Cross/vm/sqVirtualMachine.c
@@ -485,10 +485,7 @@
/* This lives here for now but belongs somewhere else.
* platforms/Cross/vm/sqStuff.c??
*/
-#define STDOUT_STACK_SZ 5
-static int stdoutStackIdx = -1;
-static FILE stdoutStack[STDOUT_STACK_SZ];
-
+
/* N.B. As of cygwin 1.5.25 fopen("crash.dmp","a") DOES NOT WORK! crash.dmp
* contains garbled output as if the file pointer gets set to the start of the
* file, not the end. So we synthesize our own append mode.
@@ -521,10 +518,6 @@
FILE *output;
- if (stdoutStackIdx + 2 >= STDOUT_STACK_SZ) {
- fprintf(stderr,"output file stack is full.\n");
- return;
- }
switch ((unsigned)filenameOrStdioIndex) {
case STDOUT_FILENO: output = stdout; break;
case STDERR_FILENO: output = stderr; break;
@@ -536,17 +529,11 @@
return;
}
}
- stdoutStack[++stdoutStackIdx] = *stdout;
- *stdout = *output;
}
void
popOutputFile()
{
- if (stdoutStackIdx < 0) {
- fprintf(stderr,"output file stack is empty.\n");
- return;
- }
fflush(stdout);
if (fileno(stdout) > STDERR_FILENO) {
/* as of Feb 2011 with fclose@@GLIBC_2.1 under e.g. CentOS 5.3, fclose
@@ -558,5 +545,4 @@
fclose(stdout);
#endif
}
- *stdout = stdoutStack[stdoutStackIdx--];
}