Մի քանի օր առաջ երբ որոշեցի BSides֊ի համար գրել events2ics ծրագիրը, հասկացայ որ մենք չունենք լոգ անելու գրադարան Օբերոնի համար։
Այդ պատճառով էլ գրեցի Logger գրադարանը։ մօտաւորապէս էս տեսքն ունի օգտագործելուց՝
MODULE LoggerTest;
IMPORT Logger;
VAR log: Logger.Logger;
BEGIN
log := Logger.New();
log.SetLevel(Logger.DEBUG);
log.Info("Program initialized");
log.InfoInt("The answer to life, the universe, and everything: ", 42);
log.SetPrefix("Web Server");
log.Warn("Web Server is loading slowly");
log.WarnInt("Current threads: ", 4)
END LoggerTest.
Բայց երբ վերջացրեցի Logger֊ը գրել, հասկացայ որ նաեւ չունենք Semantic Versioning֊ի գրադարան Օբերոնի համար։ Սա իրականում պէտք էր որ կարողանամ Վիշապ Օբերոնի գրադարանների համակարգը՝ Vipak֊ը աւելի լաւ օգտագործել։
Նաեւ գրեցի SemVer գրադարանը, որը այս պահին կարողանում ա միայն Parse անել, այսպէս՝
MODULE SemVerExample;
IMPORT SemVer, Out;
VAR
v: SemVer.Version;
ok: BOOLEAN;
BEGIN
SemVer.Parse("1.2.3-alpha.1+build.5", v, ok);
IF ok THEN
Out.String("major="); Out.Int(v.Major, 1); Out.String("; ");
Out.String("minor="); Out.Int(v.Minor, 1); Out.String("; ");
Out.String("patch="); Out.Int(v.Patch, 1); Out.String("; ");
Out.String("preRelease="); Out.String(v.PreRelease); Out.String("; ");
Out.String("build="); Out.String(v.Build); Out.String(";");
Out.Ln;
ELSE
Out.String("Invalid version string."); Out.Ln;
END;
END SemVerExample.
$ voc ../src/SemVer.Mod -s SemVerExample.Mod -m 2>/dev/null && ./SemVerExample
../src/SemVer.Mod Compiling SemVer. New symbol file. 5302 chars.
SemVerExample.Mod Compiling SemVerExample. Main program. 1204 chars.
major=1; minor=2; patch=3; preRelease=alpha.1; build=build.5;
Բայց այլ բաներ էլ են պէտք, օրինակ Compare, Match, եւ այլն։ Մտածում եմ երեւի արժի Հաքերսփեյսի ժամանակ մարդիկ աշխատեն դրա վրայ, համ էլ լաւ ուսումնական մօտեցում կը լինի քանի որ հիմնականում ալգորիթմներ պէտք է գրել։
Էլ ի՞նչ գրադարան արժի գրել։
Likes