GB2351574A - Multiple platform application build environment - Google Patents

Multiple platform application build environment Download PDF

Info

Publication number
GB2351574A
GB2351574A GB9915142A GB9915142A GB2351574A GB 2351574 A GB2351574 A GB 2351574A GB 9915142 A GB9915142 A GB 9915142A GB 9915142 A GB9915142 A GB 9915142A GB 2351574 A GB2351574 A GB 2351574A
Authority
GB
United Kingdom
Prior art keywords
platform
makefile
common
build
shared
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB9915142A
Other versions
GB9915142D0 (en
Inventor
Matthew Kelvin Vaughton
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to GB9915142A priority Critical patent/GB2351574A/en
Publication of GB9915142D0 publication Critical patent/GB9915142D0/en
Publication of GB2351574A publication Critical patent/GB2351574A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/47Retargetable compilers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

This invention relates to a build environment for multiple platforms in which a developer develops a source code application for compilation into multiple object code applications for many platforms. In an environment in which the vast majority of the source code that forms the delivered product is common across many platforms and operating system environments it is desirable to architect a build model that requires no changes in the shared source or makefile content each time an additional new operating system or platform is added to the supported list. The method of processing a build makefile within a multi platform development environment comprises the following steps. A makefile processor is instructed to execute, 103, a makefile which is common and shared across all supported platforms and environments. The common shared cross platform makefile defines only platform-independent values and then tries, 104, to include a platform-dependent makefile which only defines platform or environment specific values. The result of combining, 106, the values defined by the common shared cross-platform makefile and the platform-dependent makefile is used to build the required platform targets. The separation of platform-independent and platform-dependent build information in which the platform element is replaceable provides for development scalability, and protects the shared source code base from intrusive changes each time a new platform has to be supported.

Description

2351574 MULTIPLE PLATFORM BUILD ENVIRONMENT
FIELD OF INVENTION
This invention relates to a build environment for multiple platforms in which a developer develops a source code application for compilation into multiple object code applications for many platforms.
BACKGROUND OF INVENTION
In an environment in which the vast majority of the source code that forms the delivered product is common across many platforms and operating system environments it is desirable to architect a build model that requires no changes in the shared source or makefile content each time an additional new operating system or platform is added to the supported list. Traditional approaches often require platform specific make files to build both shared and platform specific code- Recent build technologies, notably the Open Software Foundation (OSF) Open Development Environment (ODE) provide make files that are common and shared across many platforms.
The IBM Open Software Foundation (OSF) Development Environment (ODE) provides a method for developers to simultaneously and independently create code for various releases of a program. This development process works in conjunction with, and does not interfere with, established releases controlled by release administrators.
Developers can perform builds to test the functioning of their code against established program levels. Release administrators can use ODE to create knew backing builds and, ultimately, new releases of code for completely different platforms.
Some ODE terminology is explain as follows. A project is a set of sources that have been grouped together and are treated as a unit.
Projects can be a large as the OS and as small as ODE itself, each project has separate builds. A source file is a text file containing program code to be transformed, for instance, into an executable program.
A target is the desired result of some transformation from source to object. Compilers and linkers are examples of some of the tools used to generate targets. Makefiles are used to define targets, and the mk command is used to update targets. The makefile is used by the mk command to specify target and dependencies and what actions to perform to create the target. In a makef ile, a target file may be dependent on none or more.
source iiles.
A build is typically a process of compiling source code into object code, and then linking the object modules to create an executable 2 program. ODE uses its own build command and bases its mk on a building model found in most UNIX systems: the make command and a control file called maketile. makefile contains the variables and specifies the include statements needed for the build. Some basic characteristics of building with ODE are:
All shared ODE makefiles are the same cross all platforms build and mk are used for all builds mk obtain much of their information from environmental variables and command line variables. To customize the build environment, you can change these variables. Sources and built objects are maintained in separate sub directories. Headers and libraries are kept in the export subdirectory. Common makefiles contain frequently used build rules. The makefile for each component contains an INCLUDE statement for the common makefiles (.include<$ (RULES;_MK)>). During a build, definitions of variables within the makefile trigger execution of rules in the common makefiles.
Makefiles contain information on how the build should be performed.
one significant difference between the standard UNIX development environment and the ODE environment is ODE's use of conunon makefiles.
Common makefiles exist in both ODE and prior art Unix - ODE's real difference is that ODE provides true cross platform compatibility.
Common makefiles hold frequently-used build rules in one place so that hlese rules do not have to be duplicated in each individual makefile. The type of pass specified (export, comp, build, etc.), in conjunction with the variables in the makefile, determines which common rules are triggered. In ODE to include the common makefiles, you_,must specify the statement include <$(RULES-MK)> in the makefile for the source code to be comRiled. This statement must follow all variable definitions in makefile. See ODE Build Reference for an example of a basic makefile).
While the ODE environment is an improvement over platform specific make tiles a further problem iemains, this is the problem of managing platform specific build options and platform specific additional files without intruding platform specific requirements into the shared common make files. As the number of supported platforms and environments increases it is more and more important that platform specific requirements not intrude into the cross platform source and make files and that the cross platform source remain pure.
One known solution is that of pre-processing a single multiple platform makefile (See Figure W. A single 'pre-process, makefile comprising platform independent options is run through a pre-processor to generate multiple platform specific makefiles prior to use in compilation process. Such a pre-processing of a makefile is provided by a UNIX tool imake' further information on which can be found at 3 http://www.primate.wisc.edu/software/imake-stuff/imake-faq.txt. One disadvantage with this is that the lpre-process' make file must be modified for each new platform type which creates a problem of ownership and intrusion into the shared codebase of the 'pre-process, makefile, each new development group wanting access to code developed by a previous group. Furthermore the lpre-process' makefile increases in size with each platform with most of the code redundant for a single platform. This approach is more applicable for situations where different make processors supporting different dialects or versions are employed on each platfom/environment.
Another solution is a single makefile comprising multiple options for each platform for use in a compilation process (see Figure 1B). The compilation application knows which platform supports it and only executes options for that platform. Similar disadvantages as for the lpre-process' makefile apply, the 'multi-option' makefile must be modified for each new platform type which creates a problem of ownership and intrusion. The 'multi-option' makefile also increases in size with each platform with most of the code redundant for each platform. This approach requires the same level of make processor functionality on all platforms - ODE can be operated in this mode.
Both the above mentioned disadvantages (scalability and intrusion) are addressed by a platform specific maketile solution written for the platform it runs on (see Figure 1C and cross referenced with Figure 2).
The 'platform specific' makefile typically comprises 80% of the build instructions including make optimisations for that particular platform.
The remaining 20% of the build instructions may be loaded in an included plattom independent sub-Makefile containing macros.
Makeprocessor control always' start's with the platform maMifile containing most of the build information and the platform makefile includes a small amount of cross platform information. In many environments prior to ODE the need to employ different make processors on each platform limited the amount of information that could be contained in the shared file.
Problems with this approach are that when a new platform is introduced (i) much (typically 80%). information must be provided by the platform (ii) no 'vanilla' build can be started without the platform makefiles (iii) there is no optional' element to this model to allow the optional inclusion of shared information. A vanilla build is a build where no platform dependent makefile exists because it has not yet been written.
4 Most build information is now in the shared files, platform files are optionally included so need not exist if not needed and since control is passed to the shared makefile and not the platform make files it is possible to run vanilla' builds without any platform make files existing, these being added later. This is better suited to environments in which we want as little platform specific information as possible.
It is essential that a platform specific makefile is written for each new platform introduced which can slow up development for each platform. Furthermore it is necessary to choose the correct makefile to match the desired compilation. Problem with the amount of content in the platform files vs the shared files. This approach is often used when platforms have disimilar make processors as this limits the amount of shared content to the lowest common denominator level. once common inake is processors are available (e.g. ODE) then the emphasis can be shifted from platform to shared, this reduces the effort to introduce each new platform and locates more data in shared files and helps reduce costs and maintenance problems.
SUMMARY OF INVENTION
In one aspect of the invention there is provided a method of processing a build within a multi-platform development environment comprising the steps of: (a) interpreting a common shared cross platform makefile using a makefile processor, said common shared cross platform makefile defines platform independent values and variables; (b) including a platform dependent makefile containing platform dependent values and variables which may add to, remove or modify previously defined platform independent values and variables; and (c) building a platform target from the resulting combined makefile values and variables.
Substituting the platform specific parts at a later stage in the makefile processing allows the support ot any number of different platforms and environments without any platform requirements intruding into the pure shared cross platform source and makefiles. Any number of new platforms may be added without requiring any changes (intrusion) to the shared source code base. Development scalability is:hnproved as any number of new platforms can be added without any requiring any changes to the shared source code & makefiles. This allows different development groups to focus on the shared and platform elements across a clean build interface. Reduced development and maintenance costs follow as a result.
With much higher content (80%) now shared the cost of each new platform is reduced as the platform task is smaller.
Some differences are (i) the point where control is passed in at shared not platform (ii) optional inclusion of platform information by TJ 5 shared rather than inclusion of shared by platform. Control is initially passed to the common makefile (this is in contrast to the Sun prior art model which passes control to platform specif ic makef iles).
The common makefile comprises a call instruction to include the platform configuration file, the call instruction to include the platform configuration file is optional. Using ODE all shared component source code makefiles use a "tryinclude" statement to optional include platform specific configuration files. The invention allows object code to be created for which there exists no platform makefile. This is possible for the embodiment because control starts with the common makefile and not the platform makefile which needs to be written first.
The step of locating the platform specific makefile comprises locating a makefile having a predefined named in a predefined location.
The common makefile may specify the name of the target file for the object code.
The common make f i le may specif y the names of the source code f i les.
The platform specific makefile preferably contains less than 30% of the total makefile instructions, the remaining instructions being in,cluded in the common makef ile. In a particularly advantageous example the platform specific makefile contains less than 10% of the total makefile instructions. A further aspect of the invention uses separate shared and platform parts for each component to be built and for each of the shared parts there exists a shared part make file which tries to include an optional platform specific configuration file. If the platform specific configuration file does not exist then the build options set by the shared make files are not changed. If a platform specific configuration file exists then it can modify or add to those options set by the shared make file. Since the platform component can vary between different platforms the different platform specific configuration files can modify the shared options to their own needs with no change to the shared component.
BRIEF DESCRIPTION OF DRAWINGS
In order to promote a fuller understanding of this and other aspects of the present invention, an embodiment will now be described, by way of example only, with reference to the accompanying drawings in which:
Figure IA, B, C are schematic representations of a first, second and third prior art solutions;
6 Figure 2 is schematic representation of the embodiment of the present invention; and Figure 3 is a flow chart of the method of the present embodiment.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENT
The embodiment code base formally consists of all the of platform independent JVM source code and build makefiles files which are applicable to ail supported target platforms or environments. In itself the Sovereign code base can not produce a runtime environment - it must be combined with non-Sovereign platform dependent source code and build makefiles to build a platform runtime environment.
Figure 2 is a representation of the present embodiment. Platform 10 supports Windows development environment 12 which comprises the cross platform shared source code files 14 A,B,C,D; IBM C++ compiler 16A and Microsoft C++ compiler 16B; makefile processor 17; common shared cross platform makefile 18 and platform or environment dependent makefiles 20A and 20B. Platform 10 is for instance a Microsoft Windows operating system running on an Intel Pentium processor.
Makefile processor 17 reads in the common shared cross platform makefile18 and when instructed by tryinclude 32 in the common shared cross platform makefile 18 the processor 17 reads in the platform dependent makefile 20 (A or B depending on environment) for executing the instructions contained therein in preparation for the compilation by compiler 16A or 16B of the source code files 14 into the target file 22.
In this embodiment there are four cross platform shared source code files 14A,B,C,D but the number of files is not essential. There may also be platform dependent source files (not shown) within the environment.
There are two compiler components 16A and 16D for a Microsoft Windows / Intel Pentium platform. However, in a Linux platform embodiment a Linux compiler would be used, without any modification of the common makefile 18 or compulsory addition of an associated platform dependent makefile. In this embodiment several compilers, eg Microsoft Visual C/C++ & IBM C/C++ run in the same development -environment 12 on the same platform 10 and there is no ability to build for other platforms. In another embodiment cross compilation (building onfor platform A on platform B) is possible and therefore further compilers and platform specific makefiles may be added to the development environment 12.' The development environment can also be run on other operating systems, such as AIX or OS/390.
The common shared cross platform makefile IS comprises an instruction 38 to define the list of common shared cross platform source 7 code components 14 to be built. Makef ile 18 can also def ine other common shared cross platform definitions and values such as platform independent sources and targets and options used to build these. The common makefile further comprises an instruction 32 to include the platform generic makefile 20A or 20B. This takes the form of a 'tryinclude' instruction which attempts to include a file but does not terminate the process if no such file exists. The operand of the 'tryinclude' instruction is a predefined file name in a predefined path. For instance makefile-platform' in the main storage directory but another other name or directory would suffice - Referring to Figure 3 the build process starts with a request to makefile processor to process the common shared cross platform makefile so that all the common shared cross platform options and parameters are set for the build (stepl0l). The makef ile processor locates the common makefile 18 (step 102) in the development environment and interprets and performs the instructions contained therein (step 103). When the makef ile processor 17 comes to a 'tryinclude makefile-platform' instruction (step 104) it locates the platform dependent makefile 20A (step 105) and begins to interpret and process instructions contained therein (step 106).
Non-sovereign, platform dependent code is integrated into the build through a well defined extension model which allows platforms to iRfluence the build without having to change or invade the Sovereign code space.
In order to build some platform objects /targets- it may be necessary for platforms to add or include some platform objects with the Sovereign objects, in addition it is usual for the platform to want to influence the compile and link options used during the build. Since the names of additional objects, com1bi'le and link options is platfo)m.
dependent it is necessary to allow the platform to set these in collaboration with the shared Sovereign parts of the build with invading the Sovereign code space. The platform is allowed to set its own options by means of a 'tryinclude' statement in the bottom of each Sovereign component makefile. If no optional platform configuration file exists in the platform directory (pfm) then no settings are changed.
This is an example of a component makefile of the embodiment:
SHARED-LIBRARIES = $(SHLIB-PREF)jvm$(MY-TYPE)$(SHLIB_SUFF} [31] JAVASRC InvokerGen.java [34] JFLAGS -J-msl6m -J-mx64m -nowarn -bootclasspath I'll [351 OFILES $(MY-SOVEREIGN_OBJS) [361 OFILES += invokers${OBJ-SUFF) JAVAHFLAGS += -old (371 T 8 JAVAHSRC [431 java.io.InputStream java.lang-Boolean java.lang.Byte sun.misc.VM CFLAGS += -DHPROF -WHECK-JNI -DBREAKPTS -DDELAY-JIT-LOADING [391 INCFLAGS += $(HPIHEXPS} $(JVMHEXPS) [40] it ( ($(MY-TYPE) == "-d") 11 (${MY-TYPE) == "_g")) CFLAGS += -DLOGGING -DTRACING -DJCONV else CFLAGS += -DDEBUG endif invokers.c: InvokerGen.class [411 ${JAVA) -classpath ${CLASSPATH) InvokerGen < is ${PATH2MY-SOVEREIGN)$(DIRSEP)invokers.txt > invok- ers.c tryinclude <$(MAKEFILE_PLATFORM}> [321 include <$(RULES-MK}> (331 [31] target to be built [32] call to include optional platform configuration file [331 required call to ODE rules file [34] Java source to be compiled into class files [351 options to be passed to javac when java source is compiled E 3-6) Object files used to construct target [37) Options to be passed to Java when header files are generated [391 options to be passed to the C compiler [40] Include file directories to be passed to the C compiler [41] Additional rules [431 class files for which header files should be generated with Java A typical optional platforffi onfiguration file would be iicluded by the statement numbered [21 above, it would reside in platform directory and be called makefile.platform. Remember that makefile.platform files are always included by a Sovereign component make file - they are never executed stand alone. An example of a typical platform configuration file follows with referenced comments:
OFILES += $(MY-PLATFORM-OBJS)[51] OFILES += invokeNative_x86.obj CFLAGS += -19X [52] VPATH += ${PATH 2MY-PLATFORM) [53] SHLDFLAGS += -export: j io_vf print f -export: j io-vsnprintf [54] invokeNative-x86.obj: invokeNative_x86.asm [551 ml -nologo -Fl -Zi -coff -c $(PATH2MY-PLATFORM)$(DIRSEP)invokeNative_x86.asm 9 [511 Append additional platform objects being added to the list of objects to build (note: use of += to append rather than assign) [52] Append additional platform C compiler flags [53] Since additional objects have been added to OFILES and these objects reside in the platform directory we need to include the platform directory in the search path [54) Append additional platform linker shared library flags 155) Define a new rule for building a platform specific object In summary there is described a build environment for multiple platforms in which a developer develops a source code application for compilation into multiple object code applications for many platforms In an environment in which the vast majority of the source code that forms the delivered product is common across many platforms and operating system environments it is desirable to architect a build model that requires no changes in the shared source or makefile content each time an additional new operating system or platform is added to the supported list. The method of processing a build makefile within a multi platform development environment comprises of the following steps. A makefile processor is instructed to execute a makef ile which is -common and shared across all supported platforms and environments. The common shared cross platform makefile defines only platform independent values and then tries to include a platform dependent makefile.which only defines platform or environment specific values. The result of combining the values defined by the common shared cross platform makefile and the platform dependent makefile is used to build the required platform targets. The separation of platform independent and platform dependent build information in which the platform element is replaceable provides for development scalability, and protects the shared source code base from intrusive changes each time a new platform has to be supported.
Java and all Java-based trademarks and logos are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
Microsoft, Windows, Windows NT, and the Internet Explorer are trademarks of Microsoft Corpo3ation in the United States, other countries, or both.
Pentium is a trademark of Intel Corporation.
Linux is a trademark of Linus Torvalds Now that the invention has been described by way of a preferred embodiment, various modifications and improvements will occur to those person skilled in the art. Therefore it should be understood that the preferred embodiment has been provided as an example and not as a limitation.

Claims (1)

1 A method of processing a build within a multi-platform development environment comprising the steps of:
(a) interpretting a common shared cross platform makefile using a makefile processor, said common shared cross platform makefile defines platform independent values and variables; (b) including a platform dependent makefile containing platform dependent values and variables which may add to, remove or modify previously clefined platform independent values and variables; and (c) building a platform target from the resulting combined makefile values and variables.
2. A method as in claim 1 wherein the platform dependent makefile is located as instructed by the common makefile.
3. A method as in claim 2 wherein the platform dependent makefile is located by performing an instruction in the common makefile to include the specific platform makefile. 20 4. A method as in claim 3 further comprising performing a 'tryinclude' instruction which attempts to include a file if such a file exists but skips to the next instruction if no such file exists or such file can not be included. 25 5. A method as in any of claims 1 to 4 wherein the step of locating the platform specific makefile comprises locating a makefile having a predefined name in a predefined location.
6. A method as in any of the preceding claims further comprising locating the name of the target file for' the object code in the"common makef i le. 7. A method as in any of the preceding claims further comprising 35 locating the names of the source code files in the common makefile. 8. A method as in any of the preceding claims further -comprising locating the majority of the makefile instructions in the common makefile. 40 9. A method as in claim 8 further comprising locating less than 30% of the total makefile instructions in the specific makefile. 10. A method as in claim 10 comprising locating no makefile 45 instructions in the specific makefile 1 11 11. A system for processing a build makefile within a multiplatform development environment comprising: means for locating a common shared cross platform makefile associated with the development environment; means for performing platform independent instructions contained in a common makefile; means for locating a platform specific makefile associated with the specific platform compilation; and means for performing platform dependent instructions in that specific makefile.
1..--- ---
GB9915142A 1999-06-30 1999-06-30 Multiple platform application build environment Withdrawn GB2351574A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB9915142A GB2351574A (en) 1999-06-30 1999-06-30 Multiple platform application build environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB9915142A GB2351574A (en) 1999-06-30 1999-06-30 Multiple platform application build environment

Publications (2)

Publication Number Publication Date
GB9915142D0 GB9915142D0 (en) 1999-09-01
GB2351574A true GB2351574A (en) 2001-01-03

Family

ID=10856245

Family Applications (1)

Application Number Title Priority Date Filing Date
GB9915142A Withdrawn GB2351574A (en) 1999-06-30 1999-06-30 Multiple platform application build environment

Country Status (1)

Country Link
GB (1) GB2351574A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2373349A (en) * 2001-03-15 2002-09-18 Proksim Software Inc Data definition language
EP2294508A2 (en) * 2008-06-30 2011-03-16 Mominis Ltd Method of generating and distributing a computer application
US9910649B2 (en) * 2016-01-19 2018-03-06 International Business Machines Corporation Integrating and sharing software build component targets
WO2019210355A1 (en) * 2018-04-29 2019-11-07 Meetingquality Pty. Ltd. Meeting survey system

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118092865B (en) * 2024-04-24 2024-06-28 广州知韫科技有限公司 Rapid construction method of cross-platform frame

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5872977A (en) * 1997-08-08 1999-02-16 International Business Machines Corporation Object-oriented method and apparatus for creating a makefile

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5872977A (en) * 1997-08-08 1999-02-16 International Business Machines Corporation Object-oriented method and apparatus for creating a makefile

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Dr Dobb's /CD Release 6, Jan 88 - June 98, Husain K, "Extending imake", 1994. *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2373349A (en) * 2001-03-15 2002-09-18 Proksim Software Inc Data definition language
GB2373349B (en) * 2001-03-15 2005-02-23 Proksim Software Inc Data definition language
EP2294508A2 (en) * 2008-06-30 2011-03-16 Mominis Ltd Method of generating and distributing a computer application
EP2294508A4 (en) * 2008-06-30 2013-10-16 Mominis Ltd Method of generating and distributing a computer application
US8584114B2 (en) 2008-06-30 2013-11-12 Mo'minis Ltd Method of generating and distributing a computer application
US9910649B2 (en) * 2016-01-19 2018-03-06 International Business Machines Corporation Integrating and sharing software build component targets
US10558442B2 (en) * 2016-01-19 2020-02-11 International Business Machines Corporation Integrating and sharing software build component targets
US10891119B2 (en) * 2016-01-19 2021-01-12 International Business Machines Corporation Integrating and sharing software build component targets
WO2019210355A1 (en) * 2018-04-29 2019-11-07 Meetingquality Pty. Ltd. Meeting survey system
US11762642B2 (en) 2018-04-29 2023-09-19 Meetingquality Pty. Ltd. Meeting survey system

Also Published As

Publication number Publication date
GB9915142D0 (en) 1999-09-01

Similar Documents

Publication Publication Date Title
EP0752647B1 (en) Method and apparatus for internal versioning of objects using a map file
Chiba Javassist—a reflection-based programming wizard for Java
KR100285223B1 (en) Technique for Programmatically Creating Distributed Object Programs
JP4716681B2 (en) Method, system and recording medium for extending software
US20020083416A1 (en) Automatic stub/adapter generator
US6961931B2 (en) Dependency specification using target patterns
JP2002517033A (en) Dynamic switching without recompilation from statically bound function calls to dynamically bound function calls
KR19990083019A (en) Method and system for performing static initialization
KR20040048246A (en) A java execution device and a java execution method
WO2001002956A2 (en) Compiling and persisting of intermediate language code
Corwin et al. MJ: a rational module system for Java and its applications
Läufer et al. Safe structural conformance for Java
JP2000235492A (en) Method, system, and computer program product for executing method
GB2351574A (en) Multiple platform application build environment
US6976249B1 (en) Method for embedding object codes in source codes
Duncan et al. Load-time adaptation: Efficient and non-intrusive language extension for virtual machines
Mai et al. A pattern language to visitors
Forgáč et al. Static and dynamic approaches to weaving
Mezini et al. Object creation aspects with flexible aspect deployment
Blume The SML/NJ Compilation and Library Manager
Goetz Interface evolution via “public defender” methods
Estublier et al. Deployment descriptions in a world of COTS and open source
Bansal Multiple polymorphic arguments in single dispatch object oriented languages
Vinuesa et al. A dynamic aspect weaver over the. net platform
Kaplan et al. Automating Interoperability for Heterogeneous Software Components

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)