src/basilisp/lang/compiler/__init__.py
def _incremental_compile_module(
    optimizer: PythonASTOptimizer,
    py_ast: GeneratedPyAST,
    mod: types.ModuleType,
    source_filename: str,
    collect_bytecode: Optional[BytecodeCollector] = None,
) -> None:
    """Incrementally compile a stream of AST nodes in module mod.

    The source_filename will be passed to Python's native compile.

    Incremental compilation is an integral part of generating a Python module
    during the same process as macro-expansion."""
    module_body = list(
        map(_statementize, itertools.chain(py_ast.dependencies, [py_ast.node]))
    )

    module = ast.Module(body=list(module_body))
    module = optimizer.visit(module)
    ast.fix_missing_locations(module)

    _emit_ast_string(module)

    bytecode = compile(module, source_filename, "exec")
    if collect_bytecode:
        collect_bytecode(bytecode)
    exec(bytecode, mod.__dict__)
def _incremental_compile_module(
    optimizer: PythonASTOptimizer,
    py_ast: GeneratedPyAST,
    mod: types.ModuleType,
    source_filename: str,
    collect_bytecode: Optional[BytecodeCollector] = None,
) -> None:
    module_body = list(
        map(_statementize, itertools.chain(py_ast.dependencies, [py_ast.node]))
    )

    module = ast.Module(body=list(module_body))
    module = optimizer.visit(module)
    ast.fix_missing_locations(module)

    _emit_ast_string(module)

    bytecode = compile(module, source_filename, "exec")
    if collect_bytecode:
        collect_bytecode(bytecode)
    exec(bytecode, mod.__dict__)
def _incremental_compile_module ( optimizer : PythonASTOptimizer , py_ast : GeneratedPyAST , mod : types . ModuleType , source_filename : str , collect_bytecode : Optional [ BytecodeCollector ] = None , ) -> None : module_body = list ( map ( _statementize , itertools . chain ( py_ast . dependencies , [ py_ast . node ] ) ) ) module = ast . Module ( body = list ( module_body ) ) module = optimizer . visit ( module ) ast . fix_missing_locations ( module ) _emit_ast_string ( module ) bytecode = compile ( module , source_filename , "exec" ) if collect_bytecode : collect_bytecode ( bytecode ) exec ( bytecode , mod . __dict__ )
Incrementally compile a stream of AST nodes in module mod.

    The source_filename will be passed to Python's native compile.

    Incremental compilation is an integral part of generating a Python module
    during the same process as macro-expansion.
Incrementally compile a stream of AST nodes in module mod .