Fix typos (#3005)
This commit is contained in:
parent
15d107d373
commit
738d2b7a81
2
Makefile
2
Makefile
|
@ -794,7 +794,7 @@ binary-catalog-server:
|
||||||
# On each supported platform (for an installer build):
|
# On each supported platform (for an installer build):
|
||||||
#
|
#
|
||||||
# The `client' and `win32-client' targets are also used by
|
# The `client' and `win32-client' targets are also used by
|
||||||
# `distro-buid/drive-clients', which is in turn run by the
|
# `distro-build/drive-clients', which is in turn run by the
|
||||||
# `installers' target.
|
# `installers' target.
|
||||||
#
|
#
|
||||||
# For a non-Windows machine, if "build/log" exists, then
|
# For a non-Windows machine, if "build/log" exists, then
|
||||||
|
|
|
@ -262,7 +262,7 @@
|
||||||
;; Run the given query function, trying until an answer is found
|
;; Run the given query function, trying until an answer is found
|
||||||
(define (try-forwarding k nameserver)
|
(define (try-forwarding k nameserver)
|
||||||
(let loop ([nameserver nameserver] [tried (list nameserver)])
|
(let loop ([nameserver nameserver] [tried (list nameserver)])
|
||||||
;; Normally the recusion is done for us, but it's technically optional
|
;; Normally the recursion is done for us, but it's technically optional
|
||||||
(let-values ([(v ars auth?) (k nameserver)])
|
(let-values ([(v ars auth?) (k nameserver)])
|
||||||
(or v
|
(or v
|
||||||
(and (not auth?)
|
(and (not auth?)
|
||||||
|
|
|
@ -70,7 +70,7 @@
|
||||||
(unless (and (number? v)
|
(unless (and (number? v)
|
||||||
(exact? v)
|
(exact? v)
|
||||||
(positive? v))
|
(positive? v))
|
||||||
(error 'auto "bad interation count: ~a" n))
|
(error 'auto "bad iteration count: ~a" n))
|
||||||
(set! num-iterations v))])
|
(set! num-iterations v))])
|
||||||
(args impl-or-benchmark impl-or-benchmark)))
|
(args impl-or-benchmark impl-or-benchmark)))
|
||||||
|
|
||||||
|
|
|
@ -3515,7 +3515,7 @@
|
||||||
; list in our case.
|
; list in our case.
|
||||||
|
|
||||||
; Because type environments are regular lists, we can build them using
|
; Because type environments are regular lists, we can build them using
|
||||||
; regular cons. The empty type environemnt is the empty list. The
|
; regular cons. The empty type environment is the empty list. The
|
||||||
; following is a Kanren relation that searches the associative
|
; following is a Kanren relation that searches the associative
|
||||||
; list. We are interested in the first match.
|
; list. We are interested in the first match.
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
;; Number of iteraitons used for a loop, typically
|
;; Number of iteraitons used for a loop, typically
|
||||||
(define N (* L 10))
|
(define N (* L 10))
|
||||||
|
|
||||||
;; Number of times to run each benchamrk:
|
;; Number of times to run each benchmark:
|
||||||
(define I 3)
|
(define I 3)
|
||||||
|
|
||||||
(define-syntax times
|
(define-syntax times
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
;; Number of iteraitons used for a loop, typically
|
;; Number of iteraitons used for a loop, typically
|
||||||
(define N (* L 10))
|
(define N (* L 10))
|
||||||
|
|
||||||
;; Number of times to run each benchamrk:
|
;; Number of times to run each benchmark:
|
||||||
(define I 3)
|
(define I 3)
|
||||||
|
|
||||||
(define-syntax times
|
(define-syntax times
|
||||||
|
|
|
@ -1101,7 +1101,7 @@
|
||||||
_MagickWand -> _ResolutionType)
|
_MagickWand -> _ResolutionType)
|
||||||
|
|
||||||
;; MagickGetImageVirtualPixelMethod returns the virtual pixel method for the
|
;; MagickGetImageVirtualPixelMethod returns the virtual pixel method for the
|
||||||
;; sepcified image.
|
;; specified image.
|
||||||
(defmagick* MagickGetImageVirtualPixelMethod :
|
(defmagick* MagickGetImageVirtualPixelMethod :
|
||||||
_MagickWand -> _VirtualPixelMethod)
|
_MagickWand -> _VirtualPixelMethod)
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
;; In libsndfile the sndfile object is represented as a pointer. When
|
;; In libsndfile the sndfile object is represented as a pointer. When
|
||||||
;; translating scheme->c the struct will just return the pointer. When
|
;; translating scheme->c the struct will just return the pointer. When
|
||||||
;; translating from c->scheme, ie. creating the object in scheme it will be
|
;; translating from c->scheme, ie. creating the object in scheme it will be
|
||||||
;; wrapped by an object finalizer that uses the libsndfile fuction sf_close that
|
;; wrapped by an object finalizer that uses the libsndfile function sf_close that
|
||||||
;; returns a 0 upon successful termination or an error.
|
;; returns a 0 upon successful termination or an error.
|
||||||
(define-struct sndfile (ptr [info #:mutable]))
|
(define-struct sndfile (ptr [info #:mutable]))
|
||||||
(define _sndfile
|
(define _sndfile
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
@(require "common.rkt" (for-label file/resource))
|
@(require "common.rkt" (for-label file/resource))
|
||||||
|
|
||||||
@(define-syntax-rule (compat file section indexed-racket what)
|
@(define-syntax-rule (compat file section indexed-racket what)
|
||||||
@elem{For backward compatibilty, the
|
@elem{For backward compatibility, the
|
||||||
result is @racket[#f] for platforms other than Windows. The registry
|
result is @racket[#f] for platforms other than Windows. The registry
|
||||||
is @|what| when
|
is @|what| when
|
||||||
@racket[file] is @racket[#f] and when @racket[section] is
|
@racket[file] is @racket[#f] and when @racket[section] is
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
setup/dirs)
|
setup/dirs)
|
||||||
|
|
||||||
;; Builds different kinds of executables for different platforms.
|
;; Builds different kinds of executables for different platforms.
|
||||||
;; The `plt-help' executable is for backward compatibity.
|
;; The `plt-help' executable is for backward compatibility.
|
||||||
;; The `Racket Documentation' executable is to help Windows and
|
;; The `Racket Documentation' executable is to help Windows and
|
||||||
;; Mac users who are completely lost and need something to click.
|
;; Mac users who are completely lost and need something to click.
|
||||||
|
|
||||||
|
|
|
@ -161,7 +161,7 @@ should represent a JSON ``@tt{null}''. This library uses the Racket
|
||||||
Racket symbols are used only as object keys, which are required to be
|
Racket symbols are used only as object keys, which are required to be
|
||||||
strings in JSON.
|
strings in JSON.
|
||||||
|
|
||||||
Several other options have been used by various libaries. For example,
|
Several other options have been used by various libraries. For example,
|
||||||
Dave Herman's PLaneT library (which has been the basis for this library)
|
Dave Herman's PLaneT library (which has been the basis for this library)
|
||||||
uses the @racket[#\nul] character, other libraries for Racket and other
|
uses the @racket[#\nul] character, other libraries for Racket and other
|
||||||
Lisps use @racket[(void)], @tt{NIL} (some use it also for JSON
|
Lisps use @racket[(void)], @tt{NIL} (some use it also for JSON
|
||||||
|
|
|
@ -38,7 +38,7 @@ icon.}
|
||||||
(*)(void*, void*, void*)}.}
|
(*)(void*, void*, void*)}.}
|
||||||
|
|
||||||
@item{@racket['ptr_ptr->save] corresponds to @cpp{void* (*)(void*,
|
@item{@racket['ptr_ptr->save] corresponds to @cpp{void* (*)(void*,
|
||||||
void*, void*)}, but the result is recored as the current ``save''
|
void*, void*)}, but the result is recorded as the current ``save''
|
||||||
value. The current ``save'' value starts as @cpp{NULL}.}
|
value. The current ``save'' value starts as @cpp{NULL}.}
|
||||||
|
|
||||||
@item{@racket['save!_ptr->void] corresponds to @cpp{void (*)(void*,
|
@item{@racket['save!_ptr->void] corresponds to @cpp{void (*)(void*,
|
||||||
|
|
|
@ -156,7 +156,7 @@ foreign call as follows:
|
||||||
@racket[_fun]) determines the result.}
|
@racket[_fun]) determines the result.}
|
||||||
|
|
||||||
@item{If the result is @cpp{RPC_E_CALL_REJECTED} or
|
@item{If the result is @cpp{RPC_E_CALL_REJECTED} or
|
||||||
@cpp{RPC_E_SERVERCALL_RETRYLATER}, the call is autmatically
|
@cpp{RPC_E_SERVERCALL_RETRYLATER}, the call is automatically
|
||||||
retried up to @racket[(current-hfun-retry-count)] times with a
|
retried up to @racket[(current-hfun-retry-count)] times with a
|
||||||
delay of @racket[(current-hfun-retry-delay)] seconds between
|
delay of @racket[(current-hfun-retry-delay)] seconds between
|
||||||
each attempt.}
|
each attempt.}
|
||||||
|
|
|
@ -580,7 +580,7 @@ to wait until at least a certain number of items have been produced.
|
||||||
(code:comment "production")
|
(code:comment "production")
|
||||||
(cond
|
(cond
|
||||||
[(>= (car waiter) total-items-seen)
|
[(>= (car waiter) total-items-seen)
|
||||||
(code:comment "if so, we send a mesage back on the channel")
|
(code:comment "if so, we send a message back on the channel")
|
||||||
(code:comment "and continue the loop without that item")
|
(code:comment "and continue the loop without that item")
|
||||||
(handle-evt
|
(handle-evt
|
||||||
(channel-put-evt
|
(channel-put-evt
|
||||||
|
|
|
@ -335,7 +335,7 @@ Closes the given output port.}
|
||||||
Fills @cpp{*@var{fd}} with a file-descriptor value for @var{port} if
|
Fills @cpp{*@var{fd}} with a file-descriptor value for @var{port} if
|
||||||
one is available (i.e., the port is a file-stream port and it is not
|
one is available (i.e., the port is a file-stream port and it is not
|
||||||
closed). The result is non-zero if the file-descriptor value is
|
closed). The result is non-zero if the file-descriptor value is
|
||||||
available, zero otherwise. On Windows, a ``file dscriptor'' is a
|
available, zero otherwise. On Windows, a ``file descriptor'' is a
|
||||||
file @cpp{HANDLE}.}
|
file @cpp{HANDLE}.}
|
||||||
|
|
||||||
@function[(intptr_t scheme_get_port_fd
|
@function[(intptr_t scheme_get_port_fd
|
||||||
|
|
|
@ -210,7 +210,7 @@ identifiers:
|
||||||
@item{@racket[lock-name] --- a string that names a lock file that is
|
@item{@racket[lock-name] --- a string that names a lock file that is
|
||||||
used to serialize tests (i.e., tests that have the same lock
|
used to serialize tests (i.e., tests that have the same lock
|
||||||
name do not run concurrently). The lock file's location is
|
name do not run concurrently). The lock file's location is
|
||||||
determined by the @envvar{PLTLOCKDIR} environment varible or
|
determined by the @envvar{PLTLOCKDIR} environment variable or
|
||||||
defaults to @racket[(find-system-path 'temp-dir)]. The maximum
|
defaults to @racket[(find-system-path 'temp-dir)]. The maximum
|
||||||
time to wait on the lock file is determined by the
|
time to wait on the lock file is determined by the
|
||||||
@envvar{PLTLOCKTIME} environment variable or defaults to 4
|
@envvar{PLTLOCKTIME} environment variable or defaults to 4
|
||||||
|
|
|
@ -68,7 +68,7 @@ is full until space is available.}
|
||||||
Returns a @tech{synchronizable event} that is @tech{ready for
|
Returns a @tech{synchronizable event} that is @tech{ready for
|
||||||
synchronization} when @racket[(async-channel-put ach v)] would return
|
synchronization} when @racket[(async-channel-put ach v)] would return
|
||||||
a value (i.e., when the channel holds fewer values already than its
|
a value (i.e., when the channel holds fewer values already than its
|
||||||
limit); @resultItself{asychronous channel-put event}.}
|
limit); @resultItself{asynchronous channel-put event}.}
|
||||||
|
|
||||||
@examples[#:eval (async-eval) #:once
|
@examples[#:eval (async-eval) #:once
|
||||||
(eval:no-prompt
|
(eval:no-prompt
|
||||||
|
|
|
@ -75,7 +75,7 @@ same for @racket[0.0f0] and @racket[-0.0f0] (which are single-precision variants
|
||||||
@racketvalfont{-nan.0} refers to the same constant as @racket[+nan.0],
|
@racketvalfont{-nan.0} refers to the same constant as @racket[+nan.0],
|
||||||
and @racketvalfont{-nan.f} is the same as @racketvalfont{+nan.f}.
|
and @racketvalfont{-nan.f} is the same as @racketvalfont{+nan.f}.
|
||||||
|
|
||||||
Calculations with infinites produce results consistent with IEEE
|
Calculations with infinities produce results consistent with IEEE
|
||||||
double- or single-precision floating point where IEEE specifies the result; in
|
double- or single-precision floating point where IEEE specifies the result; in
|
||||||
cases where IEEE provides no specification,
|
cases where IEEE provides no specification,
|
||||||
the result corresponds to the limit approaching
|
the result corresponds to the limit approaching
|
||||||
|
|
|
@ -862,7 +862,7 @@
|
||||||
(require 'm-check-varref-expand)
|
(require 'm-check-varref-expand)
|
||||||
|
|
||||||
;; ----------------------------------------
|
;; ----------------------------------------
|
||||||
;; Check that a modul-level binding with 0 marks
|
;; Check that a module-level binding with 0 marks
|
||||||
;; but lexical context is found correctly with
|
;; but lexical context is found correctly with
|
||||||
;; 1 and 2 marks (test case by Carl):
|
;; 1 and 2 marks (test case by Carl):
|
||||||
|
|
||||||
|
@ -2133,7 +2133,7 @@
|
||||||
(require (for-template racket/base))
|
(require (for-template racket/base))
|
||||||
(define (disarm s)
|
(define (disarm s)
|
||||||
(unless (syntax-tainted? (car (syntax-e (syntax-disarm s #f))))
|
(unless (syntax-tainted? (car (syntax-e (syntax-disarm s #f))))
|
||||||
(error "disarm suceeded!"))
|
(error "disarm succeeded!"))
|
||||||
#''ok)
|
#''ok)
|
||||||
(provide disarm)))
|
(provide disarm)))
|
||||||
|
|
||||||
|
@ -2338,7 +2338,7 @@
|
||||||
(restore))))
|
(restore))))
|
||||||
|
|
||||||
;; ----------------------------------------
|
;; ----------------------------------------
|
||||||
;; Make sure somethign reasonable happens when a `for-syntax` `define`
|
;; Make sure something reasonable happens when a `for-syntax` `define`
|
||||||
;; is seen via `local-expand` but is not preserved in the expansion
|
;; is seen via `local-expand` but is not preserved in the expansion
|
||||||
|
|
||||||
(module module-compiles-but-does-not-visit racket/base
|
(module module-compiles-but-does-not-visit racket/base
|
||||||
|
|
|
@ -1086,7 +1086,7 @@
|
||||||
#:exists 'truncate
|
#:exists 'truncate
|
||||||
(lambda () (write-bytes b-s)))
|
(lambda () (write-bytes b-s)))
|
||||||
((dynamic-require (build-path temp-dir "check-gen.rkt") 'b) 10)))
|
((dynamic-require (build-path temp-dir "check-gen.rkt") 'b) 10)))
|
||||||
;; Triger JIT generation with constant function as `a':
|
;; Trigger JIT generation with constant function as `a':
|
||||||
(go a-s)
|
(go a-s)
|
||||||
;; Check that we don't crash when trying to use a different `a':
|
;; Check that we don't crash when trying to use a different `a':
|
||||||
(err/rt-test (go am-s) exn:fail?)
|
(err/rt-test (go am-s) exn:fail?)
|
||||||
|
@ -1128,7 +1128,7 @@
|
||||||
(require 'use-a-with-auto-field)
|
(require 'use-a-with-auto-field)
|
||||||
|
|
||||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; check that `require' inside `beging-for-syntax' sets up the right phase dependency
|
;; check that `require' inside `begin-for-syntax' sets up the right phase dependency
|
||||||
|
|
||||||
(let ([o (open-output-bytes)])
|
(let ([o (open-output-bytes)])
|
||||||
(parameterize ([current-output-port o]
|
(parameterize ([current-output-port o]
|
||||||
|
|
|
@ -5681,7 +5681,7 @@
|
||||||
(check pred t1 e1)))))
|
(check pred t1 e1)))))
|
||||||
|
|
||||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Check unboxing with mutual recusion:
|
;; Check unboxing with mutual recursion:
|
||||||
|
|
||||||
(let ()
|
(let ()
|
||||||
;; Literal lists thwart inlining:
|
;; Literal lists thwart inlining:
|
||||||
|
@ -6105,7 +6105,7 @@
|
||||||
(void (read (open-input-bytes (get-output-bytes o))))))
|
(void (read (open-input-bytes (get-output-bytes o))))))
|
||||||
|
|
||||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Check for an optimizer regresssion
|
;; Check for an optimizer regression
|
||||||
|
|
||||||
(err/rt-test (+ (let-values (((x y) (let-values ((() 9)) 2))) x) (error))
|
(err/rt-test (+ (let-values (((x y) (let-values ((() 9)) 2))) x) (error))
|
||||||
exn:fail?)
|
exn:fail?)
|
||||||
|
@ -6509,7 +6509,7 @@
|
||||||
m)))
|
m)))
|
||||||
|
|
||||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Regresssion test for an optimizer bug
|
;; Regression test for an optimizer bug
|
||||||
|
|
||||||
(define (late-inline-with-single-use-that-turns-out-to-be-movable g)
|
(define (late-inline-with-single-use-that-turns-out-to-be-movable g)
|
||||||
(let ([x (g)])
|
(let ([x (g)])
|
||||||
|
|
|
@ -545,7 +545,7 @@
|
||||||
(test 'not-ready values ok?))
|
(test 'not-ready values ok?))
|
||||||
|
|
||||||
;; If a `nack-guard-evt` function returns a `choice-evt`,
|
;; If a `nack-guard-evt` function returns a `choice-evt`,
|
||||||
;; then chosing any of those should avoid a NACK:
|
;; then choosing any of those should avoid a NACK:
|
||||||
(let ([n #f])
|
(let ([n #f])
|
||||||
(sync (nack-guard-evt (lambda (nack)
|
(sync (nack-guard-evt (lambda (nack)
|
||||||
(set! n nack)
|
(set! n nack)
|
||||||
|
@ -868,7 +868,7 @@
|
||||||
|
|
||||||
;; ----------------------------------------
|
;; ----------------------------------------
|
||||||
|
|
||||||
;; In the current implemenation, a depth of 10 for
|
;; In the current implementation, a depth of 10 for
|
||||||
;; waitable chains is a magic number; it causes the scheduler to
|
;; waitable chains is a magic number; it causes the scheduler to
|
||||||
;; swap a thread in to check whether it can run, instead of
|
;; swap a thread in to check whether it can run, instead of
|
||||||
;; checking in the thread. (For a well-behaved chain, this
|
;; checking in the thread. (For a well-behaved chain, this
|
||||||
|
@ -1399,7 +1399,7 @@
|
||||||
(procedure-rename (mk-capturing 'act) 'act-capturing))))))
|
(procedure-rename (mk-capturing 'act) 'act-capturing))))))
|
||||||
|
|
||||||
;; ----------------------------------------
|
;; ----------------------------------------
|
||||||
;; Check wrap-evt result superceded by internally
|
;; Check wrap-evt result superseded by internally
|
||||||
;; installed constant (i.e., the input port):
|
;; installed constant (i.e., the input port):
|
||||||
|
|
||||||
(let ([p (make-input-port
|
(let ([p (make-input-port
|
||||||
|
|
|
@ -77,7 +77,7 @@ We should also test deep continuations.
|
||||||
(case (system-type 'vm)
|
(case (system-type 'vm)
|
||||||
[(chez-scheme)
|
[(chez-scheme)
|
||||||
(check-equal? 1 (length (get-blocks log)))
|
(check-equal? 1 (length (get-blocks log)))
|
||||||
;; `printf` is ok up to the point that it tries to get the currrent output port:
|
;; `printf` is ok up to the point that it tries to get the current output port:
|
||||||
(check-equal? 1 (length (get-blocks-on 'continuation-mark-set-first log)))]
|
(check-equal? 1 (length (get-blocks-on 'continuation-mark-set-first log)))]
|
||||||
[else
|
[else
|
||||||
(check-equal? 3 (length (get-blocks log)))
|
(check-equal? 3 (length (get-blocks log)))
|
||||||
|
|
|
@ -1484,7 +1484,7 @@
|
||||||
;; top-level converts the top-level tok list e into
|
;; top-level converts the top-level tok list e into
|
||||||
;; a new top-level tok list, often collecting info
|
;; a new top-level tok list, often collecting info
|
||||||
;; (such as function prototypes and typedefs).
|
;; (such as function prototypes and typedefs).
|
||||||
;; It expects that the tok list e reprsents one "thing",
|
;; It expects that the tok list e represents one "thing",
|
||||||
;; which often means that it's terminated with a semicolon.
|
;; which often means that it's terminated with a semicolon.
|
||||||
(define (top-level e where can-drop-vars?)
|
(define (top-level e where can-drop-vars?)
|
||||||
(cond
|
(cond
|
||||||
|
@ -2881,7 +2881,7 @@
|
||||||
|
|
||||||
local-vars)
|
local-vars)
|
||||||
(append extra-vars local-vars))])
|
(append extra-vars local-vars))])
|
||||||
;; Convert calls and body (recusively)
|
;; Convert calls and body (recursively)
|
||||||
(let-values ([(orig-maxlive) (live-var-info-maxlive live-vars)]
|
(let-values ([(orig-maxlive) (live-var-info-maxlive live-vars)]
|
||||||
[(orig-maxpush) (live-var-info-maxpush live-vars)]
|
[(orig-maxpush) (live-var-info-maxpush live-vars)]
|
||||||
[(orig-tag) (live-var-info-tag live-vars)]
|
[(orig-tag) (live-var-info-tag live-vars)]
|
||||||
|
@ -3527,7 +3527,7 @@
|
||||||
(tok-n (car func))))
|
(tok-n (car func))))
|
||||||
;; Lift out function calls as arguments. (Can re-order code.
|
;; Lift out function calls as arguments. (Can re-order code.
|
||||||
;; Racket source code must live with this change to C's semantics.)
|
;; Racket source code must live with this change to C's semantics.)
|
||||||
;; Calls are replaced by varaibles, and setup code generated that
|
;; Calls are replaced by variables, and setup code generated that
|
||||||
;; assigns to the variables.
|
;; assigns to the variables.
|
||||||
(let*-values ([(live-vars)
|
(let*-values ([(live-vars)
|
||||||
;; Check for special form (XXX -> ivar) = call, which will
|
;; Check for special form (XXX -> ivar) = call, which will
|
||||||
|
@ -4054,7 +4054,7 @@
|
||||||
(eq? semi (tok-n (list-ref e (sub1 (length e)))))
|
(eq? semi (tok-n (list-ref e (sub1 (length e)))))
|
||||||
;; Doesn't start with a star, decrement, increment, or global call
|
;; Doesn't start with a star, decrement, increment, or global call
|
||||||
(not (memq (tok-n (car e)) '(* -- ++ |::|)))
|
(not (memq (tok-n (car e)) '(* -- ++ |::|)))
|
||||||
;; Not an assignemnt
|
;; Not an assignment
|
||||||
(not (memq (tok-n (cadr e)) '(= += -=)))
|
(not (memq (tok-n (cadr e)) '(= += -=)))
|
||||||
;; Not a return, case, new, or delete
|
;; Not a return, case, new, or delete
|
||||||
(not (memq (tok-n (car e)) '(return case new delete delete_wxobject)))
|
(not (memq (tok-n (car e)) '(return case new delete delete_wxobject)))
|
||||||
|
|
|
@ -123,7 +123,7 @@
|
||||||
;; Extract cache-db, holding file lock (in `lock-mode`) while calling
|
;; Extract cache-db, holding file lock (in `lock-mode`) while calling
|
||||||
;; `success-handler` on the db. If the cache-db read fails, use an
|
;; `success-handler` on the db. If the cache-db read fails, use an
|
||||||
;; empty db. If any failure happens other than reading the db,
|
;; empty db. If any failure happens other than reading the db,
|
||||||
;; including duing `success-handler`, then call `failure-handler` with
|
;; including during `success-handler`, then call `failure-handler` with
|
||||||
;; the exception after logging it. Note that breaks are disabled when
|
;; the exception after logging it. Note that breaks are disabled when
|
||||||
;; calling the failure handler, so it should return quickly.
|
;; calling the failure handler, so it should return quickly.
|
||||||
(define call-with-cache-db/catch-exn-until-success-finishes
|
(define call-with-cache-db/catch-exn-until-success-finishes
|
||||||
|
|
|
@ -527,7 +527,7 @@
|
||||||
(valid-version? inst-vers*))))
|
(valid-version? inst-vers*))))
|
||||||
(begin
|
(begin
|
||||||
(log-pkg-error
|
(log-pkg-error
|
||||||
"bad verson specification for ~a: ~e"
|
"bad version specification for ~a: ~e"
|
||||||
name
|
name
|
||||||
inst-vers*)
|
inst-vers*)
|
||||||
"0.0")
|
"0.0")
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
(define pkg-lock-scope (make-parameter #f))
|
(define pkg-lock-scope (make-parameter #f))
|
||||||
|
|
||||||
;; Call `t' with lock held for the current scope. The intent is that
|
;; Call `t' with lock held for the current scope. The intent is that
|
||||||
;; `t' reads and writes package information in the curent scope. It
|
;; `t' reads and writes package information in the current scope. It
|
||||||
;; may also *read* package information for wider package scopes
|
;; may also *read* package information for wider package scopes
|
||||||
;; without a further lock --- which is questionable, but modification
|
;; without a further lock --- which is questionable, but modification
|
||||||
;; of a shared scope while others are running can create trouble,
|
;; of a shared scope while others are running can create trouble,
|
||||||
|
|
|
@ -67,7 +67,7 @@
|
||||||
[else (sorted-nelist-contains-prefix? (cdr nel))]))
|
[else (sorted-nelist-contains-prefix? (cdr nel))]))
|
||||||
|
|
||||||
;; prefix? : string string -> boolean
|
;; prefix? : string string -> boolean
|
||||||
;; determins if s1 is a prefix of s2
|
;; determines if s1 is a prefix of s2
|
||||||
(define (prefix? s1 s2)
|
(define (prefix? s1 s2)
|
||||||
(and (<= (string-length s1) (string-length s2))
|
(and (<= (string-length s1) (string-length s2))
|
||||||
(string=? s1 (substring s2 0 (string-length s1)))))
|
(string=? s1 (substring s2 0 (string-length s1)))))
|
||||||
|
|
|
@ -119,7 +119,7 @@ Filesystem and environment variables: ----------
|
||||||
exn:missing-module?, and exn:missing-module-accessor
|
exn:missing-module?, and exn:missing-module-accessor
|
||||||
Changed string->path-element and bytes->path-element to raise an
|
Changed string->path-element and bytes->path-element to raise an
|
||||||
exception for an empty [byte-]string argument
|
exception for an empty [byte-]string argument
|
||||||
Changed path-replace-suffix to raise an excpetion when a path element
|
Changed path-replace-suffix to raise an exception when a path element
|
||||||
would be made empty
|
would be made empty
|
||||||
Changed syntax-local-lift-context to distinguish top-level environments
|
Changed syntax-local-lift-context to distinguish top-level environments
|
||||||
Datatypes: ----------
|
Datatypes: ----------
|
||||||
|
@ -884,7 +884,7 @@ MzLib: Added define-member-name, member-name-key, and
|
||||||
Added syntax-local-lift-moule-end-declaration
|
Added syntax-local-lift-moule-end-declaration
|
||||||
Changed namespace-attach-module and namespace-unprotect-module
|
Changed namespace-attach-module and namespace-unprotect-module
|
||||||
to accept quoted module paths, instead of only symbolic names
|
to accept quoted module paths, instead of only symbolic names
|
||||||
Fixed avoidable overflow and undeflow in magnitude and / for
|
Fixed avoidable overflow and underflow in magnitude and / for
|
||||||
inexact complex numbers
|
inexact complex numbers
|
||||||
Fixed bug in continuation sharing
|
Fixed bug in continuation sharing
|
||||||
Improved 3m performance
|
Improved 3m performance
|
||||||
|
@ -1237,7 +1237,7 @@ Fixed a bug in the bytecode verifier that caused it to skip
|
||||||
significant parts of typical bytecode
|
significant parts of typical bytecode
|
||||||
Added a hook for (planet ...) module paths to the standard
|
Added a hook for (planet ...) module paths to the standard
|
||||||
module name resolver
|
module name resolver
|
||||||
MzLib's contract.ss: changed and/f to and/c, or/f is deprected
|
MzLib's contract.ss: changed and/f to and/c, or/f is deprecated
|
||||||
(use union), added object contracts, flat-contracts (without
|
(use union), added object contracts, flat-contracts (without
|
||||||
names) are a separate type; use flat-contract-predicate rather
|
names) are a separate type; use flat-contract-predicate rather
|
||||||
than flat-named-contract, added flat-rec-contract, improved
|
than flat-named-contract, added flat-rec-contract, improved
|
||||||
|
@ -1601,7 +1601,7 @@ Removed user-break-poll-handler; spawn a thread that sleeps and
|
||||||
calls break-thread, instead
|
calls break-thread, instead
|
||||||
Removed dynamic-enable-break (no long needed since dynamic-wind
|
Removed dynamic-enable-break (no long needed since dynamic-wind
|
||||||
post thunks can't be broken), but moved it to MzLib's thread.ss
|
post thunks can't be broken), but moved it to MzLib's thread.ss
|
||||||
Removed execption-break-enabled (now always disabled)
|
Removed exception-break-enabled (now always disabled)
|
||||||
Added call-in-nested-thread
|
Added call-in-nested-thread
|
||||||
Removed thread-weight
|
Removed thread-weight
|
||||||
Renamed the call-with-escaping-continution procedure to
|
Renamed the call-with-escaping-continution procedure to
|
||||||
|
@ -1785,9 +1785,9 @@ Unit definitions and embedded definitions are not allowed
|
||||||
Changed display for symbols containg special characters:
|
Changed display for symbols containg special characters:
|
||||||
the special characters are not escaped (or bar-quoted)
|
the special characters are not escaped (or bar-quoted)
|
||||||
Changed write to use the value of (read-accept-bar-quote)
|
Changed write to use the value of (read-accept-bar-quote)
|
||||||
for printing symbols containing special charaters; if
|
for printing symbols containing special characters; if
|
||||||
bar qute reading is off, it is turned off for printing, too
|
bar qute reading is off, it is turned off for printing, too
|
||||||
Fixed unit/sig: correctly handles syntax where defintions in
|
Fixed unit/sig: correctly handles syntax where definitions in
|
||||||
the unit shadow syntactic forms
|
the unit shadow syntactic forms
|
||||||
Fixed round of exact rational n/d in the case when (odd? d)
|
Fixed round of exact rational n/d in the case when (odd? d)
|
||||||
and (= (remainder n d) (quotient d 2))
|
and (= (remainder n d) (quotient d 2))
|
||||||
|
@ -2237,7 +2237,7 @@ More general stack overflow-checking (when needed)
|
||||||
Computations can overflow the stack and continue
|
Computations can overflow the stack and continue
|
||||||
Changed command line flags; added -r (or --script) flag
|
Changed command line flags; added -r (or --script) flag
|
||||||
Added multiple inheritance and `rename', `share', and `local' declarations
|
Added multiple inheritance and `rename', `share', and `local' declarations
|
||||||
Merged Patrick Barta's Windows DLL implementation for `load-extention'
|
Merged Patrick Barta's Windows DLL implementation for `load-extension'
|
||||||
Re-implemented `quasiquote', `and', and `or' as a macros
|
Re-implemented `quasiquote', `and', and `or' as a macros
|
||||||
Re-implemented let-forms to make small `let's efficient
|
Re-implemented let-forms to make small `let's efficient
|
||||||
`let*' expands to `let'
|
`let*' expands to `let'
|
||||||
|
|
|
@ -298,7 +298,7 @@ uses of mutable pairs are isolated and easy to convert to either
|
||||||
mpairs or functional style. The new `scheme/mpair' library provides
|
mpairs or functional style. The new `scheme/mpair' library provides
|
||||||
functions for processing mutable lists.
|
functions for processing mutable lists.
|
||||||
|
|
||||||
For compatbility, the `cons' exported by the `r5rs' language module is
|
For compatibility, the `cons' exported by the `r5rs' language module is
|
||||||
an alias for `mcons', and the various list-consuming and -producing
|
an alias for `mcons', and the various list-consuming and -producing
|
||||||
functions expetced by `r5rs' also use mutable pairs. Even the `lambda'
|
functions expetced by `r5rs' also use mutable pairs. Even the `lambda'
|
||||||
form of `r5rs' converts rest arguments to mutable lists.
|
form of `r5rs' converts rest arguments to mutable lists.
|
||||||
|
|
|
@ -340,7 +340,7 @@
|
||||||
;; -> (values (listof (or/c pre/pos arg) (listof (or/c #f nat)))
|
;; -> (values (listof (or/c pre/pos arg) (listof (or/c #f nat)))
|
||||||
;; sorts the arguments according to the dependency order.
|
;; sorts the arguments according to the dependency order.
|
||||||
;; returns them in the reverse of that order, ie expressions that need
|
;; returns them in the reverse of that order, ie expressions that need
|
||||||
;; to be evaluted first come later in the list.
|
;; to be evaluated first come later in the list.
|
||||||
;; the second result maps back from the sorted order
|
;; the second result maps back from the sorted order
|
||||||
;; (in the first result) to the original order (in `args`)
|
;; (in the first result) to the original order (in `args`)
|
||||||
(define-for-syntax (find-ordering args)
|
(define-for-syntax (find-ordering args)
|
||||||
|
@ -371,7 +371,7 @@ evaluted left-to-right.)
|
||||||
(arg/res-var arg)
|
(arg/res-var arg)
|
||||||
(hash-ref pre/post-fake-vars arg)))
|
(hash-ref pre/post-fake-vars arg)))
|
||||||
|
|
||||||
;; track the indicies into `args` for the nodes in the graph
|
;; track the indices into `args` for the nodes in the graph
|
||||||
;; and do the same thing but only for the subset that are actually args
|
;; and do the same thing but only for the subset that are actually args
|
||||||
;; (unfortuntately we rely on `eq?` here)
|
;; (unfortuntately we rely on `eq?` here)
|
||||||
(define numbers (make-hasheq))
|
(define numbers (make-hasheq))
|
||||||
|
|
|
@ -70,7 +70,7 @@
|
||||||
;; Try to switch to the module namespace,
|
;; Try to switch to the module namespace,
|
||||||
;; even if there was an exception, because the
|
;; even if there was an exception, because the
|
||||||
;; idea is to allow debugging from inside the
|
;; idea is to allow debugging from inside the
|
||||||
;; module. If any excepiton happens in trying to
|
;; module. If any exception happens in trying to
|
||||||
;; switch to the declared module, log that as
|
;; switch to the declared module, log that as
|
||||||
;; an internal exception.
|
;; an internal exception.
|
||||||
(with-handlers ([void (lambda (exn)
|
(with-handlers ([void (lambda (exn)
|
||||||
|
|
|
@ -2662,7 +2662,7 @@ last few projections.
|
||||||
(unless (vector-ref meth-flags index)
|
(unless (vector-ref meth-flags index)
|
||||||
(vector-set! meth-flags index (not make-struct:prim)))
|
(vector-set! meth-flags index (not make-struct:prim)))
|
||||||
|
|
||||||
;; clear out external contracts for methods that are overriden
|
;; clear out external contracts for methods that are overridden
|
||||||
(when wci-neg-extra-arg-vec
|
(when wci-neg-extra-arg-vec
|
||||||
(vector-set! wci-neg-extra-arg-vec index #f)
|
(vector-set! wci-neg-extra-arg-vec index #f)
|
||||||
(hash-remove! wci-neg-acceptors-ht method)))
|
(hash-remove! wci-neg-acceptors-ht method)))
|
||||||
|
|
|
@ -105,7 +105,7 @@
|
||||||
(or (free-identifier=? #'decl #'declare-field-use)
|
(or (free-identifier=? #'decl #'declare-field-use)
|
||||||
(free-identifier=? #'decl #'declare-field-assignment)))
|
(free-identifier=? #'decl #'declare-field-assignment)))
|
||||||
;; A field is used or assigned. If tracking has started, make sure the
|
;; A field is used or assigned. If tracking has started, make sure the
|
||||||
;; field is definitely initalized:
|
;; field is definitely initialized:
|
||||||
(or (and ready
|
(or (and ready
|
||||||
(ormap (lambda (id)
|
(ormap (lambda (id)
|
||||||
(not (module-identifier-mapping-get ready id (lambda () #f))))
|
(not (module-identifier-mapping-get ready id (lambda () #f))))
|
||||||
|
|
|
@ -98,7 +98,7 @@
|
||||||
#'id
|
#'id
|
||||||
(with-syntax ([bindings (syntax/loc stx ([obj obj-expr] [id expr]))]
|
(with-syntax ([bindings (syntax/loc stx ([obj obj-expr] [id expr]))]
|
||||||
[set (quasisyntax/loc stx
|
[set (quasisyntax/loc stx
|
||||||
;; This continuation mark disables the chaperone on field assignement
|
;; This continuation mark disables the chaperone on field assignment
|
||||||
;; (if any) installed via `prop:chaperone-unsafe-undefined`:
|
;; (if any) installed via `prop:chaperone-unsafe-undefined`:
|
||||||
(with-continuation-mark prop:chaperone-unsafe-undefined unsafe-undefined
|
(with-continuation-mark prop:chaperone-unsafe-undefined unsafe-undefined
|
||||||
#,(quasisyntax/loc stx
|
#,(quasisyntax/loc stx
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
(only-in racket/private/hash paired-fold)
|
(only-in racket/private/hash paired-fold)
|
||||||
(for-syntax racket/base))
|
(for-syntax racket/base))
|
||||||
|
|
||||||
;; `assoc?` is not constant time, but it's likely to be called mutiple
|
;; `assoc?` is not constant time, but it's likely to be called multiple
|
||||||
;; times on a given argument, so keep a weak hash of known associates:
|
;; times on a given argument, so keep a weak hash of known associates:
|
||||||
(define known-assocs (make-weak-hasheq))
|
(define known-assocs (make-weak-hasheq))
|
||||||
|
|
||||||
|
|
|
@ -1325,7 +1325,7 @@
|
||||||
[n (length args)]
|
[n (length args)]
|
||||||
[lift-args (lambda (k)
|
[lift-args (lambda (k)
|
||||||
(if (not lifted?)
|
(if (not lifted?)
|
||||||
;; caller didn't lift expresions out
|
;; caller didn't lift expressions out
|
||||||
(let ([ids (generate-temporaries args)])
|
(let ([ids (generate-temporaries args)])
|
||||||
#`(let #,(map list ids args)
|
#`(let #,(map list ids args)
|
||||||
#,(k ids)))
|
#,(k ids)))
|
||||||
|
|
|
@ -181,7 +181,7 @@
|
||||||
;; string-contains? uses a variant of the Knuth-Morris-Pratt string search
|
;; string-contains? uses a variant of the Knuth-Morris-Pratt string search
|
||||||
;; algorithm. It start with a direct search without the KMP table, until
|
;; algorithm. It start with a direct search without the KMP table, until
|
||||||
;; it finds a partial match that long enough (currently 4 characters).
|
;; it finds a partial match that long enough (currently 4 characters).
|
||||||
;; The table is also skiped when there are only a few characters left
|
;; The table is also skipped when there are only a few characters left
|
||||||
;; to test (currently 4 characters).
|
;; to test (currently 4 characters).
|
||||||
;; The first time a partial match is found, it buils a small partial table
|
;; The first time a partial match is found, it buils a small partial table
|
||||||
;; and if it is necesay it builds the complete table.
|
;; and if it is necesay it builds the complete table.
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
;; Note: in some cases this returns the input path as is, which
|
;; Note: in some cases this returns the input path as is, which
|
||||||
;; could be a byte string -- it should be possible to return
|
;; could be a byte string -- it should be possible to return
|
||||||
;; `path1', but that messes up the xform compilation somehow, by
|
;; `path1', but that messes up the xform compilation somehow, by
|
||||||
;; having #<path...> vaules written into dep files.
|
;; having #<path...> values written into dep files.
|
||||||
[(null? path) path0]
|
[(null? path) path0]
|
||||||
[(equal? (normal-case-path (car path)) (normal-case-path (car root)))
|
[(equal? (normal-case-path (car path)) (normal-case-path (car root)))
|
||||||
(loop (cdr path) (cdr root))]
|
(loop (cdr path) (cdr root))]
|
||||||
|
|
|
@ -289,7 +289,7 @@
|
||||||
(unless (eq? (read-char in) #\=)
|
(unless (eq? (read-char in) #\=)
|
||||||
(lex-error in pos "expected = in attribute ~a" name))
|
(lex-error in pos "expected = in attribute ~a" name))
|
||||||
(skip-space in)
|
(skip-space in)
|
||||||
;; more here - handle entites and disallow "<"
|
;; more here - handle entities and disallow "<"
|
||||||
(let* ([delimiter (read-char-or-special in)]
|
(let* ([delimiter (read-char-or-special in)]
|
||||||
[value (case delimiter
|
[value (case delimiter
|
||||||
[(#\' #\")
|
[(#\' #\")
|
||||||
|
@ -307,7 +307,7 @@
|
||||||
(string->list (pcdata-string entity))]
|
(string->list (pcdata-string entity))]
|
||||||
[(number? (entity-text entity))
|
[(number? (entity-text entity))
|
||||||
(list (integer->char (entity-text entity)))]
|
(list (integer->char (entity-text entity)))]
|
||||||
;; more here - do something with user defined entites
|
;; more here - do something with user defined entities
|
||||||
[else '()])
|
[else '()])
|
||||||
(read-more)))]
|
(read-more)))]
|
||||||
[else (read-char in) (cons c (read-more))]))))]
|
[else (read-char in) (cons c (read-more))]))))]
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
runstack-stage-clear!)
|
runstack-stage-clear!)
|
||||||
|
|
||||||
(struct runstack (rs-state ; shared state table
|
(struct runstack (rs-state ; shared state table
|
||||||
depth ; curent stack depth
|
depth ; current stack depth
|
||||||
max-depth ; max reached stack depth
|
max-depth ; max reached stack depth
|
||||||
sync-depth ; depth that MZ_RUNSTACK currently has, `#f` if unknown
|
sync-depth ; depth that MZ_RUNSTACK currently has, `#f` if unknown
|
||||||
vars ; list of pushed vars, newest first
|
vars ; list of pushed vars, newest first
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
;; * '#:runstack to information recorded and used
|
;; * '#:runstack to information recorded and used
|
||||||
;; by "runstack.rkt"
|
;; by "runstack.rkt"
|
||||||
;;
|
;;
|
||||||
;; * '#:implicit to a table of implicity referenced
|
;; * '#:implicit to a table of implicitly referenced
|
||||||
;; variables; an implicit reference happens when
|
;; variables; an implicit reference happens when
|
||||||
;; a variable is passed in-place in a tail call
|
;; a variable is passed in-place in a tail call
|
||||||
;;
|
;;
|
||||||
|
|
|
@ -202,7 +202,7 @@ of Chez Scheme to compile Chez Scheme boot files.
|
||||||
|
|
||||||
* Obtain a sufficiently new Racket implementation, possibly by
|
* Obtain a sufficiently new Racket implementation, possibly by
|
||||||
following the directions in "../README.txt" to build the
|
following the directions in "../README.txt" to build the
|
||||||
traditional implemenation of Racket. No extra packages are needed
|
traditional implementation of Racket. No extra packages are needed
|
||||||
beyond a minimal Racket build.
|
beyond a minimal Racket build.
|
||||||
|
|
||||||
* Set the current directory to a "ChezScheme" directory --- either a
|
* Set the current directory to a "ChezScheme" directory --- either a
|
||||||
|
|
|
@ -7,7 +7,7 @@ build.)
|
||||||
The "make-boot.rkt" programs builds Chez Scheme ".boot" and ".h" files
|
The "make-boot.rkt" programs builds Chez Scheme ".boot" and ".h" files
|
||||||
from source. The output is written to "<machine>/boot/<machine>" in a
|
from source. The output is written to "<machine>/boot/<machine>" in a
|
||||||
Chez Scheme source directory. Build boot files that way before
|
Chez Scheme source directory. Build boot files that way before
|
||||||
`configure` and `make` to boostrap the build.
|
`configure` and `make` to bootstrap the build.
|
||||||
|
|
||||||
The Chez Scheme simulation hasn't been made especially fast, so expect
|
The Chez Scheme simulation hasn't been made especially fast, so expect
|
||||||
the bootstrap process to take 5-10 times as long as using an existing
|
the bootstrap process to take 5-10 times as long as using an existing
|
||||||
|
|
|
@ -55,7 +55,7 @@
|
||||||
(delta char-downcase b))
|
(delta char-downcase b))
|
||||||
(eqv? (delta char-titlecase a)
|
(eqv? (delta char-titlecase a)
|
||||||
(delta char-titlecase b))
|
(delta char-titlecase b))
|
||||||
;; Check whether decomposition behavor is different
|
;; Check whether decomposition behavior is different
|
||||||
(eqv? (non-decomp? a)
|
(eqv? (non-decomp? a)
|
||||||
(non-decomp? b))
|
(non-decomp? b))
|
||||||
;; Detect different combining classes
|
;; Detect different combining classes
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
(define (currently-in-engine?)
|
(define (currently-in-engine?)
|
||||||
(current-engine-complete-or-expire))
|
(current-engine-complete-or-expire))
|
||||||
|
|
||||||
;; An engine is repesented by a procedure that takes three arguments, where the
|
;; An engine is represented by a procedure that takes three arguments, where the
|
||||||
;; procedure must be tail-called either within `call-with-engine-completion` or
|
;; procedure must be tail-called either within `call-with-engine-completion` or
|
||||||
;; in an engine call's `complete-or-expire` callback:
|
;; in an engine call's `complete-or-expire` callback:
|
||||||
;; * ticks: number of ticks to run before exire
|
;; * ticks: number of ticks to run before exire
|
||||||
|
|
|
@ -146,7 +146,7 @@
|
||||||
(define (addr->gcpointer-memory v) ; call with GC disabled
|
(define (addr->gcpointer-memory v) ; call with GC disabled
|
||||||
(#%$address->object v bytevector-content-offset))
|
(#%$address->object v bytevector-content-offset))
|
||||||
|
|
||||||
(define (addr->vector v) ; call with GC disabled or when reuslt is locked
|
(define (addr->vector v) ; call with GC disabled or when result is locked
|
||||||
(#%$address->object v vector-content-offset))
|
(#%$address->object v vector-content-offset))
|
||||||
|
|
||||||
;; Converts a primitive cpointer (normally the result of
|
;; Converts a primitive cpointer (normally the result of
|
||||||
|
@ -1353,7 +1353,7 @@
|
||||||
(let ([duplicate-argument
|
(let ([duplicate-argument
|
||||||
(lambda (what a1 a2)
|
(lambda (what a1 a2)
|
||||||
(raise-arguments-error 'malloc
|
(raise-arguments-error 'malloc
|
||||||
(string-append "mulitple " what " arguments")
|
(string-append "multiple " what " arguments")
|
||||||
"first" a1
|
"first" a1
|
||||||
"second" a2))])
|
"second" a2))])
|
||||||
(let loop ([args args] [count #f] [type #f] [copy-from #f] [mode #f] [fail-mode #f])
|
(let loop ([args args] [count #f] [type #f] [copy-from #f] [mode #f] [fail-mode #f])
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
;; (include "rumble/hamt-vector.ss")
|
;; (include "rumble/hamt-vector.ss")
|
||||||
;;
|
;;
|
||||||
;; This HAMT implementaiton uses plain vectors instead of stencil
|
;; This HAMT implementation uses plain vectors instead of stencil
|
||||||
;; vectors. Its speed and memory use are both worse than the
|
;; vectors. Its speed and memory use are both worse than the
|
||||||
;; stencil-vector HAMT implementation, but it was the original source
|
;; stencil-vector HAMT implementation, but it was the original source
|
||||||
;; of the stencil-vector implementation.
|
;; of the stencil-vector implementation.
|
||||||
|
|
|
@ -386,7 +386,7 @@
|
||||||
|
|
||||||
;; ----------------------------------------
|
;; ----------------------------------------
|
||||||
|
|
||||||
;; Weak table of (cons <pre> <post>) keys, currently suported
|
;; Weak table of (cons <pre> <post>) keys, currently supported
|
||||||
;; only in the original host thread of the original place
|
;; only in the original host thread of the original place
|
||||||
(define collect-callbacks (make-weak-eq-hashtable))
|
(define collect-callbacks (make-weak-eq-hashtable))
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
;; the rest are used by the thread, io, etc., layers for directly
|
;; the rest are used by the thread, io, etc., layers for directly
|
||||||
;; accessed variables.
|
;; accessed variables.
|
||||||
|
|
||||||
(define NUM-PLACE-REGISTERS 128) ; 3 thorugh 126 available for subsystems
|
(define NUM-PLACE-REGISTERS 128) ; 3 through 126 available for subsystems
|
||||||
|
|
||||||
(define LOCAL_TABLE-INDEX 0)
|
(define LOCAL_TABLE-INDEX 0)
|
||||||
(define ASYNC-CALLBACK-REGISTER-INDEX 1)
|
(define ASYNC-CALLBACK-REGISTER-INDEX 1)
|
||||||
|
|
|
@ -10,4 +10,4 @@
|
||||||
re-exports ; list of links: links whose variables are re-exported
|
re-exports ; list of links: links whose variables are re-exported
|
||||||
variables ; set of symbols: defined in the implementation, for detecting re-exports
|
variables ; set of symbols: defined in the implementation, for detecting re-exports
|
||||||
in-variables ; list of list of symbols: for each import, variables used from the import
|
in-variables ; list of list of symbols: for each import, variables used from the import
|
||||||
side-effects?)) ; whether the implementaiton has side effects other than variable definition
|
side-effects?)) ; whether the implementation has side effects other than variable definition
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
[suspicious-closer #:mutable] ; expected closer when suspicious line found
|
[suspicious-closer #:mutable] ; expected closer when suspicious line found
|
||||||
[multiline? #:mutable] ; set to #f if the match attempt spans a line
|
[multiline? #:mutable] ; set to #f if the match attempt spans a line
|
||||||
start-line ; opener's line
|
start-line ; opener's line
|
||||||
[last-line #:mutable] ; current line, already checked the identation
|
[last-line #:mutable] ; current line, already checked the indentation
|
||||||
[suspicious-line #:mutable] ; non-#f => first suspicious line since opener
|
[suspicious-line #:mutable] ; non-#f => first suspicious line since opener
|
||||||
[max-indent #:mutable] ; max indentation encountered since opener, not counting brackets by a more neseted opener
|
[max-indent #:mutable] ; max indentation encountered since opener, not counting brackets by a more neseted opener
|
||||||
[suspicious-quote #:mutable])) ; non-#f => first suspicious quote whose closer is on a different line
|
[suspicious-quote #:mutable])) ; non-#f => first suspicious quote whose closer is on a different line
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
"parse-case.rkt"
|
"parse-case.rkt"
|
||||||
"parameter.rkt"
|
"parameter.rkt"
|
||||||
;; Used only to coerce strings to extflonums
|
;; Used only to coerce strings to extflonums
|
||||||
;; when extflonums are not fully suported:
|
;; when extflonums are not fully supported:
|
||||||
(prefix-in host: "../host/string-to-number.rkt"))
|
(prefix-in host: "../host/string-to-number.rkt"))
|
||||||
|
|
||||||
(provide string->number
|
(provide string->number
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
(require racket/fixnum
|
(require racket/fixnum
|
||||||
(for-syntax racket/base))
|
(for-syntax racket/base))
|
||||||
|
|
||||||
;; `parse-case` is used for numebr parsing in "number.rkt"
|
;; `parse-case` is used for number parsing in "number.rkt"
|
||||||
|
|
||||||
(provide parse-case
|
(provide parse-case
|
||||||
parse-case*
|
parse-case*
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
char-ht
|
char-ht
|
||||||
;; The dispatch table maps character for `#` dispatch
|
;; The dispatch table maps character for `#` dispatch
|
||||||
dispatch-ht
|
dispatch-ht
|
||||||
;; The delimter table maps a character to 'delimit,
|
;; The delimiter table maps a character to 'delimit,
|
||||||
;; 'no-delimit, or a character whose default to use;
|
;; 'no-delimit, or a character whose default to use;
|
||||||
;; absence of a mapping is the default for that character
|
;; absence of a mapping is the default for that character
|
||||||
delimiter-ht)
|
delimiter-ht)
|
||||||
|
|
|
@ -108,7 +108,7 @@
|
||||||
(cond
|
(cond
|
||||||
[(special-comment? v) (loop depth accum #f #f read-one)]
|
[(special-comment? v) (loop depth accum #f #f read-one)]
|
||||||
[(depth . > . 1024)
|
[(depth . > . 1024)
|
||||||
;; At some large depth, it's better to accumlate than recur
|
;; At some large depth, it's better to accumulate than recur
|
||||||
(loop depth (cons v accum) #f #f read-one)]
|
(loop depth (cons v accum) #f #f read-one)]
|
||||||
[else
|
[else
|
||||||
(cons v (loop (add1 depth) null #f #f read-one))])])))
|
(cons v (loop (add1 depth) null #f #f read-one))])])))
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
([sc (in-set s-scs)]
|
([sc (in-set s-scs)]
|
||||||
[(scs b) (in-binding-table sym (scope-binding-table sc) s null)]
|
[(scs b) (in-binding-table sym (scope-binding-table sc) s null)]
|
||||||
#:when (and scs b
|
#:when (and scs b
|
||||||
;; Skip overidden:
|
;; Skip overridden:
|
||||||
(not (set-member? covered-scope-sets scs))))
|
(not (set-member? covered-scope-sets scs))))
|
||||||
(values
|
(values
|
||||||
(cons
|
(cons
|
||||||
|
|
|
@ -1888,7 +1888,7 @@ static void *wrong_value(const char *who, const char *type, Scheme_Object *val)
|
||||||
|
|
||||||
/* Usually writes the C object to dst and returns NULL. When basetype_p is not
|
/* Usually writes the C object to dst and returns NULL. When basetype_p is not
|
||||||
* NULL, then any pointer value (any pointer or a struct or array) is returned, and the
|
* NULL, then any pointer value (any pointer or a struct or array) is returned, and the
|
||||||
* basetype_p is set to the corrsponding number tag. If basetype_p is NULL,
|
* basetype_p is set to the corresponding number tag. If basetype_p is NULL,
|
||||||
* then a struct or array value will be *copied* into dst. */
|
* then a struct or array value will be *copied* into dst. */
|
||||||
static void* SCHEME2C(const char *who,
|
static void* SCHEME2C(const char *who,
|
||||||
Scheme_Object *type, void *dst, intptr_t delta,
|
Scheme_Object *type, void *dst, intptr_t delta,
|
||||||
|
@ -3999,7 +3999,7 @@ static void ffi_do_callback(ffi_cif* cif, void* resultp, void** args, void *user
|
||||||
|
|
||||||
#ifdef MZ_USE_MZRT
|
#ifdef MZ_USE_MZRT
|
||||||
|
|
||||||
/* When OS-level thread support is avaiable, support callbacks
|
/* When OS-level thread support is available, support callbacks
|
||||||
in foreign threads that are executed on the main Racket thread. */
|
in foreign threads that are executed on the main Racket thread. */
|
||||||
|
|
||||||
typedef struct Queued_Callback {
|
typedef struct Queued_Callback {
|
||||||
|
|
|
@ -1621,7 +1621,7 @@ static void *wrong_value(const char *who, const char *type, Scheme_Object *val)
|
||||||
|
|
||||||
/* Usually writes the C object to dst and returns NULL. When basetype_p is not
|
/* Usually writes the C object to dst and returns NULL. When basetype_p is not
|
||||||
* NULL, then any pointer value (any pointer or a struct or array) is returned, and the
|
* NULL, then any pointer value (any pointer or a struct or array) is returned, and the
|
||||||
* basetype_p is set to the corrsponding number tag. If basetype_p is NULL,
|
* basetype_p is set to the corresponding number tag. If basetype_p is NULL,
|
||||||
* then a struct or array value will be *copied* into dst. */
|
* then a struct or array value will be *copied* into dst. */
|
||||||
static void* SCHEME2C(const char *who,
|
static void* SCHEME2C(const char *who,
|
||||||
Scheme_Object *type, void *dst, intptr_t delta,
|
Scheme_Object *type, void *dst, intptr_t delta,
|
||||||
|
@ -3160,7 +3160,7 @@ static void ffi_do_callback(ffi_cif* cif, void* resultp, void** args, void *user
|
||||||
|
|
||||||
#ifdef MZ_USE_MZRT
|
#ifdef MZ_USE_MZRT
|
||||||
|
|
||||||
/* When OS-level thread support is avaiable, support callbacks
|
/* When OS-level thread support is available, support callbacks
|
||||||
in foreign threads that are executed on the main Racket thread. */
|
in foreign threads that are executed on the main Racket thread. */
|
||||||
|
|
||||||
typedef struct Queued_Callback {
|
typedef struct Queued_Callback {
|
||||||
|
|
|
@ -1037,7 +1037,7 @@
|
||||||
|
|
||||||
2012-03-23 Peter Rosin <peda@lysator.liu.se>
|
2012-03-23 Peter Rosin <peda@lysator.liu.se>
|
||||||
|
|
||||||
* testsuite/libffi.call/ffitest.h: Provide abstration of
|
* testsuite/libffi.call/ffitest.h: Provide abstraction of
|
||||||
__attribute__((fastcall)) in the form of a __FASTCALL__
|
__attribute__((fastcall)) in the form of a __FASTCALL__
|
||||||
define. Define it to __fastcall for MSVC.
|
define. Define it to __fastcall for MSVC.
|
||||||
* testsuite/libffi.call/fastthis1_win32.c: Use the above.
|
* testsuite/libffi.call/fastthis1_win32.c: Use the above.
|
||||||
|
@ -3083,7 +3083,7 @@
|
||||||
|
|
||||||
2007-05-18 Aurelien Jarno <aurelien@aurel32.net>
|
2007-05-18 Aurelien Jarno <aurelien@aurel32.net>
|
||||||
|
|
||||||
* src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
|
* src/arm/ffi.c (ffi_prep_closure_loc): Renamed and adjusted
|
||||||
from (ffi_prep_closure): ... this.
|
from (ffi_prep_closure): ... this.
|
||||||
(FFI_INIT_TRAMPOLINE): Adjust.
|
(FFI_INIT_TRAMPOLINE): Adjust.
|
||||||
|
|
||||||
|
@ -4151,7 +4151,7 @@
|
||||||
* Makefile.am: Add m32r support.
|
* Makefile.am: Add m32r support.
|
||||||
* configure.ac: Likewise.
|
* configure.ac: Likewise.
|
||||||
* Makefile.in: Regenerate.
|
* Makefile.in: Regenerate.
|
||||||
* confiugre: Regenerate.
|
* configure: Regenerate.
|
||||||
* src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
|
* src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
|
||||||
(uint64, sint64, double, longdouble)
|
(uint64, sint64, double, longdouble)
|
||||||
* src/m32r: New directory.
|
* src/m32r: New directory.
|
||||||
|
@ -4182,7 +4182,7 @@
|
||||||
|
|
||||||
2004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
|
2004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
|
||||||
|
|
||||||
* src/powerpc/darwin.S: Fix comments and identation.
|
* src/powerpc/darwin.S: Fix comments and indentation.
|
||||||
* src/powerpc/darwin_closure.S: Likewise.
|
* src/powerpc/darwin_closure.S: Likewise.
|
||||||
|
|
||||||
2004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
|
2004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
|
||||||
|
|
|
@ -352,7 +352,7 @@ typedef struct {
|
||||||
|
|
||||||
/* if this is enabled, then a raw closure has the same layout
|
/* if this is enabled, then a raw closure has the same layout
|
||||||
as a regular closure. We use this to install an intermediate
|
as a regular closure. We use this to install an intermediate
|
||||||
handler to do the transaltion, void** -> ffi_raw*. */
|
handler to do the translation, void** -> ffi_raw*. */
|
||||||
|
|
||||||
void (*translate_args)(ffi_cif*,void*,void**,void*);
|
void (*translate_args)(ffi_cif*,void*,void**,void*);
|
||||||
void *this_closure;
|
void *this_closure;
|
||||||
|
@ -378,7 +378,7 @@ typedef struct {
|
||||||
|
|
||||||
/* if this is enabled, then a raw closure has the same layout
|
/* if this is enabled, then a raw closure has the same layout
|
||||||
as a regular closure. We use this to install an intermediate
|
as a regular closure. We use this to install an intermediate
|
||||||
handler to do the transaltion, void** -> ffi_raw*. */
|
handler to do the translation, void** -> ffi_raw*. */
|
||||||
|
|
||||||
void (*translate_args)(ffi_cif*,void*,void**,void*);
|
void (*translate_args)(ffi_cif*,void*,void**,void*);
|
||||||
void *this_closure;
|
void *this_closure;
|
||||||
|
|
|
@ -1438,7 +1438,7 @@ func_run_hooks ()
|
||||||
|
|
||||||
case " $hookable_fns " in
|
case " $hookable_fns " in
|
||||||
*" $1 "*) ;;
|
*" $1 "*) ;;
|
||||||
*) func_fatal_error "'$1' does not support hook funcions.n" ;;
|
*) func_fatal_error "'$1' does not support hook functions.n" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
eval _G_hook_fns=\$$1_hooks; shift
|
eval _G_hook_fns=\$$1_hooks; shift
|
||||||
|
@ -5648,7 +5648,7 @@ EOF
|
||||||
{
|
{
|
||||||
/* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
|
/* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
|
||||||
namespace, but it is not one of the ones we know about and
|
namespace, but it is not one of the ones we know about and
|
||||||
have already dealt with, above (inluding dump-script), then
|
have already dealt with, above (including dump-script), then
|
||||||
report an error. Otherwise, targets might begin to believe
|
report an error. Otherwise, targets might begin to believe
|
||||||
they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
|
they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
|
||||||
namespace. The first time any user complains about this, we'll
|
namespace. The first time any user complains about this, we'll
|
||||||
|
|
2
racket/src/foreign/libffi/m4/libtool.m4
vendored
2
racket/src/foreign/libffi/m4/libtool.m4
vendored
|
@ -639,7 +639,7 @@ configured by $[0], generated by m4_PACKAGE_STRING.
|
||||||
|
|
||||||
Copyright (C) 2011 Free Software Foundation, Inc.
|
Copyright (C) 2011 Free Software Foundation, Inc.
|
||||||
This config.lt script is free software; the Free Software Foundation
|
This config.lt script is free software; the Free Software Foundation
|
||||||
gives unlimited permision to copy, distribute and modify it."
|
gives unlimited permission to copy, distribute and modify it."
|
||||||
|
|
||||||
while test 0 != $[#]
|
while test 0 != $[#]
|
||||||
do
|
do
|
||||||
|
|
|
@ -72,7 +72,7 @@ _ffi_call_SYSV:
|
||||||
[FP+16] = R2;
|
[FP+16] = R2;
|
||||||
|
|
||||||
.allocate_stack:
|
.allocate_stack:
|
||||||
//alocate cif->bytes into the stack
|
//allocate cif->bytes into the stack
|
||||||
R1 = [FP+8];
|
R1 = [FP+8];
|
||||||
R0 = SP;
|
R0 = SP;
|
||||||
R0 = R0 - R1;
|
R0 = R0 - R1;
|
||||||
|
@ -92,7 +92,7 @@ _ffi_call_SYSV:
|
||||||
call (P1);
|
call (P1);
|
||||||
|
|
||||||
.call_user_function:
|
.call_user_function:
|
||||||
//ajust SP so as to allow the user function access the parameters on the stack
|
//adjust SP so as to allow the user function access the parameters on the stack
|
||||||
SP = [FP-16]; //point to function parameters
|
SP = [FP-16]; //point to function parameters
|
||||||
R0 = [SP];
|
R0 = [SP];
|
||||||
R1 = [SP+4];
|
R1 = [SP+4];
|
||||||
|
|
|
@ -1336,7 +1336,7 @@ static void* os2mmap(size_t size) {
|
||||||
|
|
||||||
#define os2direct_mmap(n) os2mmap(n)
|
#define os2direct_mmap(n) os2mmap(n)
|
||||||
|
|
||||||
/* This function supports releasing coalesed segments */
|
/* This function supports releasing coalesced segments */
|
||||||
static int os2munmap(void* ptr, size_t size) {
|
static int os2munmap(void* ptr, size_t size) {
|
||||||
while (size) {
|
while (size) {
|
||||||
ULONG ulSize = size;
|
ULONG ulSize = size;
|
||||||
|
@ -1373,7 +1373,7 @@ static void* win32direct_mmap(size_t size) {
|
||||||
return (ptr != 0)? ptr: MFAIL;
|
return (ptr != 0)? ptr: MFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This function supports releasing coalesed segments */
|
/* This function supports releasing coalesced segments */
|
||||||
static int win32munmap(void* ptr, size_t size) {
|
static int win32munmap(void* ptr, size_t size) {
|
||||||
MEMORY_BASIC_INFORMATION minfo;
|
MEMORY_BASIC_INFORMATION minfo;
|
||||||
char* cptr = ptr;
|
char* cptr = ptr;
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
* - the logic deciding whether a function argument gets passed through
|
* - the logic deciding whether a function argument gets passed through
|
||||||
* registers, or on the stack, has changed several times in OpenBSD in
|
* registers, or on the stack, has changed several times in OpenBSD in
|
||||||
* edge cases (especially for structs larger than 32 bytes being passed
|
* edge cases (especially for structs larger than 32 bytes being passed
|
||||||
* by value). The code below attemps to match the logic used by the
|
* by value). The code below attempts to match the logic used by the
|
||||||
* system compiler of OpenBSD 5.3, i.e. gcc 3.3.6 with many m88k backend
|
* system compiler of OpenBSD 5.3, i.e. gcc 3.3.6 with many m88k backend
|
||||||
* fixes.
|
* fixes.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
/* Number of bytes in a register. */
|
/* Number of bytes in a register. */
|
||||||
#define REG_SIZE FFI_SIZEOF_ARG
|
#define REG_SIZE FFI_SIZEOF_ARG
|
||||||
|
|
||||||
/* Number of bytes in stack linkage area for backtracing.
|
/* Number of bytes in stack linkage area for backtracking.
|
||||||
|
|
||||||
A note about the ABI: on entry to a procedure, sp points to a stack
|
A note about the ABI: on entry to a procedure, sp points to a stack
|
||||||
slot where it must spill the return address if it's not a leaf.
|
slot where it must spill the return address if it's not a leaf.
|
||||||
|
|
|
@ -89,14 +89,14 @@
|
||||||
"libgobject"
|
"libgobject"
|
||||||
"libgthread"
|
"libgthread"
|
||||||
["libintl" "libintl is released under the GNU Library General Public License (GNU LGPL)."]
|
["libintl" "libintl is released under the GNU Library General Public License (GNU LGPL)."]
|
||||||
["libharfbuzz" "HarfBuzz is relased under a MIT license."]
|
["libharfbuzz" "HarfBuzz is released under a MIT license."]
|
||||||
["libfribidi" "FriBidi is released under the GNU Library General Public License (GNU LGPL)."]
|
["libfribidi" "FriBidi is released under the GNU Library General Public License (GNU LGPL)."]
|
||||||
["libpango" "Pango is released under the GNU Library General Public License (GNU LGPL)."]
|
["libpango" "Pango is released under the GNU Library General Public License (GNU LGPL)."]
|
||||||
"libpangocairo"
|
"libpangocairo"
|
||||||
"libpangoft2"
|
"libpangoft2"
|
||||||
"libpangowin32"
|
"libpangowin32"
|
||||||
"libexpat"
|
"libexpat"
|
||||||
["libuuid" "libuuid is relased under a Modified BSD license."]
|
["libuuid" "libuuid is released under a Modified BSD license."]
|
||||||
["libfontconfig" ,(~a "FontConfig:\n"
|
["libfontconfig" ,(~a "FontConfig:\n"
|
||||||
" Copyright © 2000,2001,2002,2003,2004,2006,2007 Keith Packard\n"
|
" Copyright © 2000,2001,2002,2003,2004,2006,2007 Keith Packard\n"
|
||||||
" Copyright © 2005 Patrick Lam\n"
|
" Copyright © 2005 Patrick Lam\n"
|
||||||
|
@ -104,9 +104,9 @@
|
||||||
" Copyright © 2008,2009 Red Hat, Inc.\n"
|
" Copyright © 2008,2009 Red Hat, Inc.\n"
|
||||||
" Copyright © 2008 Danilo Šegan\n"
|
" Copyright © 2008 Danilo Šegan\n"
|
||||||
" Copyright © 2012 Google, Inc.")]
|
" Copyright © 2012 Google, Inc.")]
|
||||||
["libfreetype" "Pixman is relased under the FreeType project license."]
|
["libfreetype" "Pixman is released under the FreeType project license."]
|
||||||
["libcairo" "Cairo is released under the GNU Library General Public License (GNU LGPL)."]
|
["libcairo" "Cairo is released under the GNU Library General Public License (GNU LGPL)."]
|
||||||
["libpixman" "Pixman is relased under a MIT license."]
|
["libpixman" "Pixman is released under a MIT license."]
|
||||||
["libpng" "Libpng is released under the libpng license."]
|
["libpng" "Libpng is released under the libpng license."]
|
||||||
["libjpeg" "This software is based in part on the work of the Independent JPEG Group."]
|
["libjpeg" "This software is based in part on the work of the Independent JPEG Group."]
|
||||||
["zlib1" "zlib is by Jean-loup Gailly and Mark Adler."]
|
["zlib1" "zlib is by Jean-loup Gailly and Mark Adler."]
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
/******************************************************************
|
/******************************************************************
|
||||||
|
|
||||||
AmigaOS-spesific routines for GC.
|
AmigaOS-specific routines for GC.
|
||||||
This file is normally included from os_dep.c
|
This file is normally included from os_dep.c
|
||||||
|
|
||||||
******************************************************************/
|
******************************************************************/
|
||||||
|
@ -230,7 +230,7 @@ void *(*GC_amiga_allocwrapper_do)(size_t size,void *(*AllocFunction)(size_t size
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************
|
/******************************************************************
|
||||||
Amiga-spesific routines to obtain memory, and force GC to give
|
Amiga-specific routines to obtain memory, and force GC to give
|
||||||
back fast-mem whenever possible.
|
back fast-mem whenever possible.
|
||||||
These hacks makes gc-programs go many times faster when
|
These hacks makes gc-programs go many times faster when
|
||||||
the amiga is low on memory, and are therefore strictly necesarry.
|
the amiga is low on memory, and are therefore strictly necesarry.
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
# use the internal version. This is done since libatomic_ops doesn't
|
# use the internal version. This is done since libatomic_ops doesn't
|
||||||
# use libtool, since it has no real use for it. But that seems to make
|
# use libtool, since it has no real use for it. But that seems to make
|
||||||
# it hard to use either the resulting object files or libraries.
|
# it hard to use either the resulting object files or libraries.
|
||||||
# Thus there seems too be no real reason to recusively build in the
|
# Thus there seems too be no real reason to recursively build in the
|
||||||
# libatomic_ops directory.
|
# libatomic_ops directory.
|
||||||
# if USE_INTERNAL_LIBATOMICS_OPS
|
# if USE_INTERNAL_LIBATOMICS_OPS
|
||||||
# SUBDIRS = @maybe_libatomic_ops@
|
# SUBDIRS = @maybe_libatomic_ops@
|
||||||
|
|
22
racket/src/racket/gc/configure
vendored
22
racket/src/racket/gc/configure
vendored
|
@ -1534,7 +1534,7 @@ Optional Features:
|
||||||
--enable-redirect-malloc
|
--enable-redirect-malloc
|
||||||
Redirect malloc and friends to GC routines
|
Redirect malloc and friends to GC routines
|
||||||
--enable-large-config Optimize for large (> 100 MB) heap or root set
|
--enable-large-config Optimize for large (> 100 MB) heap or root set
|
||||||
--enable-gc-debug include full support for pointer backtracing etc.
|
--enable-gc-debug include full support for pointer backtracking etc.
|
||||||
--enable-gc-assertions collector-internal assertion checking
|
--enable-gc-assertions collector-internal assertion checking
|
||||||
--enable-munmap=N return page to the os if empty for N collections
|
--enable-munmap=N return page to the os if empty for N collections
|
||||||
|
|
||||||
|
@ -4706,8 +4706,8 @@ _ACEOF
|
||||||
#define THREAD_LOCAL_ALLOC 1
|
#define THREAD_LOCAL_ALLOC 1
|
||||||
_ACEOF
|
_ACEOF
|
||||||
|
|
||||||
{ echo "$as_me:$LINENO: WARNING: \"Explict GC_INIT() calls may be required.\"" >&5
|
{ echo "$as_me:$LINENO: WARNING: \"Explicit GC_INIT() calls may be required.\"" >&5
|
||||||
echo "$as_me: WARNING: \"Explict GC_INIT() calls may be required.\"" >&2;};
|
echo "$as_me: WARNING: \"Explicit GC_INIT() calls may be required.\"" >&2;};
|
||||||
;;
|
;;
|
||||||
*-*-linux*)
|
*-*-linux*)
|
||||||
cat >>confdefs.h <<\_ACEOF
|
cat >>confdefs.h <<\_ACEOF
|
||||||
|
@ -4750,8 +4750,8 @@ _ACEOF
|
||||||
#define THREAD_LOCAL_ALLOC 1
|
#define THREAD_LOCAL_ALLOC 1
|
||||||
_ACEOF
|
_ACEOF
|
||||||
|
|
||||||
{ echo "$as_me:$LINENO: WARNING: \"Explict GC_INIT() calls may be required.\"" >&5
|
{ echo "$as_me:$LINENO: WARNING: \"Explicit GC_INIT() calls may be required.\"" >&5
|
||||||
echo "$as_me: WARNING: \"Explict GC_INIT() calls may be required.\"" >&2;};
|
echo "$as_me: WARNING: \"Explicit GC_INIT() calls may be required.\"" >&2;};
|
||||||
THREADDLLIBS="-lpthread -lrt"
|
THREADDLLIBS="-lpthread -lrt"
|
||||||
# HPUX needs REENTRANT for the _r calls.
|
# HPUX needs REENTRANT for the _r calls.
|
||||||
|
|
||||||
|
@ -4871,8 +4871,8 @@ _ACEOF
|
||||||
#define THREAD_LOCAL_ALLOC 1
|
#define THREAD_LOCAL_ALLOC 1
|
||||||
_ACEOF
|
_ACEOF
|
||||||
|
|
||||||
{ echo "$as_me:$LINENO: WARNING: \"Explict GC_INIT() calls may be required.\"" >&5
|
{ echo "$as_me:$LINENO: WARNING: \"Explicit GC_INIT() calls may be required.\"" >&5
|
||||||
echo "$as_me: WARNING: \"Explict GC_INIT() calls may be required.\"" >&2;};
|
echo "$as_me: WARNING: \"Explicit GC_INIT() calls may be required.\"" >&2;};
|
||||||
# Parallel-mark is currently unreliable on Darwin; ignore request
|
# Parallel-mark is currently unreliable on Darwin; ignore request
|
||||||
# if test "${enable_parallel_mark}" = yes; then
|
# if test "${enable_parallel_mark}" = yes; then
|
||||||
# AC_DEFINE(PARALLEL_MARK)
|
# AC_DEFINE(PARALLEL_MARK)
|
||||||
|
@ -4893,8 +4893,8 @@ _ACEOF
|
||||||
#define THREAD_LOCAL_ALLOC 1
|
#define THREAD_LOCAL_ALLOC 1
|
||||||
_ACEOF
|
_ACEOF
|
||||||
|
|
||||||
{ echo "$as_me:$LINENO: WARNING: \"Explict GC_INIT() calls may be required.\"" >&5
|
{ echo "$as_me:$LINENO: WARNING: \"Explicit GC_INIT() calls may be required.\"" >&5
|
||||||
echo "$as_me: WARNING: \"Explict GC_INIT() calls may be required.\"" >&2;};
|
echo "$as_me: WARNING: \"Explicit GC_INIT() calls may be required.\"" >&2;};
|
||||||
# May want to enable it in other cases, too.
|
# May want to enable it in other cases, too.
|
||||||
# Measurements havent yet been done.
|
# Measurements havent yet been done.
|
||||||
fi
|
fi
|
||||||
|
@ -4934,8 +4934,8 @@ _ACEOF
|
||||||
#define THREAD_LOCAL_ALLOC 1
|
#define THREAD_LOCAL_ALLOC 1
|
||||||
_ACEOF
|
_ACEOF
|
||||||
|
|
||||||
{ echo "$as_me:$LINENO: WARNING: \"Explict GC_INIT() calls may be required.\"" >&5
|
{ echo "$as_me:$LINENO: WARNING: \"Explicit GC_INIT() calls may be required.\"" >&5
|
||||||
echo "$as_me: WARNING: \"Explict GC_INIT() calls may be required.\"" >&2;};
|
echo "$as_me: WARNING: \"Explicit GC_INIT() calls may be required.\"" >&2;};
|
||||||
cat >>confdefs.h <<\_ACEOF
|
cat >>confdefs.h <<\_ACEOF
|
||||||
#define GC_DGUX386_THREADS 1
|
#define GC_DGUX386_THREADS 1
|
||||||
_ACEOF
|
_ACEOF
|
||||||
|
|
|
@ -421,7 +421,7 @@ fi
|
||||||
|
|
||||||
UNWINDLIBS=
|
UNWINDLIBS=
|
||||||
AC_ARG_ENABLE(full-debug,
|
AC_ARG_ENABLE(full-debug,
|
||||||
[ --enable-full-debug include full support for pointer backtracing etc.],
|
[ --enable-full-debug include full support for pointer backtracking etc.],
|
||||||
[ if test "$enable_full_debug" = "yes"; then
|
[ if test "$enable_full_debug" = "yes"; then
|
||||||
AC_MSG_WARN("Should define GC_DEBUG and use debug alloc. in clients.")
|
AC_MSG_WARN("Should define GC_DEBUG and use debug alloc. in clients.")
|
||||||
AC_DEFINE(KEEP_BACK_PTRS)
|
AC_DEFINE(KEEP_BACK_PTRS)
|
||||||
|
|
|
@ -80,7 +80,7 @@ void set_position(int x, int y);
|
||||||
|
|
||||||
void do_command(int);
|
void do_command(int);
|
||||||
/* Execute an editor command. */
|
/* Execute an editor command. */
|
||||||
/* Agument is a command character or one */
|
/* Argument is a command character or one */
|
||||||
/* of the IDM_ commands. */
|
/* of the IDM_ commands. */
|
||||||
|
|
||||||
void generic_init(void);
|
void generic_init(void);
|
||||||
|
|
|
@ -133,7 +133,7 @@ There are a number of routines which modify the pointer recognition
|
||||||
algorithm. GC_register_displacement allows certain interior pointers
|
algorithm. GC_register_displacement allows certain interior pointers
|
||||||
to be recognized even if ALL_INTERIOR_POINTERS is nor defined.
|
to be recognized even if ALL_INTERIOR_POINTERS is nor defined.
|
||||||
GC_malloc_ignore_off_page allows some pointers into the middle of large objects
|
GC_malloc_ignore_off_page allows some pointers into the middle of large objects
|
||||||
to be disregarded, greatly reducing the probablility of accidental
|
to be disregarded, greatly reducing the probability of accidental
|
||||||
retention of large objects. For most purposes it seems best to compile
|
retention of large objects. For most purposes it seems best to compile
|
||||||
with ALL_INTERIOR_POINTERS and to use GC_malloc_ignore_off_page if
|
with ALL_INTERIOR_POINTERS and to use GC_malloc_ignore_off_page if
|
||||||
you get collector warnings from allocations of very large objects.
|
you get collector warnings from allocations of very large objects.
|
||||||
|
@ -390,7 +390,7 @@ proposal without compiler changes.
|
||||||
|
|
||||||
Very often it will also be necessary to use gc_allocator.h and the
|
Very often it will also be necessary to use gc_allocator.h and the
|
||||||
allocator declared there to construct STL data structures. Otherwise
|
allocator declared there to construct STL data structures. Otherwise
|
||||||
subobjects of STL data structures wil be allcoated using a system
|
subobjects of STL data structures wil be allocated using a system
|
||||||
allocator, and objects they refer to may be prematurely collected.
|
allocator, and objects they refer to may be prematurely collected.
|
||||||
|
|
||||||
USE AS LEAK DETECTOR:
|
USE AS LEAK DETECTOR:
|
||||||
|
@ -445,7 +445,7 @@ the debugger.
|
||||||
or GC_free, and conversely. It is however acceptable to allocate only
|
or GC_free, and conversely. It is however acceptable to allocate only
|
||||||
some objects with GC_debug_malloc, and to use GC_malloc for other objects,
|
some objects with GC_debug_malloc, and to use GC_malloc for other objects,
|
||||||
provided the two pools are kept distinct. In this case, there is a very
|
provided the two pools are kept distinct. In this case, there is a very
|
||||||
low probablility that GC_malloc allocated objects may be misidentified as
|
low probability that GC_malloc allocated objects may be misidentified as
|
||||||
having been overwritten. This should happen with probability at most
|
having been overwritten. This should happen with probability at most
|
||||||
one in 2**32. This probability is zero if GC_debug_malloc is never called.
|
one in 2**32. This probability is zero if GC_debug_malloc is never called.
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ WHATS NEW:
|
||||||
If you absolutely must call abort() instead of exit(), try calling
|
If you absolutely must call abort() instead of exit(), try calling
|
||||||
the GC_amiga_free_all_mem function before abort().
|
the GC_amiga_free_all_mem function before abort().
|
||||||
|
|
||||||
New amiga-spesific compilation flags:
|
New amiga-specific compilation flags:
|
||||||
|
|
||||||
GC_AMIGA_FASTALLOC - By NOT defining this option, GC will work like before,
|
GC_AMIGA_FASTALLOC - By NOT defining this option, GC will work like before,
|
||||||
it will not try to force fast-mem out of the OS, and
|
it will not try to force fast-mem out of the OS, and
|
||||||
|
@ -95,7 +95,7 @@ WHATS NEW:
|
||||||
define f.ex GC_malloc as GC_amiga_malloc should allso work).
|
define f.ex GC_malloc as GC_amiga_malloc should allso work).
|
||||||
|
|
||||||
|
|
||||||
New amiga-spesific function:
|
New amiga-specific function:
|
||||||
|
|
||||||
void GC_amiga_set_toany(void (*func)(void));
|
void GC_amiga_set_toany(void (*func)(void));
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@ WHATS NEW:
|
||||||
it will return chip-mem.
|
it will return chip-mem.
|
||||||
|
|
||||||
|
|
||||||
2. A few small compiler-spesific additions to make it compile with SAS/C again.
|
2. A few small compiler-specific additions to make it compile with SAS/C again.
|
||||||
|
|
||||||
3. Updated and rewritten the smakefile, so that it works again and that
|
3. Updated and rewritten the smakefile, so that it works again and that
|
||||||
the "unnecesarry" 'SCOPTIONS' files could be removed. Allso included
|
the "unnecesarry" 'SCOPTIONS' files could be removed. Allso included
|
||||||
|
@ -120,14 +120,14 @@ Programs can not be started from workbench, at least not for SAS/C. (Martin
|
||||||
Tauchmanns note about that it now works with workbench is definitely wrong
|
Tauchmanns note about that it now works with workbench is definitely wrong
|
||||||
when concerning SAS/C). I guess it works if you use the old "#if 0'ed"-code,
|
when concerning SAS/C). I guess it works if you use the old "#if 0'ed"-code,
|
||||||
but I haven't tested it. I think the reason for MT to replace the
|
but I haven't tested it. I think the reason for MT to replace the
|
||||||
"#if 0'ed"-code was only because it was a bit to SAS/C-spesific. But I
|
"#if 0'ed"-code was only because it was a bit to SAS/C-specific. But I
|
||||||
don't know. An iconx-script solves this problem anyway.
|
don't know. An iconx-script solves this problem anyway.
|
||||||
|
|
||||||
|
|
||||||
BEWARE!
|
BEWARE!
|
||||||
|
|
||||||
-To run gctest, set the stack to around 200000 bytes first.
|
-To run gctest, set the stack to around 200000 bytes first.
|
||||||
-SAS/C-spesific: cord will crash if you compile gc.lib with
|
-SAS/C-specific: cord will crash if you compile gc.lib with
|
||||||
either parm=reg or parm=both. (missing legal prototypes for
|
either parm=reg or parm=both. (missing legal prototypes for
|
||||||
function-pointers someplace is the reason I guess.).
|
function-pointers someplace is the reason I guess.).
|
||||||
|
|
||||||
|
@ -283,7 +283,7 @@ If you allocate your own stack in client code, you will have to
|
||||||
assign the pointer plus stack size to GC_stackbottom.
|
assign the pointer plus stack size to GC_stackbottom.
|
||||||
|
|
||||||
The initial stack size of the target program can be compiled in by
|
The initial stack size of the target program can be compiled in by
|
||||||
setting the __stack symbol (see SAS documentaion). It can be over-
|
setting the __stack symbol (see SAS documentation). It can be over-
|
||||||
ridden from the CLI by running the AmigaDOS "stack" program, or from
|
ridden from the CLI by running the AmigaDOS "stack" program, or from
|
||||||
the WorkBench by setting the stack size in the tool types window.
|
the WorkBench by setting the stack size in the tool types window.
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@ Important options to configure:
|
||||||
[same as prefix]
|
[same as prefix]
|
||||||
--enable-threads=TYPE choose threading package
|
--enable-threads=TYPE choose threading package
|
||||||
--enable-parallel-mark parallelize marking and free list construction
|
--enable-parallel-mark parallelize marking and free list construction
|
||||||
--enable-full-debug include full support for pointer backtracing etc.
|
--enable-full-debug include full support for pointer backtracking etc.
|
||||||
|
|
||||||
Unless --prefix is set (or --exec-prefix or one of the more obscure options),
|
Unless --prefix is set (or --exec-prefix or one of the more obscure options),
|
||||||
make install will install libgc.a and libgc.so in /usr/local/bin, which
|
make install will install libgc.a and libgc.so in /usr/local/bin, which
|
||||||
|
|
|
@ -2517,7 +2517,7 @@ Since gc7.0alpha5
|
||||||
- Do not try to do thread-local gcj allocation in incremental mode. There
|
- Do not try to do thread-local gcj allocation in incremental mode. There
|
||||||
are races in setting up the descriptor.
|
are races in setting up the descriptor.
|
||||||
- Add GC_INIT() to middle.c, fix some more GC_printfn calls.
|
- Add GC_INIT() to middle.c, fix some more GC_printfn calls.
|
||||||
- Some assertions erroneously used I_HOLD_LOCK() negatively, eventhough
|
- Some assertions erroneously used I_HOLD_LOCK() negatively, even though
|
||||||
it can now spuriously return TRUE.
|
it can now spuriously return TRUE.
|
||||||
- Rename SUNOS5 macro and OS name to SOLARIS and SUNOS5DL to SOLARISDL.
|
- Rename SUNOS5 macro and OS name to SOLARIS and SUNOS5DL to SOLARISDL.
|
||||||
- On Linux and some Un*x variants, allocate memory by first trying sbrk,
|
- On Linux and some Un*x variants, allocate memory by first trying sbrk,
|
||||||
|
|
|
@ -87,7 +87,7 @@ GC_API void * GC_calloc_explicitly_typed(size_t nelements,
|
||||||
GC_descr d);
|
GC_descr d);
|
||||||
/* Allocate an array of nelements elements, each of the */
|
/* Allocate an array of nelements elements, each of the */
|
||||||
/* given size, and with the given descriptor. */
|
/* given size, and with the given descriptor. */
|
||||||
/* The elemnt size must be a multiple of the byte */
|
/* The element size must be a multiple of the byte */
|
||||||
/* alignment required for pointers. E.g. on a 32-bit */
|
/* alignment required for pointers. E.g. on a 32-bit */
|
||||||
/* machine with 16-bit aligned pointers, size_in_bytes */
|
/* machine with 16-bit aligned pointers, size_in_bytes */
|
||||||
/* must be a multiple of 2. */
|
/* must be a multiple of 2. */
|
||||||
|
|
|
@ -3389,7 +3389,7 @@ GC_bool GC_page_was_ever_dirty(struct hblk *h)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This implementaion assumes a Solaris 2.X like /proc pseudo-file-system
|
* This implementation assumes a Solaris 2.X like /proc pseudo-file-system
|
||||||
* from which we can read page modified bits. This facility is far from
|
* from which we can read page modified bits. This facility is far from
|
||||||
* optimal (e.g. we would like to get the info for only some of the
|
* optimal (e.g. we would like to get the info for only some of the
|
||||||
* address space), but it avoids intercepting system calls.
|
* address space), but it avoids intercepting system calls.
|
||||||
|
|
|
@ -612,7 +612,7 @@ void GC_delete_thread(thread_t id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return the GC_thread correpsonding to a given thread_t. */
|
/* Return the GC_thread corresponding to a given thread_t. */
|
||||||
/* Returns 0 if it's not there. */
|
/* Returns 0 if it's not there. */
|
||||||
/* Caller holds allocation lock. */
|
/* Caller holds allocation lock. */
|
||||||
GC_thread GC_lookup_thread(thread_t id)
|
GC_thread GC_lookup_thread(thread_t id)
|
||||||
|
|
|
@ -16,7 +16,7 @@ of the object). The exception is that a pointer may reference the
|
||||||
interior of an "Interior" object, but Racket allocates such objects
|
interior of an "Interior" object, but Racket allocates such objects
|
||||||
infrequently, and only as relatively large objects.
|
infrequently, and only as relatively large objects.
|
||||||
|
|
||||||
All alocated memory must be longword-aligned. For architectures where
|
All allocated memory must be longword-aligned. For architectures where
|
||||||
`double' values must be 8-byte aligned, the GC must provide 8-byte
|
`double' values must be 8-byte aligned, the GC must provide 8-byte
|
||||||
aligned memory in response to an allocation request for a memory size
|
aligned memory in response to an allocation request for a memory size
|
||||||
divisible by 8. Except for atomic memory, allocated objects must be
|
divisible by 8. Except for atomic memory, allocated objects must be
|
||||||
|
|
|
@ -387,7 +387,7 @@ GC2_EXTERN void *GC_fixup_self(void *p);
|
||||||
only when objects are moved before fixup, but objects might
|
only when objects are moved before fixup, but objects might
|
||||||
be moved after fixup. */
|
be moved after fixup. */
|
||||||
|
|
||||||
/* INTERNAL for the current implemenation (used by macros): */
|
/* INTERNAL for the current implementation (used by macros): */
|
||||||
GC2_EXTERN void GC_mark(void *p);
|
GC2_EXTERN void GC_mark(void *p);
|
||||||
GC2_EXTERN void GC_fixup(void *p);
|
GC2_EXTERN void GC_fixup(void *p);
|
||||||
GC2_EXTERN void GC_mark2(void *p, struct NewGC *gc);
|
GC2_EXTERN void GC_mark2(void *p, struct NewGC *gc);
|
||||||
|
|
|
@ -236,7 +236,7 @@ static unsigned long determine_max_heap_size()
|
||||||
|
|
||||||
/* The catch_exception_raise() functions are treated specially by the
|
/* The catch_exception_raise() functions are treated specially by the
|
||||||
linker, and Mach looks them up at run time. We provide
|
linker, and Mach looks them up at run time. We provide
|
||||||
GC_... variants due to linker confusion when the implementaiton of
|
GC_... variants due to linker confusion when the implementation of
|
||||||
these are in a framework instead of the main binary, so that the
|
these are in a framework instead of the main binary, so that the
|
||||||
main binary needs to define them and jump to the implemenations
|
main binary needs to define them and jump to the implemenations
|
||||||
here. (This linker problem seems to occur when we use
|
here. (This linker problem seems to occur when we use
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
#:program "xform"
|
#:program "xform"
|
||||||
#:argv (current-command-line-arguments)
|
#:argv (current-command-line-arguments)
|
||||||
#:once-each
|
#:once-each
|
||||||
[("--setup") dir "ignored; for compatbility with makefile"
|
[("--setup") dir "ignored; for compatibility with makefile"
|
||||||
(void)]
|
(void)]
|
||||||
[("--precompile") "generate precompiled header; or set XFORM_PRECOMP"
|
[("--precompile") "generate precompiled header; or set XFORM_PRECOMP"
|
||||||
(set! precompiling-header? #t)]
|
(set! precompiling-header? #t)]
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
/* STANDALONE_WITH_EMBEDDED_EXTENSION builds an executable with
|
/* STANDALONE_WITH_EMBEDDED_EXTENSION builds an executable with
|
||||||
built-in extensions. The extension is initialized by calling
|
built-in extensions. The extension is initialized by calling
|
||||||
scheme_initialize(env), where `env' is the initial environment.
|
scheme_initialize(env), where `env' is the initial environment.
|
||||||
By default, command-line parsing, the REPL, and initilization
|
By default, command-line parsing, the REPL, and initialization
|
||||||
file loading are turned off. */
|
file loading are turned off. */
|
||||||
|
|
||||||
#ifdef STANDALONE_WITH_EMBEDDED_EXTENSION
|
#ifdef STANDALONE_WITH_EMBEDDED_EXTENSION
|
||||||
|
|
|
@ -152,7 +152,7 @@
|
||||||
/* Keep source offsets for path traces */
|
/* Keep source offsets for path traces */
|
||||||
|
|
||||||
#define CHECK_SKIP_MARK_AT_FIRST 0
|
#define CHECK_SKIP_MARK_AT_FIRST 0
|
||||||
/* Enables skipping certain marks during collection from the inital
|
/* Enables skipping certain marks during collection from the initial
|
||||||
root supplied as GC_initial_trace_root */
|
root supplied as GC_initial_trace_root */
|
||||||
|
|
||||||
#define ALLOW_SET_LOCKING 0
|
#define ALLOW_SET_LOCKING 0
|
||||||
|
@ -235,7 +235,7 @@
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
/* GC frequency: MEM_USE_FACTOR is max factor between current
|
/* GC frequency: MEM_USE_FACTOR is max factor between current
|
||||||
allocated bytes and alocated bytes after last GC. */
|
allocated bytes and allocated bytes after last GC. */
|
||||||
#ifdef SMALL_HASH_TABLES
|
#ifdef SMALL_HASH_TABLES
|
||||||
# define FIRST_GC_LIMIT 20000
|
# define FIRST_GC_LIMIT 20000
|
||||||
# define MEM_USE_FACTOR 1.40
|
# define MEM_USE_FACTOR 1.40
|
||||||
|
@ -901,7 +901,7 @@ static SectorPage **sector_pagetables;
|
||||||
malloc_sector = returns new SECTOR_SEGMENT_SIZE-aligned memory;
|
malloc_sector = returns new SECTOR_SEGMENT_SIZE-aligned memory;
|
||||||
relies on nothing else; the memeory blocks must
|
relies on nothing else; the memeory blocks must
|
||||||
be explicitly freed with free_sector; all GC
|
be explicitly freed with free_sector; all GC
|
||||||
allocation is perfomed via sectors
|
allocation is performed via sectors
|
||||||
|
|
||||||
malloc_managed = malloc "atomic" block used by GC implementation
|
malloc_managed = malloc "atomic" block used by GC implementation
|
||||||
itself; no GCing should occur during the malloc;
|
itself; no GCing should occur during the malloc;
|
||||||
|
@ -4482,7 +4482,7 @@ static intptr_t started, rightnow, old;
|
||||||
# define PRINTTIME(x) /* empty */
|
# define PRINTTIME(x) /* empty */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Immitate Boehm's private GC call; used by Racket */
|
/* Imitate Boehm's private GC call; used by Racket */
|
||||||
void GC_push_all_stack(void *sp, void *ep)
|
void GC_push_all_stack(void *sp, void *ep)
|
||||||
{
|
{
|
||||||
uintptr_t s, e;
|
uintptr_t s, e;
|
||||||
|
|
|
@ -1367,7 +1367,7 @@ int scheme_get_eval_type(Scheme_Object *obj)
|
||||||
}
|
}
|
||||||
|
|
||||||
Scheme_Object *scheme_try_apply(Scheme_Object *f, Scheme_Object *args, Optimize_Info *info)
|
Scheme_Object *scheme_try_apply(Scheme_Object *f, Scheme_Object *args, Optimize_Info *info)
|
||||||
/* Apply `f' to `args' and ignore failues --- used for constant
|
/* Apply `f' to `args' and ignore failures --- used for constant
|
||||||
folding attempts */
|
folding attempts */
|
||||||
{
|
{
|
||||||
Scheme_Object * volatile result;
|
Scheme_Object * volatile result;
|
||||||
|
|
|
@ -398,7 +398,7 @@ static void init_foreign(Scheme_Startup_Env *env)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*========================================================================*/
|
/*========================================================================*/
|
||||||
/* place-specific intialization */
|
/* place-specific initialization */
|
||||||
/*========================================================================*/
|
/*========================================================================*/
|
||||||
|
|
||||||
static Scheme_Env *place_instance_init(void *stack_base, int initial_main_os_thread)
|
static Scheme_Env *place_instance_init(void *stack_base, int initial_main_os_thread)
|
||||||
|
|
|
@ -273,7 +273,7 @@ Scheme_Config *scheme_init_error_escape_proc(Scheme_Config *config)
|
||||||
%- = skip int
|
%- = skip int
|
||||||
|
|
||||||
%L = line number as intptr_t, -1 means no line
|
%L = line number as intptr_t, -1 means no line
|
||||||
%R = get error numebr and string from rktio
|
%R = get error number and string from rktio
|
||||||
%e = error number for strerror()
|
%e = error number for strerror()
|
||||||
%E = error number for platform-specific error string
|
%E = error number for platform-specific error string
|
||||||
%Z = potential platform-specific error number; additional char*
|
%Z = potential platform-specific error number; additional char*
|
||||||
|
|
|
@ -1608,7 +1608,7 @@ static char *do_expand_filename(Scheme_Object *o, char* filename, int ilen, cons
|
||||||
drive_end = clean_start;
|
drive_end = clean_start;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check whether to clean up the name, removing mulitple // and
|
/* Check whether to clean up the name, removing multiple // and
|
||||||
adding "/" after "c:" if necessary */
|
adding "/" after "c:" if necessary */
|
||||||
if (!drive_end
|
if (!drive_end
|
||||||
&& is_drive_letter(filename[0])
|
&& is_drive_letter(filename[0])
|
||||||
|
|
|
@ -2556,7 +2556,7 @@ const char *scheme_get_proc_name(Scheme_Object *p, int *len, int for_error)
|
||||||
/* Native closure: */
|
/* Native closure: */
|
||||||
name = ((Scheme_Native_Closure *)p)->code->u2.name;
|
name = ((Scheme_Native_Closure *)p)->code->u2.name;
|
||||||
if (name && SAME_TYPE(SCHEME_TYPE(name), scheme_lambda_type)) {
|
if (name && SAME_TYPE(SCHEME_TYPE(name), scheme_lambda_type)) {
|
||||||
/* Not yet jitted. Use `name' as the other alternaive of
|
/* Not yet jitted. Use `name' as the other alternative of
|
||||||
the union: */
|
the union: */
|
||||||
name = ((Scheme_Lambda *)name)->name;
|
name = ((Scheme_Lambda *)name)->name;
|
||||||
}
|
}
|
||||||
|
@ -6257,7 +6257,7 @@ static Scheme_Object *continuation_p (int argc, Scheme_Object *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
void scheme_takeover_stacks(Scheme_Thread *p)
|
void scheme_takeover_stacks(Scheme_Thread *p)
|
||||||
/* When a contination captured in on e thread is invoked in another,
|
/* When a continuation captured in on e thread is invoked in another,
|
||||||
the two threads can start using the same runstack, and possibly
|
the two threads can start using the same runstack, and possibly
|
||||||
also the same cont-mark stack. This function swaps out the
|
also the same cont-mark stack. This function swaps out the
|
||||||
current owner in favor of p */
|
current owner in favor of p */
|
||||||
|
|
|
@ -1354,7 +1354,7 @@ Scheme_Object *scheme_future(int argc, Scheme_Object *argv[])
|
||||||
&& scheme_native_arity_check(proc, 0)
|
&& scheme_native_arity_check(proc, 0)
|
||||||
&& (((Scheme_Native_Closure *)proc)->code->start_code != scheme_on_demand_jit_code)
|
&& (((Scheme_Native_Closure *)proc)->code->start_code != scheme_on_demand_jit_code)
|
||||||
&& scheme_can_apply_native_in_future(proc)) {
|
&& scheme_can_apply_native_in_future(proc)) {
|
||||||
/* try to alocate a future in the future thread */
|
/* try to allocate a future in the future thread */
|
||||||
future_t *ft;
|
future_t *ft;
|
||||||
ft = MALLOC_ONE_TAGGED(future_t);
|
ft = MALLOC_ONE_TAGGED(future_t);
|
||||||
if (ft) {
|
if (ft) {
|
||||||
|
|
|
@ -112,7 +112,7 @@ HAMT_NONGCING int HAMT_SUBSET_OF(Scheme_Hash_Tree *t1, Scheme_Hash_Tree *t2, int
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* A single element in t2 can't cover eveything in the collision */
|
/* A single element in t2 can't cover everything in the collision */
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -129,7 +129,7 @@ HAMT_NONGCING int HAMT_SUBSET_OF(Scheme_Hash_Tree *t1, Scheme_Hash_Tree *t2, int
|
||||||
if (_mzHAMT_CODE(t1, pos1, popcount1) != _mzHAMT_CODE(t2, pos2, popcount2))
|
if (_mzHAMT_CODE(t1, pos1, popcount1) != _mzHAMT_CODE(t2, pos2, popcount2))
|
||||||
return 0;
|
return 0;
|
||||||
if (HASHTR_COLLISIONP(k2)) {
|
if (HASHTR_COLLISIONP(k2)) {
|
||||||
/* look for an invidual value in t2: */
|
/* look for an individual value in t2: */
|
||||||
if (!HAMT_ELEMENT_OF_COLLISION(k1, HAMT_IF_VAL(_mzHAMT_VAL(t1, pos1, popcount1), NULL),
|
if (!HAMT_ELEMENT_OF_COLLISION(k1, HAMT_IF_VAL(_mzHAMT_VAL(t1, pos1, popcount1), NULL),
|
||||||
(Scheme_Hash_Tree *)k2,
|
(Scheme_Hash_Tree *)k2,
|
||||||
stype, eql_data))
|
stype, eql_data))
|
||||||
|
|
|
@ -2612,7 +2612,7 @@ int scheme_generate(Scheme_Object *obj, mz_jit_state *jitter, int is_tail, int w
|
||||||
(void)jit_jmpi(refloop);
|
(void)jit_jmpi(refloop);
|
||||||
CHECK_LIMIT();
|
CHECK_LIMIT();
|
||||||
mz_patch_branch(ref3);
|
mz_patch_branch(ref3);
|
||||||
/* clear array pointer and re-laod argc: */
|
/* clear array pointer and re-load argc: */
|
||||||
(void)mz_tl_ldi_p(JIT_R0, tl_scheme_current_thread);
|
(void)mz_tl_ldi_p(JIT_R0, tl_scheme_current_thread);
|
||||||
(void)jit_movi_p(JIT_R1, NULL);
|
(void)jit_movi_p(JIT_R1, NULL);
|
||||||
jit_stxi_l(&((Scheme_Thread *)0x0)->ku.multiple.array, JIT_R0, JIT_R1);
|
jit_stxi_l(&((Scheme_Thread *)0x0)->ku.multiple.array, JIT_R0, JIT_R1);
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
*
|
*
|
||||||
* - When `lambda` is in such a position, record the `lambda`
|
* - When `lambda` is in such a position, record the `lambda`
|
||||||
* expression as "deferred" for the variable --- but only if the
|
* expression as "deferred" for the variable --- but only if the
|
||||||
* varible was not previously accessed in an unsafe position. (Grep
|
* variable was not previously accessed in an unsafe position. (Grep
|
||||||
* "EXPL-4" for implementation.) Each deferred expression will be
|
* "EXPL-4" for implementation.) Each deferred expression will be
|
||||||
* forced at most once.
|
* forced at most once.
|
||||||
*
|
*
|
||||||
|
@ -713,7 +713,7 @@ static Scheme_Object *letrec_check_lets(Scheme_Object *o, Letrec_Check_Frame *ol
|
||||||
frame_type = FRAME_TYPE_LET;
|
frame_type = FRAME_TYPE_LET;
|
||||||
|
|
||||||
/* push the new bindings on to the frame, where `frame_type`
|
/* push the new bindings on to the frame, where `frame_type`
|
||||||
determines how the variables are initialzed and counted when
|
determines how the variables are initialized and counted when
|
||||||
resolving local-variable offsets */
|
resolving local-variable offsets */
|
||||||
frame = init_letrec_check_frame(frame_type, LET_RHS_EXPR,
|
frame = init_letrec_check_frame(frame_type, LET_RHS_EXPR,
|
||||||
count, old_frame, NULL,
|
count, old_frame, NULL,
|
||||||
|
|
|
@ -111,7 +111,7 @@
|
||||||
(set! range-top c))
|
(set! range-top c))
|
||||||
(begin
|
(begin
|
||||||
;; Drop surrogate from range.
|
;; Drop surrogate from range.
|
||||||
;; At the time of implemenation, the following
|
;; At the time of implementation, the following
|
||||||
;; was never executed, because #D7FF wasn't mapped:
|
;; was never executed, because #D7FF wasn't mapped:
|
||||||
(when (and (< range-bottom #xD800)
|
(when (and (< range-bottom #xD800)
|
||||||
(> range-top #xD800))
|
(> range-top #xD800))
|
||||||
|
|
|
@ -1691,7 +1691,7 @@ void scheme_close_socket_fd(intptr_t fd)
|
||||||
/* UDP */
|
/* UDP */
|
||||||
/*========================================================================*/
|
/*========================================================================*/
|
||||||
|
|
||||||
/* Based on a design and implemenation by Eduardo Cavazos. */
|
/* Based on a design and implementation by Eduardo Cavazos. */
|
||||||
|
|
||||||
typedef struct Scheme_UDP_Evt {
|
typedef struct Scheme_UDP_Evt {
|
||||||
Scheme_Object so; /* scheme_udp_evt_type */
|
Scheme_Object so; /* scheme_udp_evt_type */
|
||||||
|
|
|
@ -3392,7 +3392,7 @@ static long_double protected_powl(long_double x, long_double y)
|
||||||
#else
|
#else
|
||||||
XFORM_NONGCING static double sch_pow(double x, double y)
|
XFORM_NONGCING static double sch_pow(double x, double y)
|
||||||
{
|
{
|
||||||
/* Explciitly handle all cases described by C99 */
|
/* Explicitly handle all cases described by C99 */
|
||||||
if (x == 1.0)
|
if (x == 1.0)
|
||||||
return 1.0; /* even for NaN */
|
return 1.0; /* even for NaN */
|
||||||
else if (y == 0.0)
|
else if (y == 0.0)
|
||||||
|
|
|
@ -356,7 +356,7 @@ static Scheme_Object *read_special_number(const mzchar *str, int pos)
|
||||||
|
|
||||||
/* Exponent threshold for obvious infinity. Must be at least
|
/* Exponent threshold for obvious infinity. Must be at least
|
||||||
max(MAX_FAST_FLOATREAD_LEN, MAX_FLOATREAD_PRECISION_DIGITS) more
|
max(MAX_FAST_FLOATREAD_LEN, MAX_FLOATREAD_PRECISION_DIGITS) more
|
||||||
than the larget possible FP exponent. */
|
than the largest possible FP exponent. */
|
||||||
#define CHECK_INF_EXP_THRESHOLD(extfl) (extfl ? 32768 : 2048)
|
#define CHECK_INF_EXP_THRESHOLD(extfl) (extfl ? 32768 : 2048)
|
||||||
|
|
||||||
/* Don't bother reading more than the following number of digits in a
|
/* Don't bother reading more than the following number of digits in a
|
||||||
|
|
|
@ -1159,7 +1159,7 @@ static int is_proc_spec_proc(Scheme_Object *p, int init_field_count)
|
||||||
|
|
||||||
static int is_local_ref(Scheme_Object *e, int p, int r, Scheme_IR_Local **vars)
|
static int is_local_ref(Scheme_Object *e, int p, int r, Scheme_IR_Local **vars)
|
||||||
/* Does `e` refer to...
|
/* Does `e` refer to...
|
||||||
In resolved mode: variables at offet `p` though `p+r`?
|
In resolved mode: variables at offset `p` though `p+r`?
|
||||||
In optimizer IR mode: variables in `vars`? */
|
In optimizer IR mode: variables in `vars`? */
|
||||||
{
|
{
|
||||||
if (!vars && SAME_TYPE(SCHEME_TYPE(e), scheme_local_type)) {
|
if (!vars && SAME_TYPE(SCHEME_TYPE(e), scheme_local_type)) {
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user