Gauche-gtk2 0.6.2
Minor update. A new API addition and adaptation to newer Gauche.
Practical Scheme Scripting
Minor update. A new API addition and adaptation to newer Gauche.
Started providing bleeding-edge tarball, a daily tarballs created from development HEAD. You don't need to have the latest Gauche installed to test the latest bug fixes. See BleedingEdgeTarball.
See Release notes.
See Release notes
See Release notes.
See Release notes.
A few bug fixes. The tarball name is now Gauche-gtk2-0.6.1.tgz.
This is merely a new wrapping of the exising code. It's been years since we provided a proper release, and there are sporadic fixes accumulated in the repository.
The 0.9.11 Windows installer packages had a defect that TLS connection gets an error unless you explicitly use rfc.tls.mbed. If you're using Gauche on Windows from installer, please update with the new packages.
It was due to the issue in 0.9.11 source tree that autoloading mbedtls module wasn't set up properly depending on the packaging environment. If you're installing from the tarball, you don't need to update unless you need to compile with --with-tls=mbedtls-internal option.
See Release notes.
We started to put the draft documentation for the development HEAD for those who build from repo.
See Release notes.
Building from source was failing on the latest MinGW with gcc 10.1. This applies to the release tarball as well. It is addressed on the git master as of today, but you need to install Gauche with Windows binary installer in order to compile from the git repo.
See Release notes.
See Release notes.
See Release notes.
See Release notes.
See Release notes.
Not many big changes, but it's been for a while since the last release. See Extensions page for download instruction. Release notes are here.
See Release notes.
Source code repository is moved to GitHub: https://github.com/shirok/Gauche. If you're following the development HEAD, please switch the origin.
(Release files and mailing lists will remain on SourceForge.net. Just the repo is moved.)
Several bug fixes since 0.9.3.2, plus a couple of improvements.I made a new package since one bug caused build problems incertain settings, and having a fixed tarball saved lots of troubles.
A documentation build problem was found when Gauche was configured to use native encoding other than utf-8. A follow-up release (0.9.3.2) is put on the server. If you want to use Gauche wiht non-default encoding, grab the new release. You don't need to update as far as compiling with utf-8.
On Windows/MinGW, 0.9.3 release version had a problem to compile git HEAD version of Gauche. A fixed version (0.9.3.1) is prepared. This problem won't affect other platforms.
We switched the developement repository from Subversion to Git. See Download for instructions to check out or browse.
It is reported that the Windows installer could smash the value of PATH, if adding the Gauche's path resulted the length of PATH to exceed a certain limit (it appears to be a known problem of NSIS, see a similar incindent in Winamp forum.) If your PATH is already close to about 1000 character long, please refrain from using the current Gauche-mingw-0.9.1.exe. We're looking at possible fixes.
We found a bug in gauche-config that can affect installation of extension packages. The 0.9.1 release has been replaced with the fix. Please check the md5sum of the packages if you've already downloaded them.
6134e9c16aef2bc9fd3fa7e8fbebdd10 Gauche-0.9.1.tgz dce3a5f438506bfcbb63687e2debdeb1 Gauche-mingw-0.9.1.exe
(define (foo x :optional (y 0) (z 2)) ...)
instead of (define (foo x . args)
(let-optionals* args ((y 0) (z 2)) ...))
See the manual entry of lambda for the details.
If you're writing a portable program and don't want to use
this extended syntax accidentally, use syntactic bindings
provided in the scheme module instead
gauche module; syntactic keywords provided in
the former raise an error if extended formals are used.
See Extended formals about this decision.
(Note: Currently define-method does not support extended
formals due to a small technical obstacle.
It should be addressed soon.)It is reported that a few Windows antivirus software heuristically flags Gauche 0.9 windows binary distribution as a dropper type virus. We believe this is a false positive; the current binary distribution on SourceForge.net is built on our developer's machine which is regularly scanned by antivirus software. Here's md5sum of the original packages:
5801c5a91a8e1c09e0a4b1ec30d37dee Gauche-mingw-0.9.exe 0a1470b3a96e658c8e3c812aca880ffd Gauchebox-0.9-box1.exe
Major Feature Enhancements
Maintenance release.
Lots of small improvements
(apply list (iota 50000)) "Suppose this is very very long line." as "Suppose this is very \
very long line." for example.Maintenance release
Maintenance release
Minor maintenance release. Fixed a problem on cygwin that prohibited using GL extensions. (Patch from Takashi Ishizaki).
Major feature upgrade
Major maintenance release
Minor maintenance release. Fixed bugs in the finalizers of GLU objects.
Gauche 0.8.8 important patch: There is a bug in main.c that makes gosh exits silently without reporting errors when a Scheme script raised an unhandled error. Please apply the patch shown in the following message: https://sourceforge.net/mailarchive/forum.php?thread_id=30949517&forum_id=2043
Major maintenance release
Minor maintenance release. Fixed a few build problems.
Major maintenance release
Major feature enhancement.
Maintenance release
This release fixes a few critical bugs. Upgrading is recommended.
Major feature upgrade
Gcc-4 complains a lot when compiling Gauche 0.8.4. If you stumble on the problem, grab the following files and replace the files of the same name under src/, then recompile Gauche.
https://practical-scheme.net/vault/autoloads.c https://practical-scheme.net/vault/compile.c https://practical-scheme.net/vault/scmlib.c https://practical-scheme.net/vault/objlib.c
The compiler and VM have been rewritten. Now Gauche runs faster with less memory (as fast as 1.9x, or cosumes 0.7x memory, in best cases of our tests. But your mileage may vary.) The compiler now does simple closure optimization, so the typical loop-by-local-closure style code will get the advantage. On the other hand, you won't see much gain in OO-heavy or library-heavy programs.
As an outcome of better closure analysis, Gauche now finds a bug of calling local functions with wrong number of arguments at compile time, instead of runtime. This makes existing program cease to work, if such a bug has been hidden in rarely executed code path. We think it's better to find it early, rather than getting bitten unexpectedly at a later time.
Another outcome, rather undesirable, is that Gauche may take longer to load the program, since the compiler takes more time for optimization. The load time may increase around 70%. We're planning to improve it in next several releases, so please be patient. If it becomes a real problem for your application, try using autoloads to delay loading less used functionalities.
The error messages (both compile-time and runtime errors) are not as good as it should be. It'll also be improved in next few releases, we hope.
Other changes:
Bug fix release
It turned out that 0.8.2's source-code encoding detection feature had a bug; if you're using Windows-style (CRLF) line-separator, the coding-aware port repeats one character at the beginning of the second line. It doesn't do any harm if first few lines of your code are comments, but it's annoying when you stumbled on it, so I decided to release a fixed version.
This release also includes a couple of improvements: The coding-aware ports recognizes Emacs-style coding name (e.g. euc-jp-unix) and just ignores the Emacs-specific suffix (e.g. -unix). And external representations of f32vector and f64vector are now accurate.
Major revision of infrastructure.
Maintenance release
Also Gauche-kakasi-0.1, a binding module for Japanese morphological analysis library Kakasi, is released. It fixes a few problems when compiled with recent Gauche.
This release fixes a bug related to class redefinition. The bug caused the re-redefined class to lose methods defined to the original classes. Unless you're using class redefinition mechanism heavily, this bug won't bother you much. You can wait for the next release.
Other minor bug fixes:
Release 0.7.4 had a problem in dbm.fsdbm that its database format was incompatible to the previous versions. New release, 0.7.4.1, fixes the problem.
(This release changes C library API a bit, which potentially breaks existing C applications that uses gauche as a library. See 'C API change' below.)
Fixed bugs in matrix decomposition routine and configuration process. Adapted to Gauche-0.7.3.
Fixed a compilation problem on recent Gtk-2.2 releases. Added gtk-accel-group support and gtk-window-get-size (Patch from Michal Maruska).
Now it runs on Cygwin (with OpenGL 1.1.0-6, but without X).
Adapted to gtk-2.2.
Maintenance release
See the Packages page for the details.
Two bugs are found in 0.6.7, which can cause inconvenience in some applications. So the patched version, 0.6.7.1, is released. Fixed bugs are the following two:
More features.
Lots of bug fixes and feature enhancements.
This release fixes build problem on FreeBSD (see INSTALL), and a couple of fixes in gl.math3d module.
Added gtk-text-view and gtk-tree-model APIs. Fixed gtk-tree-view-set-cursor. The interactive listener can be set so that reading EOF will exits the application.
Fixed a bug that the Scheme-level constructor created each widget twice. Support of gtk-dialog-new-with-buttons is added, too.
Various bug fixes and feature enhancements.
You can now have interactive prompt even while gtk-main is running. It is implemented in gauche.listener. See README file for details. Lots of previously missing APIs are added, including support for GtkTreeStore, GtkTreePath, and GtkTreeSelection.
Minor bug fixes and feature enhancements.
gosh -q -Imy/local/directory -lgauche-initAdded gl.math3d module that implements vector and matrix arithmetics for 3D homogeneous coordinates and quaternion arithmetics.
Added texture-related functions, gl-select-buffer and gl-feedback-buffer. Modified gl-call-lists to allow to take a string as either signed or unsigned byte-array. Added more examples. See Extension Packages.
Applied the patch from TAGA Yoshitaka to fix compilation problem in UTF-8 encoding. Added gtk-radio-menu-item support. Extension Packages.
The last few releases of Gauche didn't include INSTALL file due to my mistake. This is the installaion insturuciton..
(define-method object-apply ((s <string>) (i <integer>))
(string-ref s i))Then the call ("abcde" 2) evaluates to #\c.
This works almost all the place where a procedure is allowed.
For example, (map "abcde" '(1 2 3)) => '(#\b #\c #\d).
See "applicable objects" section of the reference manual. (define m (#/(\d+) (\d+:\d+:\d+)/ "Sep 22 00:01:02 2002"))
m => #<regmatch>
(m) => "22 00:01:02"
(m 1) => "22"
(m 2) => "00:01:02"
(m 'before) => "Sep "
(m 'after) => " 2002"#[[:alpha:]].Japanese mailing list is moved from sourceforge.net to sourceforge.jp
There is a bug in Gauche-gtk that makes compiling fail if you're using Gauche in UTF-8 native encoding. A patch is provided by TAGA Yoshitaka.
Added GtkGLExt binding, <g-timer> support, <pango-font-description> support, and GDK keysyms support. See the Extensions page for the download instruction.
This is an initial release of GTK2 binding of Gauche. There are lots of missing APIs; try this and report bugs! See the Extensions page for the download instruction.
Minor fixes.
Bug fix and feature enchancements.
Feature enchancements.
(define map2* (map$ (pa$ * 2)))
(map2* '(1 2 3)) => (2 4 6)
(define dot-product (compose (apply$ +) (map$ *)))
(dot-product '(1 2 3) '(4 5 6)) => 32Feature enhancement, mostly on I/O.
Bug fixes.
Gauche reports an error when you try to use slib2d3. To avoid this, please alter the definition of 'use' macro in src/gauche-init.scm for the following code.
(define-macro (use module)
(let* ((mod (cond ((symbol? module) module)
((identifier? module) (identifier->symbol module))
(else (error "use: symbol required:" module))))
(path (string-join (string-split (symbol->string mod) #.) "/")))
`(begin (with-module gauche (require ,path))
(import ,mod)))
)
Bug fixes and minor feature enhancements.
Patch for 0.5.1 is available. It fixes two problems.
You don't need this patch for other platforms.
ports and fixes
Fixed a link to the Japanese manuals in the Document page.
maintenance release
It is reported that gauche.charconv module may have a problem with libiconv 2.x on FreeBSD 4.4 (in /usr/local). It appears that GNU libiconv works instead. See INSTALL in the tarball for details.
Patch: release 0.4.11 has a bug that the stack is not reset on error in the interactive environment, and makes subsequent error messages messy. Patch is available at Gauche-0.4.11.patch.
(fold + 0 '#(1 2 3 4)) => 10
(map-to <vector> + '#(1 2 3) '#(4 5 6)) => #(5 7 9)
(subseq '#(a b c d e) 1 4) => #(b c d)
See the reference manual for details.library enhancement and bug fixes, again
Yet another round of library enhancement and bug fixes
Another round of library enhancement and bug fixes
Also releasing Gauche-gl 0.1, an OpenGL binding of Gauche, in a separate package. It covers most of OpenGL 1.0/1.1 functions and some of GLU and GLUT functions. It run with Mesa as well.
Maintenance release. I won't be able to do much on Gauche for a few weeks more, so decided to wrap up changes and bug fixes. The reader is now less strict than R5RS, accepting symbols and numbers widely used but not strictly R5RS (e.g. ".12" is read as an inexact number 0.12). It also recognizes |-escape for symbols with special characters. "Apropos" is extended. A couple of bugs in VM are also fixed. Adapted to autoconf-2.52.
Several incompatible changes for the consistency of the design. A few bugs are corrected as well.
Notice: dynamic loading extensions doesn't work on NetBSD/i386 and FreeBSD/i386. Needs to fix GC stuff, which will take some time.
Notice: on some OS, building ext/net/libnet.so fails for an error like "gethostbyname_r undefined". If so, obtain Gauche-0.3.15.patch from the archive. Apply it under the Gauche'' directory that is created by expanding Gauche-0.3.15.tgz.
Release 0.3.14: Added a character encoding conversion module gauche.charconv''. It uses iconv() to convert various character encodings, as well as providing a functionality to guess the encoding of data stream. For details, see the description of gauche.charconv module in the reference manual.
Also several bugs in port and regexp code are fixed.
The online reference manual is available from the document page. It is not finished yet; it's more like a list of available Scheme functions.
Release 0.3.13: Maintenance release: fixed a problem in the release 0.3.12 that compilation fails if you don't have iconv. Some bugs in uvector, bignum and dynamic loading are also fixed.
Release 0.3.11: This release is one step before the character conversion support. Improved code in string.c to support "incomplete strings", i.e. strings that don't consist valid multibyte sequences. The concept of immutable strings is implemented; literal strings are immutable now, and it is an error to modify such strings. String API is changed in incompatible way.
Literal incomplete string is denoted as #"...". Reader and printer are modified to handle it.
Also some logical (bitwise) operations are added to number.c.
Release 0.3.10: Numerical code revisited. Analytical functions start working on complex numbers. Now Gauche can plot the figures in "Common Lisp, the Language 2nd Edition", section "Numbers". (The Scheme program ported from the code shown in pp.339-349 of CLtL2 is not included in the distribution, but if you're curious, drop me an e-mail).
Also several bugs around VM and numeric code are fixed.
Release 0.3.9: Added almost complete set of SRFI-13, a rich string library. And now Gauche supports UTF-8, Shift-JIS and no multibyte (8bit fixed) character strings, as well as EUC-JP (though they're not tested very well except EUC-JP).. It's a configure-time choice. See INSTALL for details.
Release 0.3.8: Number of bugs around division of bignums are fixed. Finally gcd and lcm are implemented. Three R5RS string routines are extended as in SRFI-13.
Release 0.3.7: Numeric code is overhauled; number of bugs around input/output of integers, inlined numeric calculation code, and addition/subtraction/multiplication of bignums are fixed. Regexp now recognizes \s, \S, \d, \D, \w, \W. Reader recognizes #[...] as a literal character set.
Release 0.3.6
Release 0.3.5