Intercepting Compiler File Requests for Cached Encoding Conversion

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing process of converting source and header files for compiling computer code is time-consuming and memory-intensive, as compilers require frequent conversion of files to a specific encoding format, such as UTF-8, which incurs significant processing overhead.

Innovation Solution

A system comprising a build manager, a file storage device, a compiler, and an interceptor that manages a cache of converted files, intercepts file requests, and provides cached files when available, converting and storing files as needed to reduce repetitive conversions during a project build.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the compiler converts source and header files to a specific encoding format (e.g., UTF-8) each time they are needed, then the compiler can properly translate characters in the files, but the compilation process becomes time-consuming and memory-intensive

Engineering Contradiction:
Improveproper translation of charactersVSAvoidcompilation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs file encoding conversion in advance during the compilation process. When a source or header file is first accessed, the interceptor detects its original encoding, converts it to the compiler's expected encoding (e.g., UTF-8), and stores the converted version in a cache. Subsequent accesses retrieve the pre-converted file from cache, eliminating repeated conversion operations and reducing compilation time while ensuring proper character translation.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the compiler converts source and header files to a specific encoding format (e.g., UTF-8) each time they are needed, then the compiler can properly translate characters in the files, but the compilation process becomes memory-intensive

Engineering Contradiction:
Improveproper translation of charactersVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The system performs file encoding conversion in advance during the compilation process. When a source or header file is first accessed, the interceptor detects its original encoding, converts it to the compiler's expected encoding (e.g., UTF-8), and stores the converted version in a cache. Subsequent accesses retrieve the pre-converted file from cache, eliminating repeated conversion operations and reducing compilation time while ensuring proper character translation.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If the interceptor checks the cache for every file request during compilation, then cached converted files can be reused to reduce processing time, but the system complexity increases

Engineering Contradiction:
Improvecompilation speedVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The interceptor acts as an intermediary component between the compiler and the file system. It intercepts file requests from the compiler, checks whether converted versions exist in the cache, and either retrieves cached files or performs conversion and caching for new files. This intermediary layer manages the complexity of cache checking and file conversion internally, allowing the compiler to continue operating with simple file access calls while benefiting from the optimized file retrieval process.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11775471B2System and method for caching converted files and compiling computer code from the cache
Publication Date: 2023.10.03 EMBARCADERO TECHNOLOGIES INC
  • US11775471B2 patent drawing
  • US11775471B2 patent drawing
  • US11775471B2 patent drawing

AI summary

A conversion system includes a build manager, a file storage device to store original files associated with computer code or data of a project build, a compiler, a cache to store converted files, and an interceptor to provide requested files to the compiler. The interceptor includes one or more processors and memory storing instructions that cause the processor(s) to receive a plurality of file requests for files from the compiler during compilation between a starting and an ending of at least a portion of the project build, examine the cache to determine whether a requested file is stored in the cache for each of the file requests received between the starting and ending of the portion of the project build, and provide the requested file to the compiler.