~ chicken-core (chicken-5) 712e0e0f42d451612c22a41c6ed7e304d9aa0cc8
commit 712e0e0f42d451612c22a41c6ed7e304d9aa0cc8 Author: LemonBoy <thatlemon@gmail.com> AuthorDate: Fri Apr 29 15:14:41 2016 +1200 Commit: Peter Bex <peter@more-magic.net> CommitDate: Mon May 2 22:00:47 2016 +0200 Change how unbound variables are checked for The previous method checks if the object 'x' we want to check is equal to the value contained in the first slot of a symbol that's supposed to always be undefined. This patch replaces the code above with the use of the C_boundp and C_unboundvaluep macros with no functional effect. Signed-off-by: Evan Hanson <evhan@foldling.org> Signed-off-by: Peter Bex <peter@more-magic.net> diff --git a/csi.scm b/csi.scm index 5466debb..9eabeb65 100644 --- a/csi.scm +++ b/csi.scm @@ -621,8 +621,8 @@ EOF ((bignum? x) (fprintf out "exact large integer ~S~% #x~X~% #o~O~% #b~B~%" x x x x) ) - ((eq? x (##sys#slot '##sys#arbitrary-unbound-symbol 0)) - (fprintf out "unbound value~%") ) + ((##core#inline "C_unboundvaluep" x) + (fprintf out "unbound value~%")) ((flonum? x) (fprintf out "inexact rational number ~S~%" x)) ((ratnum? x) (fprintf out "exact ratio ~S~%" x)) ((cplxnum? x) (fprintf out "~A complex number ~S~%" diff --git a/eval.scm b/eval.scm index b426d115..c4755c50 100644 --- a/eval.scm +++ b/eval.scm @@ -206,11 +206,7 @@ (define ##sys#eval-debug-level (make-parameter 1)) (define compile-to-closure - (let ([write write] - [reverse reverse] - [with-input-from-file with-input-from-file] - [unbound (##sys#slot '##sys#arbitrary-unbound-symbol 0)] - [display display] ) + (let ((reverse reverse)) (lambda (exp env se #!optional cntr evalenv static) (define (find-id id se) ; ignores macro bindings diff --git a/extras.scm b/extras.scm index 6f0455c1..c04f9ef9 100644 --- a/extras.scm +++ b/extras.scm @@ -359,7 +359,7 @@ [else (out (make-string 1 obj) col)] ) ) ) ) ((##core#inline "C_undefinedp" obj) (out "#<unspecified>" col)) ((##core#inline "C_anypointerp" obj) (out (##sys#pointer->string obj) col)) - ((eq? obj (##sys#slot '##sys#arbitrary-unbound-symbol 0)) + ((##core#inline "C_unboundvaluep" obj) (out "#<unbound value>" col) ) ((##sys#generic-structure? obj) (let ([o (open-output-string)]) diff --git a/library.scm b/library.scm index e0b3004c..292554e3 100644 --- a/library.scm +++ b/library.scm @@ -3978,8 +3978,7 @@ EOF [else (outchr port x)] ) ) ] [else (outchr port x)] ) ) ((##core#inline "C_fixnump" x) (outstr port (##sys#number->string x))) - ((eq? x (##sys#slot '##sys#arbitrary-unbound-symbol 0)) - (outstr port "#<unbound value>") ) + ((##core#inline "C_unboundvaluep" x) (outstr port "#<unbound value>")) ((not (##core#inline "C_blockp" x)) (outstr port "#<invalid immediate object>")) ((##core#inline "C_forwardedp" x) (outstr port "#<invalid forwarded object>")) ((##core#inline "C_symbolp" x) @@ -5034,7 +5033,7 @@ EOF (##core#inline "C_update_pointer" addr vec) ) (define (##sys#symbol-has-toplevel-binding? s) - (not (eq? (##sys#slot s 0) (##sys#slot '##sys#arbitrary-unbound-symbol 0))) ) + (##core#inline "C_boundp" s)) (define (##sys#copy-bytes from to offset1 offset2 bytes) (##core#inline diff --git a/manual/Acknowledgements b/manual/Acknowledgements index 2039fab7..7cfb6c65 100644 --- a/manual/Acknowledgements +++ b/manual/Acknowledgements @@ -28,28 +28,29 @@ Jäger, Matt Jones, Dale Jordan, Valentin Kamyshenko, Daishi Kato, Peter Keller, Christian Kellermann, Brad Kind, Ron Kneusel, Matthias Köppe, Krysztof Kowalczyk, Andre Kühne, Todd R. Kueny Sr, Goran Krampe, David Krentzlin, Ben Kurtz, Michele La Monaca, Micky -Latowicki, Kristian Lein-Mathisen, John Lenz, Kirill Lisovsky, Jürgen -Lorenz, Kon Lovett, Lam Luu, Arthur Maciel, Vitaly Magerya, Leonardo -Valeri Manera, Claude Marinier, Dennis Marti, Charles Martin, Bob -McIsaac, "megane", Alain Mellan, Eric Merrit, Perry Metzger, Scott G. -Miller, Mikael, Karel Miklav, Bruce Mitchener, Fadi Moukayed, Chris -Moline, Eric E. Moore, Julian Morrison, Dan Muresan, David N. Murray, -Timo Myyrä, "nicktick", Lars Nilsson, Ian Oversby, "o.t.", Gene -Pavlovsky, Levi Pearson, Jeronimo Pellegrini, Nicolas Pelletier, Derrell -Piper, Carlos Pita, "Pluijzer", Robin Lee Powell, Alan Post, "Pupeno", -Davide Puricelli, "presto", Doug Quale, Imran Rafique, Eric Raible, Ivan -Raikov, Santosh Rajan, Joel Reymont, "rivo", Chris Roberts, Eric -Rochester, Paul Romanchenko, Andreas Rottman, David Rush, Lars -Rustemeier, Daniel Sadilek, Otavio Salvador, Burton Samograd, "Sandro", -"satori", Aleksej Saushev, Oskar Schirmer, Reed Sheridan, Ronald -Schröder, Spencer Schumann, Ivan Shcheklein, Alexander Shendi, Alex -Shinn, Ivan Shmakov, "Shmul", Tony Sidaway, Jeffrey B. Siegal, Andrey -Sidorenko, Michele Simionato, Iruata Souza, Volker Stolz, Jon Strait, -Dorai Sitaram, Robert Skeels, Jason Songhurst, Clifford Stein, David -Steiner, Sunnan, Zbigniew Szadkowski, Rick Taube, Nathan Thern, Mike -Thomas, Minh Thu, Christian Tismer, Andre van Tonder, John Tobey, Henrik -Tramberend, Vladimir Tsichevsky, James Ursetto, Neil van Dyke, Sam -Varner, Taylor Venable, Sander Vesik, Jaques Vidrine, Panagiotis Vossos, +Latowicki, Kristian Lein-Mathisen, "LemonBoy", John Lenz, +Kirill Lisovsky, Jürgen Lorenz, Kon Lovett, Lam Luu, Arthur Maciel, +Vitaly Magerya, Leonardo Valeri Manera, Claude Marinier, Dennis Marti, +Charles Martin, Bob McIsaac, "megane", Alain Mellan, Eric Merrit, +Perry Metzger, Scott G. Miller, Mikael, Karel Miklav, Bruce Mitchener, +Fadi Moukayed, Chris Moline, Eric E. Moore, Julian Morrison, +Dan Muresan, David N. Murray, Timo Myyrä, "nicktick", Lars Nilsson, +Ian Oversby, "o.t.", Gene Pavlovsky, Levi Pearson, Jeronimo Pellegrini, +Nicolas Pelletier, Derrell Piper, Carlos Pita, "Pluijzer", +Robin Lee Powell, Alan Post, "Pupeno", Davide Puricelli, "presto", +Doug Quale, Imran Rafique, Eric Raible, Ivan Raikov, Santosh Rajan, +Joel Reymont, "rivo", Chris Roberts, Eric Rochester, Paul Romanchenko, +Andreas Rottman, David Rush, Lars Rustemeier, Daniel Sadilek, +Otavio Salvador, Burton Samograd, "Sandro", "satori", Aleksej Saushev, +Oskar Schirmer, Reed Sheridan, Ronald Schröder, Spencer Schumann, +Ivan Shcheklein, Alexander Shendi, Alex Shinn, Ivan Shmakov, "Shmul", +Tony Sidaway, Jeffrey B. Siegal, Andrey Sidorenko, Michele Simionato, +Iruata Souza, Volker Stolz, Jon Strait, Dorai Sitaram, Robert Skeels, +Jason Songhurst, Clifford Stein, David Steiner, Sunnan, +Zbigniew Szadkowski, Rick Taube, Nathan Thern, Mike Thomas, Minh Thu, +Christian Tismer, Andre van Tonder, John Tobey, Henrik Tramberend, +Vladimir Tsichevsky, James Ursetto, Neil van Dyke, Sam Varner, +Taylor Venable, Sander Vesik, Jaques Vidrine, Panagiotis Vossos, Shawn Wagner, Peter Wang, Ed Watkeys, Brad Watson, Thomas Weidner, Göran Weinholt, Matthew Welland, Drake Wilson, Jörg Wittenberger, Peter Wright, Mark Wutka, Adam Young, Richard Zidlicky, Houman Zolfaghari andTrap