~ chicken-core (chicken-5) bfb7fdf9bedb34730d8b6694c9676bf4825bdb92
commit bfb7fdf9bedb34730d8b6694c9676bf4825bdb92 Author: Evan Hanson <evhan@foldling.org> AuthorDate: Tue Feb 10 18:39:12 2015 +1300 Commit: Evan Hanson <evhan@foldling.org> CommitDate: Sun Jul 19 21:12:54 2015 +1200 Convert the lolevel unit into a module diff --git a/README b/README index cea4a430..f58d5366 100644 --- a/README +++ b/README @@ -286,6 +286,7 @@ | | |-- chicken.import.so | | |-- chicken.data-structures.import.so | | |-- chicken.files.import.so + | | |-- chicken.lolevel.import.so | | |-- chicken.ports.import.so | | |-- chicken.tcp.import.so | | |-- chicken.utils.import.so @@ -293,7 +294,6 @@ | | |-- extras.import.so | | |-- foreign.import.so | | |-- irregex.import.so - | | |-- lolevel.import.so | | |-- modules.db | | |-- posix.import.so | | |-- setup-api.import.so diff --git a/chicken-install.scm b/chicken-install.scm index b0b480f5..5e8e2188 100644 --- a/chicken-install.scm +++ b/chicken-install.scm @@ -47,10 +47,10 @@ "chicken.import.so" "chicken.data-structures.import.so" "chicken.files.import.so" + "chicken.lolevel.import.so" "chicken.ports.import.so" "chicken.tcp.import.so" "chicken.utils.import.so" - "lolevel.import.so" "srfi-1.import.so" "srfi-4.import.so" "posix.import.so" diff --git a/defaults.make b/defaults.make index 63200c79..5655bf10 100644 --- a/defaults.make +++ b/defaults.make @@ -267,10 +267,10 @@ CHICKEN_PROGRAM_OPTIONS += $(if $(PROFILE_OBJECTS),-profile) # import libraries -PRIMITIVE_IMPORT_LIBRARIES = chicken lolevel srfi-4 +PRIMITIVE_IMPORT_LIBRARIES = chicken srfi-4 PRIMITIVE_IMPORT_LIBRARIES += posix extras foreign csi irregex PRIMITIVE_IMPORT_LIBRARIES += setup-api setup-download -DYNAMIC_IMPORT_LIBRARIES = data-structures files ports tcp utils +DYNAMIC_IMPORT_LIBRARIES = data-structures files lolevel ports tcp utils # targets diff --git a/distribution/manifest b/distribution/manifest index f658cae8..7525f68c 100644 --- a/distribution/manifest +++ b/distribution/manifest @@ -242,6 +242,8 @@ chicken.data-structures.import.scm chicken.data-structures.import.c chicken.files.import.scm chicken.files.import.c +chicken.lolevel.import.scm +chicken.lolevel.import.c chicken.ports.import.scm chicken.ports.import.c chicken.tcp.import.scm @@ -250,12 +252,10 @@ chicken.utils.import.scm chicken.utils.import.c foreign.import.scm foreign.import.c -lolevel.import.scm srfi-4.import.scm posix.import.scm extras.import.scm irregex.import.scm -lolevel.import.c srfi-4.import.c posix.import.c extras.import.c diff --git a/lolevel.import.scm b/lolevel.import.scm deleted file mode 100644 index cb132a29..00000000 --- a/lolevel.import.scm +++ /dev/null @@ -1,94 +0,0 @@ -;;;; lolevel.import.scm - import library for "lolevel" module -; -; Copyright (c) 2008-2015, The CHICKEN Team -; All rights reserved. -; -; Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following -; conditions are met: -; -; Redistributions of source code must retain the above copyright notice, this list of conditions and the following -; disclaimer. -; Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -; disclaimer in the documentation and/or other materials provided with the distribution. -; Neither the name of the author nor the names of its contributors may be used to endorse or promote -; products derived from this software without specific prior written permission. -; -; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS -; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY -; AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR -; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -; THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -; POSSIBILITY OF SUCH DAMAGE. - - -(##sys#register-primitive-module - 'lolevel - '(address->pointer - align-to-word - allocate - block-ref - block-set! - extend-procedure - extended-procedure? - free - locative->object - locative-ref - locative-set! - locative? - make-locative - make-record-instance - make-pointer-vector - make-weak-locative - move-memory! - mutate-procedure! - number-of-bytes - number-of-slots - object->pointer - object-become! - object-copy - pointer->address - pointer-like? - pointer->object - pointer-f32-ref - pointer-f32-set! - pointer-f64-ref - pointer-f64-set! - pointer+ - pointer-s16-ref - pointer-s16-set! - pointer-s32-ref - pointer-s32-set! - pointer-s64-ref - pointer-s64-set! - pointer-s8-ref - pointer-s8-set! - pointer-vector - pointer-vector? - pointer-vector-length - pointer-vector-ref - pointer-vector-set! - pointer-tag - pointer-u16-ref - pointer-u16-set! - pointer-u32-ref - pointer-u32-set! - pointer-u64-ref - pointer-u64-set! - pointer-u8-ref - pointer-u8-set! - pointer=? - pointer? - procedure-data - record->vector - record-instance? - record-instance-length - record-instance-slot - record-instance-slot-set! - record-instance-type - set-procedure-data! - tag-pointer - tagged-pointer? - vector-like?)) diff --git a/lolevel.scm b/lolevel.scm index dd9e6d70..60b2159f 100644 --- a/lolevel.scm +++ b/lolevel.scm @@ -27,13 +27,6 @@ (declare (unit lolevel) - (hide ipc-hook-0 *set-invalid-procedure-call-handler! xproc-tag - ##sys#check-block - ##sys#check-become-alist - ##sys#check-generic-structure - ##sys#check-generic-vector - pv-buf-ref pv-buf-set!) - (not inline ipc-hook-0 ##sys#invalid-procedure-call-hook) (foreign-declare #<<EOF #ifndef C_NONUNIX # include <sys/mman.h> @@ -43,6 +36,26 @@ EOF ) ) +(module chicken.lolevel + (address->pointer align-to-word allocate block-ref block-set! + extend-procedure extended-procedure? free locative->object + locative-ref locative-set! locative? make-locative + make-pointer-vector make-record-instance make-weak-locative + move-memory! mutate-procedure! number-of-bytes number-of-slots + object->pointer object-become! object-copy pointer+ pointer->address + pointer->object pointer-f32-ref pointer-f32-set! pointer-f64-ref + pointer-f64-set! pointer-like? pointer-s16-ref pointer-s16-set! + pointer-s32-ref pointer-s32-set! pointer-s8-ref pointer-s8-set! + pointer-tag pointer-u16-ref pointer-u16-set! pointer-u32-ref + pointer-u32-set! pointer-u8-ref pointer-u8-set! pointer-vector + pointer-vector-fill! pointer-vector-length pointer-vector-ref + pointer-vector-set! pointer-vector? pointer=? pointer? procedure-data + record->vector record-instance-length record-instance-slot + record-instance-slot-set! record-instance-type record-instance? + set-procedure-data! tag-pointer tagged-pointer? vector-like?) + +(import scheme chicken foreign) + (include "common-declarations.scm") (register-feature! 'lolevel) @@ -573,3 +586,5 @@ EOF (define (pointer-vector-length pv) (##sys#check-structure pv 'pointer-vector 'pointer-vector-length) (##sys#slot pv 1)) + +) diff --git a/modules.scm b/modules.scm index 780fb32c..f0159c22 100644 --- a/modules.scm +++ b/modules.scm @@ -915,6 +915,7 @@ (##sys#register-module-alias 'r5rs 'scheme) (##sys#register-module-alias 'data-structures 'chicken.data-structures) (##sys#register-module-alias 'files 'chicken.files) +(##sys#register-module-alias 'lolevel 'chicken.lolevel) (##sys#register-module-alias 'ports 'chicken.ports) (##sys#register-module-alias 'tcp 'chicken.tcp) (##sys#register-module-alias 'utils 'chicken.utils) diff --git a/rules.make b/rules.make index cf29d4a2..c3a5a53e 100644 --- a/rules.make +++ b/rules.make @@ -650,7 +650,7 @@ ports.c: $(SRCDIR)ports.scm $(SRCDIR)common-declarations.scm files.c: $(SRCDIR)files.scm $(SRCDIR)common-declarations.scm $(bootstrap-lib) -emit-import-library chicken.files lolevel.c: $(SRCDIR)lolevel.scm $(SRCDIR)common-declarations.scm - $(bootstrap-lib) + $(bootstrap-lib) -emit-import-library chicken.lolevel tcp.c: $(SRCDIR)tcp.scm $(SRCDIR)common-declarations.scm $(bootstrap-lib) -emit-import-library chicken.tcp srfi-4.c: $(SRCDIR)srfi-4.scm $(SRCDIR)common-declarations.scm diff --git a/tests/runtests.sh b/tests/runtests.sh index 2986c5ce..eab23d54 100755 --- a/tests/runtests.sh +++ b/tests/runtests.sh @@ -36,7 +36,7 @@ mkdir -p test-repository # copy files into test-repository (by hand to avoid calling `chicken-install'): for x in setup-api.so setup-api.import.so setup-download.so \ - setup-download.import.so chicken.import.so lolevel.import.so \ + setup-download.import.so chicken.import.so chicken.lolevel.import.so \ srfi-4.import.so chicken.data-structures.import.so \ chicken.ports.import.so chicken.utils.import.so chicken.files.import.so \ posix.import.so \ diff --git a/types.db b/types.db index ffc0342c..fbd829cf 100644 --- a/types.db +++ b/types.db @@ -1662,31 +1662,31 @@ ;; lolevel -(address->pointer (#(procedure #:clean #:enforce) address->pointer (fixnum) pointer) +(chicken.lolevel#address->pointer (#(procedure #:clean #:enforce) chicken.lolevel#address->pointer (fixnum) pointer) ((fixnum) (##sys#address->pointer #(1)))) -(align-to-word +(chicken.lolevel#align-to-word (#(procedure #:clean) - align-to-word + chicken.lolevel#align-to-word ((or number pointer locative procedure port)) (or pointer number))) -(allocate (#(procedure #:clean #:enforce) allocate (fixnum) (or false pointer))) -(block-ref (#(procedure #:clean #:enforce) block-ref (* fixnum) *)) -(block-set! (#(procedure #:enforce) block-set! (* fixnum *) *)) -(extend-procedure (#(procedure #:clean #:enforce) extend-procedure (procedure *) procedure)) -(extended-procedure? (#(procedure #:clean) extended-procedure (*) boolean)) -(free (#(procedure #:clean #:enforce) free (pointer) undefined)) -(locative->object (#(procedure #:clean #:enforce) locative->object (locative) *)) -(locative-ref (#(procedure #:clean #:enforce) locative-ref (locative) *)) -(locative-set! (#(procedure #:enforce) locative-set! (locative *) *)) -(locative? (#(procedure #:pure #:predicate locative) locative? (*) boolean)) -(make-locative (#(procedure #:clean #:enforce) make-locative (* #!optional fixnum) locative)) -(make-pointer-vector (#(procedure #:clean #:enforce) make-pointer-vector (fixnum #!optional (or pointer false)) pointer-vector)) -(make-record-instance (#(procedure #:clean) make-record-instance (symbol #!rest) *)) -(make-weak-locative (#(procedure #:clean #:enforce) make-weak-locative (* #!optional fixnum) locative)) - -(move-memory! (#(procedure #:enforce) move-memory! (* * #!optional fixnum fixnum fixnum) *) +(chicken.lolevel#allocate (#(procedure #:clean #:enforce) chicken.lolevel#allocate (fixnum) (or false pointer))) +(chicken.lolevel#block-ref (#(procedure #:clean #:enforce) chicken.lolevel#block-ref (* fixnum) *)) +(chicken.lolevel#block-set! (#(procedure #:enforce) chicken.lolevel#block-set! (* fixnum *) *)) +(chicken.lolevel#extend-procedure (#(procedure #:clean #:enforce) chicken.lolevel#extend-procedure (procedure *) procedure)) +(chicken.lolevel#extended-procedure? (#(procedure #:clean) chicken.lolevel#extended-procedure (*) boolean)) +(chicken.lolevel#free (#(procedure #:clean #:enforce) chicken.lolevel#free (pointer) undefined)) +(chicken.lolevel#locative->object (#(procedure #:clean #:enforce) chicken.lolevel#locative->object (locative) *)) +(chicken.lolevel#locative-ref (#(procedure #:clean #:enforce) chicken.lolevel#locative-ref (locative) *)) +(chicken.lolevel#locative-set! (#(procedure #:enforce) chicken.lolevel#locative-set! (locative *) *)) +(chicken.lolevel#locative? (#(procedure #:pure #:predicate locative) chicken.lolevel#locative? (*) boolean)) +(chicken.lolevel#make-locative (#(procedure #:clean #:enforce) chicken.lolevel#make-locative (* #!optional fixnum) locative)) +(chicken.lolevel#make-pointer-vector (#(procedure #:clean #:enforce) chicken.lolevel#make-pointer-vector (fixnum #!optional (or pointer false)) pointer-vector)) +(chicken.lolevel#make-record-instance (#(procedure #:clean) chicken.lolevel#make-record-instance (symbol #!rest) *)) +(chicken.lolevel#make-weak-locative (#(procedure #:clean #:enforce) chicken.lolevel#make-weak-locative (* #!optional fixnum) locative)) + +(chicken.lolevel#move-memory! (#(procedure #:enforce) chicken.lolevel#move-memory! (* * #!optional fixnum fixnum fixnum) *) ((pointer pointer fixnum) (##core#inline "C_copy_ptr_memory" #(2) #(1) #(3) '0 '0)) ((pointer pointer fixnum fixnum) @@ -1700,92 +1700,92 @@ ((locative locative fixnum fixnum fixnum) (##core#inline "C_copy_ptr_memory" #(2) #(1) #(3) #(5) #(4)))) -(mutate-procedure! - (#(procedure #:enforce) mutate-procedure! (procedure (procedure (procedure) . *)) procedure)) +(chicken.lolevel#mutate-procedure! + (#(procedure #:enforce) chicken.lolevel#mutate-procedure! (procedure (procedure (procedure) . *)) procedure)) -(number-of-bytes (#(procedure #:clean) number-of-bytes (*) fixnum) +(chicken.lolevel#number-of-bytes (#(procedure #:clean) chicken.lolevel#number-of-bytes (*) fixnum) (((or blob string)) (##sys#size #(1))) (((or port procedure symbol pair vector locative float pointer-vector)) ;; would be applicable to all structure types, but we can't specify ;; "(struct *)" (yet) (##core#inline "C_bytes" (##sys#size #(1))))) -(number-of-slots (#(procedure #:clean #:foldable) number-of-slots (*) fixnum) +(chicken.lolevel#number-of-slots (#(procedure #:clean #:foldable) chicken.lolevel#number-of-slots (*) fixnum) (((or vector symbol pair)) (##sys#size #(1)))) -(object->pointer (#(procedure #:clean) object->pointer (*) *)) -(object-become! (procedure object-become! (list) *)) -(object-copy (#(procedure #:clean) object-copy (*) *)) -(pointer+ (#(procedure #:clean #:enforce) pointer+ ((or pointer procedure port locative) fixnum) pointer)) +(chicken.lolevel#object->pointer (#(procedure #:clean) chicken.lolevel#object->pointer (*) *)) +(chicken.lolevel#object-become! (procedure chicken.lolevel#object-become! (list) *)) +(chicken.lolevel#object-copy (#(procedure #:clean) chicken.lolevel#object-copy (*) *)) +(chicken.lolevel#pointer+ (#(procedure #:clean #:enforce) chicken.lolevel#pointer+ ((or pointer procedure port locative) fixnum) pointer)) -(pointer->address (#(procedure #:clean #:enforce) pointer->address ((or pointer procedure port locative)) integer) +(chicken.lolevel#pointer->address (#(procedure #:clean #:enforce) chicken.lolevel#pointer->address ((or pointer procedure port locative)) integer) ((pointer) (##sys#pointer->address #(1)))) -(pointer->object (#(procedure #:clean #:enforce) pointer->object (pointer) *) +(chicken.lolevel#pointer->object (#(procedure #:clean #:enforce) chicken.lolevel#pointer->object (pointer) *) ((pointer) (##core#inline "C_pointer_to_object" #(1)))) -(pointer-like? (#(procedure #:pure #:predicate (or pointer locative procedure port)) pointer-like? (*) boolean) +(chicken.lolevel#pointer-like? (#(procedure #:pure #:predicate (or pointer locative procedure port)) chicken.lolevel#pointer-like? (*) boolean) (((or pointer locative procedure port)) (let ((#(tmp) #(1))) '#t))) -(pointer-f32-ref (#(procedure #:clean #:enforce) pointer-f32-ref (pointer) number)) -(pointer-f32-set! (#(procedure #:clean #:enforce) pointer-f32-set! (pointer number) undefined)) -(pointer-f64-ref (#(procedure #:clean #:enforce) pointer-f64-ref (pointer) number)) -(pointer-f64-set! (#(procedure #:clean #:enforce) pointer-f64-set! (pointer number) undefined)) -(pointer-vector (#(procedure #:clean #:enforce) pointer-vector (#!rest pointer-vector) boolean)) +(chicken.lolevel#pointer-f32-ref (#(procedure #:clean #:enforce) chicken.lolevel#pointer-f32-ref (pointer) number)) +(chicken.lolevel#pointer-f32-set! (#(procedure #:clean #:enforce) chicken.lolevel#pointer-f32-set! (pointer number) undefined)) +(chicken.lolevel#pointer-f64-ref (#(procedure #:clean #:enforce) chicken.lolevel#pointer-f64-ref (pointer) number)) +(chicken.lolevel#pointer-f64-set! (#(procedure #:clean #:enforce) chicken.lolevel#pointer-f64-set! (pointer number) undefined)) +(chicken.lolevel#pointer-vector (#(procedure #:clean #:enforce) chicken.lolevel#pointer-vector (#!rest pointer-vector) boolean)) -(pointer-vector? (#(procedure #:pure #:predicate pointer-vector) pointer-vector? (*) boolean)) +(chicken.lolevel#pointer-vector? (#(procedure #:pure #:predicate pointer-vector) chicken.lolevel#pointer-vector? (*) boolean)) -(pointer-vector-fill! (#(procedure #:clean #:enforce) pointer-vector-fill! (pointer-vector (or pointer false)) undefined)) +(chicken.lolevel#pointer-vector-fill! (#(procedure #:clean #:enforce) chicken.lolevel#pointer-vector-fill! (pointer-vector (or pointer false)) undefined)) -(pointer-vector-length (#(procedure #:clean #:enforce) pointer-vector-length (pointer-vector) fixnum) +(chicken.lolevel#pointer-vector-length (#(procedure #:clean #:enforce) chicken.lolevel#pointer-vector-length (pointer-vector) fixnum) ((pointer-vector) (##sys#slot #(1) '1))) -(pointer-vector-ref (#(procedure #:clean #:enforce) pointer-vector-ref (pointer-vector fixnum) (or pointer false))) -(pointer-vector-set! (#(procedure #:clean #:enforce) pointer-vector-set! (pointer-vector fixnum (or pointer false)) undefined)) -(pointer-s16-ref (#(procedure #:clean #:enforce) pointer-s16-ref (pointer) fixnum)) -(pointer-s16-set! (#(procedure #:clean #:enforce) pointer-s16-set! (pointer fixnum) undefined)) -(pointer-s32-ref (#(procedure #:clean #:enforce) pointer-s32-ref (pointer) integer)) -(pointer-s32-set! (#(procedure #:clean #:enforce) pointer-s32-set! (pointer integer) undefined)) -(pointer-s64-ref (#(procedure #:clean #:enforce) pointer-s64-ref (pointer) integer)) -(pointer-s64-set! (#(procedure #:clean #:enforce) pointer-s64-set! (pointer integer) undefined)) -(pointer-s8-ref (#(procedure #:clean #:enforce) pointer-s8-ref (pointer) fixnum)) -(pointer-s8-set! (#(procedure #:clean #:enforce) pointer-s8-set! (pointer fixnum) undefined)) - -(pointer-tag (#(procedure #:clean #:enforce) pointer-tag ((or pointer locative procedure port)) *) +(chicken.lolevel#pointer-vector-ref (#(procedure #:clean #:enforce) chicken.lolevel#pointer-vector-ref (pointer-vector fixnum) (or pointer false))) +(chicken.lolevel#pointer-vector-set! (#(procedure #:clean #:enforce) chicken.lolevel#pointer-vector-set! (pointer-vector fixnum (or pointer false)) undefined)) +(chicken.lolevel#pointer-s16-ref (#(procedure #:clean #:enforce) chicken.lolevel#pointer-s16-ref (pointer) fixnum)) +(chicken.lolevel#pointer-s16-set! (#(procedure #:clean #:enforce) chicken.lolevel#pointer-s16-set! (pointer fixnum) undefined)) +(chicken.lolevel#pointer-s32-ref (#(procedure #:clean #:enforce) chicken.lolevel#pointer-s32-ref (pointer) integer)) +(chicken.lolevel#pointer-s32-set! (#(procedure #:clean #:enforce) chicken.lolevel#pointer-s32-set! (pointer integer) undefined)) +(chicken.lolevel#pointer-s64-ref (#(procedure #:clean #:enforce) chicken.lolevel#pointer-s64-ref (pointer) integer)) +(chicken.lolevel#pointer-s64-set! (#(procedure #:clean #:enforce) chicken.lolevel#pointer-s64-set! (pointer integer) undefined)) +(chicken.lolevel#pointer-s8-ref (#(procedure #:clean #:enforce) chicken.lolevel#pointer-s8-ref (pointer) fixnum)) +(chicken.lolevel#pointer-s8-set! (#(procedure #:clean #:enforce) chicken.lolevel#pointer-s8-set! (pointer fixnum) undefined)) + +(chicken.lolevel#pointer-tag (#(procedure #:clean #:enforce) chicken.lolevel#pointer-tag ((or pointer locative procedure port)) *) (((or locative procedure port)) (let ((#(tmp) #(1))) '#f))) -(pointer-u16-ref (#(procedure #:clean #:enforce) pointer-u16-ref (pointer) fixnum)) -(pointer-u16-set! (#(procedure #:clean #:enforce) pointer-u16-set! (pointer fixnum) undefined)) -(pointer-u32-ref (#(procedure #:clean #:enforce) pointer-u32-ref (pointer) integer)) -(pointer-u32-set! (#(procedure #:clean #:enforce) pointer-u32-set! (pointer integer) undefined)) -(pointer-u64-ref (#(procedure #:clean #:enforce) pointer-u64-ref (pointer) integer)) -(pointer-u64-set! (#(procedure #:clean #:enforce) pointer-u64-set! (pointer integer) undefined)) -(pointer-u8-ref (#(procedure #:clean #:enforce) pointer-u8-ref (pointer) fixnum)) -(pointer-u8-set! (#(procedure #:clean #:enforce) pointer-u8-set! (pointer fixnum) undefined)) +(chicken.lolevel#pointer-u16-ref (#(procedure #:clean #:enforce) chicken.lolevel#pointer-u16-ref (pointer) fixnum)) +(chicken.lolevel#pointer-u16-set! (#(procedure #:clean #:enforce) chicken.lolevel#pointer-u16-set! (pointer fixnum) undefined)) +(chicken.lolevel#pointer-u32-ref (#(procedure #:clean #:enforce) chicken.lolevel#pointer-u32-ref (pointer) integer)) +(chicken.lolevel#pointer-u32-set! (#(procedure #:clean #:enforce) chicken.lolevel#pointer-u32-set! (pointer integer) undefined)) +(chicken.lolevel#pointer-u64-ref (#(procedure #:clean #:enforce) chicken.lolevel#pointer-u64-ref (pointer) integer)) +(chicken.lolevel#pointer-u64-set! (#(procedure #:clean #:enforce) chicken.lolevel#pointer-u64-set! (pointer integer) undefined)) +(chicken.lolevel#pointer-u8-ref (#(procedure #:clean #:enforce) chicken.lolevel#pointer-u8-ref (pointer) fixnum)) +(chicken.lolevel#pointer-u8-set! (#(procedure #:clean #:enforce) chicken.lolevel#pointer-u8-set! (pointer fixnum) undefined)) -(pointer=? (#(procedure #:clean #:enforce) pointer=? ((or pointer locative procedure port) +(chicken.lolevel#pointer=? (#(procedure #:clean #:enforce) chicken.lolevel#pointer=? ((or pointer locative procedure port) (or pointer locative procedure port)) boolean) ((pointer pointer) (##core#inline "C_pointer_eqp" #(1) #(2)))) -(pointer? (#(procedure #:clean #:predicate pointer) pointer? (*) boolean)) +(chicken.lolevel#pointer? (#(procedure #:clean #:predicate pointer) chicken.lolevel#pointer? (*) boolean)) -(procedure-data (#(procedure #:clean #:enforce) procedure-data (procedure) *)) -(record->vector (#(procedure #:clean) record->vector (*) vector)) +(chicken.lolevel#procedure-data (#(procedure #:clean #:enforce) chicken.lolevel#procedure-data (procedure) *)) +(chicken.lolevel#record->vector (#(procedure #:clean) chicken.lolevel#record->vector (*) vector)) -(record-instance? (#(procedure #:clean) record-instance? (* #!optional symbol) boolean) +(chicken.lolevel#record-instance? (#(procedure #:clean) chicken.lolevel#record-instance? (* #!optional symbol) boolean) ((* symbol) (##sys#structure? #(1) #(2))) ((*) (let ((#(tmp) #(1))) (if (##sys#immediate? #(tmp)) '#f (##sys#generic-structure? #(tmp)))))) -(record-instance-length (#(procedure #:clean) record-instance-length (*) fixnum)) -(record-instance-slot (#(procedure #:clean #:enforce) record-instance-slot (* fixnum) *)) -(record-instance-slot-set! (#(procedure #:clean #:enforce) record-instance-slot-set! (* fixnum *) undefined)) -(record-instance-type (#(procedure #:clean) record-instance-type (*) *)) -(set-procedure-data! (#(procedure #:clean #:enforce) set-procedure-data! (procedure *) undefined)) -(tag-pointer (#(procedure #:clean #:enforce) tag-pointer (pointer *) pointer)) -(tagged-pointer? (#(procedure #:clean #:enforce) tagged-pointer? (* #!optional *) boolean)) +(chicken.lolevel#record-instance-length (#(procedure #:clean) chicken.lolevel#record-instance-length (*) fixnum)) +(chicken.lolevel#record-instance-slot (#(procedure #:clean #:enforce) chicken.lolevel#record-instance-slot (* fixnum) *)) +(chicken.lolevel#record-instance-slot-set! (#(procedure #:clean #:enforce) chicken.lolevel#record-instance-slot-set! (* fixnum *) undefined)) +(chicken.lolevel#record-instance-type (#(procedure #:clean) chicken.lolevel#record-instance-type (*) *)) +(chicken.lolevel#set-procedure-data! (#(procedure #:clean #:enforce) chicken.lolevel#set-procedure-data! (procedure *) undefined)) +(chicken.lolevel#tag-pointer (#(procedure #:clean #:enforce) chicken.lolevel#tag-pointer (pointer *) pointer)) +(chicken.lolevel#tagged-pointer? (#(procedure #:clean #:enforce) chicken.lolevel#tagged-pointer? (* #!optional *) boolean)) ;; portsTrap