Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Difficulties compiling on macOS ARM #6

Open
jcowgar opened this issue Jan 19, 2025 · 2 comments
Open

Difficulties compiling on macOS ARM #6

jcowgar opened this issue Jan 19, 2025 · 2 comments

Comments

@jcowgar
Copy link

jcowgar commented Jan 19, 2025

When attempting to compile, I am getting the following errors:

$ ./install.sh /Users/jeremy/Projects/editors/yacco/release
install yacco
# golang.org/x/exp/shiny/driver/gldriver
vendor/golang.org/x/exp/shiny/driver/gldriver/context.go:21:10: undefined: surfaceCreate
vendor/golang.org/x/exp/shiny/driver/gldriver/screen.go:142:5: undefined: useLifecycler
vendor/golang.org/x/exp/shiny/driver/gldriver/screen.go:148:9: cannot use w (variable of type *windowImpl) as screen.Window value in return statement: *windowImpl does not implement screen.Window (missing method Raise)
vendor/golang.org/x/exp/shiny/driver/gldriver/window.go:71:5: undefined: handleSizeEventsAtChannelReceive

I saw in the README that shiny does not compile on macOS any longer and it references two methods that need Stubbed. I am not really a Go programmer and not sure what that really means or what I need to do to compile Yacco.

Thank you for any help.

@aarzilli
Copy link
Owner

IIRC since I wrote that paragraph things got even worse on macOS due to apple removing and deprecating opengl and the metal port of shiny is really buggy. Stubbing simply means adding an implementation of a function that does nothing.

@jcowgar
Copy link
Author

jcowgar commented Jan 19, 2025

It seems as though there are more errors than just stubbing now, as you mentioned. I commented some code out, stubbed a few methods and now have problems linking. I am going to guess that Yacco simply is no longer compatible with macOS.

diff --git a/vendor/golang.org/x/exp/shiny/driver/gldriver/context.go b/vendor/golang.org/x/exp/shiny/driver/gldriver/context.go
index 63fb170..2cda631 100644
--- a/vendor/golang.org/x/exp/shiny/driver/gldriver/context.go
+++ b/vendor/golang.org/x/exp/shiny/driver/gldriver/context.go
@@ -18,11 +18,11 @@ func NewContext() (gl.Context, error) {
 	workAvailable := worker.WorkAvailable()
 	go func() {
 		runtime.LockOSThread()
-		err := surfaceCreate()
-		errCh <- err
-		if err != nil {
-			return
-		}
+		//err := surfaceCreate()
+		//errCh <- err
+		//if err != nil {
+		//	return
+		//}
 
 		for range workAvailable {
 			worker.DoWork()
diff --git a/vendor/golang.org/x/exp/shiny/driver/gldriver/screen.go b/vendor/golang.org/x/exp/shiny/driver/gldriver/screen.go
index 3100ebc..cced2b3 100644
--- a/vendor/golang.org/x/exp/shiny/driver/gldriver/screen.go
+++ b/vendor/golang.org/x/exp/shiny/driver/gldriver/screen.go
@@ -139,9 +139,9 @@ func (s *screenImpl) NewWindow(opts *screen.NewWindowOptions) (screen.Window, er
 	s.windows[id] = w
 	s.mu.Unlock()
 
-	if useLifecycler {
-		w.lifecycler.SendEvent(w, nil)
-	}
+	//if useLifecycler {
+	//w.lifecycler.SendEvent(w, nil)
+	//}
 
 	showWindow(w)
 
diff --git a/vendor/golang.org/x/exp/shiny/driver/gldriver/window.go b/vendor/golang.org/x/exp/shiny/driver/gldriver/window.go
index 82baf2c..d931db6 100644
--- a/vendor/golang.org/x/exp/shiny/driver/gldriver/window.go
+++ b/vendor/golang.org/x/exp/shiny/driver/gldriver/window.go
@@ -68,19 +68,29 @@ type windowImpl struct {
 // NextEvent implements the screen.EventDeque interface.
 func (w *windowImpl) NextEvent() interface{} {
 	e := w.Deque.NextEvent()
-	if handleSizeEventsAtChannelReceive {
-		if sz, ok := e.(size.Event); ok {
-			w.glctxMu.Lock()
-			w.backBufferBound = false
-			w.szMu.Lock()
-			w.sz = sz
-			w.szMu.Unlock()
-			w.glctxMu.Unlock()
-		}
-	}
+	// if handleSizeEventsAtChannelReceive {
+	// 	if sz, ok := e.(size.Event); ok {
+	// 		w.glctxMu.Lock()
+	// 		w.backBufferBound = false
+	// 		w.szMu.Lock()
+	// 		w.sz = sz
+	// 		w.szMu.Unlock()
+	// 		w.glctxMu.Unlock()
+	// 	}
+	// }
 	return e
 }
 
+func (w *windowImpl) Raise() error {
+	return nil
+}
+
+func (w *windowImpl) SetCursor(c screen.Cursor) error { return nil }
+
+func (w *windowImpl) SetTitle(title string) error { return nil }
+
+func (w *windowImpl) WarpMouse(p image.Point) error { return nil }
+
 func (w *windowImpl) Release() {
 	// There are two ways a window can be closed: the Operating System or
 	// Desktop Environment can initiate (e.g. in response to a user clicking a

Errors:

/nix/store/bva4mymi5b2lhvvbccx8ipws89rar1d8-go-1.23.4/share/go/pkg/tool/darwin_arm64/link: running clang failed: exit status 1
/usr/bin/clang -arch arm64 -Wl,-headerpad,1144 -o $WORK/b001/exe/a.out -Qunused-arguments /var/folders/65/wm0tp_297h3f57_clsk7lc140000gn/T/go-link-1603195481/go.o /var/folders/65/wm0tp_297h3f57_clsk7lc140000gn/T/go-link-1603195481/000000.o /var/folders/65/wm0tp_297h3f57_clsk7lc140000gn/T/go-link-1603195481/000001.o /var/folders/65/wm0tp_297h3f57_clsk7lc140000gn/T/go-link-1603195481/000002.o /var/folders/65/wm0tp_297h3f57_clsk7lc140000gn/T/go-link-1603195481/000003.o /var/folders/65/wm0tp_297h3f57_clsk7lc140000gn/T/go-link-1603195481/000004.o /var/folders/65/wm0tp_297h3f57_clsk7lc140000gn/T/go-link-1603195481/000005.o /var/folders/65/wm0tp_297h3f57_clsk7lc140000gn/T/go-link-1603195481/000006.o /var/folders/65/wm0tp_297h3f57_clsk7lc140000gn/T/go-link-1603195481/000007.o /var/folders/65/wm0tp_297h3f57_clsk7lc140000gn/T/go-link-1603195481/000008.o /var/folders/65/wm0tp_297h3f57_clsk7lc140000gn/T/go-link-1603195481/000009.o /var/folders/65/wm0tp_297h3f57_clsk7lc140000gn/T/go-link-1603195481/000010.o /var/folders/65/wm0tp_297h3f57_clsk7lc140000gn/T/go-link-1603195481/000011.o /var/folders/65/wm0tp_297h3f57_clsk7lc140000gn/T/go-link-1603195481/000012.o -lresolv -O2 -g -framework OpenGLES -O2 -g -framework CoreFoundation -framework CoreFoundation -framework Security
ld: framework 'OpenGLES' not found
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants