|
From: <te...@ma...> - 2009-08-11 02:00:16
|
Hello, Michael Nahas and Norbert Bollow
I am Yutaka Sawada.
I made a new PAR3 specifications draft and working client.
The new PAR3 spec is almost same as PAR2,
but has new good feature of PAR3.
This PAR3 has good compatibility, too.
I thought compatibility was not so improtant,
but it is fun to see QuickPar verify files with PAR3 file.
This may be good for publicity of PAR3 spec.
Even if this PAR3 inherit PAR2 format 's some weak-points,
general public users want convenience and may not care about them.
There are several aspects of backwards compatibility to be considered:
A) What happens when someone attempts to use a PAR2 implementation
for interpreting a PAR3 archive?
Q) He can use PAR3 file as PAR2 file without recovery slice.
PAR2 client can recognize and parse PAR3 file.
It just ignore PAR3's recovery slice.
I test and confirm this with QuickPar and par2cmdline and par2_tbb.
QuickPar can use PAR3 file with even 131072 input file slices !
(It may not check number of slices...)
Because PAR3 spec contains PAR2 format in it,
user may create PAR3 file with PAR2's recovery slice.
By doing so, the PAR3 file become full compatible with PAR2 file.
(It is same as creating PAR2 file with different input file order.)
That full compatible PAR3 file may be good,
when some users have PAR3 client and others have PAR2 client.
BTW, as extension of PAR3 (.pa3) is different from PAR2 (.par2),
user may need to rename the extension of PAR files.
This is a problem of PAR2 client side.
(My PAR2 client support any given extension, so no problem for me.)
B) What happens when someone attempts to use a PAR3 implementation
for interpreting a PAR2 archive?
Q) He can use PAR2 file without any problem.
PAR2 spec is a subset of PAR3 spec (PAR3 is a extended spec),
so PAR3 client supports PAR2 file normally.
- B1) Can PAR2 and PAR3 files be reliably distinguished?
- Q1) Yes, calculating method of Recovery Set ID is different.
When PAR3 client read Main packet, it can distinguish
the PAR file was made by PAR2 client or PAR3 client.
- B2) Is (apart from the version identifier) every valid PAR2 file
a valid PAR3 file?
- Q2) Yes, all PAR2 packets are used by PAR3 also.
- B3) Does the PAR3 specification explain how to interpret PAR2
files, and how to generate correct error messages in the case
that a shortcoming of the PAR2 format is encountered?
- Q3) This depends on PAR3 client, not PAR3 spec.
C) Implementor convenience and risk minimization
- C1) Is it easy to update existing PAR2 implementations to PAR3?
- Q1) This depends on the original PAR2 client's design and
the programer's skill and will mostly.
I update my PAR2 client to PAR3 client with ease.
But, I can not modify par2cmdline family,
as they are written by C++.
Best regards,
Yutaka Sawada
|