Changeset 6f7a669 in tol


Ignore:
Timestamp:
Nov 28, 2016, 12:33:05 PM (10 years ago)
Author:
Pedro Gea <pgea@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
97db5a0
Parents:
7b8f6fc
Message:

Se agilizan algunas funciones de TolPackage. Se incrementa la versión a 4.4.

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@7360 be4846ae-f051-483a-831f-b64e7d08527f

Location:
tol/stdlib/TolPackage
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • tol/stdlib/TolPackage/TolPackage.tol

    r7b8f6fc r6f7a669  
    1818  Text _.autodoc.minTolVersion = "v3.1";
    1919  Real _.autodoc.version.high = 4;
    20   Real _.autodoc.version.low = 3;
     20  Real _.autodoc.version.low = 4;
    2121
    2222  Text _.version = ""<<_.autodoc.version.high<<"."<<_.autodoc.version.low;
  • tol/stdlib/TolPackage/TolVersion.tol

    r7b8f6fc r6f7a669  
    3232  };
    3333
     34  ////////////////////////////////////////////////////////////////////////////
     35  // Se introduce una cache para agilizar las llamadas a esta función.
     36  Set _ObtainIntegers.Cache = Copy(Empty);
    3437  ////////////////////////////////////////////////////////////////////////////
    3538  Set ObtainIntegers(Text version)
    … …  
    4043      If(False, ?)
    4144    }, {
    42       Real firstEnd = TextFind(version, ".", 2)-1;
    43       Real If(firstEnd<0, firstEnd:=TextLength(version));
    44       Real v1 = Eval(Text Sub(version, 2, firstEnd));
    45       If(v1<=2, {
    46         Text versionM = Replace(Sub(version, 2, TextLength(version)),
    47           ".", " ");
    48         EvalSet(Select(Tokenizer(versionM, " "), _IsIntegerText),
    49           Real (Text it) { Eval(it) })
     45      Real index = FindIndexByName(_ObtainIntegers.Cache, version);
     46      Set If(index, {
     47        _ObtainIntegers.Cache[index]
    5048      }, {
    51         Text versionM = Replace(Replace(
    52           Replace(Sub(version, 2, TextLength(version)), ".", " "),
    53           " p", " 1 "), " b", " 0 ");
    54         EvalSet(Select(Tokenizer(versionM, " "), _IsIntegerText),
    55           Real (Text it) { Eval(it) })
     49        Real firstEnd = TextFind(version, ".", 2)-1;
     50        Real If(firstEnd<0, firstEnd:=TextLength(version));
     51        Real v1 = Eval(Text Sub(version, 2, firstEnd));
     52        Set integers = If(v1<=2, {
     53          Text versionM = Replace(Sub(version, 2, TextLength(version)),
     54            ".", " ");
     55          EvalSet(Select(Tokenizer(versionM, " "), _IsIntegerText),
     56            Real (Text it) { Eval(it) })
     57        }, {
     58          Text versionM = Replace(Replace(
     59            Replace(Sub(version, 2, TextLength(version)), ".", " "),
     60            " p", " 1 "), " b", " 0 ");
     61          EvalSet(Select(Tokenizer(versionM, " "), _IsIntegerText),
     62            Real (Text it) { Eval(it) })
     63        });
     64        Set Append(_ObtainIntegers.Cache, [[ PutName(version, integers) ]]);
     65        integers
    5666      })
    5767    })
  • tol/stdlib/TolPackage/common.tol

    r7b8f6fc r6f7a669  
    270270      UnknownDate);
    271271    SetConcat(EvalSet(compRecords, Set (Set list) {
     272      // localRelease se obtiene sólo una vez por cada list
     273      Set record1 = list[1];
     274      Text localIdentifier = client::ObtainIdentifier_Show(record1::name,
     275        Platform(?), Version, UnknownDate, 0);
     276      Date localRelease = If(TextLength(localIdentifier), {
     277        Set localRecord = client::GetRecord(localIdentifier);
     278        localRecord::release
     279      }, TheBegin);   
    272280      EvalSet(list, Set (Set record) {
    273281        Text dependencies = If(Card(record::freeDependencies), {
    … …  
    277285          }))
    278286        }, "");
    279         Text localIdentifier = client::ObtainIdentifier_Show(record::name,
    280           Platform(?), Version, UnknownDate, 0);
    281         Date localRelease = If(TextLength(localIdentifier), {
    282           Set localRecord = client::GetRecord(localIdentifier);
    283           localRecord::release
    284         }, TheBegin);
    285287        @VersionSynchro(record::repository, record::name, record::identifier,
    286288          "<...>", record::minTolVersion, record::maxTolVersion,
  • tol/stdlib/TolPackage/def_catalog.tol

    r7b8f6fc r6f7a669  
    7272    Real If(ok, {
    7373      // Se comprueba la versión de TOL
    74       Real ok := If(tolVersion=="any", True, {
    75         TolVersion::CompareVersions(record::minTolVersion, tolVersion)<=0
    76         & TolVersion::CompareVersions(tolVersion, record::maxTolVersion)<=0
    77       })
     74      Real ok := Case(tolVersion=="any", True,
     75        TolVersion::CompareVersions(record::minTolVersion, tolVersion)>0, False,
     76        TolVersion::CompareVersions(tolVersion, record::maxTolVersion)>0, False,
     77        True, True)
    7878    });
    7979    If(ok, {
    … …  
    148148        Real ok = TextMatch(record::identifier, txtPattern1)
    149149          | TextMatch(record::identifier, txtPattern2);
    150         // Se comprueba la plataforma de TOL
     150        // Se comprueba la plataforma y versión de TOL y la fecha
    151151        Real If(ok, ok := _Record.IsCompatible(record, tolPlatform,
    152152          tolVersion, date));
    153         // Se comprueba la versión de TOL
    154         Real If(ok, ok := Case(tolVersion=="any", True,
    155           TolVersion::CompareVersions(record::minTolVersion, tolVersion)>0,
    156             False,
    157           TolVersion::CompareVersions(tolVersion, record::maxTolVersion)>0,
    158             False,
    159           True, True));
    160         // Se comprueba que la fecha no es posterior a la indicada
    161         Real If(ok, ok := If(""<<date=="Unknown", True,
    162           record::release<=date));
    163153        ok
    164154      });
Note: See TracChangeset for help on using the changeset viewer.