Make builtin binding fast again by binding only referenced symbols
Avoid doing the internal binding of top-level symbols in the parser, leaving that work to be done in a post-processing step. For builtins, this lets us do a reference-aware bind step (block_bind_incremental) *after* generating builtins/0. Libraries are a bit trickier since they may be bound multiple times, so instead of thinking through the implications I added (block_bind_self) to resolve all internal symbols immediately.
This commit is contained in:
1 parent
b2b0bd37a1
commit
e843a4fdf9
6 files changed
+54
-9
No files matched your search
+1
-1
@@ -2423,7 +2423,7 @@ yyreduce:
|
||||
case 9:
|
||||
#line 333 "src/parser.y" /* yacc.c:1646 */
|
||||
{
|
||||
(yyval.blk) = block_bind((yyvsp[-1].blk), (yyvsp[0].blk), OP_IS_CALL_PSEUDO);
|
||||
(yyval.blk) = block_join((yyvsp[-1].blk), (yyvsp[0].blk));
|
||||
}
|
||||
#line 2429 "src/parser.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
Reference in new issue
Block a user