Ada Perl C
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
TIA (Tiny IDE for Ada) 1.2 Copyright (c) 1999-2007 Ken O. Burtch and Free Software Foundation Home Page: http://www.pegasoft.ca/tia.html Designed and Programmed by Ken O. Burtch This sofware is released under a modified GPL licence. See COPYING for more information, and the special exception mentioned in the comments at the start of some of the source files. Be nice to add Java ant as a builder TIA 1.2 - CHANGES SINCE 1.1 1. Support for Subversion (svn) source control. 2. Support for GCC Java (gcj). 3. Source control setting now saved in the user's options file. 4. CVS no longer selected by default for a new project. 5. Project Parameters now reorganized into two screens. 6. Tooltips added to Project Parameters. 7. Find / Tagged Rec renamed Find / Class. 8. Java support added for Find / Class. 9. Proj / Share Project now saves the project file before sharing. 10. Hilight options and auto item help now in Options dialog. 11. Item help now in Find menu. 12. tiadefs.txt file now contains language information. TIA 1.1 - CHANGES SINCE 1.0.2 1. Support for Cygwin. TIA 1.0.2 - CHANGES SINCE 1.0.1 1. Support for Perl. TIA 1.0.1 - CHANGES SINCE 1.0 1. Makefile bug fix. 2. Build Errors now wrapped (that is, long lines don't leave window). TIA 1.0 - CHANGES SINCE 0.7.6 NEW FEATURES BUGS FIXES AND MINOR CHANGES 1. Slightly enlarged Texttools' open/save dialogs. 2. Directories in open/save dialogs now shown with "/". 3. Texttools cut on edit line bug fixed. 4. Moving with arrows in open dialog skipping quick open 1 fixed. 5. Project name now optional for Make and Cook. 6. Changed "About TIA" to read "Anything" instead of "Ada". 7. Background updates allowed for Java, no effect on Shell/Bush/Perl/ HTML. 8. DOS CR's removed when opening a DOS text file. 9. Uppercase keywords/tags now hilighted for case-insensitive Ada and HTML. 10. CVS Update is only requested on startup every 24 hours (instead of every time). 11. A warning is issued for CVS commit conflicts. 12. (TextTools) TextTools allows Show/EditListInfo to start at the bottom of the list. 13. Share Changes comments no longer results in system() errors for unescaped characters. 14. Build status messages now appear properly. 15. "Gnat Errors" now "Build Errors" on Proj/Build. 16. (TextTools) Fixed insert text bug in EditList and SourceEditList 17. (TextTools) Fixed calendar accessory. 18. (TextTools) Improved insert/delete justification code for EditList and SourceEditList. 19. (TextTools) Paste on small file fixed. 20. Find Subprogram/Tagged Records now works on first file loaded by project. 21. Memory leaks removed. TIA 0.7.6 - CHANGES SINCE 0.7.5 NEW FEATURES 1. Perl support. 2. Bash Shell support. 3. HTML support BUGS FIXES AND MINOR CHANGES 1. Fixes for TextTools 2.0 2. Platform Signature is now correctly generated for non-Ada machines. 3. "Source File Problems" window now stretches to screen width. 4. Tabs in source files now converted to appropriate spaces on load. 5. For new projects on startup, prompts with open source dialog instead of new source dialog (new is a button in the open source dialog). 6. Trailing spaces on lines removed when a file is saved. 7. Find text no longer displayed if outside of a source control's border. 8. Basenames are shown in the quick open menu instead of full paths. TIA 0.7.4 - CHANGES SINCE 0.7.3 NEW FEATURES 1. Preliminary support for BUSH (PegaSoft Business Shell). 2. Upgraded sources for new version of TextTools. BUGS FIXES AND MINOR CHANGES 1. Keyword hilighting for non-Ada files now works properly when a source file is loaded when TIA is started up. 2. Support for // comments added. 3. Support for GCC 3.1/GNAT 5.0 Pentium optimizations (untested). 4. Loading a text file will now disable the "File/Check" button on. TIA 0.7.3 - CHANGES SINCE 0.7.2 NEW FEATURES 1. Support for CVS added. 2. File/Delete deletes a file from the project and from CVS. 3. File/Diff Last Save is a renaming of old File / Diff. 4. File/Diff Last Commit performs a CVS diff. 5. File/Change Log performs a CVS log. 6. Proj/Update/Diff performs a CVS update. 7. Proj/Share Changes performs a CVS commit. 8. Proj/Share Project performs a CVS import. BUGS FIXES AND MINOR CHANGES 1. Fixed Texttools bug affected auto spell fixing. 2. File/Stats is now Misc/Stats because the File menu was becoming large. 3. Preliminary work on detailed control of GCC options started. 4. Proj/Stats is now Proj/History to avoid confusion with Misc/Stats and CVS status command. 5. Fixed line count for project history. 6. Ada-only menu items disabled for non-Ada source files. 7. Keyword hilighting adjusted on Save As to fit file type. 8. Keyword hilighting fixed on New Source. TIA - 0.7.2 - CHANGES SINCE 0.7.1 NEW FEATURES 1. Support for GNAT 3.13. 2. Support for JGNAT added. Select "JGnatmake" as the builder. Not all project settings / commands are applicable to JGNAT. 3. Project Stats include keystroke count and build count & time in the project menu. 4. Make and Cook options now work. 5. New Project Stats window shows some statistics about your project. 6. Project parameter changes: Debug Setting Rel. Alpha/Beta Prerel. Desc. -fstack-check No Yes Yes Check for stack overflows -gnatwu Yes Yes No Unused/uninitialized checks -Winitialized Yes* No No *when optimizing -fomit-frame-ptr Yes No No F.P. used for debug utils -funwind-tables No No Yes For exception tracebacks gnatbind -E No No Yes For exception tracebacks Optimize Setting Basic Size Speed -ffloat-store Yes Yes No More accurate floats -gnatn Yes Yes No Inter-unit inlining -gnatN No No No Inter-unit inlining (max) You can add switches that aren't automatically set using the project params window. BUGS FIXES AND MINOR CHANGES 1. Background updates with the ALT compiler now work. 2. Fixed bug in procedure that detects the version of Gnat. 3. Non-Gnat errors should no longer crash TIA when you move to the next error. Make and Cook error messages no longer ignored. 4. TIA no longer hangs when saving a new project: the program was closing standard input (file 0) in the UnlockProject procedure (even though no project was open). 5. More comments in the source code. 6. Make now runs "make release", "make beta" or "make" when the project parameters are set to Release, Alpha/Beta or Prerelease respectively. Your makefile can change your compiling switches accordingly. 7. Because ACT version requires a PATH variable change, if a project uses gnatmake or jgnatmake, TIA checks to see if it can be run using the current path. 8. If you are running TIA as root (a bad idea), TIA uses "nice" when running gnatmake/jgnatmake to prevent long builds from stealing all available CPU time. (This is because root runs at a higher priority than normal users.) CHANGES SINCE 0.7 NEW FEATURES 1. Find Subprogram searches for functions and procedures in the source file. 2. Find Tagged Records searches for tagged record declarations in the source file. It doesn't find implemented methods. BUGS FIXES AND MINOR CHANGES 1. New Source changes the window title to "untitled.adb". 2. C, C++, and Java programs may now be checked with File / Check (Find / Next Error will not work with C, C++ or Java). This allows TIA to edit, save and check files in these languages when they are a part of your Ada project. C and C++ are checked with the -Wall switch. 3. If the QuietUpdates option is on, TIA will sync the disks (with the sync() syscall) on a successful project build. 4. If a second TIA copy opens a project, the second session is read-only. 5. For new projects, automatically detects ALT compiler and sets the ALT option in the Project Params window. 6. Compiler and O/S information now displayed in About TIA dialog box. Copyright information corrected. CHANGES SINCE 0.6.1 NEW FEATURES 1. Profiling (using gprof) available under the Project menu. 2. 24 Backup / BackupNow implemented. The backup command is in the options window. If there's no backup command, no backups are performed. 3. TIA help tips now shown at startup at the bottom of the main window. 4. Prototype ddd-style debugger. 5. File/Stub now works if the body already exists. Before, if the body didn't exist, package spec wasn't stubbed. 6. Replace implemented. 7. File/Diff runs the diff command against the last save of the source file. 8. Open Proj menu item saves the current project and opens a new one. INSTALLATION 1. Install the Gnat compiler. 2. Install PegaSoft's Texttools packages. 3. Run the "go" script using "go tia". Go assumes that the texttools are installed in ../texttools. If you installed TextTools somewhere else, you'll need to change the script accordingly. Note: There are changes to the project files and the .tiarc options files. This version is supposed to load the old option and project files and upgrade them. Since I haven't tested this, if TIA fails to update the files, you'll need delete .tiarc and start new project files. INTRODUCTION TIA, Tiny IDE for Ada, is a console IDE for gnat. Besides being my own program, it was written in gnat runs using the GPL texttools packages described later in this document. The screen layout is similar to pico's, with the menu options displayed along the bottom of the screen. If you are running on the Linux console, you can choose the menu items with alt key combinations or using your mouse. This IDE is designed for rapid Ada development. To meet this goal, it uses a number of interesting features: * ddd-style debugger * automatic saving - whenever you open a new source file, tia saves your old file * quiet updates - each time a file is saved, tia will attempt to recompile the file, to reduce the project rebuilding time. Tia will only update one file at a time to avoid slowing down your machine. * automatic spelling correction - When you press return while editing your source file, tia automatically corrects common spelling mistakes for a number of words or phrases, including procedure, function, package, exception, subtype, "end if;", "end loop;" , "end record;". * error hilighting - you can move between compiler errors with a single keypress, and the cursor is automatically positioned at the exact location of the error and the message displayed at the bottom of the window. * quick open - you can open recently opened files with a single keypress * tight integration with gnat - for example, you can load a package spec and create a body using gnatstub by simply selecting Stub in the File menu. * support for keyboard macros QUICK START 1. A SIMPLE PROJECT Type "tia" to start TIA. TIA will inform you that it is starting a new project. (To work on an existing project, type "tia" followed by the project name.) Before you compile a program, you have to set up the project parameters under the Proj menu. For simple, single file programs, put the name of the program in the "Main" line and select your CPU type. TIA will save this information when you quit in a ".adp" (Ada Project) file. If you are using the ALT version of GNAT, turn on the ALT box as well. TIA creates an empty package spec file when a new project is started. You can delete this and type in your first program. Check the source file with Check. If there are errors, use Next Err (or alt-x, NOT cut--ctrl-x) to move to the place where an error occurred and the error message will appear on the bottom of the screen. Repeatedly use Next Err to fix all errors. Note that as you edit the program, such as adding or deleting lines, Err may not take you to the exact line because the lines have shifted up or down. Build your project with Build and if the project is successfully built, TIA will ask you if you want to run your program. 2. EDITING TEXT The text editing command work on entire lines at a time. Cut (or ctrl-x) cuts one line of text. Copy (or ctrl-b) copies one line of text. Paste (ctrl-v) pastes the last line of text you copied or cut. You can mark any line with Mark in the Edit menu (or ctrl-6 or by double clicking a line). The line will be hilighted. When a line is marked, cut (and copy) will cut (or copy) the block of text between the current line and the line you marked. For example, to cut a for loop, mark the "for" line, move the cursor to the "end loop" line, and cut. To paste the lines you cut, move to the new location and paste. Unlike some programs, the cut/copy/paste clipboard is maintained when new files are opened, allowing you to move text between files. You can move to the marked line by using Goto in the Edit menu. To clear the marked line, use Clear Mark in the Edit menu (or mark it again). Append in the Edit Menu (or alt-a) can be used to add comments to the end of a line. There is no Undo in TIA. However, you can load the last saved version of your source code using Revert in the File menu. TIA automatically saves your source code every time you load new source file: the version you Revert to may more recent than the one you last saved. To see the changes you made since the last save, use Diff in the File menu. As you type in each new line of your Ada program, TIA will check for common spelling mistakes and correct them for you. For example, if you type "end loop" and forget the semi-colon, TIA will automatically add the semi-colon for you when you press the Return/Enter key. Or if you type "end lopo;", TIA will transpose the "p" and "o". 3. COMPLEX PROJECTS The Options window in the Misc menu are settings shared by all projects. If background updates is on, TIA will attempt to compile your source file every time you save it. Unless you're in a multiuser environment or you are using a slow computer, you'll want to leave this on. This reduces project building time. If you don't like the blue background, you can use a black background instead by turning Blue Background off. The Backup line is a command to backup your project. TIA will automatically run this command every 24 hours to backup your project files. A good choice for a backup command might be: zip -9r backup *.ads *.adb *.adp *.txt Close the Options window and open the Project Params window in the Proj menu. The compiling and linking lines specify additional switches when compiling and linking. For example, a large project may have files in several different directories. Use GNAT's -I switch to indicate the additional directories. You can also use the compiling line for the GCC -fomit-frame-pointer switch. Normally, TIA does not activate this switch. It gives some performance improvements but can cause unexpected side-effects with certain programs. If you want to try this switch, add it to the compiling line. If you are working on a GUI application, type in the name of your GUI builder program in the GUI builder line. By default, this is "rapid". At any time, you can open your GUI builder in a separate window by selecting GUI builder in the Misc menu. (Of course, this doesn't have to be a GUI builder--you can run any development tool by substituting its name in the Project Param's GUI builder line.) When you are working with several source files, TIA keeps a list of the most recently edited files in a "Quick Open" list. When you open the Open window, the five most recently opened files appear in the bottom of the window. To open one of these files, type alt-n where "n" is the number of the file to open. TIA will open that file and move the cursor to its saved position. In large displays such as a wide xterm window, the "Quick Open" list will also appear to the right of your source code. You can open any of these files by simply clicking on them with your mouse (or using alt and the number). If you are typing the same text over and over, TIA supports keyboard macros. These are described below in the Edit Macros section. TIA KEYBOARD LEGEND: Control Keys Control-6 Mark/Unmark Line Control-A Execute macro (follow with the key for the macro) Control-B Copy (single line or to the mark) Control-E End Control-L Redraw screen Control-N Page Down Control-P Page Up Control-T Backtab Control-V Paste Control-X Cut (single line or to the mark) Control-Y Home Navigating The TIA Screen End End of Document Home Top of Document Page Up Up One Page PageDown Down One Page Esc/F1 Accessories Menu Tab Next Item On Screen Backtab Previous Item On Screen (note: Linux console doesn't support the backtab key) Alt-Char Jump to the item with hot key Char (Linux Console or Xterm) Scroll Bars Keys Down Arrow 10% Forward in Document End Bottom of Document Home Top of Document Left Arrow Back one line Right Arrow Forward one line Up Arrow 10% Back in Document In TIA, the width of the text is limited to size of the edit area. Any lines that are longer that the edit area are denoted with an ellipsis at the end. The edit area does not scroll left or right as it does in pico. PROGRAM REFERENCE The File Menu New Source Clears the source window. Same as New in Open Source--see below. Open Source Open a new source code window, or an existing one. Type in the name of the source file and choose open to open it. (.adb is assumed if you don't specify an ending.) Choose browse to walk through the directories using a open dialog box. Or you can chose one of the recently opened files that appear at the bottom. On the Linux console, use alt-# to open these files. Chose new and TIA will create an empty package body for you to fill in-- just delete what you don't want. Save (alt-s) Saves the file. TIA automatically saves whenever you check or build. Save As (alt-!) Save As. Save the file under a different name. If you are using CVS, new files are added to the CVS repository. Revert (alt-*) Reloads the current file, discarding any changes that haven't been saved by you or TIA. (TIA automatically saves a file when a new one is loaded.) Print Pipes the file, with a header, to the lpr command, printing it on the default line printer. Delete Delete a file. If you are using CVS, the file is deleted from the CVS repository. Diff Last Save Displays a list of all changes since you last saved the source file using the shell diff command. Diff Shared Displays a list of all differences between the source file and the shared version in the CVS repository. Stub Creates an empty package body for the current file. The current file must be a package spec. Check (alt-k) Checks the current file for syntax errors. Xref Displays a crossreference of all identifiers in the current file. Quit Stops the program. You may be prompted to save any changes to your source file. If the project is new, you can save the project and share it with the CVS repository. The Edit Menu Cut (ctrl-x) Deletes the selected text and puts it in the clipboard. Same as ctrl-x. Copy (ctrl-b) Copies the selected text to the clipboard without deleting it. Same as ctrl-b. Paste (ctrl-v) Inserts the text on the clipboard. Same as ctrl-v. Append (alt-a) Moves the cursor to the right end of the current line. This is useful for adding comments at the ends of lines. The Find Menu Find/Replace (alt-y) Find brings up the find dialog to search for text. Fill in the top line and select find to find the next occurrence of the text in your document. Select backwards to search towards the top of the document instead of towards the bottom. Select RegExp to find using a regular expression (you can't replace with RegExp). Fill in the replace line and select replace to replace the text you are searching for with new text. Select cancel to erase the find text. Next finds the next occurrence of the text in the source code. If the text is not found, TIA beeps. Next (alt-n) Repeats the last find/replace Find Subprogram Shows a list of all subprograms. Click on the one you want to goto, and pick "Goto" at the bottom of the screen. Find Tagged Rec Shows a list of all tagged record declarations. Click on the one you want to go to and pick "Goto" at the bottom of the screen. Next Err (alt-x) Moves the cursor to the location of the next error and displays the error message at the bottom of the screen. Goto (alt-g) Moves the cursor to a specific line. The Misc Menu Edit Macros Brings up the macro edit screen. Macros are keyboard short cuts you define. Each macro must fit on a line. The first character on the line is the trigger, and the remaining characters are the keyboard keys the trigger represents. For example, a line "pprocedure" defines a macro "p" that represents the keystrokes "p","r","o","c","e","d","u","r" and "e". To use a macro in TIA, press control-A and then the letter of the macro. Options Opens the options window. Options affect all projects for the current login. The first option is to allow background updates. Turn this option off on slow machines. The second option sets the background colour to blue or black on colour displays. The Backup option contains the name of the shell backup command you want to use to backup your files. TIA will attempt to backup your project every 24 hours using this command. If you don't give a command, no backups take place. A possible choice to backup your source files might be zip -9r backup *.ads *.adb *.adp *.txt For more complex backups, you can create a shell script and put the name of the shell script here. The options are saved in a file in your home directory called ".tiarc". Debugger This item runs TIA's ddd-style mini-debugger, running gdb in a TIA window. The buttons at the top of the screen are ddd commands. The Do button runs a gdb command that you type in. Select quit to stop gdb and return. One of the missing features is that there is no way to send information to standard input to the program that you are debugging. In other words, TIA will lock up if your program is expecting the user to type something. GDB This item suspends TIA and runs the gdb debugger. GUI Builder This item runs the GUI builder named in the Project Params screen. The default GUI builder is RAPID. Stats (alt-t) Display information about the current file and memory usage. The Project Menu Open Project Saves the current project file and opens another project file. Project Params The project parameters window. Choose the debugging level, CPU type and optimization level and TIA will pass the information to gnat accordingly. You can specify additional gnatmake options (like -n for no main program in Ada when you want to call Ada subprograms from another language), linking options (such as Linux libraries you need to link to), and the name of the main program. Static binding turns static binding on and off. CPU Options: 386, 486, Pentium series, Other (non-Intel) Optimize Options: None (no gcc -O flag), Basic (gcc -O1), Smaller (gcc -O2) Faster (gcc -O3 and -ffast-math) Debugging Options: Prerelease: debugger support (gcc -g), assert/debug pragma's on, basic and elaboration checks on Alpha/Beta: assert/debug pragma's on, basic checks on, no elaboration checks Release: assert/debug pragma's off, all non-essential checks off Project Type: Program: compile and link project as an executable program Package: compile, but don't link project since there's no main program Static Library: (unfinished) compile and generate a static library file named lib<project>.a Shared Library: (unfinished) compile and link a shared library file named lib<project>.so.a Builder: Specify the name of the program to build the project with, usually gnatmake. Gnatmake: gnat's project builder Make: Linux's standard project builder Cook: an enhanced project builder based on make. Static Linking: select this to link in all the libraries used into a self-contained executable Egcs: select this to execute "egcs" instead of "gcc" [untested] ALT: select this to compile on a system using the ALT version of gnat Build (alt-b) TIA attempts to build the project and create a working executable file. Profile Using gprof, TIA rebuilds your project and runs it. When the run is complete, TIA displays gprof's analysis of your program. Use this to determine which parts of your program are being executed the most. Stats Show project statistics, including the time of the last build and the number of builds. Backup Now TIA automatically runs the backup command in the options window every 24 hours. To run the backup command immediately, choose "Backup Now". Update / Diff Merge the shared project in the CVS repository with your copy of the project. Show any conflicts. Share Changes Create a new version of the project to be shared in the CVS repository. Share Project Share a new project in the CVS repository. You will have to stop TIA and check out the project before it can be used. The ? Menu This is the About window. It shows information about the current version of TIA, including the version and copyright notice.