From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Richard Todd Newsgroups: gmane.lisp.guile.user Subject: GuileSIC v0.7 available Date: Fri, 12 Dec 2003 00:42:18 -0600 Sender: guile-user-bounces+guile-user=m.gmane.org@gnu.org Message-ID: <20031212064218.GA8304@pazuzu> Reply-To: Richard Todd NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0472944379==" X-Trace: sea.gmane.org 1071211618 24710 80.91.224.253 (12 Dec 2003 06:46:58 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 12 Dec 2003 06:46:58 +0000 (UTC) Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Fri Dec 12 07:46:51 2003 Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1AUh4d-0006N8-00 for ; Fri, 12 Dec 2003 07:46:51 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.24) id 1AUhzL-0002Ho-3o for guile-user@m.gmane.org; Fri, 12 Dec 2003 02:45:27 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.24) id 1AUhyg-0002HY-Gy for guile-user@gnu.org; Fri, 12 Dec 2003 02:44:46 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.24) id 1AUhyA-00026O-JN for guile-user@gnu.org; Fri, 12 Dec 2003 02:44:45 -0500 Original-Received: from [66.171.59.140] (helo=smtp.vzavenue.net) by monty-python.gnu.org with esmtp (Exim 4.24) id 1AUhyA-000252-1W for guile-user@gnu.org; Fri, 12 Dec 2003 02:44:14 -0500 Original-Received: from demon.pazuzu.hrn (178.155.171.66.subscriber.vzavenue.net [66.171.155.178] (may be forged)) by smtp.vzavenue.net (Mirapoint Messaging Server MOS 3.2.4-GA) with SMTP id BAW90305; Fri, 12 Dec 2003 01:42:27 -0500 (EST) Original-Received: by demon.pazuzu.hrn (sSMTP sendmail emulation); Fri, 12 Dec 2003 00:42:18 -0600 Original-To: guile-user@gnu.org User-Agent: Mutt/1.5.4i X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.2 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Xref: main.gmane.org gmane.lisp.guile.user:2450 X-Report-Spam: http://spam.gmane.org/gmane.lisp.guile.user:2450 --===============0472944379== Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="Qxx1br4bt0+wmkIi" Content-Disposition: inline --Qxx1br4bt0+wmkIi Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable GuileSIC is a BASIC->guile translator. Version 0.7 is available from the same spot as previous releases: http://www.vzavenue.net/~rwtodd5128/index.html There are quite a few changes as I tried to make the design more general, and am (barely) starting to document it. I also couldn't help but add several new features in the process. (if you try this out I'm pretty sure you'll need the newest LALR=20 module from that same page as well). As usual, any feedback you have will help make this project better, so please don't hesitate. My current hope is to reach version 1.0 by 01/12/2004. Richard Todd (NEWS excerpt): Version 0.7 (12/11/2003) User-Visible Changes: Better Visual Basic Compatibility - WHILE/WEND (gwbasic syntax) changed to WHILE/END WHILE (vb syntax) - FUNC/END FUNC changed to FUNCTION/END FUNCTION (vb syntax) - string-concatenation operator '&' is now available - using '_' to escape newlines is now available=20 (this is like using '\' at end of lines in a shell script,=20 except that you are allowed to put whitespace and comments after the '_'). See bottom of tests/guessNumber.bas for=20 an example. Utility guile-basic.scm is now an installed script (pass -h for help) New BASIC features - You can declare variables as LOCAL, which scopes them to functions instead of making them global. See tests/LocalVars.bas for examples. - The ^ exponentiation operator is now available=20 - LOAD "filename.bas" loads another basic file like an #include<> would work in C. The lexer maintains an input-port=20 stack, so the loaded file can load further files. Reorganized, and Texinfo docs started - Docs need much more work! - Lots of internal changes to clean up and reorganize the code - Now the code is in private modules (lang basic lexer),=20 (lang basic parser), and (lang basic parsed-statements) in addition= =20 to the user-visible (lang basic) Better error-checking and reporting - Reports on a `$FILE:$LINE: $MSG' format, so emacs and other editors can take you to the conversion errors. - Attempts to do elementary semantic checks (to the extent that it can, given that this BASIC is essentially as runtime-typed as scheme is). =20 Thread-Safety - Eliminated global state using closures and goops classes so that=20 multiple BASIC parsers should be able to run cuncurrently. Speed - Expands the parser at 'make' time, instead of run-time. So, the lalr package dependency is still there, but only for make-ing. - This makes a noticeable startup-time difference. --Qxx1br4bt0+wmkIi Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQE/2WNK5UcKlVFagq0RAmxMAJ9Tvw54mNQSHDUkyO4NNSAAf2Eq3gCbBM+U Z5AQiXDsUg+5IvImGL9d/zg= =/UwW -----END PGP SIGNATURE----- --Qxx1br4bt0+wmkIi-- --===============0472944379== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Guile-user mailing list Guile-user@gnu.org http://mail.gnu.org/mailman/listinfo/guile-user --===============0472944379==--