From unknown Tue Jun 24 17:25:59 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#13088 <13088@debbugs.gnu.org> To: bug#13088 <13088@debbugs.gnu.org> Subject: Status: stack overflow while compiling Reply-To: bug#13088 <13088@debbugs.gnu.org> Date: Wed, 25 Jun 2025 00:25:59 +0000 retitle 13088 stack overflow while compiling reassign 13088 guile submitter 13088 rixed@happyleptic.org severity 13088 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 05 11:36:07 2012 Received: (at submit) by debbugs.gnu.org; 5 Dec 2012 16:36:07 +0000 Received: from localhost ([127.0.0.1]:55183 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TgHx3-00031d-Fz for submit@debbugs.gnu.org; Wed, 05 Dec 2012 11:36:07 -0500 Received: from eggs.gnu.org ([208.118.235.92]:37392) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TgHwt-00031G-4l for submit@debbugs.gnu.org; Wed, 05 Dec 2012 11:35:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TgHwL-0001wb-Ng for submit@debbugs.gnu.org; Wed, 05 Dec 2012 11:35:43 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-101.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD, USER_IN_WHITELIST autolearn=unavailable version=3.3.2 Received: from lists.gnu.org ([208.118.235.17]:33770) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TgHwL-0001ta-Gp for submit@debbugs.gnu.org; Wed, 05 Dec 2012 11:35:17 -0500 Received: from eggs.gnu.org ([208.118.235.92]:47964) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TgHtA-0002VV-G5 for bug-guile@gnu.org; Wed, 05 Dec 2012 11:32:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TgHst-0000zq-TC for bug-guile@gnu.org; Wed, 05 Dec 2012 11:32:00 -0500 Received: from eneide.happyleptic.org ([213.251.171.101]:47565) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TgHst-0000ys-BX for bug-guile@gnu.org; Wed, 05 Dec 2012 11:31:43 -0500 Received: from extranet.securactive.net ([82.240.34.113] helo=ccellier.rd.securactive.lan) by eneide.happyleptic.org with esmtp (Exim 4.72) (envelope-from ) id 1TgHsl-0007Qz-Ju for bug-guile@gnu.org; Wed, 05 Dec 2012 17:31:36 +0100 Received: from rixed by ccellier.rd.securactive.lan with local (Exim 4.80) (envelope-from ) id 1TgHsg-0006YM-Gm for bug-guile@gnu.org; Wed, 05 Dec 2012 17:31:30 +0100 Date: Wed, 5 Dec 2012 17:31:30 +0100 From: rixed@happyleptic.org To: bug-guile@gnu.org Subject: stack overflow while compiling Message-ID: <20121205163130.GA25037@securactive.lan> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="AqsLC8rIMeq19msA" Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 208.118.235.17 X-Spam-Score: -4.2 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -5.0 (-----) --AqsLC8rIMeq19msA Content-Type: text/plain; charset=us-ascii Content-Disposition: inline This program tries to compile a long cond expression and fails quickly with a stack overflow. Of course this procedure was generated and a user is unlikely to write such a long cond, but considering the simplicity of the expression I'm surprised that the stack is so solicited. Note that I tested with guile 2.0.6 and not the fresh new 2.0.7 but I haven't noticed anything in the changelog regarding memory consumption. --AqsLC8rIMeq19msA Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="stack-overflow.scm" #!/usr/bin/env guile !# (use-modules (system base compile)) (define program (lambda (proto server-port client-zone server-zone signature-id) (let* ((cs-0 (eqv? server-zone 22)) (cs-1 (eqv? client-zone 22)) (cs-2 (eqv? signature-id 100013)) (cs-5 (eqv? server-zone 8)) (cs-8 (eqv? client-zone 8)) (cs-13 (eqv? client-zone 7)) (cs-18 (eqv? signature-id 100012)) (cs-31 (eqv? signature-id 100006)) (cs-44 (eqv? proto 6)) (cs-45 (eqv? server-port 443)) (cs-46 (and cs-44 cs-45)) (cs-47 (eqv? signature-id 100011)) (cs-48 (or cs-46 cs-47)) (cs-61 (eqv? client-zone 38)) (cs-66 (eqv? client-zone 33)) (cs-71 (eqv? client-zone 32)) (cs-76 (eqv? client-zone 30)) (cs-81 (eqv? client-zone 29)) (cs-86 (eqv? client-zone 28)) (cs-91 (eqv? client-zone 27)) (cs-96 (eqv? client-zone 26)) (cs-101 (eqv? client-zone 25)) (cs-106 (eqv? client-zone 24)) (cs-111 (eqv? client-zone 23)) (cs-116 (eqv? client-zone 21)) (cs-121 (eqv? client-zone 16)) (cs-126 (eqv? client-zone 15)) (cs-131 (eqv? client-zone 14)) (cs-136 (eqv? client-zone 13)) (cs-141 (eqv? client-zone 10)) (cs-146 (eqv? client-zone 9)) (cs-367 (eqv? server-port 4401)) (cs-372 (eqv? client-zone 43)) (cs-377 (eqv? client-zone 42)) (cs-382 (eqv? client-zone 41)) (cs-387 (eqv? client-zone 20)) (cs-392 (eqv? client-zone 18)) (cs-457 (eqv? signature-id 100010)) (cs-462 (eqv? signature-id 100009)) (cs-467 (eqv? signature-id 100008)) (cs-472 (eqv? server-port 8221)) (cs-477 (eqv? server-port 1539)) (cs-482 (eqv? server-port 4100)) (cs-487 (eqv? server-zone 38)) (cs-490 (eqv? server-zone 33)) (cs-493 (eqv? server-zone 30)) (cs-496 (eqv? server-zone 29)) (cs-499 (eqv? server-zone 28)) (cs-502 (eqv? server-zone 26)) (cs-505 (eqv? server-zone 23)) (cs-508 (eqv? server-zone 21)) (cs-511 (eqv? server-zone 16)) (cs-514 (eqv? server-zone 15)) (cs-517 (eqv? server-zone 14)) (cs-520 (eqv? server-zone 10)) (cs-2929 (eqv? server-port 1523)) (cs-3080 (eqv? proto 17)) (cs-3225 (eqv? server-zone 43)) (cs-3228 (eqv? server-zone 42)) (cs-3231 (eqv? server-zone 20)) (cs-3234 (eqv? server-zone 18)) (cs-3326 (eqv? signature-id 100001)) (cs-4223 (eqv? signature-id 205060))) (cond ((and cs-0 cs-1 cs-2) 604) ((and cs-5 cs-1 cs-2) 604) ((and cs-0 cs-8 cs-2) 604) ((and cs-5 cs-8 cs-2) 604) ((and cs-0 cs-13 cs-2) 604) ((and cs-5 cs-13 cs-2) 604) ((and cs-0 cs-1 cs-18) 604) ((and cs-5 cs-1 cs-18) 604) ((and cs-0 cs-8 cs-18) 604) ((and cs-5 cs-8 cs-18) 604) ((and cs-0 cs-13 cs-18) 604) ((and cs-5 cs-13 cs-18) 604) ((and cs-0 cs-1 cs-31) 604) ((and cs-5 cs-1 cs-31) 604) ((and cs-0 cs-8 cs-31) 604) ((and cs-5 cs-8 cs-31) 604) ((and cs-0 cs-13 cs-31) 604) ((and cs-5 cs-13 cs-31) 604) ((and cs-0 cs-1 cs-48) 590) ((and cs-5 cs-1 cs-48) 590) ((and cs-0 cs-8 cs-48) 590) ((and cs-5 cs-8 cs-48) 590) ((and cs-0 cs-13 cs-48) 590) ((and cs-5 cs-13 cs-48) 590) ((and cs-0 cs-61 cs-2) 604) ((and cs-5 cs-61 cs-2) 604) ((and cs-0 cs-66 cs-2) 604) ((and cs-5 cs-66 cs-2) 604) ((and cs-0 cs-71 cs-2) 604) ((and cs-5 cs-71 cs-2) 604) ((and cs-0 cs-76 cs-2) 604) ((and cs-5 cs-76 cs-2) 604) ((and cs-0 cs-81 cs-2) 604) ((and cs-5 cs-81 cs-2) 604) ((and cs-0 cs-86 cs-2) 604) ((and cs-5 cs-86 cs-2) 604) ((and cs-0 cs-91 cs-2) 604) ((and cs-5 cs-91 cs-2) 604) ((and cs-0 cs-96 cs-2) 604) ((and cs-5 cs-96 cs-2) 604) ((and cs-0 cs-101 cs-2) 604) ((and cs-5 cs-101 cs-2) 604) ((and cs-0 cs-106 cs-2) 604) ((and cs-5 cs-106 cs-2) 604) ((and cs-0 cs-111 cs-2) 604) ((and cs-5 cs-111 cs-2) 604) ((and cs-0 cs-116 cs-2) 604) ((and cs-5 cs-116 cs-2) 604) ((and cs-0 cs-121 cs-2) 604) ((and cs-5 cs-121 cs-2) 604) ((and cs-0 cs-126 cs-2) 604) ((and cs-5 cs-126 cs-2) 604) ((and cs-0 cs-131 cs-2) 604) ((and cs-5 cs-131 cs-2) 604) ((and cs-0 cs-136 cs-2) 604) ((and cs-5 cs-136 cs-2) 604) ((and cs-0 cs-141 cs-2) 604) ((and cs-5 cs-141 cs-2) 604) ((and cs-0 cs-146 cs-2) 604) ((and cs-5 cs-146 cs-2) 604) ((and cs-0 cs-61 cs-18) 604) ((and cs-5 cs-61 cs-18) 604) ((and cs-0 cs-66 cs-18) 604) ((and cs-5 cs-66 cs-18) 604) ((and cs-0 cs-71 cs-18) 604) ((and cs-5 cs-71 cs-18) 604) ((and cs-0 cs-76 cs-18) 604) ((and cs-5 cs-76 cs-18) 604) ((and cs-0 cs-81 cs-18) 604) ((and cs-5 cs-81 cs-18) 604) ((and cs-0 cs-86 cs-18) 604) ((and cs-5 cs-86 cs-18) 604) ((and cs-0 cs-91 cs-18) 604) ((and cs-5 cs-91 cs-18) 604) ((and cs-0 cs-96 cs-18) 604) ((and cs-5 cs-96 cs-18) 604) ((and cs-0 cs-101 cs-18) 604) ((and cs-5 cs-101 cs-18) 604) ((and cs-0 cs-106 cs-18) 604) ((and cs-5 cs-106 cs-18) 604) ((and cs-0 cs-111 cs-18) 604) ((and cs-5 cs-111 cs-18) 604) ((and cs-0 cs-116 cs-18) 604) ((and cs-5 cs-116 cs-18) 604) ((and cs-0 cs-121 cs-18) 604) ((and cs-5 cs-121 cs-18) 604) ((and cs-0 cs-126 cs-18) 604) ((and cs-5 cs-126 cs-18) 604) ((and cs-0 cs-131 cs-18) 604) ((and cs-5 cs-131 cs-18) 604) ((and cs-0 cs-136 cs-18) 604) ((and cs-5 cs-136 cs-18) 604) ((and cs-0 cs-141 cs-18) 604) ((and cs-5 cs-141 cs-18) 604) ((and cs-0 cs-146 cs-18) 604) ((and cs-5 cs-146 cs-18) 604) ((and cs-0 cs-61 cs-31) 604) ((and cs-5 cs-61 cs-31) 604) ((and cs-0 cs-66 cs-31) 604) ((and cs-5 cs-66 cs-31) 604) ((and cs-0 cs-71 cs-31) 604) ((and cs-5 cs-71 cs-31) 604) ((and cs-0 cs-76 cs-31) 604) ((and cs-5 cs-76 cs-31) 604) ((and cs-0 cs-81 cs-31) 604) ((and cs-5 cs-81 cs-31) 604) ((and cs-0 cs-86 cs-31) 604) ((and cs-5 cs-86 cs-31) 604) ((and cs-0 cs-91 cs-31) 604) ((and cs-5 cs-91 cs-31) 604) ((and cs-0 cs-96 cs-31) 604) ((and cs-5 cs-96 cs-31) 604) ((and cs-0 cs-101 cs-31) 604) ((and cs-5 cs-101 cs-31) 604) ((and cs-0 cs-106 cs-31) 604) ((and cs-5 cs-106 cs-31) 604) ((and cs-0 cs-111 cs-31) 604) ((and cs-5 cs-111 cs-31) 604) ((and cs-0 cs-116 cs-31) 604) ((and cs-5 cs-116 cs-31) 604) ((and cs-0 cs-121 cs-31) 604) ((and cs-5 cs-121 cs-31) 604) ((and cs-0 cs-126 cs-31) 604) ((and cs-5 cs-126 cs-31) 604) ((and cs-0 cs-131 cs-31) 604) ((and cs-5 cs-131 cs-31) 604) ((and cs-0 cs-136 cs-31) 604) ((and cs-5 cs-136 cs-31) 604) ((and cs-0 cs-141 cs-31) 604) ((and cs-5 cs-141 cs-31) 604) ((and cs-0 cs-146 cs-31) 604) ((and cs-5 cs-146 cs-31) 604) ((and cs-0 cs-61 cs-48) 590) ((and cs-5 cs-61 cs-48) 590) ((and cs-0 cs-66 cs-48) 590) ((and cs-5 cs-66 cs-48) 590) ((and cs-0 cs-71 cs-48) 590) ((and cs-5 cs-71 cs-48) 590) ((and cs-0 cs-76 cs-48) 590) ((and cs-5 cs-76 cs-48) 590) ((and cs-0 cs-81 cs-48) 590) ((and cs-5 cs-81 cs-48) 590) ((and cs-0 cs-86 cs-48) 590) ((and cs-5 cs-86 cs-48) 590) ((and cs-0 cs-91 cs-48) 590) ((and cs-5 cs-91 cs-48) 590) ((and cs-0 cs-96 cs-48) 590) ((and cs-5 cs-96 cs-48) 590) ((and cs-0 cs-101 cs-48) 590) ((and cs-5 cs-101 cs-48) 590) ((and cs-0 cs-106 cs-48) 590) ((and cs-5 cs-106 cs-48) 590) ((and cs-0 cs-111 cs-48) 590) ((and cs-5 cs-111 cs-48) 590) ((and cs-0 cs-116 cs-48) 590) ((and cs-5 cs-116 cs-48) 590) ((and cs-0 cs-121 cs-48) 590) ((and cs-5 cs-121 cs-48) 590) ((and cs-0 cs-126 cs-48) 590) ((and cs-5 cs-126 cs-48) 590) ((and cs-0 cs-131 cs-48) 590) ((and cs-5 cs-131 cs-48) 590) ((and cs-0 cs-136 cs-48) 590) ((and cs-5 cs-136 cs-48) 590) ((and cs-0 cs-141 cs-48) 590) ((and cs-5 cs-141 cs-48) 590) ((and cs-0 cs-146 cs-48) 590) ((and cs-5 cs-146 cs-48) 590) ((and cs-0 cs-44 cs-367) 605) ((and cs-5 cs-44 cs-367) 605) ((and cs-0 cs-372 cs-2) 604) ((and cs-5 cs-372 cs-2) 604) ((and cs-0 cs-377 cs-2) 604) ((and cs-5 cs-377 cs-2) 604) ((and cs-0 cs-382 cs-2) 604) ((and cs-5 cs-382 cs-2) 604) ((and cs-0 cs-387 cs-2) 604) ((and cs-5 cs-387 cs-2) 604) ((and cs-0 cs-392 cs-2) 604) ((and cs-5 cs-392 cs-2) 604) ((and cs-0 cs-372 cs-18) 604) ((and cs-5 cs-372 cs-18) 604) ((and cs-0 cs-377 cs-18) 604) ((and cs-5 cs-377 cs-18) 604) ((and cs-0 cs-382 cs-18) 604) ((and cs-5 cs-382 cs-18) 604) ((and cs-0 cs-387 cs-18) 604) ((and cs-5 cs-387 cs-18) 604) ((and cs-0 cs-392 cs-18) 604) ((and cs-5 cs-392 cs-18) 604) ((and cs-0 cs-372 cs-31) 604) ((and cs-5 cs-372 cs-31) 604) ((and cs-0 cs-377 cs-31) 604) ((and cs-5 cs-377 cs-31) 604) ((and cs-0 cs-382 cs-31) 604) ((and cs-5 cs-382 cs-31) 604) ((and cs-0 cs-387 cs-31) 604) ((and cs-5 cs-387 cs-31) 604) ((and cs-0 cs-392 cs-31) 604) ((and cs-5 cs-392 cs-31) 604) ((and cs-0 cs-372 cs-48) 590) ((and cs-5 cs-372 cs-48) 590) ((and cs-0 cs-377 cs-48) 590) ((and cs-5 cs-377 cs-48) 590) ((and cs-0 cs-382 cs-48) 590) ((and cs-5 cs-382 cs-48) 590) ((and cs-0 cs-387 cs-48) 590) ((and cs-5 cs-387 cs-48) 590) ((and cs-0 cs-392 cs-48) 590) ((and cs-5 cs-392 cs-48) 590) ((and cs-0 cs-457) 589) ((and cs-5 cs-457) 589) ((and cs-0 cs-462) 585) ((and cs-5 cs-462) 585) ((and cs-0 cs-467) 585) ((and cs-5 cs-467) 585) ((and cs-0 cs-44 cs-472) 583) ((and cs-5 cs-44 cs-472) 583) ((and cs-0 cs-44 cs-477) 579) ((and cs-5 cs-44 cs-477) 579) ((and cs-0 cs-44 cs-482) 573) ((and cs-5 cs-44 cs-482) 573) ((and cs-487 cs-1 cs-2) 604) ((and cs-490 cs-1 cs-2) 604) ((and cs-493 cs-1 cs-2) 604) ((and cs-496 cs-1 cs-2) 604) ((and cs-499 cs-1 cs-2) 604) ((and cs-502 cs-1 cs-2) 604) ((and cs-505 cs-1 cs-2) 604) ((and cs-508 cs-1 cs-2) 604) ((and cs-511 cs-1 cs-2) 604) ((and cs-514 cs-1 cs-2) 604) ((and cs-517 cs-1 cs-2) 604) ((and cs-520 cs-1 cs-2) 604) ((and cs-487 cs-8 cs-2) 604) ((and cs-490 cs-8 cs-2) 604) ((and cs-493 cs-8 cs-2) 604) ((and cs-496 cs-8 cs-2) 604) ((and cs-499 cs-8 cs-2) 604) ((and cs-502 cs-8 cs-2) 604) ((and cs-505 cs-8 cs-2) 604) ((and cs-508 cs-8 cs-2) 604) ((and cs-511 cs-8 cs-2) 604) ((and cs-514 cs-8 cs-2) 604) ((and cs-517 cs-8 cs-2) 604) ((and cs-520 cs-8 cs-2) 604) ((and cs-487 cs-13 cs-2) 604) ((and cs-490 cs-13 cs-2) 604) ((and cs-493 cs-13 cs-2) 604) ((and cs-496 cs-13 cs-2) 604) ((and cs-499 cs-13 cs-2) 604) ((and cs-502 cs-13 cs-2) 604) ((and cs-505 cs-13 cs-2) 604) ((and cs-508 cs-13 cs-2) 604) ((and cs-511 cs-13 cs-2) 604) ((and cs-514 cs-13 cs-2) 604) ((and cs-517 cs-13 cs-2) 604) ((and cs-520 cs-13 cs-2) 604) ((and cs-487 cs-1 cs-18) 604) ((and cs-490 cs-1 cs-18) 604) ((and cs-493 cs-1 cs-18) 604) ((and cs-496 cs-1 cs-18) 604) ((and cs-499 cs-1 cs-18) 604) ((and cs-502 cs-1 cs-18) 604) ((and cs-505 cs-1 cs-18) 604) ((and cs-508 cs-1 cs-18) 604) ((and cs-511 cs-1 cs-18) 604) ((and cs-514 cs-1 cs-18) 604) ((and cs-517 cs-1 cs-18) 604) ((and cs-520 cs-1 cs-18) 604) ((and cs-487 cs-8 cs-18) 604) ((and cs-490 cs-8 cs-18) 604) ((and cs-493 cs-8 cs-18) 604) ((and cs-496 cs-8 cs-18) 604) ((and cs-499 cs-8 cs-18) 604) ((and cs-502 cs-8 cs-18) 604) ((and cs-505 cs-8 cs-18) 604) ((and cs-508 cs-8 cs-18) 604) ((and cs-511 cs-8 cs-18) 604) ((and cs-514 cs-8 cs-18) 604) ((and cs-517 cs-8 cs-18) 604) ((and cs-520 cs-8 cs-18) 604) ((and cs-487 cs-13 cs-18) 604) ((and cs-490 cs-13 cs-18) 604) ((and cs-493 cs-13 cs-18) 604) ((and cs-496 cs-13 cs-18) 604) ((and cs-499 cs-13 cs-18) 604) ((and cs-502 cs-13 cs-18) 604) ((and cs-505 cs-13 cs-18) 604) ((and cs-508 cs-13 cs-18) 604) ((and cs-511 cs-13 cs-18) 604) ((and cs-514 cs-13 cs-18) 604) ((and cs-517 cs-13 cs-18) 604) ((and cs-520 cs-13 cs-18) 604) ((and cs-487 cs-1 cs-31) 604) ((and cs-490 cs-1 cs-31) 604) ((and cs-493 cs-1 cs-31) 604) ((and cs-496 cs-1 cs-31) 604) ((and cs-499 cs-1 cs-31) 604) ((and cs-502 cs-1 cs-31) 604) ((and cs-505 cs-1 cs-31) 604) ((and cs-508 cs-1 cs-31) 604) ((and cs-511 cs-1 cs-31) 604) ((and cs-514 cs-1 cs-31) 604) ((and cs-517 cs-1 cs-31) 604) ((and cs-520 cs-1 cs-31) 604) ((and cs-487 cs-8 cs-31) 604) ((and cs-490 cs-8 cs-31) 604) ((and cs-493 cs-8 cs-31) 604) ((and cs-496 cs-8 cs-31) 604) ((and cs-499 cs-8 cs-31) 604) ((and cs-502 cs-8 cs-31) 604) ((and cs-505 cs-8 cs-31) 604) ((and cs-508 cs-8 cs-31) 604) ((and cs-511 cs-8 cs-31) 604) ((and cs-514 cs-8 cs-31) 604) ((and cs-517 cs-8 cs-31) 604) ((and cs-520 cs-8 cs-31) 604) ((and cs-487 cs-13 cs-31) 604) ((and cs-490 cs-13 cs-31) 604) ((and cs-493 cs-13 cs-31) 604) ((and cs-496 cs-13 cs-31) 604) ((and cs-499 cs-13 cs-31) 604) ((and cs-502 cs-13 cs-31) 604) ((and cs-505 cs-13 cs-31) 604) ((and cs-508 cs-13 cs-31) 604) ((and cs-511 cs-13 cs-31) 604) ((and cs-514 cs-13 cs-31) 604) ((and cs-517 cs-13 cs-31) 604) ((and cs-520 cs-13 cs-31) 604) ((and cs-487 cs-1 cs-48) 590) ((and cs-490 cs-1 cs-48) 590) ((and cs-493 cs-1 cs-48) 590) ((and cs-496 cs-1 cs-48) 590) ((and cs-499 cs-1 cs-48) 590) ((and cs-502 cs-1 cs-48) 590) ((and cs-505 cs-1 cs-48) 590) ((and cs-508 cs-1 cs-48) 590) ((and cs-511 cs-1 cs-48) 590) ((and cs-514 cs-1 cs-48) 590) ((and cs-517 cs-1 cs-48) 590) ((and cs-520 cs-1 cs-48) 590) ((and cs-487 cs-8 cs-48) 590) ((and cs-490 cs-8 cs-48) 590) ((and cs-493 cs-8 cs-48) 590) ((and cs-496 cs-8 cs-48) 590) ((and cs-499 cs-8 cs-48) 590) ((and cs-502 cs-8 cs-48) 590) ((and cs-505 cs-8 cs-48) 590) ((and cs-508 cs-8 cs-48) 590) ((and cs-511 cs-8 cs-48) 590) ((and cs-514 cs-8 cs-48) 590) ((and cs-517 cs-8 cs-48) 590) ((and cs-520 cs-8 cs-48) 590) ((and cs-487 cs-13 cs-48) 590) ((and cs-490 cs-13 cs-48) 590) ((and cs-493 cs-13 cs-48) 590) ((and cs-496 cs-13 cs-48) 590) ((and cs-499 cs-13 cs-48) 590) ((and cs-502 cs-13 cs-48) 590) ((and cs-505 cs-13 cs-48) 590) ((and cs-508 cs-13 cs-48) 590) ((and cs-511 cs-13 cs-48) 590) ((and cs-514 cs-13 cs-48) 590) ((and cs-517 cs-13 cs-48) 590) ((and cs-520 cs-13 cs-48) 590) ((and cs-487 cs-61 cs-2) 604) ((and cs-490 cs-61 cs-2) 604) ((and cs-493 cs-61 cs-2) 604) ((and cs-496 cs-61 cs-2) 604) ((and cs-499 cs-61 cs-2) 604) ((and cs-502 cs-61 cs-2) 604) ((and cs-505 cs-61 cs-2) 604) ((and cs-508 cs-61 cs-2) 604) ((and cs-511 cs-61 cs-2) 604) ((and cs-514 cs-61 cs-2) 604) ((and cs-517 cs-61 cs-2) 604) ((and cs-520 cs-61 cs-2) 604) ((and cs-487 cs-66 cs-2) 604) ((and cs-490 cs-66 cs-2) 604) ((and cs-493 cs-66 cs-2) 604) ((and cs-496 cs-66 cs-2) 604) ((and cs-499 cs-66 cs-2) 604) ((and cs-502 cs-66 cs-2) 604) ((and cs-505 cs-66 cs-2) 604) ((and cs-508 cs-66 cs-2) 604) ((and cs-511 cs-66 cs-2) 604) ((and cs-514 cs-66 cs-2) 604) ((and cs-517 cs-66 cs-2) 604) ((and cs-520 cs-66 cs-2) 604) ((and cs-487 cs-71 cs-2) 604) ((and cs-490 cs-71 cs-2) 604) ((and cs-493 cs-71 cs-2) 604) ((and cs-496 cs-71 cs-2) 604) ((and cs-499 cs-71 cs-2) 604) ((and cs-502 cs-71 cs-2) 604) ((and cs-505 cs-71 cs-2) 604) ((and cs-508 cs-71 cs-2) 604) ((and cs-511 cs-71 cs-2) 604) ((and cs-514 cs-71 cs-2) 604) ((and cs-517 cs-71 cs-2) 604) ((and cs-520 cs-71 cs-2) 604) ((and cs-487 cs-76 cs-2) 604) ((and cs-490 cs-76 cs-2) 604) ((and cs-493 cs-76 cs-2) 604) ((and cs-496 cs-76 cs-2) 604) ((and cs-499 cs-76 cs-2) 604) ((and cs-502 cs-76 cs-2) 604) ((and cs-505 cs-76 cs-2) 604) ((and cs-508 cs-76 cs-2) 604) ((and cs-511 cs-76 cs-2) 604) ((and cs-514 cs-76 cs-2) 604) ((and cs-517 cs-76 cs-2) 604) ((and cs-520 cs-76 cs-2) 604) ((and cs-487 cs-81 cs-2) 604) ((and cs-490 cs-81 cs-2) 604) ((and cs-493 cs-81 cs-2) 604) ((and cs-496 cs-81 cs-2) 604) ((and cs-499 cs-81 cs-2) 604) ((and cs-502 cs-81 cs-2) 604) ((and cs-505 cs-81 cs-2) 604) ((and cs-508 cs-81 cs-2) 604) ((and cs-511 cs-81 cs-2) 604) ((and cs-514 cs-81 cs-2) 604) ((and cs-517 cs-81 cs-2) 604) ((and cs-520 cs-81 cs-2) 604) ((and cs-487 cs-86 cs-2) 604) ((and cs-490 cs-86 cs-2) 604) ((and cs-493 cs-86 cs-2) 604) ((and cs-496 cs-86 cs-2) 604) ((and cs-499 cs-86 cs-2) 604) ((and cs-502 cs-86 cs-2) 604) ((and cs-505 cs-86 cs-2) 604) ((and cs-508 cs-86 cs-2) 604) ((and cs-511 cs-86 cs-2) 604) ((and cs-514 cs-86 cs-2) 604) ((and cs-517 cs-86 cs-2) 604) ((and cs-520 cs-86 cs-2) 604) ((and cs-487 cs-91 cs-2) 604) ((and cs-490 cs-91 cs-2) 604) ((and cs-493 cs-91 cs-2) 604) ((and cs-496 cs-91 cs-2) 604) ((and cs-499 cs-91 cs-2) 604) ((and cs-502 cs-91 cs-2) 604) ((and cs-505 cs-91 cs-2) 604) ((and cs-508 cs-91 cs-2) 604) ((and cs-511 cs-91 cs-2) 604) ((and cs-514 cs-91 cs-2) 604) ((and cs-517 cs-91 cs-2) 604) ((and cs-520 cs-91 cs-2) 604) ((and cs-487 cs-96 cs-2) 604) ((and cs-490 cs-96 cs-2) 604) ((and cs-493 cs-96 cs-2) 604) ((and cs-496 cs-96 cs-2) 604) ((and cs-499 cs-96 cs-2) 604) ((and cs-502 cs-96 cs-2) 604) ((and cs-505 cs-96 cs-2) 604) ((and cs-508 cs-96 cs-2) 604) ((and cs-511 cs-96 cs-2) 604) ((and cs-514 cs-96 cs-2) 604) ((and cs-517 cs-96 cs-2) 604) ((and cs-520 cs-96 cs-2) 604) ((and cs-487 cs-101 cs-2) 604) ((and cs-490 cs-101 cs-2) 604) ((and cs-493 cs-101 cs-2) 604) ((and cs-496 cs-101 cs-2) 604) ((and cs-499 cs-101 cs-2) 604) ((and cs-502 cs-101 cs-2) 604) ((and cs-505 cs-101 cs-2) 604) ((and cs-508 cs-101 cs-2) 604) ((and cs-511 cs-101 cs-2) 604) ((and cs-514 cs-101 cs-2) 604) ((and cs-517 cs-101 cs-2) 604) ((and cs-520 cs-101 cs-2) 604) ((and cs-487 cs-106 cs-2) 604) ((and cs-490 cs-106 cs-2) 604) ((and cs-493 cs-106 cs-2) 604) ((and cs-496 cs-106 cs-2) 604) ((and cs-499 cs-106 cs-2) 604) ((and cs-502 cs-106 cs-2) 604) ((and cs-505 cs-106 cs-2) 604) ((and cs-508 cs-106 cs-2) 604) ((and cs-511 cs-106 cs-2) 604) ((and cs-514 cs-106 cs-2) 604) ((and cs-517 cs-106 cs-2) 604) ((and cs-520 cs-106 cs-2) 604) ((and cs-487 cs-111 cs-2) 604) ((and cs-490 cs-111 cs-2) 604) ((and cs-493 cs-111 cs-2) 604) ((and cs-496 cs-111 cs-2) 604) ((and cs-499 cs-111 cs-2) 604) ((and cs-502 cs-111 cs-2) 604) ((and cs-505 cs-111 cs-2) 604) ((and cs-508 cs-111 cs-2) 604) ((and cs-511 cs-111 cs-2) 604) ((and cs-514 cs-111 cs-2) 604) ((and cs-517 cs-111 cs-2) 604) ((and cs-520 cs-111 cs-2) 604) ((and cs-487 cs-116 cs-2) 604) ((and cs-490 cs-116 cs-2) 604) ((and cs-493 cs-116 cs-2) 604) ((and cs-496 cs-116 cs-2) 604) ((and cs-499 cs-116 cs-2) 604) ((and cs-502 cs-116 cs-2) 604) ((and cs-505 cs-116 cs-2) 604) ((and cs-508 cs-116 cs-2) 604) ((and cs-511 cs-116 cs-2) 604) ((and cs-514 cs-116 cs-2) 604) ((and cs-517 cs-116 cs-2) 604) ((and cs-520 cs-116 cs-2) 604) ((and cs-487 cs-121 cs-2) 604) ((and cs-490 cs-121 cs-2) 604) ((and cs-493 cs-121 cs-2) 604) ((and cs-496 cs-121 cs-2) 604) ((and cs-499 cs-121 cs-2) 604) ((and cs-502 cs-121 cs-2) 604) ((and cs-505 cs-121 cs-2) 604) ((and cs-508 cs-121 cs-2) 604) ((and cs-511 cs-121 cs-2) 604) ((and cs-514 cs-121 cs-2) 604) ((and cs-517 cs-121 cs-2) 604) ((and cs-520 cs-121 cs-2) 604) ((and cs-487 cs-126 cs-2) 604) ((and cs-490 cs-126 cs-2) 604) ((and cs-493 cs-126 cs-2) 604) ((and cs-496 cs-126 cs-2) 604) ((and cs-499 cs-126 cs-2) 604) ((and cs-502 cs-126 cs-2) 604) ((and cs-505 cs-126 cs-2) 604) ((and cs-508 cs-126 cs-2) 604) ((and cs-511 cs-126 cs-2) 604) ((and cs-514 cs-126 cs-2) 604) ((and cs-517 cs-126 cs-2) 604) ((and cs-520 cs-126 cs-2) 604) ((and cs-487 cs-131 cs-2) 604) ((and cs-490 cs-131 cs-2) 604) ((and cs-493 cs-131 cs-2) 604) ((and cs-496 cs-131 cs-2) 604) ((and cs-499 cs-131 cs-2) 604) ((and cs-502 cs-131 cs-2) 604) ((and cs-505 cs-131 cs-2) 604) ((and cs-508 cs-131 cs-2) 604) ((and cs-511 cs-131 cs-2) 604) ((and cs-514 cs-131 cs-2) 604) ((and cs-517 cs-131 cs-2) 604) ((and cs-520 cs-131 cs-2) 604) ((and cs-487 cs-136 cs-2) 604) ((and cs-490 cs-136 cs-2) 604) ((and cs-493 cs-136 cs-2) 604) ((and cs-496 cs-136 cs-2) 604) ((and cs-499 cs-136 cs-2) 604) ((and cs-502 cs-136 cs-2) 604) ((and cs-505 cs-136 cs-2) 604) ((and cs-508 cs-136 cs-2) 604) ((and cs-511 cs-136 cs-2) 604) ((and cs-514 cs-136 cs-2) 604) ((and cs-517 cs-136 cs-2) 604) ((and cs-520 cs-136 cs-2) 604) ((and cs-487 cs-141 cs-2) 604) ((and cs-490 cs-141 cs-2) 604) ((and cs-493 cs-141 cs-2) 604) ((and cs-496 cs-141 cs-2) 604) ((and cs-499 cs-141 cs-2) 604) ((and cs-502 cs-141 cs-2) 604) ((and cs-505 cs-141 cs-2) 604) ((and cs-508 cs-141 cs-2) 604) ((and cs-511 cs-141 cs-2) 604) ((and cs-514 cs-141 cs-2) 604) ((and cs-517 cs-141 cs-2) 604) ((and cs-520 cs-141 cs-2) 604) ((and cs-487 cs-146 cs-2) 604) ((and cs-490 cs-146 cs-2) 604) ((and cs-493 cs-146 cs-2) 604) ((and cs-496 cs-146 cs-2) 604) ((and cs-499 cs-146 cs-2) 604) ((and cs-502 cs-146 cs-2) 604) ((and cs-505 cs-146 cs-2) 604) ((and cs-508 cs-146 cs-2) 604) ((and cs-511 cs-146 cs-2) 604) ((and cs-514 cs-146 cs-2) 604) ((and cs-517 cs-146 cs-2) 604) ((and cs-520 cs-146 cs-2) 604) ((and cs-487 cs-61 cs-18) 604) ((and cs-490 cs-61 cs-18) 604) ((and cs-493 cs-61 cs-18) 604) ((and cs-496 cs-61 cs-18) 604) ((and cs-499 cs-61 cs-18) 604) ((and cs-502 cs-61 cs-18) 604) ((and cs-505 cs-61 cs-18) 604) ((and cs-508 cs-61 cs-18) 604) ((and cs-511 cs-61 cs-18) 604) ((and cs-514 cs-61 cs-18) 604) ((and cs-517 cs-61 cs-18) 604) ((and cs-520 cs-61 cs-18) 604) ((and cs-487 cs-66 cs-18) 604) ((and cs-490 cs-66 cs-18) 604) ((and cs-493 cs-66 cs-18) 604) ((and cs-496 cs-66 cs-18) 604) ((and cs-499 cs-66 cs-18) 604) ((and cs-502 cs-66 cs-18) 604) ((and cs-505 cs-66 cs-18) 604) ((and cs-508 cs-66 cs-18) 604) ((and cs-511 cs-66 cs-18) 604) ((and cs-514 cs-66 cs-18) 604) ((and cs-517 cs-66 cs-18) 604) ((and cs-520 cs-66 cs-18) 604) ((and cs-487 cs-71 cs-18) 604) ((and cs-490 cs-71 cs-18) 604) ((and cs-493 cs-71 cs-18) 604) ((and cs-496 cs-71 cs-18) 604) ((and cs-499 cs-71 cs-18) 604) ((and cs-502 cs-71 cs-18) 604) ((and cs-505 cs-71 cs-18) 604) ((and cs-508 cs-71 cs-18) 604) ((and cs-511 cs-71 cs-18) 604) ((and cs-514 cs-71 cs-18) 604) ((and cs-517 cs-71 cs-18) 604) ((and cs-520 cs-71 cs-18) 604) ((and cs-487 cs-76 cs-18) 604) ((and cs-490 cs-76 cs-18) 604) ((and cs-493 cs-76 cs-18) 604) ((and cs-496 cs-76 cs-18) 604) ((and cs-499 cs-76 cs-18) 604) ((and cs-502 cs-76 cs-18) 604) ((and cs-505 cs-76 cs-18) 604) ((and cs-508 cs-76 cs-18) 604) ((and cs-511 cs-76 cs-18) 604) ((and cs-514 cs-76 cs-18) 604) ((and cs-517 cs-76 cs-18) 604) ((and cs-520 cs-76 cs-18) 604) ((and cs-487 cs-81 cs-18) 604) ((and cs-490 cs-81 cs-18) 604) ((and cs-493 cs-81 cs-18) 604) ((and cs-496 cs-81 cs-18) 604) ((and cs-499 cs-81 cs-18) 604) ((and cs-502 cs-81 cs-18) 604) ((and cs-505 cs-81 cs-18) 604) ((and cs-508 cs-81 cs-18) 604) ((and cs-511 cs-81 cs-18) 604) ((and cs-514 cs-81 cs-18) 604) ((and cs-517 cs-81 cs-18) 604) ((and cs-520 cs-81 cs-18) 604) ((and cs-487 cs-86 cs-18) 604) ((and cs-490 cs-86 cs-18) 604) ((and cs-493 cs-86 cs-18) 604) ((and cs-496 cs-86 cs-18) 604) ((and cs-499 cs-86 cs-18) 604) ((and cs-502 cs-86 cs-18) 604) ((and cs-505 cs-86 cs-18) 604) ((and cs-508 cs-86 cs-18) 604) ((and cs-511 cs-86 cs-18) 604) ((and cs-514 cs-86 cs-18) 604) ((and cs-517 cs-86 cs-18) 604) ((and cs-520 cs-86 cs-18) 604) ((and cs-487 cs-91 cs-18) 604) ((and cs-490 cs-91 cs-18) 604) ((and cs-493 cs-91 cs-18) 604) ((and cs-496 cs-91 cs-18) 604) ((and cs-499 cs-91 cs-18) 604) ((and cs-502 cs-91 cs-18) 604) ((and cs-505 cs-91 cs-18) 604) ((and cs-508 cs-91 cs-18) 604) ((and cs-511 cs-91 cs-18) 604) ((and cs-514 cs-91 cs-18) 604) ((and cs-517 cs-91 cs-18) 604) ((and cs-520 cs-91 cs-18) 604) ((and cs-487 cs-96 cs-18) 604) ((and cs-490 cs-96 cs-18) 604) ((and cs-493 cs-96 cs-18) 604) ((and cs-496 cs-96 cs-18) 604) ((and cs-499 cs-96 cs-18) 604) ((and cs-502 cs-96 cs-18) 604) ((and cs-505 cs-96 cs-18) 604) ((and cs-508 cs-96 cs-18) 604) ((and cs-511 cs-96 cs-18) 604) ((and cs-514 cs-96 cs-18) 604) ((and cs-517 cs-96 cs-18) 604) ((and cs-520 cs-96 cs-18) 604) ((and cs-487 cs-101 cs-18) 604) ((and cs-490 cs-101 cs-18) 604) ((and cs-493 cs-101 cs-18) 604) ((and cs-496 cs-101 cs-18) 604) ((and cs-499 cs-101 cs-18) 604) ((and cs-502 cs-101 cs-18) 604) ((and cs-505 cs-101 cs-18) 604) ((and cs-508 cs-101 cs-18) 604) ((and cs-511 cs-101 cs-18) 604) ((and cs-514 cs-101 cs-18) 604) ((and cs-517 cs-101 cs-18) 604) ((and cs-520 cs-101 cs-18) 604) ((and cs-487 cs-106 cs-18) 604) ((and cs-490 cs-106 cs-18) 604) ((and cs-493 cs-106 cs-18) 604) ((and cs-496 cs-106 cs-18) 604) ((and cs-499 cs-106 cs-18) 604) ((and cs-502 cs-106 cs-18) 604) ((and cs-505 cs-106 cs-18) 604) ((and cs-508 cs-106 cs-18) 604) ((and cs-511 cs-106 cs-18) 604) ((and cs-514 cs-106 cs-18) 604) ((and cs-517 cs-106 cs-18) 604) ((and cs-520 cs-106 cs-18) 604) ((and cs-487 cs-111 cs-18) 604) ((and cs-490 cs-111 cs-18) 604) ((and cs-493 cs-111 cs-18) 604) ((and cs-496 cs-111 cs-18) 604) ((and cs-499 cs-111 cs-18) 604) ((and cs-502 cs-111 cs-18) 604) ((and cs-505 cs-111 cs-18) 604) ((and cs-508 cs-111 cs-18) 604) ((and cs-511 cs-111 cs-18) 604) ((and cs-514 cs-111 cs-18) 604) ((and cs-517 cs-111 cs-18) 604) ((and cs-520 cs-111 cs-18) 604) ((and cs-487 cs-116 cs-18) 604) ((and cs-490 cs-116 cs-18) 604) ((and cs-493 cs-116 cs-18) 604) ((and cs-496 cs-116 cs-18) 604) ((and cs-499 cs-116 cs-18) 604) ((and cs-502 cs-116 cs-18) 604) ((and cs-505 cs-116 cs-18) 604) ((and cs-508 cs-116 cs-18) 604) ((and cs-511 cs-116 cs-18) 604) ((and cs-514 cs-116 cs-18) 604) ((and cs-517 cs-116 cs-18) 604) ((and cs-520 cs-116 cs-18) 604) ((and cs-487 cs-121 cs-18) 604) ((and cs-490 cs-121 cs-18) 604) ((and cs-493 cs-121 cs-18) 604) ((and cs-496 cs-121 cs-18) 604) ((and cs-499 cs-121 cs-18) 604) ((and cs-502 cs-121 cs-18) 604) ((and cs-505 cs-121 cs-18) 604) ((and cs-508 cs-121 cs-18) 604) ((and cs-511 cs-121 cs-18) 604) ((and cs-514 cs-121 cs-18) 604) ((and cs-517 cs-121 cs-18) 604) ((and cs-520 cs-121 cs-18) 604) ((and cs-487 cs-126 cs-18) 604) ((and cs-490 cs-126 cs-18) 604) ((and cs-493 cs-126 cs-18) 604) ((and cs-496 cs-126 cs-18) 604) ((and cs-499 cs-126 cs-18) 604) ((and cs-502 cs-126 cs-18) 604) ((and cs-505 cs-126 cs-18) 604) ((and cs-508 cs-126 cs-18) 604) ((and cs-511 cs-126 cs-18) 604) ((and cs-514 cs-126 cs-18) 604) ((and cs-517 cs-126 cs-18) 604) ((and cs-520 cs-126 cs-18) 604) ((and cs-487 cs-131 cs-18) 604) ((and cs-490 cs-131 cs-18) 604) ((and cs-493 cs-131 cs-18) 604) ((and cs-496 cs-131 cs-18) 604) ((and cs-499 cs-131 cs-18) 604) ((and cs-502 cs-131 cs-18) 604) ((and cs-505 cs-131 cs-18) 604) ((and cs-508 cs-131 cs-18) 604) ((and cs-511 cs-131 cs-18) 604) ((and cs-514 cs-131 cs-18) 604) ((and cs-517 cs-131 cs-18) 604) ((and cs-520 cs-131 cs-18) 604) ((and cs-487 cs-136 cs-18) 604) ((and cs-490 cs-136 cs-18) 604) ((and cs-493 cs-136 cs-18) 604) ((and cs-496 cs-136 cs-18) 604) ((and cs-499 cs-136 cs-18) 604) ((and cs-502 cs-136 cs-18) 604) ((and cs-505 cs-136 cs-18) 604) ((and cs-508 cs-136 cs-18) 604) ((and cs-511 cs-136 cs-18) 604) ((and cs-514 cs-136 cs-18) 604) ((and cs-517 cs-136 cs-18) 604) ((and cs-520 cs-136 cs-18) 604) ((and cs-487 cs-141 cs-18) 604) ((and cs-490 cs-141 cs-18) 604) ((and cs-493 cs-141 cs-18) 604) ((and cs-496 cs-141 cs-18) 604) ((and cs-499 cs-141 cs-18) 604) ((and cs-502 cs-141 cs-18) 604) ((and cs-505 cs-141 cs-18) 604) ((and cs-508 cs-141 cs-18) 604) ((and cs-511 cs-141 cs-18) 604) ((and cs-514 cs-141 cs-18) 604) ((and cs-517 cs-141 cs-18) 604) ((and cs-520 cs-141 cs-18) 604) ((and cs-487 cs-146 cs-18) 604) ((and cs-490 cs-146 cs-18) 604) ((and cs-493 cs-146 cs-18) 604) ((and cs-496 cs-146 cs-18) 604) ((and cs-499 cs-146 cs-18) 604) ((and cs-502 cs-146 cs-18) 604) ((and cs-505 cs-146 cs-18) 604) ((and cs-508 cs-146 cs-18) 604) ((and cs-511 cs-146 cs-18) 604) ((and cs-514 cs-146 cs-18) 604) ((and cs-517 cs-146 cs-18) 604) ((and cs-520 cs-146 cs-18) 604) ((and cs-487 cs-61 cs-31) 604) ((and cs-490 cs-61 cs-31) 604) ((and cs-493 cs-61 cs-31) 604) ((and cs-496 cs-61 cs-31) 604) ((and cs-499 cs-61 cs-31) 604) ((and cs-502 cs-61 cs-31) 604) ((and cs-505 cs-61 cs-31) 604) ((and cs-508 cs-61 cs-31) 604) ((and cs-511 cs-61 cs-31) 604) ((and cs-514 cs-61 cs-31) 604) ((and cs-517 cs-61 cs-31) 604) ((and cs-520 cs-61 cs-31) 604) ((and cs-487 cs-66 cs-31) 604) ((and cs-490 cs-66 cs-31) 604) ((and cs-493 cs-66 cs-31) 604) ((and cs-496 cs-66 cs-31) 604) ((and cs-499 cs-66 cs-31) 604) ((and cs-502 cs-66 cs-31) 604) ((and cs-505 cs-66 cs-31) 604) ((and cs-508 cs-66 cs-31) 604) ((and cs-511 cs-66 cs-31) 604) ((and cs-514 cs-66 cs-31) 604) ((and cs-517 cs-66 cs-31) 604) ((and cs-520 cs-66 cs-31) 604) ((and cs-487 cs-71 cs-31) 604) ((and cs-490 cs-71 cs-31) 604) ((and cs-493 cs-71 cs-31) 604) ((and cs-496 cs-71 cs-31) 604) ((and cs-499 cs-71 cs-31) 604) ((and cs-502 cs-71 cs-31) 604) ((and cs-505 cs-71 cs-31) 604) ((and cs-508 cs-71 cs-31) 604) ((and cs-511 cs-71 cs-31) 604) ((and cs-514 cs-71 cs-31) 604) ((and cs-517 cs-71 cs-31) 604) ((and cs-520 cs-71 cs-31) 604) ((and cs-487 cs-76 cs-31) 604) ((and cs-490 cs-76 cs-31) 604) ((and cs-493 cs-76 cs-31) 604) ((and cs-496 cs-76 cs-31) 604) ((and cs-499 cs-76 cs-31) 604) ((and cs-502 cs-76 cs-31) 604) ((and cs-505 cs-76 cs-31) 604) ((and cs-508 cs-76 cs-31) 604) ((and cs-511 cs-76 cs-31) 604) ((and cs-514 cs-76 cs-31) 604) ((and cs-517 cs-76 cs-31) 604) ((and cs-520 cs-76 cs-31) 604) ((and cs-487 cs-81 cs-31) 604) ((and cs-490 cs-81 cs-31) 604) ((and cs-493 cs-81 cs-31) 604) ((and cs-496 cs-81 cs-31) 604) ((and cs-499 cs-81 cs-31) 604) ((and cs-502 cs-81 cs-31) 604) ((and cs-505 cs-81 cs-31) 604) ((and cs-508 cs-81 cs-31) 604) ((and cs-511 cs-81 cs-31) 604) ((and cs-514 cs-81 cs-31) 604) ((and cs-517 cs-81 cs-31) 604) ((and cs-520 cs-81 cs-31) 604) ((and cs-487 cs-86 cs-31) 604) ((and cs-490 cs-86 cs-31) 604) ((and cs-493 cs-86 cs-31) 604) ((and cs-496 cs-86 cs-31) 604) ((and cs-499 cs-86 cs-31) 604) ((and cs-502 cs-86 cs-31) 604) ((and cs-505 cs-86 cs-31) 604) ((and cs-508 cs-86 cs-31) 604) ((and cs-511 cs-86 cs-31) 604) ((and cs-514 cs-86 cs-31) 604) ((and cs-517 cs-86 cs-31) 604) ((and cs-520 cs-86 cs-31) 604) ((and cs-487 cs-91 cs-31) 604) ((and cs-490 cs-91 cs-31) 604) ((and cs-493 cs-91 cs-31) 604) ((and cs-496 cs-91 cs-31) 604) ((and cs-499 cs-91 cs-31) 604) ((and cs-502 cs-91 cs-31) 604) ((and cs-505 cs-91 cs-31) 604) ((and cs-508 cs-91 cs-31) 604) ((and cs-511 cs-91 cs-31) 604) ((and cs-514 cs-91 cs-31) 604) ((and cs-517 cs-91 cs-31) 604) ((and cs-520 cs-91 cs-31) 604) ((and cs-487 cs-96 cs-31) 604) ((and cs-490 cs-96 cs-31) 604) ((and cs-493 cs-96 cs-31) 604) ((and cs-496 cs-96 cs-31) 604) ((and cs-499 cs-96 cs-31) 604) ((and cs-502 cs-96 cs-31) 604) ((and cs-505 cs-96 cs-31) 604) ((and cs-508 cs-96 cs-31) 604) ((and cs-511 cs-96 cs-31) 604) ((and cs-514 cs-96 cs-31) 604) ((and cs-517 cs-96 cs-31) 604) ((and cs-520 cs-96 cs-31) 604) ((and cs-487 cs-101 cs-31) 604) ((and cs-490 cs-101 cs-31) 604) ((and cs-493 cs-101 cs-31) 604) ((and cs-496 cs-101 cs-31) 604) ((and cs-499 cs-101 cs-31) 604) ((and cs-502 cs-101 cs-31) 604) ((and cs-505 cs-101 cs-31) 604) ((and cs-508 cs-101 cs-31) 604) ((and cs-511 cs-101 cs-31) 604) ((and cs-514 cs-101 cs-31) 604) ((and cs-517 cs-101 cs-31) 604) ((and cs-520 cs-101 cs-31) 604) ((and cs-487 cs-106 cs-31) 604) ((and cs-490 cs-106 cs-31) 604) ((and cs-493 cs-106 cs-31) 604) ((and cs-496 cs-106 cs-31) 604) ((and cs-499 cs-106 cs-31) 604) ((and cs-502 cs-106 cs-31) 604) ((and cs-505 cs-106 cs-31) 604) ((and cs-508 cs-106 cs-31) 604) ((and cs-511 cs-106 cs-31) 604) ((and cs-514 cs-106 cs-31) 604) ((and cs-517 cs-106 cs-31) 604) ((and cs-520 cs-106 cs-31) 604) ((and cs-487 cs-111 cs-31) 604) ((and cs-490 cs-111 cs-31) 604) ((and cs-493 cs-111 cs-31) 604) ((and cs-496 cs-111 cs-31) 604) ((and cs-499 cs-111 cs-31) 604) ((and cs-502 cs-111 cs-31) 604) ((and cs-505 cs-111 cs-31) 604) ((and cs-508 cs-111 cs-31) 604) ((and cs-511 cs-111 cs-31) 604) ((and cs-514 cs-111 cs-31) 604) ((and cs-517 cs-111 cs-31) 604) ((and cs-520 cs-111 cs-31) 604) ((and cs-487 cs-116 cs-31) 604) ((and cs-490 cs-116 cs-31) 604) ((and cs-493 cs-116 cs-31) 604) ((and cs-496 cs-116 cs-31) 604) ((and cs-499 cs-116 cs-31) 604) ((and cs-502 cs-116 cs-31) 604) ((and cs-505 cs-116 cs-31) 604) ((and cs-508 cs-116 cs-31) 604) ((and cs-511 cs-116 cs-31) 604) ((and cs-514 cs-116 cs-31) 604) ((and cs-517 cs-116 cs-31) 604) ((and cs-520 cs-116 cs-31) 604) ((and cs-487 cs-121 cs-31) 604) ((and cs-490 cs-121 cs-31) 604) ((and cs-493 cs-121 cs-31) 604) ((and cs-496 cs-121 cs-31) 604) ((and cs-499 cs-121 cs-31) 604) ((and cs-502 cs-121 cs-31) 604) ((and cs-505 cs-121 cs-31) 604) ((and cs-508 cs-121 cs-31) 604) ((and cs-511 cs-121 cs-31) 604) ((and cs-514 cs-121 cs-31) 604) ((and cs-517 cs-121 cs-31) 604) ((and cs-520 cs-121 cs-31) 604) ((and cs-487 cs-126 cs-31) 604) ((and cs-490 cs-126 cs-31) 604) ((and cs-493 cs-126 cs-31) 604) ((and cs-496 cs-126 cs-31) 604) ((and cs-499 cs-126 cs-31) 604) ((and cs-502 cs-126 cs-31) 604) ((and cs-505 cs-126 cs-31) 604) ((and cs-508 cs-126 cs-31) 604) ((and cs-511 cs-126 cs-31) 604) ((and cs-514 cs-126 cs-31) 604) ((and cs-517 cs-126 cs-31) 604) ((and cs-520 cs-126 cs-31) 604) ((and cs-487 cs-131 cs-31) 604) ((and cs-490 cs-131 cs-31) 604) ((and cs-493 cs-131 cs-31) 604) ((and cs-496 cs-131 cs-31) 604) ((and cs-499 cs-131 cs-31) 604) ((and cs-502 cs-131 cs-31) 604) ((and cs-505 cs-131 cs-31) 604) ((and cs-508 cs-131 cs-31) 604) ((and cs-511 cs-131 cs-31) 604) ((and cs-514 cs-131 cs-31) 604) ((and cs-517 cs-131 cs-31) 604) ((and cs-520 cs-131 cs-31) 604) ((and cs-487 cs-136 cs-31) 604) ((and cs-490 cs-136 cs-31) 604) ((and cs-493 cs-136 cs-31) 604) ((and cs-496 cs-136 cs-31) 604) ((and cs-499 cs-136 cs-31) 604) ((and cs-502 cs-136 cs-31) 604) ((and cs-505 cs-136 cs-31) 604) ((and cs-508 cs-136 cs-31) 604) ((and cs-511 cs-136 cs-31) 604) ((and cs-514 cs-136 cs-31) 604) ((and cs-517 cs-136 cs-31) 604) ((and cs-520 cs-136 cs-31) 604) ((and cs-487 cs-141 cs-31) 604) ((and cs-490 cs-141 cs-31) 604) ((and cs-493 cs-141 cs-31) 604) ((and cs-496 cs-141 cs-31) 604) ((and cs-499 cs-141 cs-31) 604) ((and cs-502 cs-141 cs-31) 604) ((and cs-505 cs-141 cs-31) 604) ((and cs-508 cs-141 cs-31) 604) ((and cs-511 cs-141 cs-31) 604) ((and cs-514 cs-141 cs-31) 604) ((and cs-517 cs-141 cs-31) 604) ((and cs-520 cs-141 cs-31) 604) ((and cs-487 cs-146 cs-31) 604) ((and cs-490 cs-146 cs-31) 604) ((and cs-493 cs-146 cs-31) 604) ((and cs-496 cs-146 cs-31) 604) ((and cs-499 cs-146 cs-31) 604) ((and cs-502 cs-146 cs-31) 604) ((and cs-505 cs-146 cs-31) 604) ((and cs-508 cs-146 cs-31) 604) ((and cs-511 cs-146 cs-31) 604) ((and cs-514 cs-146 cs-31) 604) ((and cs-517 cs-146 cs-31) 604) ((and cs-520 cs-146 cs-31) 604) ((and cs-487 cs-61 cs-48) 590) ((and cs-490 cs-61 cs-48) 590) ((and cs-493 cs-61 cs-48) 590) ((and cs-496 cs-61 cs-48) 590) ((and cs-499 cs-61 cs-48) 590) ((and cs-502 cs-61 cs-48) 590) ((and cs-505 cs-61 cs-48) 590) ((and cs-508 cs-61 cs-48) 590) ((and cs-511 cs-61 cs-48) 590) ((and cs-514 cs-61 cs-48) 590) ((and cs-517 cs-61 cs-48) 590) ((and cs-520 cs-61 cs-48) 590) ((and cs-487 cs-66 cs-48) 590) ((and cs-490 cs-66 cs-48) 590) ((and cs-493 cs-66 cs-48) 590) ((and cs-496 cs-66 cs-48) 590) ((and cs-499 cs-66 cs-48) 590) ((and cs-502 cs-66 cs-48) 590) ((and cs-505 cs-66 cs-48) 590) ((and cs-508 cs-66 cs-48) 590) ((and cs-511 cs-66 cs-48) 590) ((and cs-514 cs-66 cs-48) 590) ((and cs-517 cs-66 cs-48) 590) ((and cs-520 cs-66 cs-48) 590) ((and cs-487 cs-71 cs-48) 590) ((and cs-490 cs-71 cs-48) 590) ((and cs-493 cs-71 cs-48) 590) ((and cs-496 cs-71 cs-48) 590) ((and cs-499 cs-71 cs-48) 590) ((and cs-502 cs-71 cs-48) 590) ((and cs-505 cs-71 cs-48) 590) ((and cs-508 cs-71 cs-48) 590) ((and cs-511 cs-71 cs-48) 590) ((and cs-514 cs-71 cs-48) 590) ((and cs-517 cs-71 cs-48) 590) ((and cs-520 cs-71 cs-48) 590) ((and cs-487 cs-76 cs-48) 590) ((and cs-490 cs-76 cs-48) 590) ((and cs-493 cs-76 cs-48) 590) ((and cs-496 cs-76 cs-48) 590) ((and cs-499 cs-76 cs-48) 590) ((and cs-502 cs-76 cs-48) 590) ((and cs-505 cs-76 cs-48) 590) ((and cs-508 cs-76 cs-48) 590) ((and cs-511 cs-76 cs-48) 590) ((and cs-514 cs-76 cs-48) 590) ((and cs-517 cs-76 cs-48) 590) ((and cs-520 cs-76 cs-48) 590) ((and cs-487 cs-81 cs-48) 590) ((and cs-490 cs-81 cs-48) 590) ((and cs-493 cs-81 cs-48) 590) ((and cs-496 cs-81 cs-48) 590) ((and cs-499 cs-81 cs-48) 590) ((and cs-502 cs-81 cs-48) 590) ((and cs-505 cs-81 cs-48) 590) ((and cs-508 cs-81 cs-48) 590) ((and cs-511 cs-81 cs-48) 590) ((and cs-514 cs-81 cs-48) 590) ((and cs-517 cs-81 cs-48) 590) ((and cs-520 cs-81 cs-48) 590) ((and cs-487 cs-86 cs-48) 590) ((and cs-490 cs-86 cs-48) 590) ((and cs-493 cs-86 cs-48) 590) ((and cs-496 cs-86 cs-48) 590) ((and cs-499 cs-86 cs-48) 590) ((and cs-502 cs-86 cs-48) 590) ((and cs-505 cs-86 cs-48) 590) ((and cs-508 cs-86 cs-48) 590) ((and cs-511 cs-86 cs-48) 590) ((and cs-514 cs-86 cs-48) 590) ((and cs-517 cs-86 cs-48) 590) ((and cs-520 cs-86 cs-48) 590) ((and cs-487 cs-91 cs-48) 590) ((and cs-490 cs-91 cs-48) 590) ((and cs-493 cs-91 cs-48) 590) ((and cs-496 cs-91 cs-48) 590) ((and cs-499 cs-91 cs-48) 590) ((and cs-502 cs-91 cs-48) 590) ((and cs-505 cs-91 cs-48) 590) ((and cs-508 cs-91 cs-48) 590) ((and cs-511 cs-91 cs-48) 590) ((and cs-514 cs-91 cs-48) 590) ((and cs-517 cs-91 cs-48) 590) ((and cs-520 cs-91 cs-48) 590) ((and cs-487 cs-96 cs-48) 590) ((and cs-490 cs-96 cs-48) 590) ((and cs-493 cs-96 cs-48) 590) ((and cs-496 cs-96 cs-48) 590) ((and cs-499 cs-96 cs-48) 590) ((and cs-502 cs-96 cs-48) 590) ((and cs-505 cs-96 cs-48) 590) ((and cs-508 cs-96 cs-48) 590) ((and cs-511 cs-96 cs-48) 590) ((and cs-514 cs-96 cs-48) 590) ((and cs-517 cs-96 cs-48) 590) ((and cs-520 cs-96 cs-48) 590) ((and cs-487 cs-101 cs-48) 590) ((and cs-490 cs-101 cs-48) 590) ((and cs-493 cs-101 cs-48) 590) ((and cs-496 cs-101 cs-48) 590) ((and cs-499 cs-101 cs-48) 590) ((and cs-502 cs-101 cs-48) 590) ((and cs-505 cs-101 cs-48) 590) ((and cs-508 cs-101 cs-48) 590) ((and cs-511 cs-101 cs-48) 590) ((and cs-514 cs-101 cs-48) 590) ((and cs-517 cs-101 cs-48) 590) ((and cs-520 cs-101 cs-48) 590) ((and cs-487 cs-106 cs-48) 590) ((and cs-490 cs-106 cs-48) 590) ((and cs-493 cs-106 cs-48) 590) ((and cs-496 cs-106 cs-48) 590) ((and cs-499 cs-106 cs-48) 590) ((and cs-502 cs-106 cs-48) 590) ((and cs-505 cs-106 cs-48) 590) ((and cs-508 cs-106 cs-48) 590) ((and cs-511 cs-106 cs-48) 590) ((and cs-514 cs-106 cs-48) 590) ((and cs-517 cs-106 cs-48) 590) ((and cs-520 cs-106 cs-48) 590) ((and cs-487 cs-111 cs-48) 590) ((and cs-490 cs-111 cs-48) 590) ((and cs-493 cs-111 cs-48) 590) ((and cs-496 cs-111 cs-48) 590) ((and cs-499 cs-111 cs-48) 590) ((and cs-502 cs-111 cs-48) 590) ((and cs-505 cs-111 cs-48) 590) ((and cs-508 cs-111 cs-48) 590) ((and cs-511 cs-111 cs-48) 590) ((and cs-514 cs-111 cs-48) 590) ((and cs-517 cs-111 cs-48) 590) ((and cs-520 cs-111 cs-48) 590) ((and cs-487 cs-116 cs-48) 590) ((and cs-490 cs-116 cs-48) 590) ((and cs-493 cs-116 cs-48) 590) ((and cs-496 cs-116 cs-48) 590) ((and cs-499 cs-116 cs-48) 590) ((and cs-502 cs-116 cs-48) 590) ((and cs-505 cs-116 cs-48) 590) ((and cs-508 cs-116 cs-48) 590) ((and cs-511 cs-116 cs-48) 590) ((and cs-514 cs-116 cs-48) 590) ((and cs-517 cs-116 cs-48) 590) ((and cs-520 cs-116 cs-48) 590) ((and cs-487 cs-121 cs-48) 590) ((and cs-490 cs-121 cs-48) 590) ((and cs-493 cs-121 cs-48) 590) ((and cs-496 cs-121 cs-48) 590) ((and cs-499 cs-121 cs-48) 590) ((and cs-502 cs-121 cs-48) 590) ((and cs-505 cs-121 cs-48) 590) ((and cs-508 cs-121 cs-48) 590) ((and cs-511 cs-121 cs-48) 590) ((and cs-514 cs-121 cs-48) 590) ((and cs-517 cs-121 cs-48) 590) ((and cs-520 cs-121 cs-48) 590) ((and cs-487 cs-126 cs-48) 590) ((and cs-490 cs-126 cs-48) 590) ((and cs-493 cs-126 cs-48) 590) ((and cs-496 cs-126 cs-48) 590) ((and cs-499 cs-126 cs-48) 590) ((and cs-502 cs-126 cs-48) 590) ((and cs-505 cs-126 cs-48) 590) ((and cs-508 cs-126 cs-48) 590) ((and cs-511 cs-126 cs-48) 590) ((and cs-514 cs-126 cs-48) 590) ((and cs-517 cs-126 cs-48) 590) ((and cs-520 cs-126 cs-48) 590) ((and cs-487 cs-131 cs-48) 590) ((and cs-490 cs-131 cs-48) 590) ((and cs-493 cs-131 cs-48) 590) ((and cs-496 cs-131 cs-48) 590) ((and cs-499 cs-131 cs-48) 590) ((and cs-502 cs-131 cs-48) 590) ((and cs-505 cs-131 cs-48) 590) ((and cs-508 cs-131 cs-48) 590) ((and cs-511 cs-131 cs-48) 590) ((and cs-514 cs-131 cs-48) 590) ((and cs-517 cs-131 cs-48) 590) ((and cs-520 cs-131 cs-48) 590) ((and cs-487 cs-136 cs-48) 590) ((and cs-490 cs-136 cs-48) 590) ((and cs-493 cs-136 cs-48) 590) ((and cs-496 cs-136 cs-48) 590) ((and cs-499 cs-136 cs-48) 590) ((and cs-502 cs-136 cs-48) 590) ((and cs-505 cs-136 cs-48) 590) ((and cs-508 cs-136 cs-48) 590) ((and cs-511 cs-136 cs-48) 590) ((and cs-514 cs-136 cs-48) 590) ((and cs-517 cs-136 cs-48) 590) ((and cs-520 cs-136 cs-48) 590) ((and cs-487 cs-141 cs-48) 590) ((and cs-490 cs-141 cs-48) 590) ((and cs-493 cs-141 cs-48) 590) ((and cs-496 cs-141 cs-48) 590) ((and cs-499 cs-141 cs-48) 590) ((and cs-502 cs-141 cs-48) 590) ((and cs-505 cs-141 cs-48) 590) ((and cs-508 cs-141 cs-48) 590) ((and cs-511 cs-141 cs-48) 590) ((and cs-514 cs-141 cs-48) 590) ((and cs-517 cs-141 cs-48) 590) ((and cs-520 cs-141 cs-48) 590) ((and cs-487 cs-146 cs-48) 590) ((and cs-490 cs-146 cs-48) 590) ((and cs-493 cs-146 cs-48) 590) ((and cs-496 cs-146 cs-48) 590) ((and cs-499 cs-146 cs-48) 590) ((and cs-502 cs-146 cs-48) 590) ((and cs-505 cs-146 cs-48) 590) ((and cs-508 cs-146 cs-48) 590) ((and cs-511 cs-146 cs-48) 590) ((and cs-514 cs-146 cs-48) 590) ((and cs-517 cs-146 cs-48) 590) ((and cs-520 cs-146 cs-48) 590) ((and cs-487 cs-44 cs-367) 605) ((and cs-490 cs-44 cs-367) 605) ((and cs-493 cs-44 cs-367) 605) ((and cs-496 cs-44 cs-367) 605) ((and cs-499 cs-44 cs-367) 605) ((and cs-502 cs-44 cs-367) 605) ((and cs-505 cs-44 cs-367) 605) ((and cs-508 cs-44 cs-367) 605) ((and cs-511 cs-44 cs-367) 605) ((and cs-514 cs-44 cs-367) 605) ((and cs-517 cs-44 cs-367) 605) ((and cs-520 cs-44 cs-367) 605) ((and cs-487 cs-372 cs-2) 604) ((and cs-490 cs-372 cs-2) 604) ((and cs-493 cs-372 cs-2) 604) ((and cs-496 cs-372 cs-2) 604) ((and cs-499 cs-372 cs-2) 604) ((and cs-502 cs-372 cs-2) 604) ((and cs-505 cs-372 cs-2) 604) ((and cs-508 cs-372 cs-2) 604) ((and cs-511 cs-372 cs-2) 604) ((and cs-514 cs-372 cs-2) 604) ((and cs-517 cs-372 cs-2) 604) ((and cs-520 cs-372 cs-2) 604) ((and cs-487 cs-377 cs-2) 604) ((and cs-490 cs-377 cs-2) 604) ((and cs-493 cs-377 cs-2) 604) ((and cs-496 cs-377 cs-2) 604) ((and cs-499 cs-377 cs-2) 604) ((and cs-502 cs-377 cs-2) 604) ((and cs-505 cs-377 cs-2) 604) ((and cs-508 cs-377 cs-2) 604) ((and cs-511 cs-377 cs-2) 604) ((and cs-514 cs-377 cs-2) 604) ((and cs-517 cs-377 cs-2) 604) ((and cs-520 cs-377 cs-2) 604) ((and cs-487 cs-382 cs-2) 604) ((and cs-490 cs-382 cs-2) 604) ((and cs-493 cs-382 cs-2) 604) ((and cs-496 cs-382 cs-2) 604) ((and cs-499 cs-382 cs-2) 604) ((and cs-502 cs-382 cs-2) 604) ((and cs-505 cs-382 cs-2) 604) ((and cs-508 cs-382 cs-2) 604) ((and cs-511 cs-382 cs-2) 604) ((and cs-514 cs-382 cs-2) 604) ((and cs-517 cs-382 cs-2) 604) ((and cs-520 cs-382 cs-2) 604) ((and cs-487 cs-387 cs-2) 604) ((and cs-490 cs-387 cs-2) 604) ((and cs-493 cs-387 cs-2) 604) ((and cs-496 cs-387 cs-2) 604) ((and cs-499 cs-387 cs-2) 604) ((and cs-502 cs-387 cs-2) 604) ((and cs-505 cs-387 cs-2) 604) ((and cs-508 cs-387 cs-2) 604) ((and cs-511 cs-387 cs-2) 604) ((and cs-514 cs-387 cs-2) 604) ((and cs-517 cs-387 cs-2) 604) ((and cs-520 cs-387 cs-2) 604) ((and cs-487 cs-392 cs-2) 604) ((and cs-490 cs-392 cs-2) 604) ((and cs-493 cs-392 cs-2) 604) ((and cs-496 cs-392 cs-2) 604) ((and cs-499 cs-392 cs-2) 604) ((and cs-502 cs-392 cs-2) 604) ((and cs-505 cs-392 cs-2) 604) ((and cs-508 cs-392 cs-2) 604) ((and cs-511 cs-392 cs-2) 604) ((and cs-514 cs-392 cs-2) 604) ((and cs-517 cs-392 cs-2) 604) ((and cs-520 cs-392 cs-2) 604) ((and cs-487 cs-372 cs-18) 604) ((and cs-490 cs-372 cs-18) 604) ((and cs-493 cs-372 cs-18) 604) ((and cs-496 cs-372 cs-18) 604) ((and cs-499 cs-372 cs-18) 604) ((and cs-502 cs-372 cs-18) 604) ((and cs-505 cs-372 cs-18) 604) ((and cs-508 cs-372 cs-18) 604) ((and cs-511 cs-372 cs-18) 604) ((and cs-514 cs-372 cs-18) 604) ((and cs-517 cs-372 cs-18) 604) ((and cs-520 cs-372 cs-18) 604) ((and cs-487 cs-377 cs-18) 604) ((and cs-490 cs-377 cs-18) 604) ((and cs-493 cs-377 cs-18) 604) ((and cs-496 cs-377 cs-18) 604) ((and cs-499 cs-377 cs-18) 604) ((and cs-502 cs-377 cs-18) 604) ((and cs-505 cs-377 cs-18) 604) ((and cs-508 cs-377 cs-18) 604) ((and cs-511 cs-377 cs-18) 604) ((and cs-514 cs-377 cs-18) 604) ((and cs-517 cs-377 cs-18) 604) ((and cs-520 cs-377 cs-18) 604) ((and cs-487 cs-382 cs-18) 604) ((and cs-490 cs-382 cs-18) 604) ((and cs-493 cs-382 cs-18) 604) ((and cs-496 cs-382 cs-18) 604) ((and cs-499 cs-382 cs-18) 604) ((and cs-502 cs-382 cs-18) 604) ((and cs-505 cs-382 cs-18) 604) ((and cs-508 cs-382 cs-18) 604) ((and cs-511 cs-382 cs-18) 604) ((and cs-514 cs-382 cs-18) 604) ((and cs-517 cs-382 cs-18) 604) ((and cs-520 cs-382 cs-18) 604) ((and cs-487 cs-387 cs-18) 604) ((and cs-490 cs-387 cs-18) 604) ((and cs-493 cs-387 cs-18) 604) ((and cs-496 cs-387 cs-18) 604) ((and cs-499 cs-387 cs-18) 604) ((and cs-502 cs-387 cs-18) 604) ((and cs-505 cs-387 cs-18) 604) ((and cs-508 cs-387 cs-18) 604) ((and cs-511 cs-387 cs-18) 604) ((and cs-514 cs-387 cs-18) 604) ((and cs-517 cs-387 cs-18) 604) ((and cs-520 cs-387 cs-18) 604) ((and cs-487 cs-392 cs-18) 604) ((and cs-490 cs-392 cs-18) 604) ((and cs-493 cs-392 cs-18) 604) ((and cs-496 cs-392 cs-18) 604) ((and cs-499 cs-392 cs-18) 604) ((and cs-502 cs-392 cs-18) 604) ((and cs-505 cs-392 cs-18) 604) ((and cs-508 cs-392 cs-18) 604) ((and cs-511 cs-392 cs-18) 604) ((and cs-514 cs-392 cs-18) 604) ((and cs-517 cs-392 cs-18) 604) ((and cs-520 cs-392 cs-18) 604) ((and cs-487 cs-372 cs-31) 604) ((and cs-490 cs-372 cs-31) 604) ((and cs-493 cs-372 cs-31) 604) ((and cs-496 cs-372 cs-31) 604) ((and cs-499 cs-372 cs-31) 604) ((and cs-502 cs-372 cs-31) 604) ((and cs-505 cs-372 cs-31) 604) ((and cs-508 cs-372 cs-31) 604) ((and cs-511 cs-372 cs-31) 604) ((and cs-514 cs-372 cs-31) 604) ((and cs-517 cs-372 cs-31) 604) ((and cs-520 cs-372 cs-31) 604) ((and cs-487 cs-377 cs-31) 604) ((and cs-490 cs-377 cs-31) 604) ((and cs-493 cs-377 cs-31) 604) ((and cs-496 cs-377 cs-31) 604) ((and cs-499 cs-377 cs-31) 604) ((and cs-502 cs-377 cs-31) 604) ((and cs-505 cs-377 cs-31) 604) ((and cs-508 cs-377 cs-31) 604) ((and cs-511 cs-377 cs-31) 604) ((and cs-514 cs-377 cs-31) 604) ((and cs-517 cs-377 cs-31) 604) ((and cs-520 cs-377 cs-31) 604) ((and cs-487 cs-382 cs-31) 604) ((and cs-490 cs-382 cs-31) 604) ((and cs-493 cs-382 cs-31) 604) ((and cs-496 cs-382 cs-31) 604) ((and cs-499 cs-382 cs-31) 604) ((and cs-502 cs-382 cs-31) 604) ((and cs-505 cs-382 cs-31) 604) ((and cs-508 cs-382 cs-31) 604) ((and cs-511 cs-382 cs-31) 604) ((and cs-514 cs-382 cs-31) 604) ((and cs-517 cs-382 cs-31) 604) ((and cs-520 cs-382 cs-31) 604) ((and cs-487 cs-387 cs-31) 604) ((and cs-490 cs-387 cs-31) 604) ((and cs-493 cs-387 cs-31) 604) ((and cs-496 cs-387 cs-31) 604) ((and cs-499 cs-387 cs-31) 604) ((and cs-502 cs-387 cs-31) 604) ((and cs-505 cs-387 cs-31) 604) ((and cs-508 cs-387 cs-31) 604) ((and cs-511 cs-387 cs-31) 604) ((and cs-514 cs-387 cs-31) 604) ((and cs-517 cs-387 cs-31) 604) ((and cs-520 cs-387 cs-31) 604) ((and cs-487 cs-392 cs-31) 604) ((and cs-490 cs-392 cs-31) 604) ((and cs-493 cs-392 cs-31) 604) ((and cs-496 cs-392 cs-31) 604) ((and cs-499 cs-392 cs-31) 604) ((and cs-502 cs-392 cs-31) 604) ((and cs-505 cs-392 cs-31) 604) ((and cs-508 cs-392 cs-31) 604) ((and cs-511 cs-392 cs-31) 604) ((and cs-514 cs-392 cs-31) 604) ((and cs-517 cs-392 cs-31) 604) ((and cs-520 cs-392 cs-31) 604) ((and cs-493 cs-44 (eqv? server-port 1537)) 603) ((and cs-493 cs-44 (eqv? server-port 1532)) 602) ((and cs-493 cs-44 (eqv? server-port 1531)) 601) ((and cs-493 cs-44 (eqv? server-port 1530)) 600) ((and cs-493 cs-44 (eqv? server-port 1529)) 599) ((and cs-493 cs-44 (eqv? server-port 1527)) 598) ((and cs-493 cs-44 (eqv? server-port 1526)) 597) ((and cs-493 cs-44 (eqv? server-port 1525)) 596) ((and cs-493 cs-44 (eqv? server-port 1524)) 595) ((and cs-493 cs-44 (eqv? server-port 1522)) 594) ((and cs-496 cs-44 cs-2929) 593) ((and cs-499 cs-44 cs-2929) 592) ((and cs-493 cs-44 cs-2929) 591) ((and cs-487 cs-372 cs-48) 590) ((and cs-490 cs-372 cs-48) 590) ((and cs-493 cs-372 cs-48) 590) ((and cs-496 cs-372 cs-48) 590) ((and cs-499 cs-372 cs-48) 590) ((and cs-502 cs-372 cs-48) 590) ((and cs-505 cs-372 cs-48) 590) ((and cs-508 cs-372 cs-48) 590) ((and cs-511 cs-372 cs-48) 590) ((and cs-514 cs-372 cs-48) 590) ((and cs-517 cs-372 cs-48) 590) ((and cs-520 cs-372 cs-48) 590) ((and cs-487 cs-377 cs-48) 590) ((and cs-490 cs-377 cs-48) 590) ((and cs-493 cs-377 cs-48) 590) ((and cs-496 cs-377 cs-48) 590) ((and cs-499 cs-377 cs-48) 590) ((and cs-502 cs-377 cs-48) 590) ((and cs-505 cs-377 cs-48) 590) ((and cs-508 cs-377 cs-48) 590) ((and cs-511 cs-377 cs-48) 590) ((and cs-514 cs-377 cs-48) 590) ((and cs-517 cs-377 cs-48) 590) ((and cs-520 cs-377 cs-48) 590) ((and cs-487 cs-382 cs-48) 590) ((and cs-490 cs-382 cs-48) 590) ((and cs-493 cs-382 cs-48) 590) ((and cs-496 cs-382 cs-48) 590) ((and cs-499 cs-382 cs-48) 590) ((and cs-502 cs-382 cs-48) 590) ((and cs-505 cs-382 cs-48) 590) ((and cs-508 cs-382 cs-48) 590) ((and cs-511 cs-382 cs-48) 590) ((and cs-514 cs-382 cs-48) 590) ((and cs-517 cs-382 cs-48) 590) ((and cs-520 cs-382 cs-48) 590) ((and cs-487 cs-387 cs-48) 590) ((and cs-490 cs-387 cs-48) 590) ((and cs-493 cs-387 cs-48) 590) ((and cs-496 cs-387 cs-48) 590) ((and cs-499 cs-387 cs-48) 590) ((and cs-502 cs-387 cs-48) 590) ((and cs-505 cs-387 cs-48) 590) ((and cs-508 cs-387 cs-48) 590) ((and cs-511 cs-387 cs-48) 590) ((and cs-514 cs-387 cs-48) 590) ((and cs-517 cs-387 cs-48) 590) ((and cs-520 cs-387 cs-48) 590) ((and cs-487 cs-392 cs-48) 590) ((and cs-490 cs-392 cs-48) 590) ((and cs-493 cs-392 cs-48) 590) ((and cs-496 cs-392 cs-48) 590) ((and cs-499 cs-392 cs-48) 590) ((and cs-502 cs-392 cs-48) 590) ((and cs-505 cs-392 cs-48) 590) ((and cs-508 cs-392 cs-48) 590) ((and cs-511 cs-392 cs-48) 590) ((and cs-514 cs-392 cs-48) 590) ((and cs-517 cs-392 cs-48) 590) ((and cs-520 cs-392 cs-48) 590) ((and cs-487 cs-457) 589) ((and cs-490 cs-457) 589) ((and cs-493 cs-457) 589) ((and cs-496 cs-457) 589) ((and cs-499 cs-457) 589) ((and cs-502 cs-457) 589) ((and cs-505 cs-457) 589) ((and cs-508 cs-457) 589) ((and cs-511 cs-457) 589) ((and cs-514 cs-457) 589) ((and cs-517 cs-457) 589) ((and cs-520 cs-457) 589) ((and cs-520 cs-3080 (>= server-port 1024) (<= server-port 65535)) 588) ((and cs-520 cs-44 (>= server-port 1024) (<= server-port 65535)) 588) ((and cs-487 cs-462) 585) ((and cs-490 cs-462) 585) ((and cs-493 cs-462) 585) ((and cs-496 cs-462) 585) ((and cs-499 cs-462) 585) ((and cs-502 cs-462) 585) ((and cs-505 cs-462) 585) ((and cs-508 cs-462) 585) ((and cs-511 cs-462) 585) ((and cs-514 cs-462) 585) ((and cs-517 cs-462) 585) ((and cs-520 cs-462) 585) ((and cs-487 cs-467) 585) ((and cs-490 cs-467) 585) ((and cs-493 cs-467) 585) ((and cs-496 cs-467) 585) ((and cs-499 cs-467) 585) ((and cs-502 cs-467) 585) ((and cs-505 cs-467) 585) ((and cs-508 cs-467) 585) ((and cs-511 cs-467) 585) ((and cs-514 cs-467) 585) ((and cs-517 cs-467) 585) ((and cs-520 cs-467) 585) ((and cs-493 cs-44 (eqv? server-port 1528)) 584) ((and cs-487 cs-44 cs-472) 583) ((and cs-490 cs-44 cs-472) 583) ((and cs-493 cs-44 cs-472) 583) ((and cs-496 cs-44 cs-472) 583) ((and cs-499 cs-44 cs-472) 583) ((and cs-502 cs-44 cs-472) 583) ((and cs-505 cs-44 cs-472) 583) ((and cs-508 cs-44 cs-472) 583) ((and cs-511 cs-44 cs-472) 583) ((and cs-514 cs-44 cs-472) 583) ((and cs-517 cs-44 cs-472) 583) ((and cs-520 cs-44 cs-472) 583) ((and cs-493 cs-44 (eqv? server-port 1533)) 581) ((and cs-493 cs-44 (eqv? server-port 1534)) 580) ((and cs-487 cs-44 cs-477) 579) ((and cs-490 cs-44 cs-477) 579) ((and cs-493 cs-44 cs-477) 579) ((and cs-496 cs-44 cs-477) 579) ((and cs-499 cs-44 cs-477) 579) ((and cs-502 cs-44 cs-477) 579) ((and cs-505 cs-44 cs-477) 579) ((and cs-508 cs-44 cs-477) 579) ((and cs-511 cs-44 cs-477) 579) ((and cs-514 cs-44 cs-477) 579) ((and cs-517 cs-44 cs-477) 579) ((and cs-520 cs-44 cs-477) 579) ((and cs-493 cs-44 (eqv? server-port 1535)) 578) ((and cs-493 cs-44 (eqv? server-port 1536)) 577) ((and cs-493 cs-44 (eqv? server-port 1541)) 576) ((and cs-487 cs-44 cs-482) 573) ((and cs-490 cs-44 cs-482) 573) ((and cs-493 cs-44 cs-482) 573) ((and cs-496 cs-44 cs-482) 573) ((and cs-499 cs-44 cs-482) 573) ((and cs-502 cs-44 cs-482) 573) ((and cs-505 cs-44 cs-482) 573) ((and cs-508 cs-44 cs-482) 573) ((and cs-511 cs-44 cs-482) 573) ((and cs-514 cs-44 cs-482) 573) ((and cs-517 cs-44 cs-482) 573) ((and cs-520 cs-44 cs-482) 573) ((and cs-3225 cs-1 cs-2) 604) ((and cs-3228 cs-1 cs-2) 604) ((and cs-3231 cs-1 cs-2) 604) ((and cs-3234 cs-1 cs-2) 604) ((and cs-3225 cs-8 cs-2) 604) ((and cs-3228 cs-8 cs-2) 604) ((and cs-3231 cs-8 cs-2) 604) ((and cs-3234 cs-8 cs-2) 604) ((and cs-3225 cs-13 cs-2) 604) ((and cs-3228 cs-13 cs-2) 604) ((and cs-3231 cs-13 cs-2) 604) ((and cs-3234 cs-13 cs-2) 604) ((and cs-3225 cs-1 cs-18) 604) ((and cs-3228 cs-1 cs-18) 604) ((and cs-3231 cs-1 cs-18) 604) ((and cs-3234 cs-1 cs-18) 604) ((and cs-3225 cs-8 cs-18) 604) ((and cs-3228 cs-8 cs-18) 604) ((and cs-3231 cs-8 cs-18) 604) ((and cs-3234 cs-8 cs-18) 604) ((and cs-3225 cs-13 cs-18) 604) ((and cs-3228 cs-13 cs-18) 604) ((and cs-3231 cs-13 cs-18) 604) ((and cs-3234 cs-13 cs-18) 604) ((and cs-3225 cs-1 cs-31) 604) ((and cs-3228 cs-1 cs-31) 604) ((and cs-3231 cs-1 cs-31) 604) ((and cs-3234 cs-1 cs-31) 604) ((and cs-3225 cs-8 cs-31) 604) ((and cs-3228 cs-8 cs-31) 604) ((and cs-3231 cs-8 cs-31) 604) ((and cs-3234 cs-8 cs-31) 604) ((and cs-3225 cs-13 cs-31) 604) ((and cs-3228 cs-13 cs-31) 604) ((and cs-3231 cs-13 cs-31) 604) ((and cs-3234 cs-13 cs-31) 604) ((and cs-3225 cs-1 cs-48) 590) ((and cs-3228 cs-1 cs-48) 590) ((and cs-3231 cs-1 cs-48) 590) ((and cs-3234 cs-1 cs-48) 590) ((and cs-3225 cs-8 cs-48) 590) ((and cs-3228 cs-8 cs-48) 590) ((and cs-3231 cs-8 cs-48) 590) ((and cs-3234 cs-8 cs-48) 590) ((and cs-3225 cs-13 cs-48) 590) ((and cs-3228 cs-13 cs-48) 590) ((and cs-3231 cs-13 cs-48) 590) ((and cs-3234 cs-13 cs-48) 590) ((and (eqv? client-zone 34) cs-3326) 582) ((and cs-1 cs-3326) 582) ((and cs-8 cs-3326) 582) ((and cs-13 cs-3326) 582) ((and (eqv? client-zone 5) cs-3326) 582) ((and (eqv? client-zone 1) cs-3326) 582) ((and cs-3225 cs-61 cs-2) 604) ((and cs-3228 cs-61 cs-2) 604) ((and cs-3231 cs-61 cs-2) 604) ((and cs-3234 cs-61 cs-2) 604) ((and cs-3225 cs-66 cs-2) 604) ((and cs-3228 cs-66 cs-2) 604) ((and cs-3231 cs-66 cs-2) 604) ((and cs-3234 cs-66 cs-2) 604) ((and cs-3225 cs-71 cs-2) 604) ((and cs-3228 cs-71 cs-2) 604) ((and cs-3231 cs-71 cs-2) 604) ((and cs-3234 cs-71 cs-2) 604) ((and cs-3225 cs-76 cs-2) 604) ((and cs-3228 cs-76 cs-2) 604) ((and cs-3231 cs-76 cs-2) 604) ((and cs-3234 cs-76 cs-2) 604) ((and cs-3225 cs-81 cs-2) 604) ((and cs-3228 cs-81 cs-2) 604) ((and cs-3231 cs-81 cs-2) 604) ((and cs-3234 cs-81 cs-2) 604) ((and cs-3225 cs-86 cs-2) 604) ((and cs-3228 cs-86 cs-2) 604) ((and cs-3231 cs-86 cs-2) 604) ((and cs-3234 cs-86 cs-2) 604) ((and cs-3225 cs-91 cs-2) 604) ((and cs-3228 cs-91 cs-2) 604) ((and cs-3231 cs-91 cs-2) 604) ((and cs-3234 cs-91 cs-2) 604) ((and cs-3225 cs-96 cs-2) 604) ((and cs-3228 cs-96 cs-2) 604) ((and cs-3231 cs-96 cs-2) 604) ((and cs-3234 cs-96 cs-2) 604) ((and cs-3225 cs-101 cs-2) 604) ((and cs-3228 cs-101 cs-2) 604) ((and cs-3231 cs-101 cs-2) 604) ((and cs-3234 cs-101 cs-2) 604) ((and cs-3225 cs-106 cs-2) 604) ((and cs-3228 cs-106 cs-2) 604) ((and cs-3231 cs-106 cs-2) 604) ((and cs-3234 cs-106 cs-2) 604) ((and cs-3225 cs-111 cs-2) 604) ((and cs-3228 cs-111 cs-2) 604) ((and cs-3231 cs-111 cs-2) 604) ((and cs-3234 cs-111 cs-2) 604) ((and cs-3225 cs-116 cs-2) 604) ((and cs-3228 cs-116 cs-2) 604) ((and cs-3231 cs-116 cs-2) 604) ((and cs-3234 cs-116 cs-2) 604) ((and cs-3225 cs-121 cs-2) 604) ((and cs-3228 cs-121 cs-2) 604) ((and cs-3231 cs-121 cs-2) 604) ((and cs-3234 cs-121 cs-2) 604) ((and cs-3225 cs-126 cs-2) 604) ((and cs-3228 cs-126 cs-2) 604) ((and cs-3231 cs-126 cs-2) 604) ((and cs-3234 cs-126 cs-2) 604) ((and cs-3225 cs-131 cs-2) 604) ((and cs-3228 cs-131 cs-2) 604) ((and cs-3231 cs-131 cs-2) 604) ((and cs-3234 cs-131 cs-2) 604) ((and cs-3225 cs-136 cs-2) 604) ((and cs-3228 cs-136 cs-2) 604) ((and cs-3231 cs-136 cs-2) 604) ((and cs-3234 cs-136 cs-2) 604) ((and cs-3225 cs-141 cs-2) 604) ((and cs-3228 cs-141 cs-2) 604) ((and cs-3231 cs-141 cs-2) 604) ((and cs-3234 cs-141 cs-2) 604) ((and cs-3225 cs-146 cs-2) 604) ((and cs-3228 cs-146 cs-2) 604) ((and cs-3231 cs-146 cs-2) 604) ((and cs-3234 cs-146 cs-2) 604) ((and cs-3225 cs-61 cs-18) 604) ((and cs-3228 cs-61 cs-18) 604) ((and cs-3231 cs-61 cs-18) 604) ((and cs-3234 cs-61 cs-18) 604) ((and cs-3225 cs-66 cs-18) 604) ((and cs-3228 cs-66 cs-18) 604) ((and cs-3231 cs-66 cs-18) 604) ((and cs-3234 cs-66 cs-18) 604) ((and cs-3225 cs-71 cs-18) 604) ((and cs-3228 cs-71 cs-18) 604) ((and cs-3231 cs-71 cs-18) 604) ((and cs-3234 cs-71 cs-18) 604) ((and cs-3225 cs-76 cs-18) 604) ((and cs-3228 cs-76 cs-18) 604) ((and cs-3231 cs-76 cs-18) 604) ((and cs-3234 cs-76 cs-18) 604) ((and cs-3225 cs-81 cs-18) 604) ((and cs-3228 cs-81 cs-18) 604) ((and cs-3231 cs-81 cs-18) 604) ((and cs-3234 cs-81 cs-18) 604) ((and cs-3225 cs-86 cs-18) 604) ((and cs-3228 cs-86 cs-18) 604) ((and cs-3231 cs-86 cs-18) 604) ((and cs-3234 cs-86 cs-18) 604) ((and cs-3225 cs-91 cs-18) 604) ((and cs-3228 cs-91 cs-18) 604) ((and cs-3231 cs-91 cs-18) 604) ((and cs-3234 cs-91 cs-18) 604) ((and cs-3225 cs-96 cs-18) 604) ((and cs-3228 cs-96 cs-18) 604) ((and cs-3231 cs-96 cs-18) 604) ((and cs-3234 cs-96 cs-18) 604) ((and cs-3225 cs-101 cs-18) 604) ((and cs-3228 cs-101 cs-18) 604) ((and cs-3231 cs-101 cs-18) 604) ((and cs-3234 cs-101 cs-18) 604) ((and cs-3225 cs-106 cs-18) 604) ((and cs-3228 cs-106 cs-18) 604) ((and cs-3231 cs-106 cs-18) 604) ((and cs-3234 cs-106 cs-18) 604) ((and cs-3225 cs-111 cs-18) 604) ((and cs-3228 cs-111 cs-18) 604) ((and cs-3231 cs-111 cs-18) 604) ((and cs-3234 cs-111 cs-18) 604) ((and cs-3225 cs-116 cs-18) 604) ((and cs-3228 cs-116 cs-18) 604) ((and cs-3231 cs-116 cs-18) 604) ((and cs-3234 cs-116 cs-18) 604) ((and cs-3225 cs-121 cs-18) 604) ((and cs-3228 cs-121 cs-18) 604) ((and cs-3231 cs-121 cs-18) 604) ((and cs-3234 cs-121 cs-18) 604) ((and cs-3225 cs-126 cs-18) 604) ((and cs-3228 cs-126 cs-18) 604) ((and cs-3231 cs-126 cs-18) 604) ((and cs-3234 cs-126 cs-18) 604) ((and cs-3225 cs-131 cs-18) 604) ((and cs-3228 cs-131 cs-18) 604) ((and cs-3231 cs-131 cs-18) 604) ((and cs-3234 cs-131 cs-18) 604) ((and cs-3225 cs-136 cs-18) 604) ((and cs-3228 cs-136 cs-18) 604) ((and cs-3231 cs-136 cs-18) 604) ((and cs-3234 cs-136 cs-18) 604) ((and cs-3225 cs-141 cs-18) 604) ((and cs-3228 cs-141 cs-18) 604) ((and cs-3231 cs-141 cs-18) 604) ((and cs-3234 cs-141 cs-18) 604) ((and cs-3225 cs-146 cs-18) 604) ((and cs-3228 cs-146 cs-18) 604) ((and cs-3231 cs-146 cs-18) 604) ((and cs-3234 cs-146 cs-18) 604) ((and cs-3225 cs-61 cs-31) 604) ((and cs-3228 cs-61 cs-31) 604) ((and cs-3231 cs-61 cs-31) 604) ((and cs-3234 cs-61 cs-31) 604) ((and cs-3225 cs-66 cs-31) 604) ((and cs-3228 cs-66 cs-31) 604) ((and cs-3231 cs-66 cs-31) 604) ((and cs-3234 cs-66 cs-31) 604) ((and cs-3225 cs-71 cs-31) 604) ((and cs-3228 cs-71 cs-31) 604) ((and cs-3231 cs-71 cs-31) 604) ((and cs-3234 cs-71 cs-31) 604) ((and cs-3225 cs-76 cs-31) 604) ((and cs-3228 cs-76 cs-31) 604) ((and cs-3231 cs-76 cs-31) 604) ((and cs-3234 cs-76 cs-31) 604) ((and cs-3225 cs-81 cs-31) 604) ((and cs-3228 cs-81 cs-31) 604) ((and cs-3231 cs-81 cs-31) 604) ((and cs-3234 cs-81 cs-31) 604) ((and cs-3225 cs-86 cs-31) 604) ((and cs-3228 cs-86 cs-31) 604) ((and cs-3231 cs-86 cs-31) 604) ((and cs-3234 cs-86 cs-31) 604) ((and cs-3225 cs-91 cs-31) 604) ((and cs-3228 cs-91 cs-31) 604) ((and cs-3231 cs-91 cs-31) 604) ((and cs-3234 cs-91 cs-31) 604) ((and cs-3225 cs-96 cs-31) 604) ((and cs-3228 cs-96 cs-31) 604) ((and cs-3231 cs-96 cs-31) 604) ((and cs-3234 cs-96 cs-31) 604) ((and cs-3225 cs-101 cs-31) 604) ((and cs-3228 cs-101 cs-31) 604) ((and cs-3231 cs-101 cs-31) 604) ((and cs-3234 cs-101 cs-31) 604) ((and cs-3225 cs-106 cs-31) 604) ((and cs-3228 cs-106 cs-31) 604) ((and cs-3231 cs-106 cs-31) 604) ((and cs-3234 cs-106 cs-31) 604) ((and cs-3225 cs-111 cs-31) 604) ((and cs-3228 cs-111 cs-31) 604) ((and cs-3231 cs-111 cs-31) 604) ((and cs-3234 cs-111 cs-31) 604) ((and cs-3225 cs-116 cs-31) 604) ((and cs-3228 cs-116 cs-31) 604) ((and cs-3231 cs-116 cs-31) 604) ((and cs-3234 cs-116 cs-31) 604) ((and cs-3225 cs-121 cs-31) 604) ((and cs-3228 cs-121 cs-31) 604) ((and cs-3231 cs-121 cs-31) 604) ((and cs-3234 cs-121 cs-31) 604) ((and cs-3225 cs-126 cs-31) 604) ((and cs-3228 cs-126 cs-31) 604) ((and cs-3231 cs-126 cs-31) 604) ((and cs-3234 cs-126 cs-31) 604) ((and cs-3225 cs-131 cs-31) 604) ((and cs-3228 cs-131 cs-31) 604) ((and cs-3231 cs-131 cs-31) 604) ((and cs-3234 cs-131 cs-31) 604) ((and cs-3225 cs-136 cs-31) 604) ((and cs-3228 cs-136 cs-31) 604) ((and cs-3231 cs-136 cs-31) 604) ((and cs-3234 cs-136 cs-31) 604) ((and cs-3225 cs-141 cs-31) 604) ((and cs-3228 cs-141 cs-31) 604) ((and cs-3231 cs-141 cs-31) 604) ((and cs-3234 cs-141 cs-31) 604) ((and cs-3225 cs-146 cs-31) 604) ((and cs-3228 cs-146 cs-31) 604) ((and cs-3231 cs-146 cs-31) 604) ((and cs-3234 cs-146 cs-31) 604) ((and cs-3225 cs-61 cs-48) 590) ((and cs-3228 cs-61 cs-48) 590) ((and cs-3231 cs-61 cs-48) 590) ((and cs-3234 cs-61 cs-48) 590) ((and cs-3225 cs-66 cs-48) 590) ((and cs-3228 cs-66 cs-48) 590) ((and cs-3231 cs-66 cs-48) 590) ((and cs-3234 cs-66 cs-48) 590) ((and cs-3225 cs-71 cs-48) 590) ((and cs-3228 cs-71 cs-48) 590) ((and cs-3231 cs-71 cs-48) 590) ((and cs-3234 cs-71 cs-48) 590) ((and cs-3225 cs-76 cs-48) 590) ((and cs-3228 cs-76 cs-48) 590) ((and cs-3231 cs-76 cs-48) 590) ((and cs-3234 cs-76 cs-48) 590) ((and cs-3225 cs-81 cs-48) 590) ((and cs-3228 cs-81 cs-48) 590) ((and cs-3231 cs-81 cs-48) 590) ((and cs-3234 cs-81 cs-48) 590) ((and cs-3225 cs-86 cs-48) 590) ((and cs-3228 cs-86 cs-48) 590) ((and cs-3231 cs-86 cs-48) 590) ((and cs-3234 cs-86 cs-48) 590) ((and cs-3225 cs-91 cs-48) 590) ((and cs-3228 cs-91 cs-48) 590) ((and cs-3231 cs-91 cs-48) 590) ((and cs-3234 cs-91 cs-48) 590) ((and cs-3225 cs-96 cs-48) 590) ((and cs-3228 cs-96 cs-48) 590) ((and cs-3231 cs-96 cs-48) 590) ((and cs-3234 cs-96 cs-48) 590) ((and cs-3225 cs-101 cs-48) 590) ((and cs-3228 cs-101 cs-48) 590) ((and cs-3231 cs-101 cs-48) 590) ((and cs-3234 cs-101 cs-48) 590) ((and cs-3225 cs-106 cs-48) 590) ((and cs-3228 cs-106 cs-48) 590) ((and cs-3231 cs-106 cs-48) 590) ((and cs-3234 cs-106 cs-48) 590) ((and cs-3225 cs-111 cs-48) 590) ((and cs-3228 cs-111 cs-48) 590) ((and cs-3231 cs-111 cs-48) 590) ((and cs-3234 cs-111 cs-48) 590) ((and cs-3225 cs-116 cs-48) 590) ((and cs-3228 cs-116 cs-48) 590) ((and cs-3231 cs-116 cs-48) 590) ((and cs-3234 cs-116 cs-48) 590) ((and cs-3225 cs-121 cs-48) 590) ((and cs-3228 cs-121 cs-48) 590) ((and cs-3231 cs-121 cs-48) 590) ((and cs-3234 cs-121 cs-48) 590) ((and cs-3225 cs-126 cs-48) 590) ((and cs-3228 cs-126 cs-48) 590) ((and cs-3231 cs-126 cs-48) 590) ((and cs-3234 cs-126 cs-48) 590) ((and cs-3225 cs-131 cs-48) 590) ((and cs-3228 cs-131 cs-48) 590) ((and cs-3231 cs-131 cs-48) 590) ((and cs-3234 cs-131 cs-48) 590) ((and cs-3225 cs-136 cs-48) 590) ((and cs-3228 cs-136 cs-48) 590) ((and cs-3231 cs-136 cs-48) 590) ((and cs-3234 cs-136 cs-48) 590) ((and cs-3225 cs-141 cs-48) 590) ((and cs-3228 cs-141 cs-48) 590) ((and cs-3231 cs-141 cs-48) 590) ((and cs-3234 cs-141 cs-48) 590) ((and cs-3225 cs-146 cs-48) 590) ((and cs-3228 cs-146 cs-48) 590) ((and cs-3231 cs-146 cs-48) 590) ((and cs-3234 cs-146 cs-48) 590) ((and cs-61 cs-3326) 582) ((and (eqv? client-zone 37) cs-3326) 582) ((and (eqv? client-zone 36) cs-3326) 582) ((and (eqv? client-zone 35) cs-3326) 582) ((and cs-66 cs-3326) 582) ((and cs-71 cs-3326) 582) ((and (eqv? client-zone 31) cs-3326) 582) ((and cs-76 cs-3326) 582) ((and cs-81 cs-3326) 582) ((and cs-86 cs-3326) 582) ((and cs-91 cs-3326) 582) ((and cs-96 cs-3326) 582) ((and cs-101 cs-3326) 582) ((and cs-106 cs-3326) 582) ((and cs-111 cs-3326) 582) ((and cs-116 cs-3326) 582) ((and cs-121 cs-3326) 582) ((and cs-126 cs-3326) 582) ((and cs-131 cs-3326) 582) ((and cs-136 cs-3326) 582) ((and (eqv? client-zone 12) cs-3326) 582) ((and (eqv? client-zone 11) cs-3326) 582) ((and cs-141 cs-3326) 582) ((and cs-146 cs-3326) 582) ((and (eqv? client-zone 6) cs-3326) 582) ((and (eqv? client-zone 4) cs-3326) 582) ((and (eqv? client-zone 3) cs-3326) 582) ((and cs-3225 cs-44 cs-367) 605) ((and cs-3228 cs-44 cs-367) 605) ((and cs-3231 cs-44 cs-367) 605) ((and cs-3234 cs-44 cs-367) 605) ((and cs-3225 cs-372 cs-2) 604) ((and cs-3228 cs-372 cs-2) 604) ((and cs-3231 cs-372 cs-2) 604) ((and cs-3234 cs-372 cs-2) 604) ((and cs-3225 cs-377 cs-2) 604) ((and cs-3228 cs-377 cs-2) 604) ((and cs-3231 cs-377 cs-2) 604) ((and cs-3234 cs-377 cs-2) 604) ((and cs-3225 cs-382 cs-2) 604) ((and cs-3228 cs-382 cs-2) 604) ((and cs-3231 cs-382 cs-2) 604) ((and cs-3234 cs-382 cs-2) 604) ((and cs-3225 cs-387 cs-2) 604) ((and cs-3228 cs-387 cs-2) 604) ((and cs-3231 cs-387 cs-2) 604) ((and cs-3234 cs-387 cs-2) 604) ((and cs-3225 cs-392 cs-2) 604) ((and cs-3228 cs-392 cs-2) 604) ((and cs-3231 cs-392 cs-2) 604) ((and cs-3234 cs-392 cs-2) 604) ((and cs-3225 cs-372 cs-18) 604) ((and cs-3228 cs-372 cs-18) 604) ((and cs-3231 cs-372 cs-18) 604) ((and cs-3234 cs-372 cs-18) 604) ((and cs-3225 cs-377 cs-18) 604) ((and cs-3228 cs-377 cs-18) 604) ((and cs-3231 cs-377 cs-18) 604) ((and cs-3234 cs-377 cs-18) 604) ((and cs-3225 cs-382 cs-18) 604) ((and cs-3228 cs-382 cs-18) 604) ((and cs-3231 cs-382 cs-18) 604) ((and cs-3234 cs-382 cs-18) 604) ((and cs-3225 cs-387 cs-18) 604) ((and cs-3228 cs-387 cs-18) 604) ((and cs-3231 cs-387 cs-18) 604) ((and cs-3234 cs-387 cs-18) 604) ((and cs-3225 cs-392 cs-18) 604) ((and cs-3228 cs-392 cs-18) 604) ((and cs-3231 cs-392 cs-18) 604) ((and cs-3234 cs-392 cs-18) 604) ((and cs-3225 cs-372 cs-31) 604) ((and cs-3228 cs-372 cs-31) 604) ((and cs-3231 cs-372 cs-31) 604) ((and cs-3234 cs-372 cs-31) 604) ((and cs-3225 cs-377 cs-31) 604) ((and cs-3228 cs-377 cs-31) 604) ((and cs-3231 cs-377 cs-31) 604) ((and cs-3234 cs-377 cs-31) 604) ((and cs-3225 cs-382 cs-31) 604) ((and cs-3228 cs-382 cs-31) 604) ((and cs-3231 cs-382 cs-31) 604) ((and cs-3234 cs-382 cs-31) 604) ((and cs-3225 cs-387 cs-31) 604) ((and cs-3228 cs-387 cs-31) 604) ((and cs-3231 cs-387 cs-31) 604) ((and cs-3234 cs-387 cs-31) 604) ((and cs-3225 cs-392 cs-31) 604) ((and cs-3228 cs-392 cs-31) 604) ((and cs-3231 cs-392 cs-31) 604) ((and cs-3234 cs-392 cs-31) 604) ((and cs-3225 cs-372 cs-48) 590) ((and cs-3228 cs-372 cs-48) 590) ((and cs-3231 cs-372 cs-48) 590) ((and cs-3234 cs-372 cs-48) 590) ((and cs-3225 cs-377 cs-48) 590) ((and cs-3228 cs-377 cs-48) 590) ((and cs-3231 cs-377 cs-48) 590) ((and cs-3234 cs-377 cs-48) 590) ((and cs-3225 cs-382 cs-48) 590) ((and cs-3228 cs-382 cs-48) 590) ((and cs-3231 cs-382 cs-48) 590) ((and cs-3234 cs-382 cs-48) 590) ((and cs-3225 cs-387 cs-48) 590) ((and cs-3228 cs-387 cs-48) 590) ((and cs-3231 cs-387 cs-48) 590) ((and cs-3234 cs-387 cs-48) 590) ((and cs-3225 cs-392 cs-48) 590) ((and cs-3228 cs-392 cs-48) 590) ((and cs-3231 cs-392 cs-48) 590) ((and cs-3234 cs-392 cs-48) 590) ((and cs-3225 cs-457) 589) ((and cs-3228 cs-457) 589) ((and cs-3231 cs-457) 589) ((and cs-3234 cs-457) 589) ((and cs-3225 cs-462) 585) ((and cs-3228 cs-462) 585) ((and cs-3231 cs-462) 585) ((and cs-3234 cs-462) 585) ((and cs-3225 cs-467) 585) ((and cs-3228 cs-467) 585) ((and cs-3231 cs-467) 585) ((and cs-3234 cs-467) 585) ((and cs-3225 cs-44 cs-472) 583) ((and cs-3228 cs-44 cs-472) 583) ((and cs-3231 cs-44 cs-472) 583) ((and cs-3234 cs-44 cs-472) 583) ((and (eqv? client-zone 44) cs-3326) 582) ((and cs-372 cs-3326) 582) ((and cs-377 cs-3326) 582) ((and cs-382 cs-3326) 582) ((and (eqv? client-zone 40) cs-3326) 582) ((and (eqv? client-zone 39) cs-3326) 582) ((and cs-387 cs-3326) 582) ((and cs-392 cs-3326) 582) ((and cs-3225 cs-44 cs-477) 579) ((and cs-3228 cs-44 cs-477) 579) ((and cs-3231 cs-44 cs-477) 579) ((and cs-3234 cs-44 cs-477) 579) ((and cs-3225 cs-44 cs-482) 573) ((and cs-3228 cs-44 cs-482) 573) ((and cs-3231 cs-44 cs-482) 573) ((and cs-3234 cs-44 cs-482) 573) ((eqv? signature-id 202427) 380) ((eqv? signature-id 206881) 379) ((eqv? signature-id 200021) 378) ((or (and cs-3080 (eqv? server-port 5060)) cs-4223) 292) ((or (and cs-44 (eqv? server-port 5060)) cs-4223) 292) ((or (and cs-3080 (eqv? server-port 2543)) cs-4223) 292) ((or (and cs-44 (eqv? server-port 2543)) cs-4223) 292) ((or (and cs-44 (eqv? server-port 80)) (eqv? signature-id 200080)) 85) ((or (and cs-3080 (eqv? server-port 53)) (eqv? signature-id 200053)) 75) ((or (and cs-44 (eqv? server-port 53)) (eqv? signature-id 200053)) 75) (else #f))))) (compile program) --AqsLC8rIMeq19msA-- From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 06 11:01:44 2012 Received: (at 13088) by debbugs.gnu.org; 6 Dec 2012 16:01:44 +0000 Received: from localhost ([127.0.0.1]:56992 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TgdtP-0002Il-Ru for submit@debbugs.gnu.org; Thu, 06 Dec 2012 11:01:44 -0500 Received: from mail-qa0-f44.google.com ([209.85.216.44]:35504) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TgdtM-0002Ia-Vj for 13088@debbugs.gnu.org; Thu, 06 Dec 2012 11:01:42 -0500 Received: by mail-qa0-f44.google.com with SMTP id z4so899455qan.3 for <13088@debbugs.gnu.org>; Thu, 06 Dec 2012 08:01:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=J9smTwlh/2RUByxg93QIDFnz8F41hC34WPl4xZchfg8=; b=rTCdOjrTLB7do4pSLqak7SdephNiBHhDG0S/bswKUzxH2BoS2NOmoByPumH18isWNd 3P/oIjn+WOzX5zRvUOcayMxLrPlkYUSqMpXILjQq7+9ghiUdPwtW+06YCMOu/UWhXvvj 0p7Sei47GkCqgvOcudABpg2Pwlbeevm/ZyiU4SM+Wj8hId0PEtXZMY9+rde27CS7TVDD lwjI6vQoM5nU0C/7f6Hq+E3xzFj5iXdd9mp2boqryJfVBEA1oybroZ0SobrOGThQQZfO NQUW3ir3NNTIzDumbkgVy4wdAcMM8BM2zBAbrbcEedAgEDgwYuNThr5mcseUoseIIweg WYGg== MIME-Version: 1.0 Received: by 10.49.63.104 with SMTP id f8mr3800097qes.29.1354809684833; Thu, 06 Dec 2012 08:01:24 -0800 (PST) Received: by 10.49.28.135 with HTTP; Thu, 6 Dec 2012 08:01:24 -0800 (PST) In-Reply-To: <20121205163130.GA25037@securactive.lan> References: <20121205163130.GA25037@securactive.lan> Date: Thu, 6 Dec 2012 17:01:24 +0100 Message-ID: Subject: Re: bug#13088: stack overflow while compiling From: Stefan Israelsson Tampe To: rixed@happyleptic.org Content-Type: multipart/alternative; boundary=047d7bdc1a3a00b50c04d0313619 X-Spam-Score: 0.1 (/) X-Debbugs-Envelope-To: 13088 Cc: 13088@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -0.7 (/) --047d7bdc1a3a00b50c04d0313619 Content-Type: text/plain; charset=ISO-8859-1 Some findings! 1. The problems probably originates in the translation to tree-il. 2. Using something like (define-syntax my-cond (syntax-rule () ((_ (p x ...) ) (if p (begin x ...))) ((_ (p x ...) . l) (if p (begin x ...) (my-cond . l)))) Makes the compilation to progress further but fails at a later with, scheme@(guile-user)> (compile program #:to 'value) language/assembly/compile-bytecode.scm:150:39: In procedure #: language/assembly/compile-bytecode.scm:150:39: In procedure bytevector-u8-set!: Value out of range: 2070 I quick look at the cond clause in boot.scm does not show any evidence that it will blow the stack. In my view the suspect is any code in psyntax.scm that does a tree walk of the finished code the cond clause is a really deep tree! because that cond clause produces a already expanded large codeblock that psyntax has to chew on while the my-cond clause above produces the tree-il incrementally in smaller steps. /Stefan On Wed, Dec 5, 2012 at 5:31 PM, wrote: > This program tries to compile a long cond expression and fails quickly with > a stack overflow. > > Of course this procedure was generated and a user is unlikely to write > such a > long cond, but considering the simplicity of the expression I'm surprised > that > the stack is so solicited. > > Note that I tested with guile 2.0.6 and not the fresh new 2.0.7 but I > haven't > noticed anything in the changelog regarding memory consumption. > > --047d7bdc1a3a00b50c04d0313619 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Some findings!

