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
ver-0.9.19 :a16, 2023-09-01, 2023-12-30
ver-0.9.22 :a17, 2023-12-31, 2025-04-30
ver-0.9.24 :a18, 2025-04-30, 2025-06-30
ver-0.9.26 :a19, 2025-06-30, 2025-08-31
ver-0.9.30 :a20, 2025-08-31, 2026-01-31
ver-1.0.0 :v1, 2026-02-01, 2026-02-28
On Jan. 31, 2026, HVML Community announces the availability of PurC 0.9.30, which is also the 20th 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.
- CHANGES:
- Change license of utilities to MIT
- Tune some test cases for Ubuntu 26.04.
- ENHANCEMENTS:
- OPTIMIZATIONS:
- Optimize the coroutine scheduler resulted in a 40% performance improvement.
- ADJUSTMENTS:
- BUGFIXES:
- Fixed some bugs of HVML parser and interpreter.
- Fixed some minor bugs of log utility.
- CLEANUP:
- SAMPLES:
On Otc. 31, 2025, HVML Community announces the availability of PurC 0.9.26, which is also the 19th 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 implemented all APIs defined by HVML Predefined Variables V1.0. We also made a number of major enhancements and fixed some bugs.
- CHANGES:
- ENHANCEMENTS:
- Support for QuickJS; Now HVML program can use
$JS.load()to load JavaScript modules or scripts, and use$JS.eval()to evaluate a JavaScript expression and get the result. - Support for operator expressions:
<init as max with (a > b ? a : b) />. - Support for new variant type:
bigint. - New HVML APIs:
$DATA.longint(),$DATA.ulongint(),$DATA.bigint(),$DATA.double(), and$DATA.longdouble(). - New APIs to provide various variant operators (arithmetic, logic, bitwise, assignment, concatenation, and so no).
- New APIs:
purc_variant_numerify_long(),purc_variant_serialize_alloc(), and so on. - Support for CSS attribute
transformin CSSEng. - Support for the global selector when serializing the document.
- Support for user-defined options (
--query-<key> <value>) for easy definition of request parameters ofpurc. - New APIs to support read/write lock on document:
pcdoc_document_lock_for_write(),pcdoc_document_lock_for_read(), andpcdoc_document_unlock().
- Support for QuickJS; Now HVML program can use
- OPTIMIZATIONS:
- Find tuned the
struct purc_variantto reduce memory use for scalar variants.
- Find tuned the
- ADJUSTMENTS:
- BUGFIXES:
- Fixed some bugs of HVML parser.
- Removed unnecessary checks when decoding UTF-8 characters.
- CLEANUP:
- Cleaned up the command line options of
purc.
- Cleaned up the command line options of
- SAMPLES:
On Jun. 30, 2025, HVML Community announces the availability of PurC 0.9.24, which is also the 18th 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 implemented all APIs defined by HVML Predefined Variables V1.0. We also made a number of major enhancements and fixed some bugs.
- CHANGES:
- Upgrade PURCMC to version 170.
- Change some helper APIs about URL to conform to common usage.
- Rename
$STR.format_c()to$STR.printf(). - Rename
$STR.format_p()to$STR.printp().
- ENHANCEMENTS:
- Add a new exception:
AssertionFailed. - New verb. element
adapt. - Complete implementation methods of
$STR,$URL, and$DATA. - Refactor some methods of
$STR.translate(),$DATA.serialize(), and so on. - Support for
rdrState:pageActivatedandrdrState:pageDeactivatedevents. - Enhance
change:inflated,change:deflated, andchange:modifiedevents to have payloads. - Implement
purc_rwstream_ungetc(). - Implement new methods for native stream entity:
$stream.getuc(),$stream.putuc(), and$stream.ungetuc().
- Add a new exception:
- OPTIMIZATIONS:
- Optimize the coroutine scheduler.
- ADJUSTMENTS:
- [purc] Add new option:
-p (--print-docs) - [purc] Add new option:
-t (--print-result) - [purc] Remove some rarely used short options.
- [purc] Provide support for user-defined options for query key-value pairs:
--query-foo bar
- [purc] Add new option:
- BUGFIXES:
- Fix some some dead loop bugs and crashes.
- CLEANUP:
- SAMPLES:
On Apr. 30, 2025, HVML Community announces the availability of PurC 0.9.22, which is also the 17th 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 made a lot of major enhancements and fixed some bugs:
- CHANGES:
- Upgrade PURCMC to version 170.
- Rename element
includetoexecute. - Use
change:inflated,change:deflated, andchange:modifiedevent names for container instead ofgrow,shrunk, andchange. - Remove
ssl_certandssl_keyfields fromstruct purc_instance_extra_info. - Use new implementation of dvobjs-based socket connection to the renderer.
- Use communication method socket for both UNIX/local socket and websocket socket, and remove obsolete code for websocket connection.
- ENHANCEMENTS:
- Add new option for purc:
-D (--daemon) - Fine-tune the error reports for parsing and interpreting HVML.
- Add two new exceptions: ProtocolViolation and TLSFailure.
- Complete implementation of
$STREAM: enhance the extension protocolwebsocketfor stream socket and provide support for SSL/TLS. - Enhance or tune for xGUI.
- Implement
$SOCKET.stream()and$SOCKET.dgram()methods for stream socket and datagram socket respectively. - Implement
$SOCKET.accept()method. - Implement
$dgramSocket.sendto()and$dgramSocket.recvfrom(). - Implement
$SYS.open()method. - Implement
$SYS.pipe()method. - Implement
$SYS.socketpair()method. - Implement
$SYS.close()method. - Implement
$SYS.fdflags()method. - Implement
$SYS.sockopt()property. - Implement
$SYS.spawn()method. - Implement
$SYS.waitpid()method. - Implement
$SYS.kill()method. - Implement
$SYS.access()method. - Implement
$SYS.seek()method. - Implement
$SYS.remove()method. - Implement
$SYS.sendfile()method. - Implement
$SYS.openpty()method. - Implement
$stream.fd()property. - Implement
$stream.peerAddrproperty. - Implement
$stream.peerPortproperty. - Implement
$DATA.makebytesbuffer()method. - Implement
$DATA.append2bytesbuffer()method. - Implement
$DATA.rollbytesbuffer()method. - Implement
$STREAM.readbytes2buffer()method. - Implement
$RUNNER.enablelog()method. - Implement
$RUNNER.logmsg()method. - Implement
$DATA.key()method. - Implement
$STR.trim()method. - Implement
$STR.strstr()method. - Implement
$STR.strpbrk()method. - Implement
$STR.strpos()method. - Implement
$STR.tokenize()method. - Implement
$STR.translate()method. - Implement
$STR.rot13()method. - Implement
$STR.count_chars()method. - Implement
$STR.count_bytes()method. - Implement
$STR.codepoints()method. - Implement
$RUNNER.mktempchan(). - Implement
$DATA.is_container(). - Refactor
$STR.explode(),$STR.implode(),$STR.format_c(), and$STR.replace()methods. - Enhance
$STREAM.readlines()to support the customized line seperator. - Rename
$DATA.size()to$DATA.memsize().
- Add new option for purc:
- OPTIMIZATIONS:
- Tune prototype of
on_messagefor message/websocket protocol to reduce the memory use.
- Tune prototype of
- ADJUSTMENTS:
- Adjust the algorithm to cast a byte sequence to an integer or a float number.
- Change the manner of
purc_inst_ask_to_shutdown()from sending request to posting request (noreturn). - Support implicity variables
_observedAgainst,_observedOn,_observedFor,_observedWith,_observedContentforobserverelement.
- BUGFIXES:
- Fix some memory leaks and race condition crashes.
- Fix a bug in
purc_variant_cast_to_ulongint(): 0.0 can not be cast to ulongint.
- CLEANUP:
- Use
snprintf()instead ofsprintf().
- Use
- SAMPLES:
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-fetchermodule.
- 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=ONif you want use libsoup-2.x. - Support for PURCMC version 160.
- Add a new renderer
seekerfor seeking a real available remote renderer. - Support for switching amone renderers.
- Add
transitionStyleandlayoutStylefor windows. - Support for app menifest.
- Support for
templateattribute ofhvmltag. - 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_CLASSandPCRDR_MSG_ELEMENT_TYPE_TAG. - Support
.class-nameandtag-nameinrequestandobserveelements. - Create HTML document with explicit DOCTYPE.
- Implement
receivableevent 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_loadfor inherit page;
- Call
- BUGFIXES:
- Support for
atattribute value_topmostininit. - 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,differelements and fix known bugs. - Tune the manners of
backandupdateelements and fix known bugs. - Tune the manners of
updateelements to reflect thewhollyadverb attribute. - The result data of a
catchelmenet, should be defined as an object to describe the exception. - Enhance
initelement to supportRAW-HEADERSwhen issuing an HTTP request to get data from a remote URL. - Enhance
requestelement 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_contentsgetter 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
$REQis 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_contentsgetter 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
$STREAMto supportmessageprotocol on UNIX-domain socket andHBDBusdata 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_xxxinterfaces to applications. - Implement
$CRTN.staticand$CRTN.tempto 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
matchandbackelements. - 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_treeinstead 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
ExternalFailurefor 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
initto load content with MIME typetext/htmlas a document entity. - Improve support for the attribute
in, so we can use a value like> pto specify an descendant as the current document position. - Enhance Foil renderer to support
meterandprogresselements.
- 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 ofprogresstag in Foil renderer. - New sample
foil-meter.hvml: Show usage ofmetertag 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.hvmlto 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
requestelement. - 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
catchandexcepttags. - 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
hvmlanditeratewere 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_ttopurc_rdrcomm_t. - Rename macro
PURC_RDRPROT_HEADLESStoPURC_RDRCOMM_HEADLESS. - Rename macro
PURC_RDRPROT_THREADtoPURC_RDRCOMM_THREAD. - Rename macro
PURC_RDRPROT_PURCMCtoPURC_RDRCOMM_SOCKET. - Rename macro
PURC_RDRPROT_HIBUStoPURC_RDRCOMM_HIBUS. - Rename the field
renderer_protofstruct purc_instance_extra_infotorenderer_comm. - Change the value of macro
PCRDR_PURCMC_PROTOCOL_VERSIONto 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_PURCMCtoPCA_ENABLE_RENDERER_SOCKET.
- Rename type
- ADJUSTMENTS:
- Use
edpt://instead of@as the schema of an endpoint URI. - Merge repo of
DOM RulertoPurC(underSource/CSSEngandSource/DOMRuler). - Merge repo of
PurC FetchertoPurC(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
initto make the attributeatsupport_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, andmethodattributes. - The element
archedata: support forsrc,param, andmethodattributes. - The element
execpt: support forsrc,param, andmethodattributes. - The element
init: support forfrom,with, andviaattrigbutes. - The element
define: support forfrom,with, andviaattributes. - The element
update: support forfrom,with, andviaattributes.
- 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
THREADchannel.
- 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
iterateelement 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:connLostevent on$CRTN. - Implement new APIs:
purc_coroutine_dump_stack. - Support for use of an element's identifier as the value of the
atattribute in aninitelement. - Improve the element
initto make the attributeasbe optional, so we can useinitto initilize a data but do not bind the data to a variable. - Implement the
requesttag (only inter-runner request). - Provide support for
typeattribute 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
iterateelement may be evaluated twice. - Some EJSON expressions within
""are evaluated incorrectly. - Incorrect evaluation logic of a CJSONEE with
&&and||.