mes/tests/gc.test
Jan (janneke) Nieuwenhuizen a788fcfda7
core: Add gc-stats.
* include/mes/mes.h (gc_start_time, gc_end_time, gc_time): New
variables.
* src/mes.c (init): Initialize them.
* src/gc.c: Use them.
* src/gc.c (gc_stats): New function.
* include/mes/builtins.h: Declare it.
* src/builtins.c (mes_builtins): Register it.
* tests/gc.test: Use it.
2020-12-31 10:34:07 +01:00

41 lines
1.3 KiB
Scheme
Executable file

#! /bin/sh
# -*-scheme-*-
MES_ARENA=10000
MES_MAX_ARENA=$MES_ARENA
export MES_ARENA
export MES_MAX_ARENA
if [ "$MES" != guile ]; then
MES_BOOT=$0 exec ${MES-bin/mes}
fi
exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -s "$0" "$@"
!#
;;; GNU Mes --- Maxwell Equations of Software
;;; Copyright © 2018,2019,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Mes.
;;;
;;; GNU Mes is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Mes is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
(define mes? (pair? (current-module)))
(gc)
((if mes? core:display display) (gc-stats))
((if mes? core:display display) "\n")
(define (loop n)
(if (> n 0) (loop (- n 1))))
(loop 100000)
(gc)
((if mes? core:display display) (gc-stats))
((if mes? core:display display) "\n")