#include "gmp_wrappers.h"
-#define massert(a_) if (!(a_)) assert_error(#a_,__LINE__,__FILE__,__FUNCTION__)
+#include <errno.h>
+#define massert(a_) ({errno=0;if (!(a_)||errno) assert_error(#a_,__LINE__,__FILE__,__FUNCTION__);})
extern bool writable_malloc;
#define writable_malloc_wrap(f_,rt_,a_...) ({rt_ v;bool w=writable_malloc;writable_malloc=1;v=f_(a_);writable_malloc=w;v;})
*gcl-major-version* *gcl-minor-version* *gcl-extra-version*
(if (member :ansi-cl *features*) "ANSI" "CLtL1")
(if (member :gprof *features*) "profiling" "")
- (gcl-compile-time)
+ *gcl-release-date*
"Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl)"
"Binary License: "
(if gpled-modules (format nil "GPL due to GPL'ed components: ~a" gpled-modules)
(defvar *gcl-extra-version* nil)
(defvar *gcl-minor-version* nil)
(defvar *gcl-major-version* nil)
+(defvar *gcl-release-date* nil)
(defun warn-version (majvers minvers extvers)
(and *gcl-major-version* *gcl-minor-version* *gcl-extra-version*
VERSION=`cat majvers`.`cat minvers`
-all: $(BUILD_BFD) system command cmpnew/gcl_collectfn.o lsp/gcl_info.o do-gcl-tk # do-info
+all: $(BUILD_BFD) system command cmpnew/gcl_collectfn.o lsp/gcl_info.o do-gcl-tk release # do-info
-ASRC:=$(shell ls -1 o/*.c lsp/*.lsp cmpnew/*.lsp mod/*.lsp pcl/*sp clcs/*sp xgcl-2/*p) #o/*.d o/*.h h/*.h
+ASRC:=$(shell ls -1 o/*.c lsp/*.lsp cmpnew/*.lsp pcl/*sp clcs/*sp xgcl-2/*p) #o/*.d o/*.h h/*.h
TAGS: $(ASRC)
etags --regex='/\#.`(defun[ \n\t]+\([^ \n\t]+\)/' $^
# [ "$(X_LIBS)" == "" ] || (cd xgcl-2 && make saved_xgcl LISP=../$< && mv saved_xgcl ../$(PORTDIR)/$(FLISP))
touch $@
+release: majvers minvers
+ date >$@
+
xgcl: $(PORTDIR)/saved_xgcl
$(PORTDIR)/saved_xgcl: $(PORTDIR)/saved_gcl
*/
#include <stdlib.h>
+#include <string.h>
#include "include.h"
object siSuniversal_error_handler;
assert_error(const char *a,unsigned l,const char *f,const char *n) {
if (!raw_image && core_end && core_end==sbrk(0))
- FEerror("The assertion ~a on line ~a of ~a in function ~a failed",4,
+ FEerror("The assertion ~a on line ~a of ~a in function ~a failed: ~a",5,
make_simple_string(a),make_fixnum(l),
- make_simple_string(f),make_simple_string(n));
+ make_simple_string(f),make_simple_string(n),make_simple_string(strerror(errno)));
else {
- emsg("The assertion %s on line %d of %s in function %s failed",a,l,f,n);
+ emsg("The assertion %s on line %d of %s in function %s failed: %s",a,l,f,n,strerror(errno));
do_gcl_abort();
}
}
gc_page_min=0.5;
- if ((e=getenv("GCL_GC_PAGE_THRESH"))) {
+ if ((e=getenv("GCL_GC_PAGE_MIN"))) {
massert(sscanf(e,"%lf",&gc_page_min)==1);
massert(gc_page_min>=0.0);
}
RETURN1 (x0);
}
-DEFUNO_NEW("GCL-COMPILE-TIME",object,fSgcl_compile_time,SI
- ,0,0,NONE,OO,OO,OO,OO,void,Lgcl_compile_time,(void),"")
-{
- RETURN1 (make_simple_string(__DATE__ " " __TIME__));
-}
-
DEFUNO_NEW("LDB1",object,fSldb1,SI
,3,3,NONE,OI,II,OO,OO,void,Lldb1,(fixnum a,fixnum b, fixnum c),"")
{
int
use_symbols(double d,...) {
+ double d2;
#ifndef DARWIN
-
extern void sincos(double,double *,double *);
- double d2;
sincos(d,&d,&d2);
--- /dev/null
+Fri Apr 22 15:51:11 UTC 2016
sys_init.lsp: sys_init.lsp.in
cat $< | sed \
- -e "s#@LI-VERS@#(`cat ../majvers`.`cat ../minvers`) `date`#1" \
+ -e "s#@LI-VERS@#(`cat ../majvers`.`cat ../minvers`) `cat ../release`#1" \
-e "s#@LI-EXTVERS@#`cat ../minvers | cut -f2 -d.`#1" \
-e "s#@LI-MINVERS@#`cat ../minvers | cut -f1 -d.`#1" \
-e "s#@LI-MAJVERS@#`cat ../majvers`#1" \
+ -e "s#@LI-RELEASE@#`cat ../release`#1" \
-e "s#@LI-CC@#\"$(CC) -c $(FINAL_CFLAGS)\"#1" \
-e "s#@LI-LD@#\"$(CC) $(LD_FLAGS) -o \"#1" \
-e "s#@LI-LD-LIBS@#\" $(LD_LIBS_PRE) -l$* $(LD_LIBS_POST)\"#1" \
(setq *gcl-extra-version* @LI-EXTVERS@
*gcl-minor-version* @LI-MINVERS@
- *gcl-major-version* @LI-MAJVERS@)
+ *gcl-major-version* @LI-MAJVERS@
+ *gcl-release-date* "@LI-RELEASE@")
(defvar *system-banner* (default-system-banner))
(setq *optimize-maximum-pages* t)
(let* ((i 4096)(j (si::equal-tail-recursion-check i)))
(unless (<= (ash i -1) j)
(warn "equal is not tail recursive ~s ~s" i j)))
+
+(format t "~s heap words available~%" (multiple-value-bind (a b c d) (si::heap-report) (/ (- d c) (/ a 8))))