We are moving well forward towards the 0.80 goals we set our selves (Jakub's notion kanban)
Next milestone to spitball: 1.0
What is the scope of 1.0. What do we want to achieve.
(not fully coverable in this meeting)
Everyone: collect the 1.0 wishlist. What do you want to see stabilized or which breaking change you really want to make soon?
currently an ugly duckling
goal of the changes originally: make the parsing rules easier to explain
||
requirement for closure
observation
||
closure is coming from a specific niche of programming languagesdef
vs def-env
$env.foo =
inside a block:
def
the escape hatchif $nu.os-info.name == windows { do something }
story good.
source
const
) (we already have some logic living in the parser for that)
With the std and big config we parse a lot of code on startup:
in debug it is slow. in release mode is not that bad.
nu_parser2
at the moment is a lot faster but it is in no way feature complete yet.
Data oriented design: nodes and spans live separate from the AST structure. (how to get them cache-local is it is own challenge)
Type checking could become its own stage/pass
Darren: slippery slope ahead! growth in the std library will still skyrocket and this can impact performance.
JT: jetbrains pioneered ultra fast parsing similar to lite parse. only materialize on call. penalty will be delayed or spread out.
Jakub: julia's lazy compiling is a warning sign that doing lazy compilation is non trivial. (it aint no hotspot vm)
Curse of success
We need more benchmarks/ tracking of that to catch slow regressions
Performance work needs to be data driven
can we crowd source the benchmark and dashboard creation.
time to dogfood!
There:
wip
only barrier: building the latest VScode plugin
Darren has been building VSIX regularly.
but should be easy to get started with a nodejs install.
let-env
JT has been trying to deprecate it in favor of just $env
But we support filling in the variable name to some extent (mind blown members of the core teams didn't know this one neat trick, doctors are shocked)
let-env $foo = "bar"
let $foo = "BAR"
keep in mind we have the cool load-env
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Syncing