Subject: bug#17662: 24.3; Newly created variable has a value in it.

From: James McClain <[email-masked]>
Date: Sun, 1 Jun 2014 15:10:01 -0700

Looking further into it, this seems to be proper (but still very strange)
behavior.

Info from the end of http://psg.com/~dlamkins/sl/chapter11.html.

On Sun, Jun 1, 2014 at 12:28 PM, James McClain <[email-masked]>
wrote:

> The variable "bins" has a value in it the second time the function is run.
> It should be equal to ( () ).
> I assume this has to do with me use of setcar.
> (setq items '(1 3 4 5 3 2 9 8 5 10 2 3 1))
> (defun greedy-binpacking (items size)
>   (sort items '<)
>   (let ((bins '( () ) ))
>     (while items
>       (let ((tmpbins bins)
>     (item (pop items)))
>  (while tmpbins
>   (if (>= (+ (apply '+ (car tmpbins)) item) 10)
>       (progn (setq tmpbins (cdr tmpbins))
>      (unless tmpbins
>        (setq bins
>      (append bins `((,item))))
>        (setq tmpbins '())))
>     (setcar tmpbins
>     (cons item (car tmpbins)))
>     (setq tmpbins '())))))
>     bins))
> (greedy-binpacking items 10) --> ((3 2 2 1 1) (3 3) (5 4) (5) (8) (9) (10))
> (greedy-binpacking items 10) --> ((3 2 2 1 1) (3 2 2 1 1) (3 3) (5 4) (5)
> (8) (9) (10))
> (greedy-binpacking items 10) --> ((3 2 2 1 1) (3 2 2 1 1) (3 3) (5 4) (5)
> (8) (9) (10))
> (greedy-binpacking items 10) --> ((3 2 2 1 1) (3 2 2 1 1) (3 3) (5 4)
> (5) (8) (9) (10))
>
>
>
> In GNU Emacs 24.3.1 (i386-mingw-nt6.2.9200)
>  of 2013-03-17 on MARVIN
> Windowing system distributor `Microsoft Corp.', version 6.2.9200
> Configured using:
>  `configure --with-gcc (4.7) --cflags
>  -ID:/devel/emacs/libs/libXpm-3.5.8/include
>  -ID:/devel/emacs/libs/libXpm-3.5.8/src
>  -ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include
>  -ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include
>  -ID:/devel/emacs/libs/giflib-4.1.4-1/include
>  -ID:/devel/emacs/libs/jpeg-6b-4/include
>  -ID:/devel/emacs/libs/tiff-3.8.2-1/include
>  -ID:/devel/emacs/libs/gnutls-3.0.9/include
>  -ID:/devel/emacs/libs/libiconv-1.13.1-1-dev/include
>  -ID:/devel/emacs/libs/libxml2-2.7.8/include/libxml2'
>
> Important settings:
>   value of $LANG: ENU
>   locale-coding-system: cp1252
>   default enable-multibyte-characters: t
>
> Major mode: ERC
>
> Minor modes in effect:
>   erc-list-mode: t
>   erc-menu-mode: t
>   erc-autojoin-mode: t
>   erc-ring-mode: t
>   erc-networks-mode: t
>   erc-pcomplete-mode: t
>   erc-track-mode: t
>   erc-track-minor-mode: t
>   erc-match-mode: t
>   erc-button-mode: t
>   erc-fill-mode: t
>   erc-stamp-mode: t
>    erc-netsplit-mode: t
>   erc-irccontrols-mode: t
>   erc-noncommands-mode: t
>   erc-move-to-prompt-mode: t
>   erc-readonly-mode: t
>   show-paren-mode: t
>   global-undo-tree-mode: t
>   undo-tree-mode: t
>   tooltip-mode: t
>   mouse-wheel-mode: t
>   menu-bar-mode: t
>   file-name-shadow-mode: t
>   global-font-lock-mode: t
>   font-lock-mode: t
>   blink-cursor-mode: t
>   auto-composition-mode: t
>   auto-encryption-mode: t
>   auto-compression-mode: t
>   column-number-mode: t
>   line-number-mode: t
>   transient-mark-mode: t
>
> Recent input:
> C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n
> C-n <return> C-s g a r b a <return> <return> SPC SPC
> SPC SPC SPC SPC SPC SPC u u M-< C-s c o p y C-s C-s
> C-s C-s C-a M-< C-s l i s t C-b <return> C-n C-n C-n
> C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-p
> C-p C-p C-p <return> SPC SPC SPC SPC SPC SPC SPC <help-echo>
>  <help-echo> <down-mouse-1> <mouse-1> SPC SPC SPC C-p
> SPC C-p 2 SPC SPC SPC SPC SPC SPC SPC SPC <help-echo>
> <help-echo> <help-echo> <help-echo> <tab> C-g <help-echo>
> C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n
> C-n C-n C-n C-n C-n C-n C-l <help-echo> C-z C-x <return>
> C-x b <return> C-x b <return> h e l l o SPC C-a C-k
> I SPC b e l i e v e SPC I SPC f o u d <backspace> n
> d SPC a SPC b u g SPC i n SPC m <backspace> e m a c
> s <return> <help-echo> <help-echo> <down-mouse-1> <mouse-1>
> C-y <return> C-x b <return> C-n C-n C-n C-n C-n C-n
> C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n
> C-n C-n C-n C-n C-n C-n C-x b <return> C-x b <return>
> SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC
> SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC
> C-x b <return> y a <return> <help-echo> <help-echo>
> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
> <help-echo> <help-echo> M-x e m a c s <backspace> <backspace>
> <backspace> <backspace> <backspace> b u g <tab> <tab>
> <backspace> <backspace> <backspace> <backspace> <backspace>
> <backspace> <backspace> <backspace> <backspace> <backspace>
> <backspace> <backspace> <backspace> <backspace> r e
> p o <tab> <tab> r <tab> <return>
>
> Recent messages:
> Mark set
> Mark saved where search started
> Mark set
> Mark saved where search started
> user-error: No menu in this node
> user-error: No cross references in this node
> Quit
> user-error: Point neither on reference nor in menu item description
> Mark set
> Making completion list... [2 times]
>
> Load-path shadows:
> None found.
>
> Features:
> (shadow sort mail-extr emacsbug message rfc822 mml mml-sec mm-decode
> mm-bodies mm-encode mailabbrev gmm-utils mailheader sendmail browse-url
> macros edebug dabbrev gv debug face-remap pcmpl-unix erc-menu erc-join
> erc-ring erc-networks erc-pcomplete erc-track erc-match erc-button
> erc-fill erc-stamp erc-netsplit erc-goodies erc erc-backend erc-compat
> format-spec thingatpt pp em-unix pcomplete em-term term ehelp electric
> em-script em-prompt em-ls em-hist em-pred em-glob em-dirs em-cmpl
> em-basic em-banner em-alias esh-var esh-io esh-cmd esh-opt esh-ext
> esh-proc esh-arg eldoc esh-groups eshell esh-module esh-mode esh-util
> zenburn-theme cus-theme cus-edit cus-start cus-load wid-edit compile
> comint ansi-color ring zenburn-theme-autoloads autoload help-fns
> lisp-mnt help-mode misearch multi-isearch mule-util mail-utils
> network-stream starttls url-http tls mail-parse rfc2231 rfc2047 rfc2045
> ietf-drums url-gw url-cache url-auth url url-proxy url-privacy
> url-expand url-methods url-history url-cookie url-domsuf url-util
> url-parse auth-source eieio byte-opt bytecomp byte-compile cconv
> gnus-util mm-util mail-prsvr password-cache url-vars mailcap dired paren
> undo-tree diff edmacro kmacro ido auctex-autoloads tex-site
> clojure-cheatsheet-autoloads cider-autoloads clojure-mode-autoloads
> dash-autoloads evil-autoloads geiser-autoloads info easymenu
> goto-chg-autoloads helm-autoloads pkg-info-autoloads epl-autoloads
> finder-inf undo-tree-autoloads package time-date tooltip ediff-hook
> vc-hooks lisp-float-type mwheel dos-w32 ls-lisp w32-common-fns
> disp-table w32-win w32-vars tool-bar dnd fontset image regexp-opt fringe
> tabulated-list newcomment lisp-mode register page menu-bar rfn-eshadow
> timer select scroll-bar mouse jit-lock font-lock syntax facemenu
> font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan
> thai tai-viet lao korean japanese hebrew greek romanian slovak czech
> european ethiopic indian cyrillic chinese case-table epa-hook
> jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces
> cus-face macroexp files text-properties overlay sha1 md5 base64 format
> env code-pages mule custom widget hashtable-print-readable backquote
> make-network-process w32 multi-tty emacs)
>
>