While Eiffel is widely regarded as the best language for creating fast,
robust, scalable applications, EiffelStudioTM is the only tool for realizing
the full power of the Eiffel Development FrameworkTM. It is available under a
Dual Licensing model. Users can use either commercial or Open Source
licensing.
EiffelStudio is more than just an IDE.
Imagine being able to model your system as you think - capturing your
requirements and your thought processes in Eiffel. Then, when you are ready to
Design, you build upon the model you just created, still in Eiffel. And then
you implement, in Eiffel. You never need to throw anything out and start over.
You don't need extra tools to be able to go back and make changes in
architecture safely. Roundtrip engineering? It's built in by design. Testing,
metrics and productivity tools? They're built in.
And debugging? Eiffel's native Design by ContractTM prevents 90% of the bugs
from ever occurring in the first place - and what bugs remain are easily
traced and repaired, typically within ten minutes.
The reusable library known as the GNAT Component Collection (GNATColl)
is based on one main principle: general-purpose packages that are part of
the GNAT technology should also be available to user application code.
The compiler front end, the GNAT Programming Studio (GPS) Interactive
Development Environment, and the GNAT Tracker web-based interface all
served as sources for the components.
The GNATColl components complement the predefined Ada and GNAT libraries
and deal with a range of common programming issues including string and
text processing, memory management, and file handling. Several of the
components are especially useful in enterprise applications.
* Scripts: Embedding script languages * Traces: Logging information
* Memory: Monitoring memory usage * Mmap: Reading and writing files
* Boyer-Moore: Searching strings * Paragraph filling: Formatting text
* Templates: Generating text * Email: Processing email messages
* Ravenscar: Patterns for multitasking * VFS: Manipulating files
* Storage Pools: Controlling memory mgmt * Tribooleans: Three-state logic
* Geometry: Primitive geometric ops * Refcount: Reference counting
* Projects: Manipulating ``gpr`` files * Config: Parsing configuration files
* Pools: Controlling access to resources * JSON: JavaScript Object Notation
* SQL: Database interface
Luabind is a library that helps you create bindings between C++ and
Lua. It has the ability to expose functions and classes, written
in C++, to Lua. It will also supply the functionality to define
classes in lua and let them derive from other lua classes or C++
classes. Lua classes can override virtual functions from their C++
baseclasses. It is written towards Lua 5.x, and does not work with
Lua 4.
It is implemented utilizing template meta programming. That means
that you don't need an extra preprocess pass to compile your project
(it is done by the compiler). It also means you don't (usually)
have to know the exact signature of each function you register,
since the library will generate code depending on the compile-time
type of the function (which includes the signature). The main
drawback of this approach is that the compilation time will increase
for the file that does the registration, it is therefore recommended
that you register everything in the same cpp-file.
Perl has changed over time, gaining new features, new functions, increasing its
flexibility, and reducing the impact on the C namespace environment (reduced
pollution). The header file, typically ppport.h, written by this module attempts
to bring some of the newer Perl features to older versions of Perl, so that you
can worry less about keeping track of old releases, but users can still reap
the benefit.
Why you should use ppport.h in modern code: so that your code will work with
the widest range of Perl interpreters possible, without significant additional
work.
Why you should attempt older code to fully use ppport.h: because the reduced
pollution of newer Perl versions is an important thing, so important that the
old polluting ways of original Perl modules will not be supported very far into
the future, and your module will almost certainly break! By adapting to it now,
you'll gain compatibility and a sense of having done the electronic ecology
some good.
This module corrects the speed problem, at least with respect to scalar
variables. When Readonly::XS is installed, Readonly uses it to access the
internals of scalar variables. Instead of creating a scalar variable object and
tying it, Readonly simply flips the SvREADONLY bit in the scalar's FLAGS
structure.
Readonly arrays and hashes are not sped up by this, since the SvREADONLY flag
only works for scalars. Arrays and hashes always use the tie interface.
Programs that you write do not need to know whether Readonly::XS is installed or
not. They should just "use Readonly" and let Readonly worry about whether or not
it can use XS. If the Readonly::XS is present, Readonly will be faster. If not,
it won't. Either way, it will still work, and your code will not have to change.
Your program can check whether Readonly.pm is using XS or not by examining the
$Readonly::XSokay variable. It will be true if the XS module was found and is
being used. Please do not change this variable.
This module implements ISO 8601 date, time and duration parsing. The
implementation follows ISO8601:2004 standard, and implements only date/time
representations mentioned in the standard. If something is not mentioned there,
then it is treated as non existent, and not as an allowed option.
For instance, ISO8601:2004 never mentions 2 digit years. So, it is not intended
by this module to support 2 digit years. (while it may still be valid as ISO
date, because it is not explicitly forbidden.) Another example is, when no time
zone information is given for a time, then it should be interpreted as local
time, and not UTC.
As this module maps ISO 8601 dates/times to standard Python data types, like
date, time, datetime and timedelta, it is not possible to convert all possible
ISO 8601 dates/times. For instance, dates before 0001-01-01 are not allowed by
the Python date and datetime classes. Additionally fractional seconds are
limited to microseconds. That means if the parser finds for instance nanoseconds
it will round it to microseconds.
jEdit is an Open Source programmer's text editor written in Java. It is
released under the GNU General Public License. jEdit was written for Java 1.1
with Swing 1.1, and also runs under Java 2.
As far as text editors written in Java go, jEdit is one of the best. It has an
easy to use, intuitive interface, and enough features and flexibility to please
even the most hard-core programmer. A very incomplete list of jEdit's features
follows.
o Syntax highlighting for 200+ file types (including C, C++, Java, Perl, etc)
o Semi-intelligent auto indent in C, C++ and Java modes
o Bracket highlighting and matching
o Powerful macro system
o Auto-expanding abbreviations for the frequiently used strings
o Powerful search and replace - supports regular expressions and multiple file
search/replace; Search and replace operations can be recorded in macros
o Any number of strings and caret positions can be stored for later use in
so-called registers
o Rectangular selections for working with column-based files
o Any number of editor windows can be opened, and each view can be split into
multiple panes for side-by-side viewing of multiple files
o Unlimited undo/redo
OpenEXR is a high dynamic-range (HDR) image file format developed by
Industrial Light & Magic for use in computer imaging applications.
OpenEXR is used by ILM on all motion pictures currently in production.
The first movies to employ OpenEXR were Harry Potter and the Sorcerers Stone,
Men in Black II, Gangs of New York, and Signs. Since then, OpenEXR has become
ILM's main image file format.
OpenEXR's features include:
* Higher dynamic range and color precision than existing 8- and 10-bit
image file formats.
* Support for 16-bit floating-point, 32-bit floating-point, and 32-bit
integer pixels. The 16-bit floating-point format, called "half", is compatible
with the half data type in NVIDIA's Cg graphics language and is supported
natively on their new GeForce FX and Quadro FX 3D graphics solutions.
* Multiple lossless image compression algorithms. Some of the included codecs
can achieve 2:1 lossless compression ratios on images with film grain.
* Extensibility. New compression codecs and image types can easily be added
by extending the C++ classes included in the OpenEXR software distribution.
New image attributes (strings, vectors, integers, etc.) can be added to
OpenEXR image headers without affecting backward compatibility with existing
OpenEXR applications.
Under Linux there aren't many freely available vector graphics editors and
as far as I know there are none that can edit EPS (encapsulated postscript)
and PDF (portable document format) files. I produce lots of these files in
my day-to-day work and I would like to be able to edit them. The best vector
graphics editor I have found so far is Inkscape but it only reads SVG
files... (Note: the upcoming v0.46 should be able to read PDFs!)
To overcome this problem I have written a very small utility to convert PDF
files to SVG files using Poppler and Cairo. Version 0.2.1 is available here
(with modifications by Matthew Flaschen and Ed Grace). This appears to work
on any PDF document that Poppler can read (try them in XPDF or Evince since
they both use Poppler).
So now it is possible to easily edit PDF documents with your favourite SVG
editor! One other alternative would be to use pstoedit but the commercial
SVG module costs (unsurprisingly!) and the free SVG module is not very good
at handling text...
This port installs section 3 manpages for the OpenGL 3d graphics API so
that they are directly accessable from the man(1) command. Especially
useful for the graphics/Mesa port/package.
Included OpenGL related libraries: gl, glx, glu, gle, glut.
gl, glx and glu are taken from ftp.sgi.com. They carried no version
information. Stored in the same directory at the time I grabbed them
was the OpenGL spec 1.2.1, which may or may not indicate the state of
the manpages. :-/
The gl, glx and glu manpages are unusable when just unpacking them. I
repackaged them so that
- the file name actually is the name of the function, including
gl... etc prefixes and respecting case.
- all filenames end in *.3
- hard links are created so that the man command works for all
functions in a manpage, not just the first one.
gle and glut are taken from the glut-3.7 distribution (where the
Webpage says it is beta, but the distfile name does not). These are
unchanged, but there are currently no hardlinks to secondary functions
names.