gantt
title PurC Release Plan
dateFormat YYYY-MM-DD
section Mainline Release
ver-0.8.0 :a1, 2021-01-19, 2022-07-30
ver-0.8.1 :a2, 2022-07-30, 2022-08-19
ver-0.8.2 :a3, 2022-08-19, 2022-09-30
ver-0.9.0 :a4, 2022-09-30, 2022-10-31
ver-0.9.2 :a5, 2022-10-31, 2022-12-01
ver-0.9.4 :a6, 2022-12-01, 2022-12-30
ver-0.9.5 :a7, 2022-12-30, 2023-01-09
ver-0.9.6 :a8, 2023-01-09, 2023-02-23
ver-0.9.7 :a9, 2023-02-23, 2023-03-15
ver-0.9.8 :a10, 2023-03-15, 2023-03-31
ver-0.9.10 :a11, 2023-03-31, 2023-04-26
ver-0.9.12 :a12, 2023-04-26, 2023-06-01
ver-0.9.13 :a13, 2023-06-01, 2023-06-29
ver-0.9.14 :a14, 2023-06-29, 2023-07-28
ver-0.9.15 :a15, 2023-07-28, 2023-09-01
- Version 0.9.20
- Version 0.9.19
- Version 0.9.18
- Version 0.9.17
- Version 0.9.16
- Version 0.9.15
- Version 0.9.14
- Version 0.9.13
- Version 0.9.12
- Version 0.9.10
- Version 0.9.8
- Version 0.9.6
- Version 0.9.5
- Version 0.9.4
- Version 0.9.2
- Version 0.9.0
- Version 0.8.2
- Version 0.8.0
On May 31, 2024, HVML Community announces the availability of PurC 0.9.20, which is also the 16th alpha release of PurC 1.0.x.
For bugs, incompatibilities, and issues, please report to https://github.com/HVML/PurC/issues.
In this version, we fixed a few bugs and made some major enhancements:
- CHANGES:
- ENHANCEMENTS:
- Enhance and expose new APIs for
purc-fetcher
module.
- Enhance and expose new APIs for
- OPTIMIZATIONS:
- ADJUSTMENTS:
- BUGFIXES:
- Fix some minor bugs.
- Fix some memory leaks.
- CLEANUP:
- SAMPLES:
On Dec. 30, 2023, HVML Community announces the availability of PurC 0.9.19, which is also the 16th alpha release of PurC 1.0.x.
For bugs, incompatibilities, and issues, please report to https://github.com/HVML/PurC/issues.
In this version, we fixed a few bugs and made some major enhancements:
- CHANGES:
- ENHANCEMENTS:
- Support for a new predefined variable:
SQLite
.
- Support for a new predefined variable:
- OPTIMIZATIONS:
- ADJUSTMENTS:
- BUGFIXES:
- Fix some minor bugs.
- Fix some memory leaks.
- CLEANUP:
- SAMPLES:
On Dec. 7, 2023, HVML Community announces the availability of PurC 0.9.18, which is also the 15th alpha release of PurC 1.0.x.
For bugs, incompatibilities, and issues, please report to https://github.com/HVML/PurC/issues.
In this version, we fixed a few bugs and made some major enhancements:
- CHANGES:
- ENHANCEMENTS:
- Update WTF to use libsoup-3.0; use
-DUSE_SOUP2=ON
if you want use libsoup-2.x. - Support for PURCMC version 160.
- Add a new renderer
seeker
for seeking a real available remote renderer. - Support for switching amone renderers.
- Add
transitionStyle
andlayoutStyle
for windows. - Support for app menifest.
- Support for
template
attribute ofhvml
tag. - Add a new API:
purc_evaluate_standalone_window_transition_from_styles()
. - Add a new API:
purc_evaluate_standalone_window_geometry_from_styles()
. - Add a new API:
purc_split_page_identifier()
. - Add a new API:
purc_get_app_icon_content()
. - Add a new API:
purc_get_app_icon_url()
.
- Update WTF to use libsoup-3.0; use
- OPTIMIZATIONS:
- ADJUSTMENTS:
- BUGFIXES:
- Fix some minor bugs.
- Fix some memory leaks.
- CLEANUP:
- SAMPLES:
On Nov. 1, 2023, HVML Community announces the availability of PurC 0.9.17, which is also the 14th alpha release of PurC 1.0.x.
For bugs, incompatibilities, and issues, please report to https://github.com/HVML/PurC/issues.
In this version, we fixed a few bugs and made some minor enhancements:
- CHANGES:
- Add a new feature:
PURC_FEATURE_APP_AUTH
. - Refactor
purc_is_feature_enabled()
. - Add new API
purc_document_type()
.
- Add a new feature:
- ENHANCEMENTS:
- Support for WebSocket in PURCMC implementation and
$STREAM
.
- Support for WebSocket in PURCMC implementation and
- OPTIMIZATIONS:
- ADJUSTMENTS:
- BUGFIXES:
- Fix some minor bugs.
- CLEANUP:
- SAMPLES:
On Otc. 1, 2023, HVML Community announces the availability of PurC 0.9.16, which is also the 14th alpha release of PurC 1.0.x.
For bugs, incompatibilities, and issues, please report to https://github.com/HVML/PurC/issues.
In this version, we fixed a few bugs and made some minor enhancements:
- CHANGES:
- ENHANCEMENTS:
- Support two new element types in PURCMC message:
PCRDR_MSG_ELEMENT_TYPE_CLASS
andPCRDR_MSG_ELEMENT_TYPE_TAG
. - Support
.class-name
andtag-name
inrequest
andobserve
elements. - Create HTML document with explicit DOCTYPE.
- Implement
receivable
event on channels.
- Support two new element types in PURCMC message:
- OPTIMIZATIONS:
- ADJUSTMENTS:
- Update HVML samples to use bootstrap 5.3.1 and bootstrap-icons 1.10.5.
- BUGFIXES:
- Fix some minor bugs.
- CLEANUP:
- SAMPLES:
On Sept. 1, 2023, HVML Community announces the availability of PurC 0.9.15, which is also the 13th alpha release of PurC 1.0.x.
For bugs, incompatibilities, and issues, please report to https://github.com/HVML/PurC/issues.
In this version, we fixed a few bugs and made some minor enhancements:
- CHANGES:
- ENHANCEMENTS:
- OPTIMIZATIONS:
- ADJUSTMENTS:
- Call
pcintr_rdr_page_control_load
for inherit page;
- Call
- BUGFIXES:
- Support for
at
attribute value_topmost
ininit
. - Fix the request parameters are not passed (HTTP GET).
- Other minor bugs.
- Support for
- CLEANUP:
- Cleanup cmake files for deprecated usage.
- Add executable permission to .py files.
- Merge some modifications from @taotieren.
- SAMPLES:
On July 31, 2023, HVML Community announces the availability of PurC 0.9.14, which is also the 12th alpha release of PurC 1.0.x.
For bugs, incompatibilities, and issues, please report to https://github.com/HVML/PurC/issues.
In this version, we fixed a few bugs and made some minor enhancements:
- CHANGES:
- ENHANCEMENTS: Tune or enhance the implementation according to the revisions from RC9 to RCd of HVML Spec V1.0:
- The default result data of a foreign element: inheriting from the proceeding operation.
- Tune the manners of
test
,match
,differ
elements and fix known bugs. - Tune the manners of
back
andupdate
elements and fix known bugs. - Tune the manners of
update
elements to reflect thewholly
adverb attribute. - The result data of a
catch
elmenet, should be defined as an object to describe the exception. - Enhance
init
element to supportRAW-HEADERS
when issuing an HTTP request to get data from a remote URL. - Enhance
request
element to pass CSS selector directly to the renderer instead of passing the HVML handle of the element.
- OPTIMIZATIONS:
- ADJUSTMENTS:
- BUGFIXES:
- Fix bugs in
$FS.file_contents
getter and setter.
- Fix bugs in
- CLEANUP:
- SAMPLES:
On June 30, 2023, HVML Community announces the availability of PurC 0.9.13, which is also the 11th alpha release of PurC 1.0.x.
For bugs, incompatibilities, and issues, please report to https://github.com/HVML/PurC/issues.
In this version, we fixed a few bugs and made some minor enhancements:
- CHANGES:
- If
$REQ
is not defined, make it as an empty object.
- If
- ENHANCEMENTS:
- Implement
$DATA.is_divisible
,$DATA.match_members
, and$DATA.match_properties
.
- Implement
- OPTIMIZATIONS:
- ADJUSTMENTS:
- BUGFIXES:
- Fix bugs in
$FS.file_contents
getter and setter.
- Fix bugs in
- CLEANUP:
- SAMPLES:
On May 31, 2023, HVML Community announces the availability of PurC 0.9.12, which is also the 10th alpha release of PurC 1.0.x.
For bugs, incompatibilities, and issues, please report to https://github.com/HVML/PurC/issues.
In this version, we fixed some bugs and made some enhancements:
- CHANGES:
- Change API
purc_enable_with_tag()
to specify the log level. - Expose
pcutils_md5_xxx()
andpcutils_sha1_xxx()
APIs. - Expose
pcutils_printbuf_xxx()
APIs.
- Change API
- ENHANCEMENTS:
- Add new APIs:
pcutils_sha256_xxx()
,pcutils_sha512_xxx()
, andpcutils_hmac_sha256()
. - Add new APIs:
purc_enable_log_ex()
andpurc_log_with_level()
, and use level mask to control the message levels to log ultimately. - Enhance
$STREAM
to supportmessage
protocol on UNIX-domain socket andHBDBus
data bas protocol.
- Add new APIs:
- OPTIMIZATIONS:
- ADJUSTMENTS:
- BUGFIXES:
- Remove some limitations on event name.
- CLEANUP:
- SAMPLES:
On Apr. 30, 2023, HVML Community announces the availability of PurC 0.9.10, which is also the nineth alpha release of PurC 1.0.x.
For bugs, incompatibilities, and issues, please report to https://github.com/HVML/PurC/issues.
In this version, we fixed some bugs and made some enhancements:
- CHANGES:
- Expose
pcutils_kvslist_xxx
interfaces to applications. - Implement
$CRTN.static
and$CRTN.temp
to help HVML program to access or operate the static or temporary variables in HEE.
- Expose
- ENHANCEMENTS:
- Support for PURCMC 120 protocol.
- Tune the parsing errors of HVML and HEE.
- Support for the daynamic update of document in Foil renderer.
- Add new text cases for Foil renderer.
- OPTIMIZATIONS:
- ADJUSTMENTS:
- BUGFIXES:
- Fix bugs in implementation of
match
andback
elements. - Fix bugs in implementation of event name.
- Fix bugs in implementation of
- CLEANUP:
- SAMPLES:
- New sample
file-system-browser.hvml
: using the same renderer page among multiple coroutines.
- New sample
On Mar. 31, 2023, HVML Community announces the availability of PurC 0.9.8, which is also the seventh alpha release of PurC 1.0.x.
For bugs, incompatibilities, and issues, please report to https://github.com/HVML/PurC/issues.
In this version, we fixed some bugs and made some enhancements:
- CHANGES:
- Rename
purc_variant_is_mutable()
topurc_variant_is_container()
. - Use
purc_ejson_parsing_tree
instead ofpurc_ejson_parse_tree
; usepurc_ejson_parse_
instead ofpurc_variant_ejson_parse_
. - Add a new API:
purc_variant_object_set_by_ckey()
. - Rename
purc_variant_object_remove_by_static_ckey()
topurc_variant_object_remove_by_ckey()
. - Add a new API:
purc_variant_set_unique_keys()
. Use this function to get the unique keys of a variant set. - Add a new API:
purc_variant_make_native_entity()
. Use this function to create a native entity with name. Note thatpurc_variant_make_native()
will create a native entity namedanonymous
. - Add a new API:
purc_get_elapsed_milliseconds()
. Use this function to get the elapsed milliseconds since the specified time. - Add a new API:
pcutils_mystring_append_uchar()
. Use this function to append a Unicode character to the mystring object. - Add a new API:
purc_make_object_from_query_string()
. - Add new APIs:
pcutils_utf8_to_unichar()
,pcutils_string_utf8_chars_with_nulls()
, andpcutils_string_decode_utf8_alloc_with_nulls()
. - Add a new generic error:
PURC_ERROR_IO_FAILURE
.
- Rename
- ENHANCEMENTS:
- The basic implementation of
$PY
. HVML now can interact with Python. - Draw borders of boxes in Foil renderer.
- Support for floats and absoluted positioning in Foil renderer.
- Add a new exception
ExternalFailure
for errors in external dynamic variant objects. - The native entity now supports getter and setter on itself.
- Add a new post listener operation:
PCVAR_OPERATION_RELEASING
. - Add a auto-test HVML program and many test cases to test Foil renderer.
- The basic implementation of
- OPTIMIZATIONS:
- ADJUSTMENTS:
- BUGFIXES:
- Fix some bugs related timezone (from @bkmgit).
- Fix lost of event
rdrState:pageClosed
.
- CLEANUP:
- Remove repeated identical test (from @bkmgit)
- SAMPLES:
- A new sample
embed-python-looking-for-primes.hvml
: Embedding Python in HVML to find primes. - A new sample
embed-python-animated-3d-random-walk.hvml
: Embedding Python in HVML to show the animated 3D random walks. - A new sample
foil-three-columns.hvml
: Using Foil to show three columns to run samples.
- A new sample
On Feb. 25, 2023, HVML Community announces the availability of PurC 0.9.6, which is also the sixth alpha release of PurC 1.0.x.
For bugs, incompatibilities, and issues, please report to https://github.com/HVML/PurC/issues.
In this version, we fixed some bugs and made some enhancements:
- CHANGES:
- (N/A).
- ADJUSTMENTS:
- ENHANCEMENTS:
- Complete the implementation of the predefined variables
$DOC
. - Improve
init
to load content with MIME typetext/html
as a document entity. - Improve support for the attribute
in
, so we can use a value like> p
to specify an descendant as the current document position. - Enhance Foil renderer to support
meter
andprogress
elements.
- Complete the implementation of the predefined variables
- OPTIMIZATIONS:
- Optimize the variant moudule.
- Optimize the evaluation of a VCM tree to descrease uses of
malloc()
andfree()
.
- BUGFIXES:
- Fix some minor bugs in Foil when laying the redering boxes.
- SAMPLES:
- New sample
spider-headline.hvml
: fetching the latest headlines from news websites. - New sample
foil-progress.hvml
: Show usage ofprogress
tag in Foil renderer. - New sample
foil-meter.hvml
: Show usage ofmeter
tag in Foil renderer.
- New sample
On Jan. 10, 2023, HVML Community announces the availability of PurC 0.9.5, which is also the fifth alpha release of PurC 1.0.x.
For bugs, incompatibilities, and issues, please report to https://github.com/HVML/PurC/issues.
In this version, we fixed some bugs and made some enhancements:
- CHANGES:
- (N/A).
- ADJUSTMENTS:
- Tune to skip some test cases if there are no commands needed installed.
- ENHANCEMENTS:
- Add a new HVML sample:
Source/Sample/hvml/file-manager.hvml
to browse files in local system. - Improve the built-in Foil renderer to support basic layouts and CSS properties about text style.
- Add a new HVML sample:
- OPTIMIZATIONS:
- Optimize the socket communication with a remote HVML renderer.
- BUGFIXES:
- (N/A).
On Dec. 30, 2022, HVML Community announces the availability of PurC 0.9.4, which is also the fifth alpha release of PurC 1.0.x.
For bugs, incompatibilities, and issues, please report to https://github.com/HVML/PurC/issues.
In this version, we fixed some bugs and made some enhancements:
- CHANGES:
- Rename some APIs.
- Tune almost all API description.
- ADJUSTMENTS:
- (N/A).
- ENHANCEMENTS:
- Improve the implementation of the element
update
. - Full support for
request
element. - Add new test cases or enhance test cases.
- Enhance Foil to support more properties and layouts except for table.
- Improve the implementation of the element
- OPTIMIZATIONS:
- (N/A).
- IMPROVEMENTS:
- Tune some API descriptions.
- BUGFIXES:
- The bug reported in Issue #42.
On Nov. 30, 2022, HVML Community announces the availability of PurC 0.9.2, which is also the forth alpha release of PurC 1.0.x.
For bugs, incompatibilities, and issues, please report to https://github.com/HVML/PurC/issues.
In this version, we fixed some bugs and made some enhancements:
- CHANGES:
- Rename some APIs.
- ADJUSTMENTS:
- Tune the serialization format of eDOM.
- ENHANCEMENTS:
- Support for triple-single-quote syntax.
- The HEEs which are embedded in a string enclosed by two triple-double-quotes will be evaluated.
- Support line comments in CHEE.
- Support for the tuple.
- Support for using string constants to define exception in
catch
andexcept
tags. - In the implementation of predefined variables, use the interfaces for linear container instead of array.
- Add a new API:
purc_variant_make_atom()
- Support for using a URL query string (in RFC 3986) for the request data of
purc
. - Foil now supports more CSS properties:
white-space
,list-style-type
, and so on.
- OPTIMIZATIONS:
- IMPROVEMENTS:
- Tune some API descriptions.
- BUGFIXES:
- eJSON parser now raises errors for C0 control characters.
- Some expressions in
hvml
anditerate
were evaluated twice incorrectly.
On Otc. 31, 2022, HVML Community announces the availability of PurC 0.9.0, which is also the third alpha release of PurC 1.0.x.
For bugs, incompatibilities, and issues, please report to https://github.com/HVML/PurC/issues.
In this version, we fixed some bugs and made some enhancements:
- CHANGES:
- Rename type
purc_rdrprot_t
topurc_rdrcomm_t
. - Rename macro
PURC_RDRPROT_HEADLESS
toPURC_RDRCOMM_HEADLESS
. - Rename macro
PURC_RDRPROT_THREAD
toPURC_RDRCOMM_THREAD
. - Rename macro
PURC_RDRPROT_PURCMC
toPURC_RDRCOMM_SOCKET
. - Rename macro
PURC_RDRPROT_HIBUS
toPURC_RDRCOMM_HIBUS
. - Rename the field
renderer_prot
ofstruct purc_instance_extra_info
torenderer_comm
. - Change the value of macro
PCRDR_PURCMC_PROTOCOL_VERSION
to 110. - Rename function
pcrdr_conn_protocol()
topcrdr_conn_comm_method()
. - Rename function
pcrdr_purcmc_connect()
topcrdr_socket_connect()
. - Rename function
pcrdr_purcmc_read_packet()
topcrdr_socket_read_packet()
. - Rename function
pcrdr_purcmc_read_packet_alloc()
topcrdr_socket_read_packet_alloc()
. - Rename function
pcrdr_purcmc_send_packet()
topcrdr_socket_send_packet()
. - Rename macro
PCA_ENABLE_RENDERER_PURCMC
toPCA_ENABLE_RENDERER_SOCKET
.
- Rename type
- ADJUSTMENTS:
- Use
edpt://
instead of@
as the schema of an endpoint URI. - Merge repo of
DOM Ruler
toPurC
(underSource/CSSEng
andSource/DOMRuler
). - Merge repo of
PurC Fetcher
toPurC
(underSource/RemoteFetcher
).
- Use
- ENHANCEMENTS:
- Basic support for the new variant type: tuple.
- Improve the implementation of the element
bind
:- The support for the adverb attribute
constantly
. - The support for the substituting expression.
- The support for the adverb attribute
- Improve the element
init
to make the attributeat
support_runner
, so we can create a runner-level variable. - Improve the data fetcher to generate the progress events when fetching data.
- Improve the function to get data from remote data fetcher:
- The element
archetype
: support forsrc
,param
, andmethod
attributes. - The element
archedata
: support forsrc
,param
, andmethod
attributes. - The element
execpt
: support forsrc
,param
, andmethod
attributes. - The element
init
: support forfrom
,with
, andvia
attrigbutes. - The element
define
: support forfrom
,with
, andvia
attributes. - The element
update
: support forfrom
,with
, andvia
attributes.
- The element
- Support for the equivalence of the context variable
<
:~
. - Support for the equivalences and/or abbreviations of some adverb attributes.
- Support for the new preposition attribute:
idd-by
. - A simple built-in HTML renderer (Foil) for text terminal via
THREAD
channel.
- OPTIMIZATIONS:
- IMPROVEMENTS:
- BUGFIXES:
On Sep. 29, 2022, HVML Community announces the availability of PurC 0.8.2, which is also the second alpha release of PurC 1.0.x.
For bugs, incompatibilities, and issues, please report to https://github.com/HVML/PurC/issues.
In this version, we fixed some bugs and made some enhancements:
- BUGFIXES:
- The content of an
iterate
element may be evaluated twice. - Incorrect evaluation logic of a CJSONEE with
&&
and||
. - Refactor eJSON parser to support the varoius string patterns.
- Fix a bug about a percent escaped path for
file://
URL.
- The content of an
- ENHANCEMENTS:
- Provide support for channel, which can act as an inter-coroutine communication (ICC) mechanism. See Section 3.2.7 of HVML Predefined Variables V1.0.
- Support for
rdrState:connLost
event on$CRTN
. - Implement new APIs:
purc_coroutine_dump_stack
. - Support for use of an element's identifier as the value of the
at
attribute in aninit
element. - Improve the element
init
to make the attributeas
be optional, so we can useinit
to initilize a data but do not bind the data to a variable. - Implement the
request
tag (only inter-runner request). - Provide support for
type
attribute of the elementarchetype
. It can be used to specify the type of the template contents, for example,plain
,html
,xgml
,svg
, ormathml
. - Support for the prefix for a foreign tag name. See Section 3.1.1 of HVML Specifiction V1.0.
- Support for using Unihan characters in variable names and property/method names. See Section 2.2.2 of HVML Specifiction V1.0.
- OPTIMIZATIONS:
- Optimize the content evaluation of foreign elements: make sure there is only one text node after evaluating the contents
$< Hello, world! --from COROUTINE-$CRTN.cid
.
- Optimize the content evaluation of foreign elements: make sure there is only one text node after evaluating the contents
- IMPROVEMENTS:
- When the contents of the target document is very large, send the contents by using operations
writeBegin
,writeMore
, andwriteEnd
. - Raise exceptions if encounter errors when the fetcher failed to load a resource of a given URL.
- When the contents of the target document is very large, send the contents by using operations
- TUNING:
On July 31, 2022, HVML Community announces the availability of PurC 0.8.0, which is also the first alpha release of PurC 1.0.x.
This version implements almost all features defined by HVML Specifiction V1.0, and also implements almost all predefined dynamic variables defined by HVML Predefined Variables V1.0.
For bugs, incompatibilities, and issues, please report to https://github.com/HVML/PurC/issues.
- The content of an
iterate
element may be evaluated twice. - Some EJSON expressions within
""
are evaluated incorrectly. - Incorrect evaluation logic of a CJSONEE with
&&
and||
.