Ddydd Llun, Gorffennaf 20, rhyddhawyd re2c, generadur dadansoddwr geiriadurol cyflym.
Newidiadau mawr:
-
Ychwanegwyd cefnogaeth iaith Go
(wedi'i alluogi naill ai gan yr opsiwn --lang go ar gyfer re2c, neu fel rhaglen re2go ar wahΓ’n).
Cynhyrchir dogfennaeth ar gyfer C a Go o'r un testun, ond gyda gwahanol
enghreifftiau cod. Mae'r is-system cynhyrchu cod yn re2c wedi'i hailgynllunio'n llwyr, sydd
dylai ei gwneud yn haws i gefnogi ieithoedd newydd yn y dyfodol. -
Ychwanegwyd system adeiladu amgen ar CMake (diolch ligfx!).
Mae ymdrechion i gyfieithu re2c i CMake wedi'u gwneud ers amser maith, ond cyn ligfx neb
cynnig ateb cyflawn.
Mae'r hen system adeiladu ar Autotools yn parhau i gael ei chefnogi a'i defnyddio,
ac yn y dyfodol rhagweladwy nid oes unrhyw gynlluniau i gefnu arno (yn rhannol er mwyn peidio Γ’ chreu
problemau i ddatblygwyr dosbarthu, yn rhannol oherwydd bod yr hen system adeiladu
mwy sefydlog a chryno na'r un newydd).
Mae'r ddwy system yn cael eu profi'n barhaus gan ddefnyddio Travis CI. -
Ychwanegwyd y gallu i osod cod rhyngwyneb mewn ffurfweddiadau wrth ddefnyddio
API generig. Yn flaenorol, roedd yn rhaid nodi'r rhan fwyaf o APIs yn y ffurflen
swyddogaethau neu macros ffwythiant. Nawr gellir eu nodi ar ffurf mympwyol
llinellau gyda pharamedrau templed a enwir fel @@{name} neu dim ond @@ (os
dim ond un paramedr sydd ac nid oes unrhyw amwysedd). Mae'r arddull API wedi'i nodi gan y ffurfweddiad
re2c:api:style (mae gwerth y ffwythiannau yn pennu arddull swyddogaethol, ac mae ffurf rydd yn pennu arddull fympwyol). -
Mae gweithrediad yr opsiwn -c, --start-conditions wedi'i wella, sy'n eich galluogi i gyfuno sawl un
lexers rhyng-gysylltiedig mewn un bloc re2c. Nawr gallwch chi ddefnyddio
blociau rheolaidd ynghyd Γ’ rhai amodol a nodi nifer o rai amodol nad ydynt yn gysylltiedig
blociau mewn un ffeil.
Gwell gweithrediad yr opsiwn -r, --reuse (ailddefnyddio cod o un bloc
mewn blociau eraill) mewn cyfuniad Γ’'r opsiynau -c, --start-conditions a -f, --storable-state
(Lexer stateful y gellir ei dorri ar unrhyw adeg
a pharhau i'w ddienyddio yn ddiweddarach). -
Wedi trwsio nam yn yr algorithm diwedd mewnbwn a ychwanegwyd yn ddiweddar
(rheol EOF), a arweiniodd mewn achosion prin at brosesu anghywir
rheolau sy'n gorgyffwrdd. -
Mae'r broses bootstrap wedi'i symleiddio. Yn flaenorol, mae'r system adeiladu ceisio dod o hyd yn ddeinamig yn barod
adeilad re2c y gellid ei ddefnyddio i ailadeiladu ei hun.
Arweiniodd hyn at ddibyniaethau anghywir (gan fod y graff dibyniaeth
deinamig, nad yw'r rhan fwyaf o systemau adeiladu yn ei hoffi).
Nawr, i ailadeiladu lexers, mae angen ichi yn benodol
ffurfweddu'r system adeiladu a gosod y newidyn RE2C_FOR_BUILD.
Diolch i bawb a gymerodd ran yn y gwaith o baratoi'r datganiad hwn!
Ffynhonnell: linux.org.ru