Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
releasenotes [2017/10/12 12:39] christian [Notes] |
releasenotes [2020/02/22 11:02] christian |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Release Notes for PDFtalk 2.0 ====== | + | ====== Release Notes ====== |
+ | |||
+ | ===== PDFtalk 2.3 ===== | ||
+ | |||
+ | ===== PDFtalk 2.0 ===== | ||
This is the release of the second major version of the PDF library in October 2017. | This is the release of the second major version of the PDF library in October 2017. | ||
- | The previous | + | ==== What's new ==== |
+ | |||
+ | **Name** | ||
+ | |||
+ | **Typing** The heard of the “PDF engine” is the [[newtyping|typing system]] which allows the assignment of Smalltalk classes to raw PDF objects. The new version has a redesigned type system where PDF types are properly modeled independent from the Smalltalk class hierarchy. This allows to rename classes freely (i.e. adding prefixes) without affecting PDF types. Also, boxing of some simple objects like " | ||
+ | |||
+ | **[[PDFtalk4Gemstone|PDFtalk for Gemstone]]** The new release was triggered by a contract to port the library to Gemstone (thanks to HTS and Bob Nemec). A talk about this was held at ESUG 2017: " | ||
+ | |||
+ | **[[GemstoneFileout|Gemstone Fileout]]** A VisualWorks to Gemstone translation tool. This tool, with project specific code transformation declarations, | ||
- | ===== Changes for users of the library | + | Both new projects are open source with MIT licence. |
+ | ==== Changes for users of the library ==== | ||
Some changes are incompatible with the previous version, which are described here. | Some changes are incompatible with the previous version, which are described here. | ||
Line 11: | Line 24: | ||
It is not recommended to load the new version into an image with the old version of the library. | It is not recommended to load the new version into an image with the old version of the library. | ||
- | ==== Namespace and bundle structure | + | === Namespace and bundle structure === |
The former namespace //PDF// is renamed to **'' | The former namespace //PDF// is renamed to **'' | ||
Line 23: | Line 36: | ||
to see if they are running. You may need to edit the file path to the PDF specification and to your demo directory. | to see if they are running. You may need to edit the file path to the PDF specification and to your demo directory. | ||
- | ==== Referencing PDF classes | + | === Referencing PDF classes === |
Smalltalk classes representing a PDF type should not be referenced directly anymore. Instead an expression like | Smalltalk classes representing a PDF type should not be referenced directly anymore. Instead an expression like | ||
Line 49: | Line 62: | ||
- The Smalltalk class name may differ in different ports of the library. | - The Smalltalk class name may differ in different ports of the library. | ||
- | ==== New shared Smalltalk.PDF | + | === New shared Smalltalk.PDF === |
The shared variable **'' | The shared variable **'' | ||
Line 55: | Line 68: | ||
Unless you extend the library, there should be no need to add the PDFtalk namespace to the imports of your project. Instead most functionality should be accessed through **'' | Unless you extend the library, there should be no need to add the PDFtalk namespace to the imports of your project. Instead most functionality should be accessed through **'' | ||
- | ==== Aligned types ==== | + | === Aligned types === |
The new typing system allowed to remove the PDF classes **'' | The new typing system allowed to remove the PDF classes **'' | ||
Line 62: | Line 75: | ||
The work is not finished yet. **'' | The work is not finished yet. **'' | ||
- | ===== Typing redesign | + | ==== Typing redesign ==== |
The major change is the redesign of the [[newtyping|PDF typing system]]. Initially, I represented the types of PDF objects by Smalltalk classes with the same name. This turned out to be not sufficient. | The major change is the redesign of the [[newtyping|PDF typing system]]. Initially, I represented the types of PDF objects by Smalltalk classes with the same name. This turned out to be not sufficient. | ||
Line 71: | Line 84: | ||
Therefore, PDF types are now modeled independently. | Therefore, PDF types are now modeled independently. | ||
- | ==== Notes ==== | + | === Notes === |
- | === Specialization only on assignment | + | == Specialization only on assignment == |
When PDF objects were created, all classes were searched for possible specializations: | When PDF objects were created, all classes were searched for possible specializations: | ||
Line 79: | Line 92: | ||
In the new version, objects are only typed and specialized when they are assigned to an attribute of a Dictionary or Array. | In the new version, objects are only typed and specialized when they are assigned to an attribute of a Dictionary or Array. | ||
- | === System classes as PDF classes=== | + | == System classes as PDF classes == |
The first version had wrappers for all basic types of PDF, such as null, booleans, numbers etc.. This is similar to boxing of primitive types in other programming languages. | The first version had wrappers for all basic types of PDF, such as null, booleans, numbers etc.. This is similar to boxing of primitive types in other programming languages. |