1. The problems probably originates in the translatio= n to tree-il.
2. Using something like
(define-syntax my-cond
=A0= =A0 (syntax-rule ()
=A0=A0=A0=A0=A0 ((_ (p x ...)=A0=A0=A0 )=A0 (if p (b= egin x ...)))
=A0=A0=A0=A0=A0 ((_ (p x ...) . l)=A0 (if p (begin x ...) = (my-cond . l))))

Makes the compilation to progress further but fails at a later with,scheme@(guile-user)> (compile program #:to 'value)
language/asse= mbly/compile-bytecode.scm:150:39: In procedure #<procedure 2be2a20 at la= nguage/assembly/compile-bytecode.scm:150:27 (x)>:
language/assembly/compile-bytecode.scm:150:39: In procedure bytevector-u8-s= et!: Value out of range: 2070

I quick look at the cond clause in boo= t.scm does not show any evidence that it will blow the stack. In my view th= e
suspect is any code in psyntax.scm that does a tree walk of the finished co= de the cond clause is a really deep tree!
because that cond clause produ= ces a already expanded large codeblock that psyntax has to chew on while=A0= the my-cond
clause above produces the tree-il incrementally in smaller steps.

/S= tefan


On Wed, Dec 5= , 2012 at 5:31 PM, <rixed@happyleptic.org> wrote:
This program tries to compile a long cond expression and fails quickly with=
a stack overflow.

Of course this procedure was generated and a user is unlikely to write such= a
long cond, but considering the simplicity of the expression I'm surpris= ed that
the stack is so solicited.

Note that I tested with guile 2.0.6 and not the fresh new 2.0.7 but I haven= 't
noticed anything in the changelog regarding memory consumption.


--047d7bdc1a3a00b50c04d0313619-- From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 08 16:44:47 2012 Received: (at 13088) by debbugs.gnu.org; 8 Dec 2012 21:44:47 +0000 Received: from localhost ([127.0.0.1]:33259 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1ThSCU-0003HR-DB for submit@debbugs.gnu.org; Sat, 08 Dec 2012 16:44:46 -0500 Received: from mail-qa0-f44.google.com ([209.85.216.44]:43260) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1ThSCQ-0003HE-02 for 13088@debbugs.gnu.org; Sat, 08 Dec 2012 16:44:43 -0500 Received: by mail-qa0-f44.google.com with SMTP id z4so633967qan.3 for <13088@debbugs.gnu.org>; Sat, 08 Dec 2012 13:44:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=keR6BEd+R0d47tzSNfXlajrMfXlNircTnnjlaCy2Mos=; b=Q+DPWozphbfYnVhZVA9bF2kkmZ4HJJRVTN2MFBkggWTHKbfSmrv8Y2D3jnPhCC15Eg HTrGRh3Www2oCmFoVpnehYzv8s/7djVo6Wo6RP0Gl9j6B9Asia7OxWGJa2ZLSsbtAhAl Q3YWPTvvue2Ra/fM8/hB8hF8mVG+ZdXDAImxOrpfJcY2LZq/auCjyFsFx0+XHUAMt4h5 d0mmzvBEu+Vcijx2fj3bRA9SwVpnRPX8Leixk6n2f2f+Il9NN9i/lKmZY3L+XhUFni2r hD9yl3BXgrooxjMEL/H5RS+V2pAdibPwoQ0IDlA2uj7W+F0xzuXN30DAXajgXTLl4WuB IvBg== MIME-Version: 1.0 Received: by 10.224.107.3 with SMTP id z3mr17961982qao.9.1355003055258; Sat, 08 Dec 2012 13:44:15 -0800 (PST) Received: by 10.49.28.135 with HTTP; Sat, 8 Dec 2012 13:44:15 -0800 (PST) In-Reply-To: References: <20121205163130.GA25037@securactive.lan> Date: Sat, 8 Dec 2012 22:44:15 +0100 Message-ID: Subject: Re: bug#13088: stack overflow while compiling From: Stefan Israelsson Tampe To: Chapi Chapo Content-Type: multipart/alternative; boundary=20cf3074b1fec73aa804d05e3bb3 X-Spam-Score: 0.1 (/) X-Debbugs-Envelope-To: 13088 Cc: 13088@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -0.7 (/) --20cf3074b1fec73aa804d05e3bb3 Content-Type: text/plain; charset=ISO-8859-1 Some further findings, The whole macro-expansion to tree-il in psyntax is not done in a tail call manner which limits the sizes of code tree's that we can compile. Although it would be interesting to know how to code the psyntax expand algorithm in such a way that we don't risk blowing the stack, I think we will be better served by waiting for better stack algorithm that implement growing stacks. For the second bug above, it's not a bug, it's my-cond syntax not being recognized and it tries to tail-call 2000+ argument function which is not supported in guile :-) In view of this I suggest that we close this bug or perhaps add a feature request for growing stacks. An alternate feature request is to have some way to tell guile the size of the stack at start up. For now anyone that need to compile large functions the only option, I believe, is to change the stack size in the code and recompile. WDYT /Stefan On Thu, Dec 6, 2012 at 5:01 PM, Stefan Israelsson Tampe < stefan.itampe@gmail.com> wrote: > Some findings! > > 1. The problems probably originates in the translation to tree-il. > 2. Using something like > (define-syntax my-cond > (syntax-rule () > ((_ (p x ...) ) (if p (begin x ...))) > ((_ (p x ...) . l) (if p (begin x ...) (my-cond . l)))) > > Makes the compilation to progress further but fails at a later with, > scheme@(guile-user)> (compile program #:to 'value) > language/assembly/compile-bytecode.scm:150:39: In procedure # 2be2a20 at language/assembly/compile-bytecode.scm:150:27 (x)>: > language/assembly/compile-bytecode.scm:150:39: In procedure > bytevector-u8-set!: Value out of range: 2070 > > I quick look at the cond clause in boot.scm does not show any evidence > that it will blow the stack. In my view the > suspect is any code in psyntax.scm that does a tree walk of the finished > code the cond clause is a really deep tree! > because that cond clause produces a already expanded large codeblock that > psyntax has to chew on while the my-cond > clause above produces the tree-il incrementally in smaller steps. > > /Stefan > > > > On Wed, Dec 5, 2012 at 5:31 PM, wrote: > >> This program tries to compile a long cond expression and fails quickly >> with >> a stack overflow. >> >> Of course this procedure was generated and a user is unlikely to write >> such a >> long cond, but considering the simplicity of the expression I'm surprised >> that >> the stack is so solicited. >> >> Note that I tested with guile 2.0.6 and not the fresh new 2.0.7 but I >> haven't >> noticed anything in the changelog regarding memory consumption. >> >> > --20cf3074b1fec73aa804d05e3bb3 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Some further findings,

The whole macro-expansion to tree-il in psynt= ax is not done in a tail call manner which limits the sizes
of code tree= 's that we can compile. Although it would be interesting to know how to= code the
psyntax expand algorithm in such a way that we don't risk blowing the s= tack, I think we
will be better served by waiting for better stack algor= ithm that implement growing stacks.

For the second bug above, it'= ;s not a bug, it's my-cond syntax not being recognized and it tries
to tail-call 2000+ argument function which is not supported in guile :-)
In view of this I suggest that we close this bug or perhaps add a feat= ure request for growing stacks.
An alternate feature request is to have = some way to tell guile the size of the stack at start up.

For now anyone that need to compile large functions the only option, I = believe, is to change the stack size in the code
and recompile.

W= DYT
/Stefan

On Thu, Dec 6, 2012 at 5:01 PM, Stefan Israelsson Tampe &= lt;stefan.itam= pe@gmail.com> wrote:
Some findings!

1. The problems probab= ly originates in the translation to tree-il.
2. Using something like
(define-syntax my-cond
=A0=A0 (syntax-rule ()
=A0=A0=A0=A0=A0 ((_ (p = x ...)=A0=A0=A0 )=A0 (if p (begin x ...)))
=A0=A0=A0=A0=A0 ((_ (p x ...)= . l)=A0 (if p (begin x ...) (my-cond . l))))

Makes the compilation to progress further but fails at a later with,scheme@(guile-user)> (compile program #:to 'value)
language/asse= mbly/compile-bytecode.scm:150:39: In procedure #<procedure 2be2a20 at la= nguage/assembly/compile-bytecode.scm:150:27 (x)>:
language/assembly/compile-bytecode.scm:150:39: In procedure bytevector-u8-s= et!: Value out of range: 2070

I quick look at the cond clause in boo= t.scm does not show any evidence that it will blow the stack. In my view th= e
suspect is any code in psyntax.scm that does a tree walk of the finished co= de the cond clause is a really deep tree!
because that cond clause produ= ces a already expanded large codeblock that psyntax has to chew on while=A0= the my-cond
clause above produces the tree-il incrementally in smaller steps.

/Stefan



On Wed, Dec 5= , 2012 at 5:31 PM, <rixed@happyleptic.org> wrote:
This program tries to compile a long cond expression and fails quickly with=
a stack overflow.

Of course this procedure was generated and a user is unlikely to write such= a
long cond, but considering the simplicity of the expression I'm surpris= ed that
the stack is so solicited.

Note that I tested with guile 2.0.6 and not the fresh new 2.0.7 but I haven= 't
noticed anything in the changelog regarding memory consumption.



--20cf3074b1fec73aa804d05e3bb3-- From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 10 07:16:53 2012 Received: (at 13088) by debbugs.gnu.org; 10 Dec 2012 12:16:53 +0000 Received: from localhost ([127.0.0.1]:34988 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Ti2I1-0000NQ-7a for submit@debbugs.gnu.org; Mon, 10 Dec 2012 07:16:53 -0500 Received: from eneide.happyleptic.org ([213.251.171.101]:47452) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Ti2Hz-0000NH-1v for 13088@debbugs.gnu.org; Mon, 10 Dec 2012 07:16:51 -0500 Received: from extranet.securactive.net ([82.240.34.113] helo=ccellier.rd.securactive.lan) by eneide.happyleptic.org with esmtp (Exim 4.72) (envelope-from ) id 1Ti2HO-0003gb-NE; Mon, 10 Dec 2012 13:16:14 +0100 Received: from rixed by ccellier.rd.securactive.lan with local (Exim 4.80) (envelope-from ) id 1Ti2HJ-0006tu-Jv; Mon, 10 Dec 2012 13:16:09 +0100 Date: Mon, 10 Dec 2012 13:16:09 +0100 From: rixed@happyleptic.org To: Stefan Israelsson Tampe Subject: Re: bug#13088: stack overflow while compiling Message-ID: <20121210121609.GA15887@securactive.lan> References: <20121205163130.GA25037@securactive.lan> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Spam-Score: 0.8 (/) X-Debbugs-Envelope-To: 13088 Cc: 13088@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: 0.8 (/) -[ Sat, Dec 08, 2012 at 10:44:15PM +0100, Stefan Israelsson Tampe ]---- > The whole macro-expansion to tree-il in psyntax is not done in a tail call > manner which limits the sizes > of code tree's that we can compile. Although it would be interesting to > know how to code the > psyntax expand algorithm in such a way that we don't risk blowing the > stack, I think we > will be better served by waiting for better stack algorithm that implement > growing stacks. If it was not obvious already I must confess I'm ignorant about the internals of guile (and of any other scheme compiler), so what I will say is probably irrelevant. but I changed the cond into the equivalent if forms, which I believe are not macros, but the result is the same (stack overflow). > An alternate feature request is to have some way to tell guile the size of > the stack at start up. If though that was what '(debug-set! stack x)' was for, but this does not seams to change anything. I also tried changing stack limits with ulimit to no avail. > For now anyone that need to compile large functions the only option, I > believe, is to change the stack size in the code > and recompile. Any hint on how to do that specifically for guile, beyond the above ulimit/setrlimit? From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 11 17:30:19 2012 Received: (at 13088) by debbugs.gnu.org; 11 Dec 2012 22:30:19 +0000 Received: from localhost ([127.0.0.1]:37682 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TiYLD-0008Rb-3J for submit@debbugs.gnu.org; Tue, 11 Dec 2012 17:30:19 -0500 Received: from mail-ie0-f172.google.com ([209.85.223.172]:54843) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TiYL9-0008RS-PP for 13088@debbugs.gnu.org; Tue, 11 Dec 2012 17:30:17 -0500 Received: by mail-ie0-f172.google.com with SMTP id c13so14210752ieb.3 for <13088@debbugs.gnu.org>; Tue, 11 Dec 2012 14:29:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=+bxRaHIK8MQP34nyy17LXMqP3TwZFQRAJHMfQcyw78Y=; b=kEJng6hEWRty7MYwB4fOA9NW/nxsvJUTfTevBEUPzy88pKBOmDKM78wHGt9o/c7j42 6wts3v2mOE5GgRht3QuaCAV/G4bCpaHIT0nm/XyjFrkfPe0cUHz92ODE+fVYplsakmRQ sbT8lR2XZAyEn7VuZyNc+Lt2Jhb/QIwh8KXpW2EfPGfm3C8MmaggYBDAluLVy/HbWlTy PqOmW/zOUN+M4DIGcfWba5FATeVNKB7YdhHaPKO8lLDW+DrxttVksGomF0//xaBBRMp7 LTLLk09F37KtqiD6hUWfLy9OWPTtUwilgDS0JFU5pXa3FyMZgwFCYMi1Ai3m/LrRcGFJ aRTQ== MIME-Version: 1.0 Received: by 10.42.22.198 with SMTP id p6mr15466339icb.17.1355264972067; Tue, 11 Dec 2012 14:29:32 -0800 (PST) Received: by 10.64.89.5 with HTTP; Tue, 11 Dec 2012 14:29:31 -0800 (PST) In-Reply-To: <20121210121609.GA15887@securactive.lan> References: <20121205163130.GA25037@securactive.lan> <20121210121609.GA15887@securactive.lan> Date: Tue, 11 Dec 2012 23:29:31 +0100 Message-ID: Subject: Re: bug#13088: stack overflow while compiling From: Stefan Israelsson Tampe To: Chapi Chapo Content-Type: multipart/alternative; boundary=20cf30434a543c920304d09b370f X-Spam-Score: 0.1 (/) X-Debbugs-Envelope-To: 13088 Cc: 13088@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: 0.1 (/) --20cf30434a543c920304d09b370f Content-Type: text/plain; charset=ISO-8859-1 Hi, I did some effort into getting this working. but first you could try to use an or-map to get what you want in stead if compiling everything into code. but it's probably faster what you are doing. Anyway in vm.c I changed the #define VM_DEFAULT_STACK_SIZE (64 * 1024) to #define VM_DEFAULT_STACK_SIZE (64 * 1024 * 64) and recompiled! Then I can compile to tree-il. Compiling all the way does not work well, But if you enter scheme@(guile-user)> (compile program #:to 'value #:opts '(#:partial-eval? #f #:cse? #f)) ;;NO OPTIMIZATION PASSES It will compile to. $7 = # In all this emphasizes what I said in earlier and I would still ask for a sane way to change the stack size for guile and document it well. Cheers! /Stefan On Mon, Dec 10, 2012 at 1:16 PM, wrote: > -[ Sat, Dec 08, 2012 at 10:44:15PM +0100, Stefan Israelsson Tampe ]---- > > The whole macro-expansion to tree-il in psyntax is not done in a tail > call > > manner which limits the sizes > > of code tree's that we can compile. Although it would be interesting to > > know how to code the > > psyntax expand algorithm in such a way that we don't risk blowing the > > stack, I think we > > will be better served by waiting for better stack algorithm that > implement > > growing stacks. > > If it was not obvious already I must confess I'm ignorant about the > internals > of guile (and of any other scheme compiler), so what I will say is probably > irrelevant. but I changed the cond into the equivalent if forms, which > I believe are not macros, but the result is the same (stack overflow). > > > An alternate feature request is to have some way to tell guile the size > of > > the stack at start up. > > If though that was what '(debug-set! stack x)' was for, but this does not > seams to change anything. I also tried changing stack limits with ulimit > to no avail. > > > For now anyone that need to compile large functions the only option, I > > believe, is to change the stack size in the code > > and recompile. > > Any hint on how to do that specifically for guile, beyond the above > ulimit/setrlimit? > > --20cf30434a543c920304d09b370f Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi,

I did some effort into getting this working. but fir= st you could try to use an=A0
or-map to get what you want in stea= d if compiling everything into code. but it's probably
faster= what you are doing.

Anyway in vm.c I changed the=A0
#define VM_DE= FAULT_STACK_SIZE (64 * 10= 24)

to
#define VM_DEFAULT_STACK_SIZE= (64 * 1024 * 64)

and recompiled!=A0

Then = I can compile to tree-il. Compiling all the way does not work well,
But if you enter
scheme@(guile-user)> (compile program= #:to 'value #:opts '(#:partial-eval? #f #:cse? #f)) =A0;;NO OPTIMI= ZATION PASSES

It will compile to.

$7 =3D #&l= t;procedure 3708400 (proto server-port client-zone server-zone signature-id= )>


In all this emphasizes = what I said in earlier and I would still ask for a sane way to change the s= tack size for guile
and document it well.

Cheers!
/Stef= an




On Mon, Dec 10, 2012 at 1:16 PM, <rixed@happ= yleptic.org> wrote:
-[ Sat, Dec 08, 2012 at 10:44:15PM +0100, St= efan Israelsson Tampe ]----
> The whole macro-expansion to tree-il in psyntax is n= ot done in a tail call
> manner which limits the sizes
> of code tree's that we can compile. Although it would be interesti= ng to
> know how to code the
> psyntax expand algorithm in such a way that we don't risk blowing = the
> stack, I think we
> will be better served by waiting for better stack algorithm that imple= ment
> growing stacks.

If it was not obvious already I must confess I'm ignorant about t= he internals
of guile (and of any other scheme compiler), so what I will say is probably=
irrelevant. but I changed the cond into the equivalent if forms, which
I believe are not macros, but the result is the same (stack overflow).

> An alternate feature request is to have some way to tell guile the siz= e of
> the stack at start up.

If though that was what '(debug-set! stack x)' was for, but t= his does not
seams to change anything. I also tried changing stack limits with ulimit to no avail.

> For now anyone that need to compile large functions the only option, I=
> believe, is to change the stack size in the code
> and recompile.

Any hint on how to do that specifically for guile, beyond the above ulimit/setrlimit?


--20cf30434a543c920304d09b370f-- From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 12 03:34:29 2012 Received: (at 13088) by debbugs.gnu.org; 12 Dec 2012 08:34:29 +0000 Received: from localhost ([127.0.0.1]:38119 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Tihlt-00023n-7E for submit@debbugs.gnu.org; Wed, 12 Dec 2012 03:34:29 -0500 Received: from eneide.happyleptic.org ([213.251.171.101]:37463) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Tihlr-00023f-81 for 13088@debbugs.gnu.org; Wed, 12 Dec 2012 03:34:27 -0500 Received: from extranet.securactive.net ([82.240.34.113] helo=ccellier.rd.securactive.lan) by eneide.happyleptic.org with esmtp (Exim 4.72) (envelope-from ) id 1TihlE-0003NG-0i; Wed, 12 Dec 2012 09:33:48 +0100 Received: from rixed by ccellier.rd.securactive.lan with local (Exim 4.80) (envelope-from ) id 1Tihl1-0002Eb-OB; Wed, 12 Dec 2012 09:33:35 +0100 Date: Wed, 12 Dec 2012 09:33:35 +0100 From: rixed@happyleptic.org To: Stefan Israelsson Tampe Subject: Re: bug#13088: stack overflow while compiling Message-ID: <20121212083335.GA2565@securactive.lan> References: <20121205163130.GA25037@securactive.lan> <20121210121609.GA15887@securactive.lan> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Spam-Score: 0.8 (/) X-Debbugs-Envelope-To: 13088 Cc: 13088@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: 0.8 (/) -[ Tue, Dec 11, 2012 at 11:29:31PM +0100, Stefan Israelsson Tampe ]---- > Anyway in vm.c I changed the > #define VM_DEFAULT_STACK_SIZE (64 * 1024) > > to > #define VM_DEFAULT_STACK_SIZE (64 * 1024 * 64) > > and recompiled! Oh, I hadn't realized you were speaking about the VM's stack. It all makes sense now. Any inconvenient to set this stack even bigger ? How many such stacks do we have in a running environment ? One per thread ? > Then I can compile to tree-il. Compiling all the way does not work well, > But if you enter > scheme@(guile-user)> (compile program #:to 'value #:opts '(#:partial-eval? > #f #:cse? #f)) ;;NO OPTIMIZATION PASSES > > It will compile to. > > $7 = # signature-id)> Yes, I did this and as a result the compiled function was... 20% faster !? (note that my bench exclude the compilation time, and uses get-internal-run-time as a clock source). Thank you very much for all these advices. As usual, support from free software community is much better than it is from any business I've seen :-) From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 12 12:14:32 2012 Received: (at 13088) by debbugs.gnu.org; 12 Dec 2012 17:14:32 +0000 Received: from localhost ([127.0.0.1]:39300 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TiptA-0007KC-10 for submit@debbugs.gnu.org; Wed, 12 Dec 2012 12:14:32 -0500 Received: from mail-qa0-f51.google.com ([209.85.216.51]:49381) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Tipt7-0007K4-6p for 13088@debbugs.gnu.org; Wed, 12 Dec 2012 12:14:30 -0500 Received: by mail-qa0-f51.google.com with SMTP id i20so1330217qad.3 for <13088@debbugs.gnu.org>; Wed, 12 Dec 2012 09:13:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=i9hKuncHHtiFVzDj6ygZkkakG4sWQ3DeZgVZI5MdAgw=; b=iGqN64xnddCObOAmeUdxIVWBxsmNqCMc8gCA/3O5j9oM289QK2HIpwcbKH56kBKD4l wFGbCiUkDn3VLDZWr7thrVl+UFemqvROy8bVl/NihRMYB4Ec6xJvXE+tyomtBTMsVchv ruWCkQRM+cmKu1zKqQ9YQNEU0ubc4xlXCxl8OrhS4jk740qUHJs9t7SsuNtSALETmdAw fxOScmLPTnvdJuRrk5GWIJWhFLXIY0zl1AVIS7spC7qPeGOeHo/7sY2jwdZjL90rkh5V DGvGkxUbSBoYkbtjV01xLCSytZA5ORodmu46LXtQw41qzEKhe7rCIvIVAQJzkQXKE2s5 2JRA== MIME-Version: 1.0 Received: by 10.49.121.40 with SMTP id lh8mr4290846qeb.30.1355332420141; Wed, 12 Dec 2012 09:13:40 -0800 (PST) Received: by 10.49.28.135 with HTTP; Wed, 12 Dec 2012 09:13:39 -0800 (PST) In-Reply-To: <20121212083335.GA2565@securactive.lan> References: <20121205163130.GA25037@securactive.lan> <20121210121609.GA15887@securactive.lan> <20121212083335.GA2565@securactive.lan> Date: Wed, 12 Dec 2012 18:13:39 +0100 Message-ID: Subject: Re: bug#13088: stack overflow while compiling From: Stefan Israelsson Tampe To: Chapi Chapo Content-Type: multipart/mixed; boundary=047d7bdc1be47483ba04d0aaeba2 X-Spam-Score: 0.1 (/) X-Debbugs-Envelope-To: 13088 Cc: 13088@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -0.7 (/) --047d7bdc1be47483ba04d0aaeba2 Content-Type: multipart/alternative; boundary=047d7bdc1be47483b504d0aaeba0 --047d7bdc1be47483b504d0aaeba0 Content-Type: text/plain; charset=ISO-8859-1 Hi, I added a patch to suggest a new environment variable. GUILE_STACK_SIZE_NSCM If this is defined and setted to a reasonable number then this will be the number of SCM (8 byte on a 64bit arch or 4 on a 32 bit arch) to allocate to the VM stack. The naming might not be the best, we might want to name it VM_STACK in stead of stack. anyway here is a patch. I tested it to the example in the beginning of this thread and it seams to work just fine. The intention is for this to be enough to close the bug. /Stefan On Wed, Dec 12, 2012 at 9:33 AM, wrote: > -[ Tue, Dec 11, 2012 at 11:29:31PM +0100, Stefan Israelsson Tampe ]---- > > Anyway in vm.c I changed the > > #define VM_DEFAULT_STACK_SIZE (64 * 1024) > > > > to > > #define VM_DEFAULT_STACK_SIZE (64 * 1024 * 64) > > > > and recompiled! > > Oh, I hadn't realized you were speaking about the VM's stack. It all makes > sense now. > Any inconvenient to set this stack even bigger ? How many such stacks do we > have in a running environment ? One per thread ? > > > Then I can compile to tree-il. Compiling all the way does not work well, > > But if you enter > > scheme@(guile-user)> (compile program #:to 'value #:opts > '(#:partial-eval? > > #f #:cse? #f)) ;;NO OPTIMIZATION PASSES > > > > It will compile to. > > > > $7 = # > signature-id)> > > Yes, I did this and as a result the compiled function was... 20% faster !? > (note that my bench exclude the compilation time, and uses > get-internal-run-time > as a clock source). > > Thank you very much for all these advices. > As usual, support from free software community is much better than it is > from > any business I've seen :-) > > --047d7bdc1be47483b504d0aaeba0 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi,

I added a patch to suggest a new environment variabl= e.

=A0 =A0GUILE_STACK_SIZE_NSCM

=
If this is defined and setted to a reasonable number then this w= ill be the number
of SCM (8 byte on a 64bit arch or 4 on a 32 bit arch) to allocate to t= he VM stack.

The naming might not be the best, we = might want to name it VM_STACK in stead of stack.

anyway here is a patch. I tested it to the example in the beginning of this= thread and it seams
to work just fine.

= The intention is for this to be enough to close the bug.

/Stefan





On Wed, Dec 12, 201= 2 at 9:33 AM, <rixed@happyleptic.org> wrote:
-[ Tue, Dec 11, 2012 at 11:29:31PM +0100, St= efan Israelsson Tampe ]----
> Anyway in vm.c I changed the
> #define VM_DEFAULT_STACK_SIZE (64 * 1024)
>
> to
> #define VM_DEFAULT_STACK_SIZE (64 * 1024 * 64)
>
> and recompiled!

Oh, I hadn't realized you were speaking about the VM's stack.= It all makes
sense now.
Any inconvenient to set this stack even bigger ? How many such stacks do we=
have in a running environment ? One per thread ?

> Then I can compile to tree-il. Compiling all the way does not work wel= l,
> But if you enter
> scheme@(guile-user)> (compile program #:to 'value #:opts '(= #:partial-eval?
> #f #:cse? #f)) =A0;;NO OPTIMIZATION PASSES
>
> It will compile to.
>
> $7 =3D #<procedure 3708400 (proto server-port client-zone server-zo= ne
> signature-id)>

Yes, I did this and as a result the compiled function was... 20% fast= er !?
(note that my bench exclude the compilation time, and uses get-internal-run= -time
as a clock source).

Thank you very much for all these advices.
As usual, support from free software community is much better than it is fr= om
any business I've seen :-)


--047d7bdc1be47483b504d0aaeba0-- --047d7bdc1be47483ba04d0aaeba2 Content-Type: application/octet-stream; name="stack-size.patch" Content-Disposition: attachment; filename="stack-size.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hamq36e60 RnJvbSAxYjRhNDlkYjg2ZmE2ZWJmNjk0MzYxM2ZlNmMxYWM5NzI4ZjcyZDMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gSXNyYWVsc3NvbiBUYW1wZSA8c3RlZmFuLml0YW1w ZUBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMTIgRGVjIDIwMTIgMTc6Mzc6NDQgKzAxMDAKU3ViamVj dDogW1BBVENIXSB2bTogYWRkZWQgc3RhY2sgc2l6ZSBlbnZpcm9ubWVudCB2YXJpYWJsZQogR1VJ TEVfU1RBQ0tfU0laRV9OU0NNICogbGliZ3VpbGUvdm0uaCBpbiBmdW5jdGlvbiBtYWtlX3ZtICAK IGFkZGVkIGNvZGUgdG8gdXNlIGVudmlyb25tZW50IHZhcmlhYmxlIGZvciBzdGFjayBzaXplIGlm CiBkZWZpbmVkCgotLS0KIGxpYmd1aWxlL3ZtLmMgfCAgIDEzICsrKysrKysrKysrKy0KIDEgZmls ZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv bGliZ3VpbGUvdm0uYyBiL2xpYmd1aWxlL3ZtLmMKaW5kZXggNWRlYzEwNi4uYWRkZTAwZCAxMDA2 NDQKLS0tIGEvbGliZ3VpbGUvdm0uYworKysgYi9saWJndWlsZS92bS5jCkBAIC02NzAsNyArNjcw LDE4IEBAIG1ha2Vfdm0gKHZvaWQpCiAKICAgdnAgPSBzY21fZ2NfbWFsbG9jIChzaXplb2YgKHN0 cnVjdCBzY21fdm0pLCAidm0iKTsKIAotICB2cC0+c3RhY2tfc2l6ZSAgPSBWTV9ERUZBVUxUX1NU QUNLX1NJWkU7CisgIHNpemVfdCBzc3ogPSBWTV9ERUZBVUxUX1NUQUNLX1NJWkU7CisgIFNDTSBl bnZfc3RhY2tfc2l6ZSA9IHNjbV9nZXRlbnYoIHNjbV9mcm9tX2xvY2FsZV9zdHJpbmcgKCJHVUlM RV9TVEFDS19TSVpFX05TQ00iKSk7CisgIAorICBpZiAoc2NtX2lzX3RydWUgKGVudl9zdGFja19z aXplKSkKKyAgICB7CisgICAgICBlbnZfc3RhY2tfc2l6ZSA9IHNjbV9zdHJpbmdfdG9fbnVtYmVy IChlbnZfc3RhY2tfc2l6ZSwgc2NtX2Zyb21faW50ICgxMCkpOworICAgICAgaWYoc2NtX2lzX3Ry dWUgKGVudl9zdGFja19zaXplKSAKKyAgICAgICAgICYmIHNjbV9pc191bnNpZ25lZF9pbnRlZ2Vy IChlbnZfc3RhY2tfc2l6ZSwgMTAwMCwgMjAwMDAwMDAwMCkpCisgICAgICAgIHNzeiA9IHNjbV90 b191aW50MzIgKGVudl9zdGFja19zaXplKTsKKyAgICB9CisKKyAgdnAtPnN0YWNrX3NpemUgID0g c3N6OwogCiAjaWZkZWYgVk1fRU5BQkxFX1BSRUNJU0VfU1RBQ0tfR0NfU0NBTgogICB2cC0+c3Rh Y2tfYmFzZSA9IChTQ00gKikKLS0gCjEuNy45LjUKCg== --047d7bdc1be47483ba04d0aaeba2-- From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 14 07:47:57 2012 Received: (at 13088) by debbugs.gnu.org; 14 Dec 2012 12:47:57 +0000 Received: from localhost ([127.0.0.1]:42039 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TjUgH-0000ZL-2I for submit@debbugs.gnu.org; Fri, 14 Dec 2012 07:47:57 -0500 Received: from eneide.happyleptic.org ([213.251.171.101]:37490) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TjUgF-0000ZE-6k for 13088@debbugs.gnu.org; Fri, 14 Dec 2012 07:47:55 -0500 Received: from extranet.securactive.net ([82.240.34.113] helo=ccellier.rd.securactive.lan) by eneide.happyleptic.org with esmtp (Exim 4.72) (envelope-from ) id 1TjUfI-00041Q-Lr; Fri, 14 Dec 2012 13:46:56 +0100 Received: from rixed by ccellier.rd.securactive.lan with local (Exim 4.80) (envelope-from ) id 1TjUfD-0001KP-Il; Fri, 14 Dec 2012 13:46:51 +0100 Date: Fri, 14 Dec 2012 13:46:51 +0100 From: rixed@happyleptic.org To: Stefan Israelsson Tampe Subject: Re: bug#13088: stack overflow while compiling Message-ID: <20121214124651.GA2548@securactive.lan> References: <20121205163130.GA25037@securactive.lan> <20121210121609.GA15887@securactive.lan> <20121212083335.GA2565@securactive.lan> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Spam-Score: 0.8 (/) X-Debbugs-Envelope-To: 13088 Cc: 13088@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: 0.8 (/) > I added a patch to suggest a new environment variable. I applied your patch locally and am satisfied so far. I let you know is I run into troubles. From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 07 14:10:38 2013 Received: (at 13088) by debbugs.gnu.org; 7 Mar 2013 19:10:38 +0000 Received: from localhost ([127.0.0.1]:36966 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UDgD6-00007V-HL for submit@debbugs.gnu.org; Thu, 07 Mar 2013 14:10:37 -0500 Received: from a-pb-sasl-quonix.pobox.com ([208.72.237.25]:63071 helo=sasl.smtp.pobox.com) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UDgD4-00007N-98 for 13088@debbugs.gnu.org; Thu, 07 Mar 2013 14:10:34 -0500 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 1B168C7A9; Thu, 7 Mar 2013 14:10:01 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=sasl; bh=Z4uHACQKrI+eCj3J7Q6ICV4nAfw=; b=tnB8Fh a5SpNOn4lmHj8I/uXpatRbJScaHpocdqb+t2/aVIVdV5rJPaReAOtvqQdXiPuXwK 8oL5OcUPv6a0p8+tHqQV/ea6sMuTZ3boNGSYXuRm3VJUWo+XmxyYCF01L0EO2avP ke6ILM0qkQDZhd8W9iiH9h+QazJdkVzOeZLtk= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; q=dns; s=sasl; b=cBaOjML4EjZLxDzp0sck3k08Yiughdbs 4FlEctfs40PE2UcNp5PjkB1NY6p3uGV4P0nLnCqnZ8QpLWLXWHdQv1cjVJaV8vBV dgk9ND70yI3ynZdKGJTthbJ/fzeVA2v80ycGkhs7yZVu6LmnhedD7aHYheOOZKCI kL7vvf5TmTs= Received: from a-pb-sasl-quonix.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 109A0C7A8; Thu, 7 Mar 2013 14:10:01 -0500 (EST) Received: from badger (unknown [88.160.190.192]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTPSA id 41750C7A7; Thu, 7 Mar 2013 14:10:00 -0500 (EST) From: Andy Wingo To: Stefan Israelsson Tampe Subject: Re: bug#13088: stack overflow while compiling References: <20121205163130.GA25037@securactive.lan> Date: Thu, 07 Mar 2013 14:26:51 +0100 In-Reply-To: (Stefan Israelsson Tampe's message of "Sat, 8 Dec 2012 22:44:15 +0100") Message-ID: <87ehfribms.fsf@pobox.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Pobox-Relay-ID: 9BBA0AFC-875A-11E2-A8BE-59240E5B5709-02397024!a-pb-sasl-quonix.pobox.com X-Spam-Score: 1.8 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: On Sat 08 Dec 2012 22:44, Stefan Israelsson Tampe writes: > tail-call 2000+ argument function which is not supported in guile :-) This should be supported. Just fixed this in stable-2.0. [...] Content analysis details: (1.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [208.72.237.25 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 1.6 DATE_IN_PAST_03_06 Date: is 3 to 6 hours before Received: date -0.6 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain 0.8 BAYES_50 BODY: Bayes spam probability is 40 to 60% [score: 0.4853] 0.0 T_DKIM_INVALID DKIM-Signature header exists but is not valid X-Debbugs-Envelope-To: 13088 Cc: Chapi Chapo , 13088@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: 1.0 (+) On Sat 08 Dec 2012 22:44, Stefan Israelsson Tampe writes: > tail-call 2000+ argument function which is not supported in guile :-) This should be supported. Just fixed this in stable-2.0. > I suggest that we close this bug or perhaps add a feature request for > growing stacks. > > An alternate feature request is to have some way to tell guile the size > of the stack at start up. In this case I agree, there is no bug in the expander or in the compiler. We should be able to grow stacks, but that is tricky with stable-2.0. Ideally we would be able to link different stack segments together with overflow/underflow handlers, as in the Dybvig paper, but that would require some experimentation that would best be done on master. I pushed a patch based on yours to add a GUILE_STACK_SIZE environment variable. I hate environment variables but hopefully we can remove it in 2.2. Thanks for looking into this! Andy -- http://wingolog.org/ From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 07 14:10:40 2013 Received: (at 13088-done) by debbugs.gnu.org; 7 Mar 2013 19:10:40 +0000 Received: from localhost ([127.0.0.1]:36969 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UDgD9-00007k-8w for submit@debbugs.gnu.org; Thu, 07 Mar 2013 14:10:39 -0500 Received: from a-pb-sasl-quonix.pobox.com ([208.72.237.25]:63313 helo=sasl.smtp.pobox.com) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UDgD8-00007Z-3T for 13088-done@debbugs.gnu.org; Thu, 07 Mar 2013 14:10:38 -0500 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 4C43FC7AC for <13088-done@debbugs.gnu.org>; Thu, 7 Mar 2013 14:10:04 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=sasl; bh=sPLSmRjrgN0vNF/39PY0aftdNew=; b=thxtmc RPBY2m+ll1mztqQrHiHgxlD2mLDzRwpm+e+1WrAhlMXXHOuJafvGy7KubeQLIrFc vWNHTefsso81tK0YWmOsO66wcYSzQQUUti4Tr3Dk02nl+EoVgZx53yFjM8dbampm pQPfhCUXkjk/BEOklNbWwHG+dMv6wRjrtzTVM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:subject :references:date:in-reply-to:message-id:mime-version :content-type; q=dns; s=sasl; b=TUi3MrYWlA8E7VrLo67MphflGWb0yDKR GS0fNsuu8FFPVjZmSipMzaExwUsAAxu+oktjwzR2m8Ws5HgcUh5JF9ObzZvfq+bM RgPoaTHKcKGRakyEZ0qCo7dPDsHW9NBTlsfA30m2CtEceI6DC2cJJ4G4szbuegie ypgrGSe6aTY= Received: from a-pb-sasl-quonix.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 42C74C7AB for <13088-done@debbugs.gnu.org>; Thu, 7 Mar 2013 14:10:04 -0500 (EST) Received: from badger (unknown [88.160.190.192]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTPSA id 9AF1CC7AA for <13088-done@debbugs.gnu.org>; Thu, 7 Mar 2013 14:10:03 -0500 (EST) From: Andy Wingo To: 13088-done@debbugs.gnu.org Subject: Re: bug#13088: stack overflow while compiling References: <20121205163130.GA25037@securactive.lan> <20121210121609.GA15887@securactive.lan> <20121212083335.GA2565@securactive.lan> Date: Thu, 07 Mar 2013 14:27:13 +0100 In-Reply-To: (Stefan Israelsson Tampe's message of "Wed, 12 Dec 2012 18:13:39 +0100") Message-ID: <87a9qfibm6.fsf@pobox.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Pobox-Relay-ID: 9DBF1518-875A-11E2-899D-59240E5B5709-02397024!a-pb-sasl-quonix.pobox.com X-Spam-Score: 1.8 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Marking as done. -- http://wingolog.org/ [...] Content analysis details: (1.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [208.72.237.25 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 1.6 DATE_IN_PAST_03_06 Date: is 3 to 6 hours before Received: date -0.6 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain 0.8 BAYES_50 BODY: Bayes spam probability is 40 to 60% [score: 0.4728] 0.0 T_DKIM_INVALID DKIM-Signature header exists but is not valid X-Debbugs-Envelope-To: 13088-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: 1.0 (+) Marking as done. -- http://wingolog.org/ From unknown Tue Jun 24 17:25:59 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Fri, 05 Apr 2013 11:24:03 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator