TweetFollow Us on Twitter

January 93 - Jasik's Incremental Build System and ObjectMaster

Jasik's Incremental Build System and ObjectMaster

Vinko Tsui

Why Incremental build? The first and foremost reason is to save time. Incremental build systems provide you with the ability to avoid recompiling the entire source file and link all object codes each time a procedure changes. It allows you, the programmer, to compile and link in just the procedure containing the change, hence the name "Incremental Build". The Incremental Build System (IBS) discussed in this article comes as an integrated feature of Jasik Design's The Debugger (TD), and the version I'm using is Universal version 2.5.4 (11/18/92). The compiler discussed is the Apple's Macintosh Programmers Workshop (MPW), and the version I'm using is 3.3a14. Unfortunately, MPW's compiler does not support partial compilations, so the only time saver is the linking of your application.

Using IBS

The most common environment for Jasik's Incremental Build System (IBS) is MPW. The main reason for MPW's popularity is that nothing else supported Jasik's IBS, at least not until the appearance of ObjectMaster. Using IBS with MPW requires learning some new habits while editing your source; otherwise, more time may be wasted than gained. I will explain in greater detail later.

Before I go into depth about how to use these two tools together, the reader should understand how to set up an IBS project in the MPW environment. Setting up an IBS project is required whether you're using IBS in the MPW or the OM environment. Since OM is primarily an object-oriented environment and FrameWorks is an object-oriented development publication, I will narrow my discussion to MacApp applications. For MacApp applications to take advantage of the IBS feature, MABuild must create .map and .sym files. This can be done by adding the -Sym and -LinkMap options to your MABuildDefaults symbol.

Creating IBS Projects

In MPW the features of IBS are available through an additional menu in the Menu Bar. This menu is appended to the Menu Bar by the UserStarpup•IBS supplied by Jasik Designs as part of the TD package.

Before editing anything in the source, the programmer will have to create an IBS project. This can be accomplished by selecting the "Create Project…" menu item in the IBS menu. When this menu item is chosen, a dialog will appear explaining that an IBS project is defined by an application or tool you are concerned with, and that the .map and .sym files must also reside in the same folder. Click on the "OK" button to acknowledge this dialog, then a Standard GetFile dialog is displayed for you to locate the application. Now navigate to one of the "." folders (ie. .Debug Sym) which contains the application and then click on the "Create" button to select it. IBS will then respond with another information dialog indicating that a "ProjInfo" folder will be created within your "." folder to hold miscellaneous IBS project files. When you acknowledge this, an other dialog comes up asking you to choose the FIRST option that applies to the IBS project that you're creating. In our case it will always be option #1 that reads "is a MacApp based". Select option #1 and then click the "OK" button. At this point a new xxx_IBS.proj file is created in the "." folder where xxx is the name of your application. There you have it. You have created an IBS project for your MacApp application and are now ready to use IBS with your incremental changes.

To verify that you have done it right, select the IBS menu, and you should see your application with the appropriate path listed as one of the menu items at the bottom of the menu. Each time you create a new IBS project, the new project and its path will be appended to the bottom of the IBS menu. The current active IBS project will have a bullet (•) on the left side of its name. Having the correct IBS project active is very important, because if you have the wrong application active, you will not be able to jump to the shell from within TD while you're debugging you rapplication.

IBS & MPW

This is the environment that Jasik's IBS was initially intended for. To begin using IBS you must be already running the application. After you have started your application, break into TD at a GetNextEvent (idle) stage of your application. While in TD select the "Side Door to Shell" menu item from the leftmost menu where TD shows the available memory. This will bring you back into the MPW shell with the application still running, but you will not be able to select it or any other applications with Finder. Choose a procedure that you would like to edit, and open the file that contains it.

Now comes the point I mentioned at the beginning of the article, about having to learn new habits in editing your source. My normal habit when I'm editing my source is to make some small change and than hit Command-S to save my changes; this will be disastrous when using IBS if you have not done an "Add Hint". Before you save any part of your code, highlight the name of the procedure or procedures (including the class name ie. TMyClass::MyProcedure). Wth the name selected go to the IBS menu and select the "Add Hint" menu item. When you select the "Add Hint" menu item, it tells IBS that the procedure highlighted is the one to be edited. It will make a copy of your source file containing the procedure and name it "xxx.cp_old" where xxx is the name of your source file. Now you can perform the change you wanted.

If you forgot to do the "Add Hint" step and if your editing habits are similar to mine, you will have to do a regular MABuild, by going back to TD, killing the application and then doing an MABuild from MPW. This is why I say that your normal routine will have to change, unless your normal routine does not include saving your work every now and then. With unexpected crashes hovering around corners, especially in a development environment, I don't even notice hitting the Command-S combination anymore.

After you are satisfied that all required changes are done, go to the IBS menu and select the "PatchBuild" menu item. This will tell IBS to go ahead and recompile your changes, and then apply the appropriate patches to your object code and send you right back to TD. In TD's "Notes" window you will see a line with your application name and the statement "PLI sym patches installed". This statement indicates that all your changes are in effect and you can continue your debugging.

You may find this all too cumbersome to be useful, but think about the 5 to 10 minutes that a large MacApp application takes to Link. All this time spent just to correct a simple spelling mistake in a variable name. Fortunately, this cumbersome procedure does not have to be endured, because ACI came to our assistance with the creation of ObjectMaster.

IBS & ObjectMaster

The version of ObjectMaster described here is version 1.0.2. Life is much simpler using IBS under the OM environment. You still have to create the IBS project from within MPW (by the way the MPW shell must be version 3.3 or greater for it to work with OM; otherwise, you must use ToolServer. This is because version 3.3x of MPW is AppleEvent aware.) as described above. If you're using the ToolServer rather than MPW, then you will have to execute the same script as the IBS menu "Create Project" menu item does. Either from ToolServer's Execute Script facility execute the IBS_Create_Proj script, or from OM's Worksheet execute the OMIBS_CreateProject script. After the IBS project is created, you will have to let OM know about it. From the Build menu in OM find the "Incr. Build Sys." sub menu and select the "Set Project…" menu item. This will bring up a Standard GetFile dialog for you to locate the IBS Project that was created. Navigate to the "." folder that you have specified in MPW and choose the newly created xxx_IBS.proj file.

To activate the IBS feature, all you have to do is to select the "Incremental Build" menu item from the IBS sub menu in OM. After you "Exited" TD using the "Side Door to Shell", each time a procedure is changed from the Browser window the appropriate IBS "Add Hint" command will be done automatically. Note that only changes from within the Browser window will be tracked automatically by OM for IBS, any changes from within the File window will have no similar effect.

When you're ready to implement your changes, all you have to do is to select the "Patch Build" menu item from the IBS sub menu in OM. Unfortunately, there are no indications within OM that a Patch Build is in progress, so you will not know that something is happening. You will have to either keep the MPW Worksheet visible or switch to MPW to monitor the Patch Build process. As in the MPW environment, when the Patch Build process is completed it will bring you back to TD for debugging. One more additional time saver as compared to MPW is that you can "Kill" your executed application from OM rather than jumping back to TD and terminating the application. This is done by the appropriately called menu item "Kill Problem Program" in the IBS sub menu.

Last Words

To say the least I am for the use of IBS with ObjectMaster. This is not to say that IBS is not usable in the MPW environment, just that OM makes it much easier. To find out more about The Debugger you can contact Jasik Design at (415) 322-1386 or ALink: D1037. For ObjectMaster you can contact ACIUS in North America at (408) 252-4444 ALink: D4444, in France try ACI at 33-1-42.27.38.54.
 

Community Search:
MacTech Search:

Software Updates via MacUpdate

f.lux 42.2 - Adjusts the color of your d...
f.lux makes the color of your computer's display adapt to the time of day, warm at night and like sunlight during the day. Ever notice how people texting at night have that eerie blue glow? Or wake... Read more
Google Chrome 114.0.5735.90 - Modern and...
Google Chrome is a Web browser by Google, created to be a modern platform for Web pages and applications. It utilizes very fast loading of Web pages and has a V8 engine, which is a custom built... Read more
Pinegrow 7.5 - Mockup and design web pag...
Pinegrow (was Pinegrow Web Designer) is desktop app that lets you mockup and design webpages faster with multi-page editing, CSS and LESS styling, and smart components for Bootstrap, Foundation,... Read more
Malwarebytes 4.19.14.4978 - Adware remov...
Malwarebytes (was AdwareMedic) helps you get your Mac experience back. Malwarebytes scans for and removes code that degrades system performance or attacks your system. Making your Mac once again your... Read more
Slack 4.32.126 - Collaborative communica...
Slack brings team communication and collaboration into one place so you can get more work done, whether you belong to a large enterprise or a small business. Check off your to-do list and move your... Read more
DEVONthink Pro 3.9.1 - Knowledge base, i...
DEVONthink Pro is DEVONtechnologies' document and information management solution. It supports a large variety of file formats and stores them in a database enhanced by artificial intelligence (AI).... Read more
Alfred 5.1.1 - Quick launcher for apps a...
Alfred is an award-winning productivity application for OS X. Alfred saves you time when you search for files online or on your Mac. Be more productive with hotkeys, keywords, and file actions at... Read more
Thunderbird 102.11.2 - Email client from...
As of July 2012, Thunderbird has transitioned to a new governance model, with new features being developed by the broader free software and open source community, and security fixes and improvements... Read more
Posterino 4.3 - Create posters, collages...
Posterino offers enhanced customization and flexibility including a variety of new, stylish templates featuring grids of identical or odd-sized image boxes. You can customize the size and shape of... Read more
Affinity Photo 2.1 - Digital editing for...
Affinity Photo - redefines the boundaries for professional photo editing software for the Mac. With a meticulous focus on workflow it offers sophisticated tools for enhancing, editing and retouching... Read more

Latest Forum Discussions

See All

Black Clover M: Rise of the Wizard King...
Garena has announced the opening of pre-registrations for its upcoming adventure RPG, Black Clover M: Rise of the Wizard King. Developed by VIC Games Studio, Black Clover M will be available in ten different languages to cater for a huge audience... | Read more »
‘Shovel Knight Pocket Dungeon’ Comes to...
Puzzle action adventure game Shovel Knight Pocket Dungeon from Yacth Club Games was announced to hit mobile through Netflix alongside its big free DLC pack that was planned for PS4, Switch, and PC platforms. The developer has now revealed that... | Read more »
Apple Arcade Weekly Round-Up: Updates fo...
I was surprised to not see new Apple Arcade games announced for June, but maybe Apple is waiting for WWDC 2023. This week, we get over half a dozen notable updates for games on the service. Episode XOXO brings in the new original story: Gilded Love... | Read more »
Rotating Run ‘n Gun Shooter ‘Roto Force’...
Roto Force is a game that has been in development for a number of years now, but as spotted in our forums today it appears this one has finally has a release date set for next month. First off, Roto Force is a run ‘n gun shooter at heart, but with... | Read more »
SwitchArcade Round-Up: ‘Etrian Odyssey O...
Hello gentle readers, and welcome to the SwitchArcade Round-Up for June 1st, 2023. Well, here we are. The first day of the last month of the first half of the year. Where does the time go? At least as far as May is concerned, it went to Zelda for me... | Read more »
New ‘Vampire Survivors’ Update for Mobil...
The most recent Vampire Survivors (Free) news was that it is being adapted into a premium animated TV series. Today, developer poncle has pushed out a new update on iOS, Android, Xbox, and PC platforms bringing in new relics, the ability to seal... | Read more »
Former Apple Arcade Game ‘Transformers:...
Back in November 2021, Apple Arcade added Red Games Co’s PvP brawler Transformers: Tactical Arena (Free) to the service. | Read more »
No Man’s Sky Out Now on macOS After Bein...
At WWDC 2022, Apple announced that the brilliant No Man’s Sky would be hitting macOS and iPadOS “later in the year". Since then, we hadn’t heard anything about the ports, but Sean Murray started teasing an Apple-related announcement on Twitter... | Read more »
Out Now: ‘Dungeon Boss: Respawned’, ‘Bum...
Each and every day new mobile games are hitting the App Store, and so each week we put together a big old list of all the best new releases of the past seven days. Back in the day the App Store would showcase the same games for a week, and then... | Read more »
SwitchArcade Round-Up: ‘Sunshine Shuffle...
Hello gentle readers, and welcome to the SwitchArcade Round-Up for May 31st, 2023. In today’s article, we’ve got a surprisingly large number of new releases to look at for a Wednesday. Indeed, that’s the bulk of today’s work, with just the usual... | Read more »

Price Scanner via MacPrices.net

Apple AirTags 4-pack on sale for $79, $20 off...
Verizon has Apple AirTags 4 Pack on sale for $79.99, shipped, for a limited time. That’s $20 off Apple’s MSRP. Their price is the lowest available for 4 Pack AirTags from any of the retailers we... Read more
Apple Watch SE available at Apple for up to $...
Apple has Certified Refurbished Apple Watch Series SE models available today on their online store for $40-$50 off MSRP, starting at $209. Each Watch includes Apple’s standard one-year warranty, a... Read more
Find the lowest prices on Apple MacBooks usin...
Our Apple award-winning MacBook Price Trackers are continually updated with the latest information on prices, bundles, and availability for 16″, 14″, and 13″ MacBook Pros along with 13″ MacBook Airs... Read more
Apple increases iPhone trade-in values ahead...
Get up to $630 on the purchase of new or refurbished iPhone at Apple using their official Trade In program. Trade in your old iPhone, and Apple will apply its appraised value toward the purchase of... Read more
11-inch M2 iPad Pros on sale for $60-$75 off...
Expercom has 128GB and 256GB WiFi 11″ iPad Pros with Apple M2 processors on sale for up to $75 off MSRP through June 6, 2023. Shipping is free. Their prices are the lowest currently available on... Read more
Mac Musings: iMac Turns 25 (Plus? The ‘Mac Po...
COMMENTARY – The month of May marks two milestones, one for Apple and the other for this writer. The iMac — Apple’s all-in-one desktop computer — is now a quarter of a century old. Not even the... Read more
Apple Studio Display with Standard Glass now...
Amazon has the standard-glass Apple Studio Display on sale for $250 off MSRP for a limited time. Shipping is free: – Studio Display (Standard glass): $1349.99 $250 off MSRP Their price is the lowest... Read more
12.9-inch WiFi iPad Pros on sale for $100 off...
Amazon has 12.9″ 128GB, 256GB, and 512GB WiFi iPad Pros with Apple M2 processors on sale for $100 off MSRP, each including free shipping. Their prices are the lowest available for these iPad Pros... Read more
13-inch M1 MacBook Airs on sale for $799, $20...
Amazon has Apple 13″ M1 MacBook Airs on sale for $200 off MSRP again, only $799.99. Their prices are the lowest available for new MacBooks today among the retailers we track. Stock may come and go,... Read more
Available today at Apple: 13-inch M2 MacBook...
Apple has standard-configuration 13″ MacBook Pros with M2 CPUs and 8GB of memory in stock and available today starting at $1169, Certified Refurbished, and ranging up to $150 off original MSRP.... Read more

Jobs Board

Security Officer - *Apple* Store - NANA Reg...
…security is our \#1 priority\. This is a public environment at the Apple Store and surrounding areas with the corresponding levels of traffic \(employees, visitors, Read more
Systems Administrator- *Apple* - NOVA Corpo...
…is seeking a Systems Administrator with experience in administering and maintaining Apple hardware and software, including but not limited to, servers, PCs (Macs), Read more
*Apple* Technician - CompuCom (United States...
…**cell** and enjoy our generous employee benefits! Our client is currently seeking an ** Apple Technician** to join their team onsite in Santa Clara, CA. This Read more
*Apple* Certified Technician - LeadingIT (Un...
Apple Certified Technician Level 1 Apple Technician Are you a perfectionist who enjoys following directions? Do you need variety and change to keep from getting Read more
Omnichannel Associate - *Apple* Blossom Mal...
Omnichannel Associate - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.