ChangeLog:
Version 2.90.1 (July 11, 2021)
- Repaired the docu (especially yabasic.htm)
- Removed references to the old documentation (still available on github)
Version 2.90.0 (July 10, 2021)
- Fixed an error with local variables
- Moved to a new building-environment (see github and there README.org
for details)
ChangeLog:
Version 2.86.6 (March 8, 2020)
- Advancing version for technical reasons
Version 2.86.5 (March 8, 2020)
- Fix double backslash in string before quote
This fixes CVE-2019-19720.
Notable changes:
- Add dependency on devel/libffi
- Reset MAINTAINER, email address does not exist anymore
- Update LICENSE, Yabasic is now MIT licensed since version 2.77.1
ChangeLog:
Version 2.86.2 (December 12, 2019)
- Another fix for heap-buffer-offerflow found with address sanitizer
Version 2.86.1 (December 8, 2019)
- Fix for heap-buffer-offerflow
Version 2.86.0 (November 28, 2019)
- Added new functions bitnot
- Fixes for bit-arithmetic (signes/unsigned)
Version 2.85.0 (November 16, 2019)
- Added new functions shl, shr and round
- Introduced binary literals preceeded by 0b
- Fixes for hex literals
- The error-command no longer adds a line number
Version 2.84.3 (November 3, 2019)
- Better debugging for library path
- Clean builds for Windows setup-program
Version 2.84.2 (October 6, 2019)
- Fixed some potential stackoverflows
- Removed empty dir related with nano
- Tests with tmux only within the Rakefile
Version 2.84.1 (July 20, 2019)
- Make unload_library after call the default for foreign_functions
- Fixes to docu
- Requiring libffi for build (unless specified other by configure-option)
- explicit error no longer unwinds call-stack
Version 2.84.0 (July 12, 2019)
- New command foreign_buffer_set_buffer
Version 2.83.3 (June 30, 2019)
- Documentation
Version 2.83.2 (June 30, 2019)
- Allow specifying null-pointer for foreign functions
Version 2.83.1 (June 26, 2019)
- Fix for line-numbers in errors after import
- Updating the manual
Version 2.83.0 (April 29, 2019)
- Unix: Added a syntax-file for the nano-editor;
contributed by Stephan Muesse
- Made parentheses around condition in while and until optional
- Better error messages on misaligned control structures
- New family of functions and commands foreign_* to invoke functions
from external c-libraries
- Fixes for line-numbers in error messages
- Revised and updated the documentation
Version 2.82.1 (March 11, 2019)
- Allowing comments after import statement
- Fixes regarding error messages
Version 2.82.0 (February 17, 2019)
- Advanced version of autoconf and other tools
- Fix in tests
- Fixed nested import of libraries
- Libraries can now be found in the directory of the main file too
- Error messages try to show and mark the offending part of the code
- Hexadecimal numerical literals are supported, e.g. print 0xff
Version 2.81.4 (January 27, 2019)
- Fixed error with inkey$ and clear screen
- Fixed fatal error with inkey$ and upper case letters
Version 2.81.3 (January 13, 2019)
- Fixed a compile-problem on macos
- Corrected a rendering problem on www.yabasic.de, which had cut off the
bottom-lines of many pages
Version 2.81.2 (January 2, 2019)
- Fixed a problem under netbsd, which prevented yabasic from finding
its own executable
- Fix on macos for curses-initialization e.g. during "clear screen"
- Fix that allows libraries to start with a comment introduced by
a hash or a single quote
- Made the prior "Guide into the guts" available again as "Some
remarks on changing Yabasic"; see www.yabasic.de
- Document options for unix and windows in the same chapter
Version 2.81.1 (November 1, 2018)
- Fix: Allow yabasic to run from within a script
Version 2.81.0 (October 27, 2018)
- New function chomp$
- Added new peek "interpreter_path"
- Fixed a sporadic issue with bound programs
Version 2.80.0 (September 8, 2018)
- Added functions floor() and ceil()
- Checking for function clock_gettime during configure
Upstream changes:
Version 2.79.2, May 13, 2018
No changes over 2.79.1
Advanced patchlevel to get in line with tagging again
Version 2.79.0, April 21, 2018
Introduced new peeks "secondsrunning" and "millisrunning"
Bugfixes regarding the switch statement
Upstream changes:
Version 2.78.5, April 3, 2018
Within a bound yabasic-programs the name is correctly set (as returned by peeking "program_name")
Introduced new string-peeks "program_name" and "program_file_name"
Bugfixes regarding bound programs and libraries
Version 2.78.4, March 2118, 2018
Fixed a problem with bound yabasic-programs, that include more than three libraries
Introduced new peek "secondsrunning"
Upstream changes:
Version 2.78.3, January 21, 2018
Fixed a up to 4-times performance penalty, that has been introduced in a previous version
Brought back "Edit" to the windows context menu
Version 2.78.2, August 27, 2017
The ran()-function is now guaranteed to return 2**30 different values
Version 2.78.1, August 13, 2017
No more dump when using color without window open
Processing of yabasic.xml finds hellip-entity
Version 2.78.0, January 21, 2017
Allowed for numeric argument after break
Fixed format of manpage (unix)
Reworked the switch-statement, added tests
Upstream changes:
Version 2.77.3, December 29, 2016
Fixed insecure usage of strcpy
Better logging for windows installer
Spelling corrections
Version 2.77.2, December 17, 2016
Fixes for coloured text under windows as reported by TheMeq
msvcr140.dll is no longer required under Windows
Several spelling corrections contributed by ginggs
Updated and fixed man-page under linux
Version 2.77.1, November 13, 2016
Adopted the MIT License for yabasic
Switched to semantic versioning; the new schema is MajorRelease.MinorRelease.Patchlevel
New peek$ for version, documented all peeks
Various bugfixes
Setup program now offers to start the demo
Redid the development process for yabasic; you may now participate in the development of yabasic itself via github: https://github.com/marcIhm/yabasic. However, the main site for programming in yabasic is still https://www.yabasic.de
Upstream changes:
Version 2.769, July 4, 2015
Fixing two bugs under Windows:
print color under windows handles single argument correctly
cpu extension sse2 is no longer required, so yabasic should run again on older hardware
Version 2.768, May 25, 2014
Fixing some bugs under Windows and Linux:
Core dump e.g. under Linux mint related with grafics
Problems with embedded newlines within the Windows console
Keys pressed within grafic window are not always reported to inkey$ (Windows-Version)
Spurios problems with colors under Windows and linux (reported but not fixed yet)
Remove the patch which included in upstream source
Upstream changes:
2.767 (March 15, 2014)
Fixed a bug which caused yabasic under Windows to freeze on syntax errors
2.766 (March 15, 2014)
Fixed some bugs related with ncurses under linux
2.765 (January 30, 2014)
Added support for later versions of ncurses and 64 bit Systems
Avoided forks for inkey$ under Unix
Fixed a bug related with break and continue
2.764 (January 22, 2014)
- Added support for later versions of ncurses and 64 bit Systems
- Avoided forks for inkey$
PR 46532 by Wen Heping.
While here, set LICENSE.
Version 2.762 (September 16, 2005)
- Swapped the precedence of unary minus and exponentiation to
follow the mainstream of programming languages. Suggested
by Mike Hoffman.
- Fixed a bug with drawing the outline of a triangle.
- Lots bugs and typos fixed in the docu. Thanx to A. Costa !
- rinstr() is okay again.
- system$() may not dump any longer, if an external command returns no output.
- Some improvements for compiling on FreeBSD.
- Made the text-command working again.
- Maybe yabasic does not leak resources under Windows 95 any longer.
- Some fixes related with the console window under Windows
- Added a list of reserved words to the documentation.
- Special thanks to Derek and Mike Huffmann !
Version 2.76 (April 25, 2005)
Some major improvements for grafics
- Full color support !
- Different fonts for the text-command
- The new command triangle
Version 2.75 (May 19, 2004)
- Yabasic finally has an Icon under Windows
- The str$()-function, may now format numbers
like 123,456.56 (or 123.456,56 for german conventions)
- Changed the system()-function under Windows
to use the right command-processor
- Added a list of command, grouped by topics to the
documentation
- Yellow is no longer brown under windows
- Removed a security problem related with printing
under Unix
- Programs, that import libraries can now be
bound, including all the imported libraries
Version 2.740 (January 18, 2003)
- Implemented the bind-feature
- More verbose messages on failing open-calls
Version 2.730 (August 19, 2003)
- Complete rewrite of the documentation
- Updated my system, which introduced new
versions of the toolchain (gcc, autoconf, ...)
- No changes in yabasic itself
Several changes are involved since they are all interrelated. These
changes affect about 1000 files.
The first major change is rewriting bsd.builtin.mk as well as all of
the builtin.mk files to follow the new example in bsd.builtin.mk.
The loop to include all of the builtin.mk files needed by the package
is moved from bsd.builtin.mk and into bsd.buildlink3.mk. bsd.builtin.mk
is now included by each of the individual builtin.mk files and provides
some common logic for all of the builtin.mk files. Currently, this
includes the computation for whether the native or pkgsrc version of
the package is preferred. This causes USE_BUILTIN.* to be correctly
set when one builtin.mk file includes another.
The second major change is teach the builtin.mk files to consider
files under ${LOCALBASE} to be from pkgsrc-controlled packages. Most
of the builtin.mk files test for the presence of built-in software by
checking for the existence of certain files, e.g. <pthread.h>, and we
now assume that if that file is under ${LOCALBASE}, then it must be
from pkgsrc. This modification is a nod toward LOCALBASE=/usr. The
exceptions to this new check are the X11 distribution packages, which
are handled specially as noted below.
The third major change is providing builtin.mk and version.mk files
for each of the X11 distribution packages in pkgsrc. The builtin.mk
file can detect whether the native X11 distribution is the same as
the one provided by pkgsrc, and the version.mk file computes the
version of the X11 distribution package, whether it's built-in or not.
The fourth major change is that the buildlink3.mk files for X11 packages
that install parts which are part of X11 distribution packages, e.g.
Xpm, Xcursor, etc., now use imake to query the X11 distribution for
whether the software is already provided by the X11 distribution.
This is more accurate than grepping for a symbol name in the imake
config files. Using imake required sprinkling various builtin-imake.mk
helper files into pkgsrc directories. These files are used as input
to imake since imake can't use stdin for that purpose.
The fifth major change is in how packages note that they use X11.
Instead of setting USE_X11, package Makefiles should now include
x11.buildlink3.mk instead. This causes the X11 package buildlink3
and builtin logic to be executed at the correct place for buildlink3.mk
and builtin.mk files that previously set USE_X11, and fixes packages
that relied on buildlink3.mk files to implicitly note that X11 is
needed. Package buildlink3.mk should also include x11.buildlink3.mk
when linking against the package libraries requires also linking
against the X11 libraries. Where it was obvious, redundant inclusions
of x11.buildlink3.mk have been removed.
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
curses.buildlink2.mk. This was wrong because we _really_ do want to
express that we want _n_curses when we include the buildlink2.mk file.
We should have a better way to say that the NetBSD curses doesn't
quite work well enough. In fact, it's far better to depend on ncurses
by default, and exceptionally note when it's okay to use NetBSD curses
for specific packages. We will look into this again in the future.
with some minor modifications by me.
Yabasic implements the most common and simple elements of the basic language;
It comes with goto/gosub, with various loops, with user defined subroutines
and Libraries. Yabasic does monochrome line graphics and printing.
Yabasic runs under Unix and Windows; it is small (around 200KB) and free.