ACDK Core (acdk_core)acdk_core contains the core distribution of ACDK.
ACDK Core (acdk_core)
Distribution version: 4.14.
Package version: 4.14.0.
acdk_core contains the core distribution of ACDK.
none
acdk::lang;
acdk::lang::dmi;
acdk::lang::sys;
acdk::lang::ref;
acdk::lang::reflect;
acdk::io;
acdk::util;
acdk::util::logging;
acdk::locale;
acdk::security;
acdk::tools::aunit;
acdk::cfgscript;
acdk::tools::mc;
acdk::tools::acdkmc;
Roger René Kommer (kommer@artefaktur.com).
ACDK Free Edition License.
See License.
The ACDK Core package contains the basic tools and libraries of the ACDK framework.
The acdk_core library includes the basic classes in the namespaces acdk::lang,
acdk::util, acdk::io, acdk::lang::reflect,
and acdk::lang::ref (corresponds to java.lang, java.io, java.util, etc.)
and establish a powerfull and simple framework, with most features
known by Java or C#.
acdk_core also implements the basic reflection, late binding and
object oriented integration of scripting languages.
Additionally acdk_core contains a logging framework similar
to frameworks like log4j.
The Metacompiler acdkmc add Metainfo
like runtime type information, support for ClassLoader
and attached Attributes to C++.
Because software quality is direcly connected to the availability of a testing framework
the unit test framework acdk_tools_aunit is included
in the ACDK Core package.
The library acdk_security contains some basic encryption functions.
The scripting language CfgScript is a full featured
object oriented scripting language with Java/ACDK syntax, which does not only allow to instrument all ACDK
classes in scripts, but also define own ACDK classes.
Detailed documentation about ACDK, with handbook and API reference is available online
or for download.
Nothing at the moment.
===========================================================
4.14.0
- all: boost performance for most platforms and compilers:
- using compiler build in static thread local if possible
If acdk_core.dll/so itself is not static linked to the
the executable still use pthread/Win32 thread local
- with the -acdk-sp command line option for single CPU machines
atomic operations (int++) will not be synchronized.
- acdk::lang::String caches the calculated hashCode, which
is great performance improvement if intensivelly used
HashMaps with String as keys.
String::equals first check if hashCodes of two Strings
are identical.
with the ASCLITERAL/StaticAsciiLiteral literals can be
defined static with precalculated hashCode, which
boosts the equals method.
- Thread::suspend(), and Thread::stop() implemented.
The suspend or stop a thread it has to be in a
waitable status (Object::wait(), Thread::sleep(),
Thread::join(), Process::waitFor()).
- Thread::terminate() implemented. This method 'kills'
a thread immediatelly and does no cleanup or releasing
locks.
- Implemented Process::suspend() and Process::resume.
- Add unicode encoding with and without C-Escapes (AsciiUtf and
AsciiCEscUtf).
- String: fixed memory leak in normalize().
- add acdk::lang::sys::core_memtrace to trace memory leaks
and / or to profile memory usage.
- MS compiler: if C structured exceptions are available
the -> operator on Reference Objects (like o->toString())
does not longer check for NullPointer, but uses the C exceptions
to detect null pointers and throw NullPointerException.
- acdk::lang::String: Add various convenience methods inspired
from the Java apache package StringUtils, like defaultString,
isEmpty, isNotEmpty, isBlank, isAlpha, isAlphaSpace, contains,
containsNone, containsOnly, indexOfAny, lastIndexOfAny, join,
split, deleteWhitespace, repeat, rightPad, leftPad, center,
indexOfDifference, getDifference.
- Unicode characters > 0x0237 where misinterpreted. The new
unicode character table should be fixed now.
- Locales are for ~ 130 languages/countries are available.
The Locale settings for various localized names and formats
are now defined in properties (acdk_core/cfg/acdk/locale).
- if class static RObject create_instance() defines, it does not
need extended metainfo to use Class::forName()->newInstance().
- The default Locale and encoding is initialized from the underlying
operation system.
Add Locale::setSystemLocale() family in case of using/synchronizing
c library calls.
- acdk_tools_aunit: add acdk::tools::aunit::CfgScriptTestCase
and acdk::tools::aunit::CfgScriptTestSuite for integrating
CfgScripts as unit tests.
- All: parse -Dkey=value options for setting system
properties values.
- acdk::util::RessourceBundle: fixed various bugs.
- acdk::util::Properties: fixed various bugs loading/storing
properties from/to file.
- acdk::util::Properties: add eval() method to replace $(KEY)
expression with properties value.
- map common runtime configuration options in System::properties.
Please refer also to acdk_core/cfg/acdk.cfg for available
values.
- All: deleted or replaced LATIN1 characters in code
- All: Supports Visual Studio 2005 Express Beta.
- All: Remove senseless warnings in Visual Studio while preprocessing
for dependencies.
- Unix platforms: fixed Object::wait(ms) with ms > 0 on some unix
platforms (linux).
- Throwable can have a nested cause (like in JDK 1.4).
Introduced StackFrame interface for serializable backtrace information.
- Removed all deprecated TMC1 macros.
- CfgScript: getClass/GetClass also works with basic types.
- Fixed various performance bottlenecks in the CfgScript
interpreter. Performance improved for a factor of 3 - 30.
- acdk_core: support for -logcat [category] and -logto [logtype or file] for all
acdk applications (see ACDK Logging framework);
- acdk::util::Properties: add PropertiesChangeListener to listen on changes
on Properties.
- CfgScript: not only allow to cast any to type, but also type to any.
This has the result that functions with DmiObject parameter accepts
any parameter.
- acdk::io::FileSystem revised. FileSystem plugins are now configured
in the the properties (acdk.cfg by default). Opening files with file://,
http://, ftp://, .zip@ and .tar@ files will automatically load the
the corresponding FileSystem plugins.
- CfgScript/DMI: Provide new ScriptGlobals functions, like inOf, outOf,
byRef, byVal, etc. (preparation for acdkx_rdmi).
- CfgScript: support unix hashbang (#!) lines.
- CfgScript: Implement JSP like templates for CfgScript.
- String::equals() use cached hashCode to improve performance.
- Arrays: add methods to use array as stack, like pushFront,
popBack.
- ObjectArrays: add methods to convert to and from ArrayList directly
- ClassLoader: support for library aliases defined in the
propertyfile acdk.lang.ClassLoaderAliase
(cfg/acdk/lang/ClassLoaderAliase.properties).
- CfgScript: foreach is allowed also for String or StringBuffer
(foreach (char c in StringOrStringBuffer) {})
- acdkmc: Parsing header with "class UPPER_CASE_MACROS MyClass"
fixed. The macro is not limited to ACDK_ or ACDKX_ macros.
- Object finalization: lock memory if this will be referenced
inside finalize or destructor.
- using the THROWx-Statements a throwable can be intercepted
after constructed, but before throws using the
acdk::lang::ThrowListener interface.
- CfgScript: create a DmiDelegate object from a short Script
string.
- CfgScript: enhanced Props class. clone() is supported.
A Props can itself render as CfgScript code.
- acdk::lang::Number (and other, like Integer): Support of
non latin unicode digits in parsing.
Locale support parsing, stringifing float, double values.
Extended support for parsing with leading whitespaces or
trailing characters.
- acdk::lang::Number: fixed parsing literal 0xFFFF (previous
the last F was interpreted as type hint.
- acdk::util::Properties: fixed loading properties files with
backslash at the end of the line.
- MetaInfo: MetaInfo can now be unloaded (needed for CfgScript
debugger).
- CfgScript: support backtick expressions
like s = `"j + 1 is ${i + 1}"`; and transparent invocation
of external programs.
- acdk::util: Some classes where ports from the GNU Classpath
(back in 1999). Added corresponding license notes.
- Complete ACDK: Removed the QPL license. ACDK is distributed
only with LGPL license from now.
- CfgScript: Implemented a command line debugger.
Start acdkcfgscript with -csfdebug option.
- CfgScript: Fixed some bugs in inheritance casting and
invoking.
- CfgScript: add build in support for ACDK_LOG() and ACDK_NLOG().
- CfgScript: add support for interfaces declared in CfgScript.
- CfgScript: Fixed bug in CfgScript ClassLoader
- CfgScript: support for -csfscript argument and/or CSFPATH
environment for search path for the CfgScript ClassLoader.
===========================================================
4.13.0
- all: Port to Solaris 9 and 10 i386.
- acdk_core: String with empty string will use always the same
instance of String.
- acdk_core: Threads on linux with new posix threads initionalization
race condition fixed.
- acdk_core: fixed deadlock situation in threaded garbage collecting.
- CfgScript: Support for exponential numbers, numbers with
postfix to declare the type (12l for a long value).
- CfgScript: Support for unicode character escape encoding.
- acdk_core: StringBuffer fixed bug in append for gcc 2.9x.
- Literals in ACDK C++ with unicode character (other than 7 bit
ascii characters) are encoded with "\\uxxxx" escape sequences.
Literals in C++ code containing unicode character are wrapped
with the _US() (for strings) or _UC() (for single character)
macros.
The old macros based on local source file encoding (latin-1)
are no longer supported.
- new Macro THROW_INSTANCE to throw an throwable instance
which uses meta info to throw the corresponding reference
type.
- extended acdk::util::StringTokenizer with Java compatible
delimiter (each char in the delimiter string is a delimiter).
Improved also performance.
- implemented acdk::util::IdentityHashMap
- implemented acdk::util::EventObject, EventListener,
EventListenerProxy
- acdk::lang::String: implemented intern() corresponding to
Java.
- acdk::util::ResourceBundle: implemented supporting .properties
files (see API documentation)
- CfgScript: implement basic debugging methods
- CfgScript: Fix evaluation of 'if (x) ; else if (y) ; else ;'
- CfgScript: Other minor bug fixes
- All: Fix compatibily to VC 8 (2005)
===========================================================
4.12.0
- extend acdk::io::File with acdk::io::FileInfo and
possibility to make a file read only
- Logger are now scoped. A configured logger with name "a.b" will
be used if a name log entry "a.b.c" will be logged.
- Bug fix using copy constructor of Object or derived.
- All packages: project files for BorlandX currently
for Windows and Linux (debug)
- Fixed acdk::io::FileReader. It now opens file in read only mode
- Implemented class acdk::io::FileInfo and possibility to change file
attributes (chmod).
===========================================================
4.11.0
- Bug Fix: Fixed memory leak in ObjectArray on growing
arrays.
- acdkmc: support pseudo keyword 'final'. If class or method
is tagged with the keyword 'final' not dmi proxy will be
generated for this class/method by acdkmc.
- New CfgScript: Supports lambda expressions.
- New CfgScript: Logical operators (|| and &&) are evaluated
like in Java/C++ (short circuit logical expression evaluation).
- CfgScript: Fixed problem with evaluating complex expressions.
- CfgScript/aunit: Added a GUI testrunner for ACDK Unit tests.
- Fix minor bug in BufferedWriter.
- Introducd acdk/Version.h
===========================================================
4.10.0
- New implementation of the CfgScript language.
Refer to CfgScript Handbook.
- New: Introduced DMI-Proxies Subclassing.
- New: Possibility to use non-ACDK classes/struct with a ACDK object
framework ( References.
- New: introduce Object::_cast and dmicast to allow
extended casts between different implementation languages.
- New: template version of the container Framework: acdk::util::TCollection.
- New: ClassLoader with plugin ClassLoaders.
- New: Completed IO-Framework for CharReader/Writer.
- New: On low memory situations Allocator try to
free memory with the Garbage Collector and throw
OutOfMemoryError exception if no memory cannot be
allocated.
- New: Limit maximum usage of memory globaly or on thread basisc.
(Currently only works with the default heap PagedHeap.)
- New: enhanced test framework to write test reports.
- New/Fixed: Logging framework
- New: Provide ExtObjectVal to wrapp foreign classes/structs
as an ACDK object.
- ScriptVar and DmiObject: various fixes and enhancements.
- Strings: Fixed some bugs in Unicode implementation
- Strings: Optionals automic converter from and to MFC CString class.
- Process: fix minor issues.
- File: list can list files recursivelly
- DMI: Fixed some issues of DMI calling with named arguments
and implemented support for calling with rest and named rest
- Encoding: Fix length of the encoding tables.
===========================================================
4.04 - 4.09
Internal releases for a Customer.
===========================================================
4.03.0
- Added classes RollingFileConsumer and TransactionConsumer
to acdk::util::logging.
===========================================================
4.02.1
- Fixed bug in acdk::lang::String initialized with UTF8 bytes
- Fixed bug in acdk::lang::String initialized with RuccharArray bytes
- Fixed shareing bug in String::append.
===========================================================
4.02.0
- Configuration and documentation fixed
Please refer also to ChangeLog.
===========================================================
4.02.0
- Introduce ACDKPATH in System and ClassLoader to
search additionally libraries.
- Modified trim to enable also triming control (like "\n").
- Configuration and documentation fixed
===========================================================
4.01.1
- Reorganized DMI ClazzInfo. Flags are available in the
acdk::lang::dmi namespace. Meta Info structures may have
parent link.
- Ajustments to acdkmc and all ACDK modules reflecting the
modified ClazzInfo.
- Fixed bug in acdk::io::FileSystem and acdk::io::StandardFileSystem
not closing directory handle on unix platforms.
===========================================================
4.00.2
- Because code duplication between acdk_tools_mc and acdk_make
created new shared library acdk_cfgscript which contains
the tiny CfgScript interpreter. CfgScript is used in
ACDK Meta Attributes and
in ACDK Make.
Improved CfgScript interpreter.
- Introduce ACDK_TOOLS_HOME env and -acdk-tools-home command
line options to enable acdk tools running outside ACDKHOME.
===========================================================
acdk_core 4.00.1 - unicode
- add character encoding in to acdk::locale:
US-ASCII, AsciiUtf, ByteAscii, C-Escape, 8859-1, LATIN-1,
8859-2, 8859-3, 8859-4, 8859-5, 8859-6, 8859-7, 8859-8,
8859-9, 8859-10, 8859-13, 8859-14, 8859-15, 8859-16,
CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256,
CP1257, CP1258, IBM-850, UCS2, UCS2-LE, UCS2-BE, UTF8
- class acdk::lang::String can hold ASCII, UCS2, UTF8. Will
be enhanced with UCS4 and Ansi encodings later
- Introduced new acdk::io::CharReader/Writer classes, to read/
write character strings from acdk::io::Readers
- add class acdk::lang::UnicodeCharacter
- Reorganized meta info. The extended meta info for a
class can now be stored in external dlls. acdk_core
contains only base definitions of the classes and for
garbage collections.
acdk_core_metainf contains information for the members,
of the class. The acdk_core_metainf will be loaded
dynamically if needed (using DMI functionality for example).
- acdk::lang::dmi::ClazzInfo and other classes reoganized.
- acdkmc: Metainfo will also be generated for Enumerations.
- Support for gcc 3.1, 3.2 and 3.3
===========================================================
acdk_core 2.01.3
- acdk::lang::System::getEnvironment returns the
original environment
- Fixed Bugs in acdk::lang::Process.
- Initial version of templated version of the collection
framework. Unfortunatelly gcc 2.92.* crashes (gcc 3.* works
fine). The performance improvements of the templated version
and the Object based version is about 20 - 30 %.
===========================================================
acdk_core 2.01.2
- Fixed bug in ObjectArrayImpl::equals in case of Nil.
- Implemented clone() for the standard value Objects String,
StringBuffer, Boolean, Character, Byte, Integer, etc.
- Fixed wrong exported template, which results in a linker
problem with VC7.
- Borland C++ doesn't like method throw declaration like
'void foo() throw RThrowable, RException'. It results
in strange error message "Unresolved external __tpdsc__ ...".
The THORWSx expands now to empty strings for borland compiler.
- Other Borland C++ compatibility fixed.
===========================================================
acdk_core 2.01.1
- Introduces class attribute ACDK_WITH_DMIPROXY for interfaces
which direct the meta compiler to generate a DMI'able Proxy.
This enables to use scripting and distribution languages to
implement an ACDK Interface.
- In the AbstractObjectRader/Writer the flag SerializeJoinedStrings
will manage the Strings written in a dictonary. Equal Strings
will only written once into the stream. This has following
advantages: If the content written to stream contains many
equal strings (like XML or source code) the size of the stream
is much smaller. Deserialized into an Object the complete
structure in RAM is much smaller, because all equal Strings
shares one instance of the String.
- fixed bug in acdk::lang::Process implementation for Windows.
Detached processes can not catch in, err and out.
- new method acdk::io::Reader::readIntoString()
- implemented acdk::io::File::createTempFile()
- acdk::io::CharArrayWriter::toString() bug fixed.
- removed outdated acdk::lang::Logger interface.
- Fixed little bug in ClassLoader in case of VisualStudio +
release target.
===========================================================
acdk_core 2.00.1
- introduced acdk::lang::sys::core_atomicop
for synchronisation of refcounting.
- introduced acdk::lang::sys::BackTrace as
replacement for the trace macros.
If ACDK is compiled with debugging info,
Backtrace can print call stack (will be used
in Throwable.
- introduced Marshaler interfaces for
extended DMI interface.
BYVALIN, BYVALOUT, BYVALINOUT can
be used to tag arguments for automatic
marshal the Objects in to a stream with
the ObjectWriter interface.
- introduced a acdk/io/AbstractObjectReader/Writer
which should be used base class for compatible
Object serialization.
The acdk/io/BinaryObjectReader/Writer is ajusted.
the acdk/xml/XMLObjectReader/Writer is ajusted.
- introduced RefHolderExt.h for passing a
RObject itself as reference argument.
The IN, OUT, and INOUT-Macros can be
used for this.
- Introduced SBSTR() in acdk/lang/StringBuffer.h
to stream values into a string. Usefull for
expection arguments.
- Changed all Writer/Reader interfaces to
byte*/byteArray.
Fixed some related bugs.
- acdmc splits large clazzinfo files into chunks
of ~ 1/2 MB, to avoid that compiler (especially
with optimation settings) run out of space.
- acdkmc contains a first draft for a ACDK2IDL
which generates from a given ACDK interface
corresponding CORBA IDL definitions.
- intoduced new tags for metainfo:
ACDK_WITH_METAINFO generate all information, including
script interface.
ACDK_WITH_MI_MEMBER generates all information about
members, but none about functions.
ACDK_WITH_MI_GCINFO generates only information, which
may be needed for garbage collection.
The metacompiler acdkmc will generate the corresponding
functions.
- acdkmc do generate function information only for
public functions.
- acdkmc recognise enum as valid type. It will be mapped
to an int.
- New: Class ::acdk::lang::CmdLineParser* for parsing
command lines.
- Changed Casting from RObject's to Interfaces a little
bit. Some automatic casts from an RSomeClass to
RSomeInterface does not work longer, and you have
to cast explicite with:
RSomeInterface si = (RSomeInterface)obj;
Please refer also to ChangeLog.
===========================================================
acdk_core 1.01.0
- Enhanced Metainfo compiler for CORBA functionality.
- Improved Configurations.
- Fixed bug in acdk::lang::String
===========================================================
acdk_core 1.00.2
Changed configuration managment.
===========================================================
acdk_core 1.00
New initial public revision
-----------------------------------------------------------
acdk_core 0.95
-----------------------------------------------------------
- many bugfixes and new implementations e.g. acdk::util::Calendar
and related Classes.
- ClazzInfo structure changed
===========================================================
-----------------------------------------------------------
acdk_core 0.0.3
-----------------------------------------------------------
- add support to Sun Solaris 8, gcc 2.95.2 (sunos-gcc).
- minor documentation fixes
- acdk::lang::ClassLoader, acdk::lang::Package minor fixes
- acdk::lang::String fixed bugs, and minor performance
improvements
- acdk::lang::sys::BoehmGCAllocator. New Plugin interface for
Boehm's Conservative Garbage Collector
===========================================================
-----------------------------------------------------------
2000-26-05 acdk_core 0.0.2 initial public release
|