Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
packagestructure [2015/03/30 17:10]
christian [Values]
packagestructure [2016/09/24 08:16] (current)
dokuadmin ↷ Page moved from pdf:packagestructure to packagestructure
Line 1: Line 1:
 +====== Package Structure ======
 +
 +
 A top bundle ({PDF Development}, {Fonts Development} and {Values Development}) contains the runtime code first. Runtime code shall not depend on any other code in the bundle and shall be the only code needed for a runtime application. A top bundle ({PDF Development}, {Fonts Development} and {Values Development}) contains the runtime code first. Runtime code shall not depend on any other code in the bundle and shall be the only code needed for a runtime application.
  
Line 7: Line 10:
 There can be platform dependend pundles for UI's and development environment extensions. This shall be loaded after the runtime. There can be platform dependend pundles for UI's and development environment extensions. This shall be loaded after the runtime.
  
-*({..} is Bundle, [..] is Package, **bold** is runtime)*+//{..} is Bundle, [..] is Package, **bold** is runtime//
  
-<html> +===== PDF ===== 
-<li>{PDF Development} + 
-<ul><li><b>{PDF}</b> + 
-<ul><li><b>[PDF Namespace]</b> +  {PDF Development} 
-</li><li><b>[PDF basics]</b> +    * **{PDF}** 
-</li><li><b>[PDF Basic Objects]</b> +      * **[PDF Namespace]** 
-</li><li><b>[PDF Filter]</b> +      * **[PDF basics]** 
-</li><li><b>[PDF Complex Objects]</b> +      * **[PDF Basic Objects]** 
-</li><li><b>[PDF Data Structures]</b> +      * **[PDF Complex Objects]** 
-</li><li><b>[PDF Graphics]</b> +      * **[PDF Filter]** 
-</li><li><b>[PDF Colour]</b> +      * **[PDF Streams]** 
-</li><li><b>[PDF Shading]</b> +      * **[PDF Data Structures]** 
-</li><li><b>[PDF XObjects]</b> +      * **[PDF Graphics Operations]** 
-</li><li><b>[PDF Fonts]</b> +      * **[PDF Graphics]** 
-</li><li><b>[PDF Parsing]</b> +      * **[PDF Colour]** 
-</li><li><b>[PDF Files]</b> +      * **[PDF Shading]** 
-</li><li><b>[PDF Document]</b> +      * **[PDF XObjects]** 
-</li><li><b>[PDF Rendering]</b> +      * **[PDF Images]** 
-</li></ul> +      * **[PDF Fonts]** 
-</li><li>{PDF Testing} +      * **[PDF Parsing]** 
-<ul><li>[PDF test resources] +      * **[PDF Files]** 
-</li><li>[PDF tests] +      * **[PDF Document]** 
-</li></ul> +      * **[PDF Rendering]** 
-</li><li>{PDF UI} +    {PDF Testing} 
-<ul><li>[PDF UI Support] +      [PDF test resources] 
-</li><li>[PDF Explorer] +      [PDF tests] 
-</li></ul> +    {PDF UI} 
-</li><li>[PDF Development] +      [PDF UI Support] 
-</li></ul> +      [PDF Explorer] 
-</li> +    [PDF Development]
-</html>+
  
 PDF depends on Fonts for text graphics. PDF depends on Fonts for text graphics.
  
-<html> +===== Fonts ===== 
-<li>{Fonts Development} + 
-<ul><li><b>{Fonts}</b> +  {Fonts Development} 
-<ul><li><b>[Fonts Basics]</b> +    * **{Fonts}** 
-</li><li><b>[Type1]</b> +      * **[Fonts Basics]** 
-</li><li><b>[CompactFontFormat]</b> +      * **[Type1]** 
-</li><li><b>[OpenType]</b> +      * **[CompactFontFormat]** 
-</li><li><b>[Fonts Runtime]</b> +      * **[OpenType]** 
-</li></ul> +      * **[Fonts Runtime]** 
-</li><li>{Fonts Testing} +    {Fonts Testing} 
-<ul><li>[Fonts test resources] +      [Fonts test resources] 
-</li><li>[Fonts tests] +      [Fonts tests] 
-</li></ul> +    [Fonts for Windows] 
-</li><li>[Fonts for Windows] +    {Fonts UI} 
-</li><li>{Fonts UI} +      [Fonts UI Support] 
-<ul><li>[Fonts UI Support] +      [Fonts UI] 
-</li><li>[Fonts UI] +    [Fonts Development]
-</li></ul> +
-</li><li>[Fonts Development] +
-</li></ul> +
-</li> +
-</html>+
  
 PDF and Fonts depend on Values: PDF and Fonts depend on Values:
  
-<html> +===== Values ===== 
-<li>{Values Development} + 
-<ul><li><b>[Values]</b> +  {Values Development} 
-</li><li>[Values Development] +    * **[Values]** 
-</li><li>[Values Testing] +    [Values Development] 
-</li></ul> +    [Values Testing]
-</li> +
-</html>+
  
 ===== Comments ===== ===== Comments =====
Line 95: Line 90:
 The Values package is my base library for almost everything I do. It provides Values (as opposed to Objects) which are simple, immutable objects. Values can only be created but never modified. This allows for a functional programming style and simplyfies systems, since much less state has to be maintained. Especially I like to see all structure and details (of complex values) at a glance and the ease of creating test values. The Values package is my base library for almost everything I do. It provides Values (as opposed to Objects) which are simple, immutable objects. Values can only be created but never modified. This allows for a functional programming style and simplyfies systems, since much less state has to be maintained. Especially I like to see all structure and details (of complex values) at a glance and the ease of creating test values.
  
-I wrote a (scientific) dry paper about it and presented it at ESUG 2009 in Brest. I think that nobody understood it... :-). One can buy the [[http://dl.acm.org/citation.cfm?id=1735935&jmp=cit&coll=GUIDE&dl=GUIDE#CIT|paper from the ACM]]. The slides of the talk are [[http://vst.ensm-douai.fr/ESUG2009Media/uploads/1/complex_values_haider.pdf|here]]. On request, I could send you draft of the paper on which the ACM does not have the copyright :-).+I wrote a (scientific) dry paper about it and presented it at ESUG 2009 in Brest. I think that nobody understood it... :-). One can buy the [[http://dl.acm.org/citation.cfm?id=1735935&jmp=cit&coll=GUIDE&dl=GUIDE#CIT|paper from the ACM]]. The slides of the talk are [[http://vst.ensm-douai.fr/ESUG2009Media/uploads/1/complex_values_haider.pdf|here]]. Or you can see the {{:values:complexvaluespaper.pdf|draft}} of the paper with identical content on which the ACM does not have the copyright
  
 For porting, I would strongly suggest to start with (parts of) the Values code. But this should not be too much of a problem, since you do not need everything. The "Values" package contains all essential runtime code: Value class, the value printer and compatibility methods for system classes to be used as values. That is sufficient to implement the existing Value subclasses used by Fonts and PDF. The "Values Development" package adds the ability to generate methods for your own Value subclasses. This would not be strictly necessary for porting PDF or Fonts. For porting, I would strongly suggest to start with (parts of) the Values code. But this should not be too much of a problem, since you do not need everything. The "Values" package contains all essential runtime code: Value class, the value printer and compatibility methods for system classes to be used as values. That is sufficient to implement the existing Value subclasses used by Fonts and PDF. The "Values Development" package adds the ability to generate methods for your own Value subclasses. This would not be strictly necessary for porting PDF or Fonts.
  • packagestructure.1427728245.txt.gz
  • Last modified: 2015/03/30 17:10
  • by christian