microsoft / chakracore-wiki Goto Github PK
View Code? Open in Web Editor NEWA mirror of the ChakraCore wiki to enable pull requests on the Wiki.
Home Page: https://github.com/Microsoft/ChakraCore/wiki
License: Other
A mirror of the ChakraCore wiki to enable pull requests on the Wiki.
Home Page: https://github.com/Microsoft/ChakraCore/wiki
License: Other
We welcome community submissions to this Wiki via Pull Requests on this repo! If you are adding a page, please note that the title of the page is determined by the file name. Hyphens in the file names will become spaces in the titles of the pages. Refer to existing files as examples of the naming convention. Note: Please do not rename this file from README.txt to README.md. README.txt will not show up in the Wiki view, but README.md will. # ChakraCore-wiki Maintainers' Workflow Small changes are often made by the Wiki maintainers directly via the Wiki interface, and those changes are not automatically mirrored in this repo. Due to low volume of changes, this repo (the ChakraCore-wiki repo) is manually (rather than automatically) kept in sync with the Wiki at https://github.com/Microsoft/ChakraCore/wiki. It is recommended to configure your remotes as follows to reduce ambiguity: git remote add wiki https://<username>:<token>@github.com/Microsoft/ChakraCore.wiki.git git remote add repo https://<username>:<token>@github.com/Microsoft/ChakraCore-wiki.git git remote add user https://<username>:<token>@github.com/<username>/ChakraCore-wiki.git The `wiki` remote is updated when maintainers manually make changes through the GitHub Wiki interface. The `repo` remote is updated when commits are made directly to this repo. The `user` remote is the remote to which you will push branches when you want to make PRs against the `repo` remote. You can also bypass PRs and push directly to the `wiki` remote, since there is no automation around or checks on the wiki. To avoid merge conflicts, when possible, before making changes via this repo or merging any pull requests, please manually sync changes from the `wiki` remote as follows: git checkout master git fetch --all git merge --ff-only wiki/master git push repo master git push user master # optional, but recommended to keep your user clone in sync If `wiki` and `repo` have become out of sync and you need to merge them: git checkout master # tracking the last time you pushed repo to wiki git fetch --all git merge --ff-only repo/master # sync to latest repo git merge wiki/master # merge the wiki changes into the repo # Merging wiki/master into repo/master will keep repo/master changes visible in --first-parent history # push all remotes to keep things in sync git push repo master git push wiki master git push user master # optional, but recommended
https://aka.ms/jsrtwrapper needs an update. It currently points to
https://github.com/Microsoft/Chakra-Samples/tree/master/ChakraCore%20Samples/Hello%20World/C%23/HelloWorld/Hosting
which is a dead link.
Should probably be:
https://github.com/Microsoft/Chakra-Samples/tree/master/ChakraCore%20Samples/Hello%20World/Windows/C%23/HelloWorld/Hosting
As title suggests. https://github.com/Microsoft/ChakraCore-wiki/blob/master/Resources.md is a preferred location.
See chakra-core/ChakraCore#1068
@nojvek pointed out it would be useful to have information such as:
- how tests are organized by rlexedirs.xml and rlexe.xml files
- adding a new test
- clarifying that *.js files do not automatically turn into tests
- baselines vs no baselines vs exit code check only
- where rl log files go
- techniques for capturing output from and iterating quickly on failing tests
The article simply claims that "hardware write barrier is not available", but does not explain why similar mechanisms are not used, e.g. if they are not usable, not fast enough, not convenient or the author simply was not aware of them.
Linux for example has soft-dirty, see Documentation/vm/soft-dirty.txt
It works pretty similar to the Windows feature I'd claim, HOWEVER resetting its state always operates on all of the process' memory space instead of just specific ranges, it likely is also slower due to being pagefault-based (but then, at least on ARM architecture even the Windows feature surely must be pagefault-based?).
It is possible to map pages read-only and catch SIGSEGV, alternatively there is also MADV_USERFAULT (though I have not investigated how usable it is for catching only writes).
All these in a library admittedly have the issue of potentially interfering with the host application if it also uses the feature, but the wiki at least mentioning those options and thoughts on their usefulness might be useful for anyone who'd like to try their hand at optimization of this feature for non-Windows.
There are important files that Microsoft projects should all have that are not present in this repository. A pull request has been opened to add the missing file(s). When the pr is merged this issue will be closed automatically.
Microsoft teams can learn more about this effort and share feedback within the open source guidance available internally.
It seems like there's some confusion over which versions of ChakraCore we will be shipping patch updates to. My understanding was that we're going to support the current and previous releases (N & N-1). Since our current release is 1.3.*
that would mean we will support 1.2.*
and 1.3.*
with patch releases. When 1.4.0
is released, we will stop supporting 1.2.*
(no more patch releases), but we will continue to support 1.3.*
.
Can we clarify whether this is indeed the approach we are planning to take and add content to the Wiki documenting this intention for the community?
/cc @digitalinfinity
The new documentation would probably go here:
https://github.com/Microsoft/ChakraCore/wiki/Embedding-ChakraCore#linuxos-x
Adapted from chakra-core/ChakraCore#1441
Adapted from internal feedback:
It would have been helpful if there had been a more descriptive documentation explaining about doing basic things using ChakraCore, like how to expose classes to js, how to receive objects from js with the current state, namespaces, how to get/set attributes, how to invoke a js function, and how to export a C++ function to js. We had to dig into the sample projects hosted in the github page to understand how to do things in ChakraCore. A better documentation could have helped and saved time for us.
If this information is already available in a form other than the example projects, we should try to improve the discoverability of that info.
Adding @liminzhu's list of topics to the main post so we get the handy progress meter:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.