Development
SDCC, the Small Device C Compiler
SDCC is a multi-platform, multi-target C cross compiler that was originally written by Sandeep Dutta and has been further improved by a number of other people:
- ASXXXX and ASLINK, a Freeware, retargetable assembler and linker.
- extensive MCU specific language extensions, allowing effective use of the underlying hardware.
- a host of standard optimizations such as global sub expression elimination, loop optimizations (loop invariant, strength reduction of induction variables and loop reversing ), constant folding and propagation, copy propagation, dead code elimination and jump tables for 'switch' statements.
- MCU specific optimizations, including a global register allocator.
- adaptable MCU specific backend that should be well suited for other 8 bit MCUs
- independent rule based peep hole optimizer.
- a full range of data types: char (8 bits, 1 byte), short (16 bits, 2 bytes), int (16 bits, 2 bytes), long (32 bit, 4 bytes) and float (4 byte IEEE).
- the ability to add inline assembler code anywhere in a function.
- the ability to report on the complexity of a function to help decide what should be re-written in assembler.
- a good selection of automated regression tests.
The SDCC package components include the sdcc compiler, the sdcpp C preprocessor, assemblers and linkers for the supported target processors, a simulator for the 8051 processor, the sdcdb source debugger and the packihx Intel hex file packing tool.
Version 2.8.0 of SDCC was announced on March 30, 2008, it includes the following changes:
added predefined preprocessor macro SDCC_REVISION holding SDCC's subversion revision number added preprocessor macros SDCC_PARMS_IN_BANK1, SDCC_FLOAT_REENT and SDCC_INT_LONG_REENT sdcpp synchronized with GNU cpp 4.2.3 multiple infiles for sdcclib added option --acall-ajmp: replaces lcall/ljmp with acall/ajmp added support for many PIC devices sdcc executables on Mac OS X are built as universal binaries, so that they can run on both ppc and i386 Mac OS X added --Werror command line option Windows installer enhancements generation of cdb debug info for as-z80 and link-z80 generation of cdb debug info for variables in pdata for mcs51 Tail call optimization for functions that take no parameters on Z80 Improved multiplication of unsigned chars on Z80 ISO/IEC 9899 standard compliant integer promotion of integer function arguments if --std-cXX is defined in command line Numerous feature requests and bug fixes are included as well.
Your author downloaded SDCC 2.8.0 as a .tar.bz2 file onto a machine running Ubuntu 7.04 "Feisty Fawn". The file was uncompressed, and untared. The configure script was run and one package dependency issue was resolved by installing flex. The second run of configure worked, as did the make and make install steps. Running sdcc -v produced the expected result: SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.8.0 #5117 (Apr 1 2008) (UNIX).
A few test cases were compiled and assembled using the default MCS51 target, then using the -mz80 switch to produce output for a Z80 processor. All of the tests seemed to work, and produced readable Intel Hex files that appear to be suitable for movement to a development platform. Your author recognized the hex C30001 at the beginning of the code as a Z80 jump instruction, activate the wayback machine. This may be a long way from developing a working embedded application on real hardware using SDCC, it does show that the system builds and is stable enough to consider using as a development platform.
The Z80 and mcs51 microprocessors have been around since the late 1970s, newer versions are still being produced. The Microchip PIC microcontroller family and the Atmel AVR family are currently very popular microcontroller platforms. The AVR is the processor used in the recently featured Arduino open hardware microprocessor design, although that uses a different development system.
SDCC allows microprocessor applications to be written in C, and that greatly expands the range of problems that can be solved by small embedded machines. The field of C cross-compilers has traditionally been dominated by proprietary Windows-based software. SDCC allows one to develop embedded microprocessor designs using open-source software under Linux.
System Applications
Backup Software
GPB: version 0.03 (SourceForge)
Version 0.03 of GPB has been announced. "GPB can be a ready to use out of the box backup solution or it can be the foundation for you to build and improve upon. The core and the power of GPB lies in the use of Bash scripting. I just released version 0.03 of the GPB backup software. This version is a cleanup of the 0.02 code."
Database Software
Postgres Weekly News
The March 30, 2008, 2008 edition of the Postgres Weekly News is online with the latest PostgreSQL DBMS articles and resources.
Interoperability
Samba 4.0.0alpha3 announced
Version 4.0.0alpha3 of Samba has been announced. "Samba 4 is the ambitious next version of the Samba suite that is being developed in parallel to the stable 3.0 series. The main emphasis in this branch is support for the Active Directory logon protocols used by Windows 2000 and above. Samba 4 is currently not yet in a state where it is usable in production environments."
Mail Software
libdomainkeys: 0.69 released (SourceForge)
Version 0.69 of libdomainkeys has been announced. The software is: "A general purpose set of tools, C library and CPAN modules to help DomainKeys developers. The goal is that these tools and library can be easily adopted by all MTAs, LDAs and possibly MUAs. This project is about conforming to the DomainKeys standard, Here is a maintenance release. Nothing major, just some old patches that were sent in and a fix for a policy bug."
Networking Tools
PowerDNS Recursor 3.1.5 released
Version 3.1.5 of PowerDNS Recursor has been announced. "We would like to thank Amit Klein of Trusteer for bringing a serious vulnerability to our attention which would enable a smart attacker to 'spoof' previous versions of the PowerDNS Recursor into accepting possibly mal[]icious data. Details can be found on http://www.trusteer.com/docs/powerdnsrecursor.html. It is recommended that all users of the PowerDNS Recursor upgrade to 3.1.5 as soon as practicable, while we simultaneously note that busy servers are less susceptible to the attack, but not immune."
Twisted 8.0 announced
Version 8.0 of the Twisted networking framework has been released by Twisted Matrix Laboratories. "Twisted 8.0 is a major feature release, with several new features and a great number of bug fixes. Some of the highlights follow. - The IOCP reactor is now much improved and many bugs have been resolved. - Twisted is now easy_installable. - Many improvements were made to Trial, Twisted's unit testing system. - A new memcache client protocol implementation was added. - So much more!"
Security
OpenSSH 4.9 released
Version 4.9 of OpenSSH has been announced, it includes a number of new features, bug fixes and the following security fix: "Disable execution of ~/.ssh/rc for sessions where a command has been forced by the sshd_config ForceCommand directive. Users who had write access to this file could use it to execute abritrary commands. This behaviour was documented, but was an unsafe default and an extra hassle for administrators."
Desktop Applications
Audio Applications
Ardour 2.4 released
Version 2.4 of Ardour, a multi-track audio workstation, has been announced. "Well, its over a month later than expected, but Ardour 2.4 is finally released. Right now, there is a source tarball and an Intel native version (details on IRC). A respectable list of new features, many small improvements and an important set of bug fixes make up the news for this one."
Desktop Environments
xmonad 0.7 released
Version 0.7 of xmonad has been announced, this release includes improved GNOME support and more. "xmonad is a tiling window manager for X. Windows are arranged automatically to tile the screen without gaps or overlap, maximising screen use. Window manager features are accessible from the keyboard: a mouse is optional. xmonad is extensible in Haskell, allowing for powerful customisation. Custom layout algorithms, key bindings and other extensions may be written by the user in config files. Layouts are applied dynamically, and different layouts may be used on each workspace. Xinerama is fully supported, allowing windows to be tiled on several physical screens."
GNOME Software Announcements
The following new GNOME software has been announced this week:- Banshee 0.98.2 (1.0 Alpha 2) (new features)
- Beagle 0.3.5 (bug fixes)
- buzztard 0.3.0 (new features and bug fixes)
- cairo 1.5.16 (new features and bug fixes)
- GLib 2.16.2 (bug fixes and translation work)
- glibmm 2.16.1 (bug fixes and documentation work)
- gnome-power-manager 2.22.1 (bug fixes and translation work)
- gswitchit-plugins 0.9 (library change)
- Hipo 0.6.99 (new features and bug fixes)
- Labyrinth 0.4 (new features, bug fixes and translation work)
- libanjuta-python 0.3.1 (initial release)
- libxml++ 2.23.1 (new features and bug fixes)
- Swfdec 0.6.2 (bug fixes)
KDE 4.0.3 Released
KDE 4.0.3 is out. This is primarily a maintenance release, but a number of improvements and optimizations have been folded in as well. See the changelog for details.Digikam Plans for KDE 4 (KDE.News)
KDE.News looks at what's happening with Digikam. "There are many improvements including a cleaner user interface, improved performance, a new thumbnail bar, XMP support, ability to run on Mac OS X, GPS tagging using Google Maps, multiple album collections supporting collections on network shares and removable media, and auto gamma and white balance with RAW. Digikam is also the first open source photography tool with 16-bit colour depth support." Lots of screenshots included.
KDE Software Announcements
KDE Software Announcements The following new KDE software has been announced this week:- acetoneISO 2.0.1 (unspecified)
- AllTray 0.69 (unspecified)
- audiokonverter 5.7 (new features and bug fixes)
- BeeDiff 1.6 (new features and bug fix)
- Firefox Tweaks 1 (unspecified)
- Kapitalist 0.4 (new features and bug fixes)
- KBibTex 0.2.1 (unspecified)
- kdesvn 0.14.3 (bug fixes)
- KMidimon 0.5.1 (bug fixes and documentation work)
- kmtr 0.2 (unspecified)
- Kommander Action Proxy 0.2 (unspecified)
- kpackage 3.5.9 (unspecified)
- KPoGre 1.6.2 (new features and bug fixes)
- kradioripper 0.1.3 (unspecified)
- Ksshaskpass 0.4 (new features and bug fixes)
- MyFace 0.2.alpha (code improvements)
- Okteta 0.1 Beta 1 (initial release)
- Package Creator 1.0 (unspecified)
- pixman 0.10.0 (new features and bug fixes)
- 'Q' DVD-Author 1.0 Final (new features and bug fixes)
- QNetWalk 1.3 (new features, bug fixes and translation work)
- QTads 1.7 (new features and bug fixes)
- QtiPlot 0.9.4 (new features and bug fixes)
- QuickLauncher Applet 0.1 (unspecified)
- SynCE-KPM 0.11 (unspecified)
- Zhu3D 4.0.4 (new features, bug fixes and translation work)
Xorg Software Announcements
The following new Xorg software has been announced this week:- xf86-video-geode 2.8.0 (code rework, bug fixes)
Desktop Publishing
Inkscape 0.46 released
Inkscape 0.46 is available; this release has a long list of new features, many of which were apparently developed by 2007 Google Summer of Code participants. "Inkscape can now directly import vector PDF files, and PDF export is greatly improved. Thus, Inkscape 0.46 provides an easy, open source tool for editing and creating PDF documents."
Electronics
gEDA Binary Suite v0.0.2 released
Version 0.0.2 of the gEDA Binary Suite, a collection of electronic design tools, has been announced. "I am pleased to announce the second official release (v0.0.2) of the gEDA Binary Suite for x86 GNU/Linux. I fixed some reported installation issues (thanks for all the reports) and I have linked this release on the gEDA download page."
Encryption Software
GnuPG 1.4.9 released
Version 1.4.9 of the GnuPG encryption package has been announced, it features a fix for a possible security vulnerability that was introduced in version 1.4.8. "Note that this version is from the GnuPG-1 series and thus smaller than those from the GnuPG-2 series, easier to build and also better portable. In contrast to GnuPG-2 (e.g version 2.0.8) it comes with no support for S/MIME or other tools useful for desktop environments. Fortunately you may install both versions alongside on the same system without any conflict."
Instant Messaging
Akonadi Sprint Readies for KDE 4.1 (KDE.News)
KDE.News covers a recent sprint that was aimed at improving the Akonadi PIM framework. "Last weekend a group of developers gathered in Berlin at the KDAB office for an Akonadi sprint. The goal was simple, getting Akonadi in shape for the first public release of Akonadi when KDE 4.1 is released. In the couple of days they met, they made an amazing amount of 270 modifications to the KDE repository, and worked on average from 10am to 3am to make a big step into reaching that goal."
Mapping Software
eWorld: 0.5 beta released (SourceForge)
Version 0.5 beta of eWorld has been announced. "eWorld is a framework to import mapping data from providers, such as OpenStreetMap.org (OSM), visualize it, edit and enrich it with events or annotational attributes and pass it to traffic simulators, such as SUMO or VanetMobiSim. The old eWorld team is proud to announce its last release: 0.5 beta. Many bugs were fixed and eWorld has a new, shiny visualizer interface to be used from other applications."
Music Applications
Csound 5.08 released
Version 5.08 of Csound, a music synthesis system, has been announced. "The Csound team are pleased to announce that v5.08 finally made it to the download site. Largely a bug-fixing release, it does include an(other) internationalisation scheme, together with new opcodes, better line number tracking and the usual gratuitous changes."
Office Suites
AbiWord v2.6.0 released
AbiWord 2.6.0 is out. See the release notes for a long list of new features, including wider language support, Gnumeric integration, collaborative real-time editing and, inevitably, an OOXML import filter.OpenOffice.org 2.4 released
OpenOffice.org 2.4 is out. "Users will appreciate changes such as usability improvements in printing, and further enhancements to PDF handling (OpenOffice.org creates PDF files 'out of the box' to ISO standard). The default font is now DejaVu, which supports more languages/localisations than the previous BitStream Vera -part of a raft of localisation improvements covering languages from Hiligaynon to Quechua." See the announcement for more details on new features and improvements.
OpenOffice.org Newsletter
The March, 2008 edition of the OpenOffice.org Newsletter is out with the latest OO.o office suite articles and events.
Web Browsers
Mozilla Firefox 3 Beta 5 released (MozillaZine)
MozillaZine has announced the release of Mozilla Firefox 3 Beta 5. "Mozilla Firefox 3 Beta 5 has been released for testing. The fifth beta of the next major Firefox version offers over 750 bug fixes over Beta 4, including improvements in user interface, location bar autocomplete, bookmark backup and restore, full page zoom and other new features based upon user feedback."
Languages and Tools
BASIC
FreeBASIC: v0.18.4b released (SourceForge)
Version 0.18.4b of FreeBASIC, an open-source 32-bit compiler with MS-QuickBASIC syntax, has been announced. Changes include: "new fblite dialect, restructured installation on Linux (/usr/local), improved QB compatibility, bug fixes, bug fixes, bug fixes."
C
GCC 4.2.4 Status Report
The March 31, 2008 GCC 4.2.4 Status Report has been published. "The GCC 4.2 branch is open for commits under normal release branch rules. All fixes going on that branch should first have gone on trunk and 4.3 branch. GCC 4.2.4 was due around 2008-04-02, which we will miss by at least a week. No release manager did yet volunteer to handle this release."
GCC 4.3.1 Status Report
The GCC 4.3.1 Status Report for March 31, 2008 has been published. "GCC 4.3.1 is due around 2008-05-05. If a workaround for the x86 direction flag issue is agreed and committed then 4.3.1-rc1 may come around a week after such a workaround is committed to the branch, with the release following about a week later subject to no problems requiring 4.3.1-rc2 to be built."
Caml
Caml Weekly News
The April 1, 2008 edition of the Caml Weekly News is out with new articles about the Caml language.
Perl
This Week on perl5-porters (use Perl)
The March 16-22, 2008 edition of This Week on perl5-porters is out with the latest Perl 5 news. has been published.
Python
CodeInvestigator 0.8.0
Version 0.8.0 of CodeInvestigator is out with a change to the directory setting screen. "CodeInvestigator is a tracing tool for Python programs. Running a program through CodeInvestigator creates a recording. Program flow, function calls, variable values and conditions are all stored for every line the program executes. The recording is then viewed with an interface consisting of the code. The code can be clicked: A clicked variable displays its value, a clicked loop displays its iterations."
Tcl/Tk
Tcl-URL! - weekly Tcl news and links
The March 29, 2008 edition of the Tcl-URL! is online with new Tcl/Tk articles and resources.
Build Tools
CMake 2.6.0 Beta is ready for testing
Version 2.6.0 Beta CMake of has been announced. "Please try this version of CMake on your projects and report any issues to the list or the bug tracker ( I have added a CMake-2-6 version ). The biggest change by far is the new new cmake policies." (Thanks to Alexander Neundorf).
Editors
GNU Emacs 22.2 released
Version 22.2 of GNU Emacs has been announced. "Emacs version 22 has a wide variety of new features, including GTK+ toolkit support, enhanced mouse support, a new keyboard macro system, improved Unicode support, and drag-and-drop operation on X, plus many new modes and packages including a graphical user interface to GDB, Python mode, the mathematical tool Calc, and the remote file editing system Tramp."
Version Control
GIT 1.5.4.5 announced
Version 1.5.4.5 of the GIT distributed version control system has been announced. "Among many fixes, a notable one is a regression we introduced in 1.5.4 that changed the behaviour of "git fetch there" when you have the URL information for "there" in .git/branches/there. Such a fetch should have updated your local branch "there", but 1.5.4 and later didn't. This should fix the breakage."
Miscellaneous
How Do I Make This Hard to Misuse?
Kernel hacker Rusty Russell has some thoughts on how to make APIs hard to misuse. The idea is that in addition to making APIs easier to use, that they also be made hard to misuse. "So I've created a 'best' to 'worst' list: my hope is that by putting 'hard to misuse' on one axis in our mental graphs, we can at least make informed decisions about tradeoffs like 'hard to misuse' vs 'optimal'."
Page editor: Forrest Cook
Next page:
Linux in the news>>