From 2a7245ed0ecf489c680c5700dcd22cd4eb98183a Mon Sep 17 00:00:00 2001 From: James Hamlin Date: Sat, 6 Sep 2025 12:39:23 -0700 Subject: [PATCH] Add glj_no_aot_stdlib build tag to omit aot stdlib `go build --tags glj_no_aot_stdlib` builds glojure without the AOT go standard library. Signed-off-by: James Hamlin --- pkg/glj/init-aot.go | 11 +++++++++++ pkg/glj/init.go | 6 ------ pkg/runtime/envinit.go | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-) create mode 100644 pkg/glj/init-aot.go diff --git a/pkg/glj/init-aot.go b/pkg/glj/init-aot.go new file mode 100644 index 00000000..5551f564 --- /dev/null +++ b/pkg/glj/init-aot.go @@ -0,0 +1,11 @@ +//go:build !glj_no_aot_stdlib + +package glj + +import ( + // Add NS loaders for the standard library. + _ "github.com/glojurelang/glojure/pkg/stdlib/glojure/core" + _ "github.com/glojurelang/glojure/pkg/stdlib/glojure/core/async" + _ "github.com/glojurelang/glojure/pkg/stdlib/glojure/go/io" + _ "github.com/glojurelang/glojure/pkg/stdlib/glojure/protocols" +) diff --git a/pkg/glj/init.go b/pkg/glj/init.go index 4093c04b..21fcf9eb 100644 --- a/pkg/glj/init.go +++ b/pkg/glj/init.go @@ -8,12 +8,6 @@ import ( _ "github.com/glojurelang/glojure/pkg/gen/gljimports" "github.com/glojurelang/glojure/pkg/lang" - // Add NS loaders for the standard library. - _ "github.com/glojurelang/glojure/pkg/stdlib/glojure/core" - _ "github.com/glojurelang/glojure/pkg/stdlib/glojure/core/async" - _ "github.com/glojurelang/glojure/pkg/stdlib/glojure/go/io" - _ "github.com/glojurelang/glojure/pkg/stdlib/glojure/protocols" - "github.com/glojurelang/glojure/pkg/runtime" ) diff --git a/pkg/runtime/envinit.go b/pkg/runtime/envinit.go index 5d589c75..3e9fe1bb 100644 --- a/pkg/runtime/envinit.go +++ b/pkg/runtime/envinit.go @@ -120,7 +120,7 @@ func NewEnvironment(opts ...EvalOption) lang.Environment { // Workaround to ensure namespaces that are required by core are loaded. // TODO: AOT should identify this dependency and generate code to load it. if useAot { - RT.Load("glojure/core/protocols") + RT.Load("glojure/protocols") RT.Load("glojure/string") RT.Load("glojure/go/io") }