Since 0.1.4b: *MISC* o Renamed the members in the os::Rect class (MinX/MinY/MaxX/MaxY to left/top/right/bottom) o Renamed the members in the os::Point class (X/Y to x/y) o Renamed the os::Point2 to os::Point o Changed all coordinates from "int" to "float". o Added integer-versions of os::Rect and os::Point (Named IRect and IPoint) o Made the os::Rect::Width() and os::Rect::Height() return (right-left)/(bottom-top) rather than (right-left+1)/(bottom-top+1). os::Window::ResizeTo() and os::View::ResizeTo() is changed accordingly. o Fixed various members of os:: classes to take const references to objects like os::Point and os::Rect rather than a copy of the object o Replaces a few "const char*" to "const std::string&" and a few "char*" to std::string in the GUI classes. o Rewrote a few GUI components and the window-decorators to produce less flickering when resized. o Optimized the backdrop rendering in the desktop-manager. o Added a new appserver interface class for setting various preferences, the class is named os::AppserverConfig. o Support for moving windows to front when selected, without double-clicking the border or click on the "depth" button. o get_thread_id(name) now actualy search for the name if not NULL unlike the previous versions where it always returned the callers thread ID. It still return the ID of the calling-thread if name is NULL. o Various cleanup and small optimizations in the kernel. *BUG FIXES* o Fixed Emacs shutdown-sequnce so it manage to save it's window size and position. o Fixed a starvation problem where a high-priority network-thread started spinning when out of memory, blocking out any threads that might be able to get more mem by shrincing the disk-cache. Since 0.1.4: *NEW FEATURES* o Support for ISA DMA in the kernel. o Implemented chroot() o Implemented sync() o Fixed the user-attributes functions in AFS. o Changed exec() and load_library() to use the DLL_PATH environment variable when searching for DLL's *MISC* o Optimized the block-cache memory utilization. The 0.1.4 version wasted almost 50% of the RAM it used, the current version is down to 1-2% overhead. It also solved a problem with the 0.1.4 kernel getting the kernel-heap fragmented and ended up running out of usable RAM. Another benefit with the new cache is that it lives in a spearate memory area and is not interleaved with kmalloc()'ed memory so a random buffer-overflow bug in the kernel is less lightly to trash the cache and cause disk-corruption. *BUG FIXES* o Fixed a lot of dead-lock bugs in the VM/cache system. o Fixed a bug in select() on TCP-sockets. select() whould not wait for data to be ready for reading on a non-blocking socket. o Fixed a bug in the TCP send() function causing EWOULDBLOCK to be returned even if there was free space in the buffer of a non-blocking socket. o Fixed a bug in the TCP/IP stack causing recv() to block even if the receive buffer was empty and the other end had closed the socket. Since 0.1.3: *NEW SOFTWARE* o The Python programming language. o RSync *NEW FEATURES* o Rewrote the block cache to be dynamically resized to better utilize available memory. o Changed the readahead scheeme to better handle cases where blocks are fetched lineary but backwards. o Redesigned the locking scheeme in the block-cache to allow threads to lookup old blocks while new blocks are being loaded and to allow loopback mounting of filesystem. o The memory monitor displays total cache size and dirty cache size. o Added readv()/writev() functions to the filesystem and device-driver interface o Added support for select() to the device-driver interface o Ethernet drivers can be replaced at runtime (without rebooting). o Changed slashes to back-slashes when accessing the underlying FS in DOSFAT. o Extended the screen mode API to make it possible to set the refresh rate and display size/position. o The Matrox GFX driver support hardware pointer on Millenium cards and supports adjusting refresh-rate on Gxxx cards. o Fixed a few bugs in the S3-Virge driver and added support for adjustable refresh-rate. o The screen-mode configureation is properly saved. o The color configuration is properly saved. o Added a GetIdleTime() member to os::Application to make it possible to query the time since last input event (For screensavers, etc) o The bmview utility can now view png bitmaps o os::TextView automaticly add scrollbars when needed. o Editing in os::TextView can be undone (-) o Optimized os::TextView and reduced the flickering when inserting text. o Added a "numeric only" flag to os::TextView o os::DropDownMenu can be canceled by hitting outside the selection box o Reduced the flickering in the os::DropDownMenu o Improved mouse handling in os::DropDownMenu and os::Menu o Menus (regular and dropdown) no longer cause the active window to loose it's "focus highlighting" o The os::Spinner view now accept input from the edit-box o Better optimized os::Message o Hotkeys for terminating applications and closing windows. o API to iterate the contents of an os::Message o API to delete individual elements in an os::Message *BUG FIXES* o Initiate the TLD pointers on childs of a forked process. o Fixed a bug in the "#! interpreter" handling in execve() o Fixed a bug in os::Slider. o Fixed a bug in the appserver config file parsing that made it fail to load the color configuration. o The "ALT-Tab" window selction menu is now centered on all screen modes o os::Menu::GetItemAt( int nIndex ) always returned NULL. o Fixed a bug in the appserver crashing it when a "active" window on a "non-active" desktop was closed. o get_thread_id() does no longer crash when called from a forked process. Since 0.1.2: *NEW SOFTWARE* o Port of the QMail mail-server. o New port of Bind (with named, and all other binaries/libraries). *NEW FEATURES* o Unix style named pipes (mkfifo()) o File record-locking (flock()) o Loadable network drivers. o Added various ioctl() methods for configuring network interfaces. *MISC* o Major speedup on normal pipes (created with the pipe() syscall). o Major cleanup of the network stack, mainly the ARP protocol to allow more than one active ethernet interface. o Support for non-blocking UDP-sockets. o Almost total rewrite of the IP routing. o Major cleanup of the PTY filesystem. It now handle -d properly. o Various cleanup in the different API's used by device-drivers and file-systems. *BUG FIXES* o Fixed a bug in the Vesa2.0 and S3-virge video driver. The bug caused the memory-area used to access the frame-buffer to be unaligned (not on a 4K boundary), and made the appserver miss the frame-buffer with up-to 2048 bytes. o Added checks in create_area() and clone_area() to detect attempt to create areas on a not page-aligned address, and fail if so. o Fixed some memory leaks in the kernel. Since 0.1.1: *NEW FEATURES* o Support for partition's on hard disk's. It is now possible to create a AFS filesystem on a partition. no need to set aside a whole harddrive. o get_system_info() will now fill out every members of the SystemInfo_s structure. o A new plugin API in the appserver making it possible to replace the window border-decoration. o Configurable keybord settings (keymap and timing). o Configurable default colors used in the GUI. o New preference program to configure the the GUI apperance and keyboard settings. o The View class now remember it's "hidden" state so it is safe to call Show() before it is added to a window. o A new Start() member in the Window class making it possible to start the message loop without making the window visible. o New GUI control: There is now a TabView available in the GUI toolkit. o Added Invalidate( bool bRecursive ) and Invalidate( const Rect& cRect, bool bRecursive ) members to the view class. o The appserver now respects the WND_NOT_RESIZABLE flags for windows. o TextView can now be set in read-only mode. It will then stop handling mouse and keyboard input, and pass those events back to it's parent. o Read only mode for the DropDownMenu. When set in read-only mode, the menu will be opened when the user click in the edit box. o Various improvements and bug-fixes in the high-level message passing system. It is now possible to do syncronous send/reply communication with the Message and Messenger classes. It is also possible to use the Messenger class to pass Message objects without involving a Looper. *MISC* o Redesigned large parts of the libgui.so/appserver message protocol to make it easier to add new appserver interfaces. The changes do not affect the external API's. o More API classes have been documented. o Documentation of the coding-style used in AtheOS. *BUG FIXES* o Fixed a bug in the Vesa20 video driver that scrolled the display vertically, making it wrap. o Removed a race condition in the Window constructor and destructor. o Bugfix in the NE2000 driver. It used a bad index when looking up the vendor name of a PCI card. o Fixed a bug in the kernel making it crash when disabling SMP. o Rewrote the quit message handling in the Looper class to avoid some deadlocks. o Verious bugfixes/improvements in the TextView class.