[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: expression
From: |
Andy Wingo |
Subject: |
Re: expression |
Date: |
Thu, 24 Jun 2010 15:01:44 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.92 (gnu/linux) |
Hi Michael,
On Thu 24 Jun 2010 01:23, Michael Lucy <address@hidden> writes:
> scheme@(guile-user)> ,c (begin (set! x 1) *unspecified*)
> Disassembly of #<objcode 9a05d08>:
>
> 0 (assert-nargs-ee/locals 0)
> 2 (make-int8:1) ;; 1
> 3 (load-symbol "x") ;; x
> 8 (link-now)
> 9 (variable-set)
> 10 (load-symbol "*unspecified*") ;; *unspecified*
> 27 (link-now)
> 28 (variable-ref)
> 29 (return)
In current Guile, *unspecified* is actually a macro, allowing the
compiler to do its job better:
scheme@(guile-user)> ,c (begin (set! x 1) *unspecified*)
<stdin>:1:10: warning: possibly unbound variable `x'
Disassembly of #<objcode 94a1908>:
0 (assert-nargs-ee/locals 0)
2 (make-int8:1) ;; 1
3 (load-symbol "x") ;; x
8 (link-now)
9 (variable-set)
10 (void)
11 (return)
Andy
--
http://wingolog.org/