Table of Contents
- vim
- vscode
- gitlab
- github
- [0.9.6; Resolved] Optimize variant module.
- [0.9.2; Resolved] Full support for the new variant type: tuple.
- [0.9.2; Resolved] Implement some new APIs:
purc_variant_make_atom()
- [0.9.0; Resolved] Basic support for the new variant type: tuple.
- [Pending] Use an indepedent structure (hash table) to maintain the listeners of variants, so we can decrease the size of a variant structure.
- [0.9.16] Support for inherent methods for variants.
- [0.9.10; Resolved] Optimize the HVML and HEE parsing error messages.
- [0.9.6; Resolved] Optimize the evaluation of a VCM tree to decrease uses of
malloc()
andfree()
. - [0.9.2; Resolved] Provide support for triple-single-qutoe syntax and make sure the HEEs which are embedded in a string enclosed by two triple-double-quotes be evaluated.
- [0.9.2; Resolved] Support line comments in CHEE.
- [0.9.2; Resolved] Support for tuples.
- [0.9.2; Resolved] Support for string constants.
- [0.8.2; Resolved] Support for prefix for foreign tag name. See Section 3.1.1 of HVML Specifiction V1.0.
- [0.8.2; Resolved] Support for using Unihan characters in variable names and property/method names. See Section 2.2.2 of HVML Specifiction V1.0.
- [0.8.2; Resolved] 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
. - [0.8.2; Resolved] Improve eJSON parser to support the following string patterns:
file://$SYS.cwd/a.hvml
$SYS.time,$SYS.time~$SYS.time-$SYS.time@$SYS.time#$SYS.time%$SYS.time^$SYS.time&$SYS.time*$SYS.time+$SYS.time=$SYS.time\$SYS.time|$SYS.time>$SYS.time:$SYS.time!$SYS.time<$SYS.time?$SYS.time;
$SYS.time;$SYS.time、$SYS.time $SYS.timea$SYS.time。$SYS.time,$SYS.time“$SYS.time”$SYS.time
- [0.8.2; Resolved] Keep self-closed foreign elements not changed.
- [0.9.16] Support for the following URI schemas for
$STREAM
:tcp
fifo
- [0.9.16] Support for the following extension protocols for
$STREAM
:websocket
- [0.9.16] Basic support for
$SOCK
. - [0.9.18] Complete the implementation of the following predefined variables:
$URL
$STR
$DATA
- [0.9.10; Resolved] Implementation of
$CRTN.static
and$CRTN.temp
. - [0.9.8; Resolved] Basic support for
$PY
. - [0.9.6; Resolved] Complete the implementation of the following predefined variables:
$DOC
(including the document entity and the element collection entity).
- [0.9.2; Resolved] In the implementation of predefined variables, use the interfaces for linear container instead of array.
- [0.8.2; Resolved] Implement
$RUNNER.chan
and the native entity representing a channel, which can act as an inter-coroutine communication (ICC) mechanism. See Section 3.2.7 of HVML Predefined Variables V1.0. - [0.8.2; Resolved] Tune
$SYS.sleep
to utilize evaluating again.
- [0.9.6; Resolved] Optimize the implementation of element collection, and provide the support for CSS Selector Level 3.
- [0.9.6; Resolved] Optimize the implementation of the map from
id
andclass
to element(s). - [Pending] Enhance
purc_document
to fast validate an HVML handle. - [Pending] Support for the new target document type:
plain
and/ormarkdown
.
- [0.9.16] Support for new renderer events:
rdrState:pageActivated
andrdrState:pageDeactivated
. - [0.9.18] The generation and handling mechanism of uncatchable errors:
- Support for the element
error
. - The element
error
: support forsrc
,param
, andmethod
attributes.
- Support for the element
- [0.9.18] Review all uses of exception names.
- [0.9.18] Review the implementation of all elements.
- [0.9.14; Resolved] 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.
- [0.9.10; Resolved] Tune the implementation related to PURCMC protocol to support plainwin/widget management.
- [0.9.6; Resolved] Improve support for the attribute
in
, so we can use a value like> p
to specify an descendant as the current document position. - [0.9.6; Resolved] Improve
init
to load content with MIME typetext/html
as a document entity. - [0.9.4; Resolved] Improve the implementation of the element
update
:- The value of the attribute
to
can beintersect
,subtract
, andxor
. - The value of the attribute
at
can becontent
. - The support for the adverb attribute
individually
.
- The value of the attribute
- [0.9.4; Resolved] Full support for
request
element. - [0.9.0; Resolved] 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
- [0.9.0; Resolved] Improve the element
init
to make the attributeat
support_runner
, so we can create a runner-level variable. - [0.9.0; Resolved] Improve the data fetcher to generate the progress events when fetching data.
- [0.9.0; Resolved] 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
- [0.9.0; Resolved] Support for the equivalence of the context variable
<
:~
. - [0.9.0; Resolved] Support for the equivalences and/or abbreviations of some adverb attributes.
- [0.9.0; Resolved] Support for the new preposition attribute:
idd-by
. - [0.9.0; Pending] Improve the element
bind
to make the attributeat
support_runner
, so we can create a runner-level variable. - [0.8.2; Resolved] Enhance the evaluation of VCM to support
PURC_ERROR_AGAIN
. - [0.8.2; Resolved] Enhance scheduler to support support
PURC_ERROR_AGAIN
. - [0.8.2; Resolved] Raise an exception for a failed evaluation of an eJSON expression.
- [0.8.2; Resolved] Enhance
purc_coroutine_dump_stack
to show the specific failed position, e.g., a call to a getter or setter with arguments, when an uncaught exception raised. - [0.8.2; Resolved] The support for the attribute
type
of the elementarchetype
. - [0.8.1; Resolved] Support for
rdrState:connLost
event on$CRTN
. - [0.8.1; Resolved] Implement new APIs:
purc_coroutine_dump_stack
. - [0.8.1; Resolved] Support for use of an element's identifier as the value of the
at
attribute in aninit
element. - [0.8.1; Resolved] Improve the element
init
to make the attributeas
is optional, so we can useinit
to initilize a data but do not bind the data to a variable. - [0.8.1; Resolved] Implement the
request
tag (only inter-coroutine request). - [0.8.1; Resolved] 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
.
- [0.9.18] Enhance Foil to support table.
- [0.9.18] Enhance Foil to support flex and grid layout.
- [0.9.18] Enhance Foil to support full-screen, controls, and multiple-page rendering.
- [0.9.10; Resolved] Enhance Foil to support dynamic change of element styles and contents.
- [0.9.8; Resolved] Enhance Foil to render borders.
- [0.9.8; Resolved] Enhance Foil to support floats and absolute positioning.
- [0.9.6; Resolved] Enhance Foil to support
meter
andprogress
elements. - [0.9.4; Resolved] Enhance Foil to support more properties and layouts except for table.
- [0.9.0; Resolved] A simple built-in HTML renderer (Foil) for text terminal via
THREAD
protocol.
- [0.9.20] Windows
- [0.9.18] Clean up all unnecessary calls of
PC_ASSERT
. - [0.9.18] Normalize the typedef names.
- [0.9.18] Rewrite the code fragments in coding pattern
do { if (...) break; } while (0)
in source files: We should only use this pattern when defining macros or just creating a temp. variable scope, because this coding pattern seriously reduces code readability. - [0.9.18] Tune API description.
- [0.9.0; Resolved] Merge repo of
DOM Ruler
toPurC
(underSource/CSSEng
andSource/DOMRuler
). - [0.9.0; Resolved] Merge repo of
PurC Fetcher
toPurC
(underSource/RemoteFetcher
). - [0.8.1; Resolved] Tune
PC_ASSERT
to suppress any code when building for release.
- [0.9.4; Resolved] Add new test cases or enhance test cases for newly found bugs.
- [0.9.4; Resolved]
Source/test/interpreter/03-again-sleep.hvml
: the child coroutine only writes 5 lines, but 6 lines expected. - [0.9.4; Resolved]
Source/Sample/hvml/calculator-bc.hvml
will causepurc
core dump if there is nobc
installed in the system. - [0.9.2; Resolved] Add new test cases for following new bugs.
- [0.9.2; Resolved] Check eJSON parser for C0 control characters in strings.
- [0.9.2; Resolved] Crash if the content of a foreign element contains a
(
character. - [0.9.2; Resolved] The exrepssions in
hvml
might be evaluated twice. - [0.9.2; Resolved] Keep all whitespaces in text content of a foreign element, but the leading whitespaces are removed now.
- [0.9.2; Resolved] There is an odd call to writelines() in
Source/test/interpreter/comp/31-again-channel-reader-writer.hvml
. - [0.8.2; Resolved] The condition handler will get
PURC_COND_COR_EXITED
after gotPURC_COND_COR_TERMINATED
. - [0.8.2; Resolved] When dumping the stacks, we should use the writing order the attributes of an element, not the sorted order.
- [0.8.2; Resolved] Some requests to renderer might be sent twice.
- [0.8.1; Resolved] The content of an
iterate
element may be evaluated twice. - [0.8.1; Resolved] The samples with bad result:
- Incorrect evaluation logic of a CHEE with
&&
and||
. hvml/greatest-common-divisor.hvml
: Adjust the evaluating logic of CHEE.hvml/hello-world-c-bad.hvml
:$0<) Helo, world! -- from HVML COROUTINE # $CRTN.cid"
; expected:0) Helo, world! -- from HVML COROUTINE # $CRTN.cid
; but got0
.
- Incorrect evaluation logic of a CHEE with
- [0.8.1; Resolved] Improve eJSON parser to support the following patterns:
$?.greating$?.name
:Hello, Tom
$?.greating{$?.name}
:Hello, Tom
{$?.greating}{$?.name}
:Hello, Tom
$?.greating<any CHAR not a valid variable token character>
:Hello<any CHAR not a valid variable token character>
${output_$CRTN.target}
:$output_html
or$output_void
; the evaluated result in{ }
should be a string and a valid variable token.
- [0.8.1; Resolved] Raise exceptions if encounter errors when the fetcher failed to load a resource of a given URL.
- [0.8.1; Resolved] When the contents of the target document is very large, send the contents by using operations
writeBegin
,writeMore
, andwriteEnd
.