carp-lang / Carp

A statically typed lisp, without a GC, for real-time applications.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Get Can't find symbol 'make-update-deriver' when trying to run example on Windows 11

maacl opened this issue · comments

CARP_DIR is set. I get a REPL when running carp.

carp vector.carp -x
Can't find symbol 'make-update-deriver' at C:/Users/marti/tmp/Carp/examples/derive.carp:2:3.

Traceback:
  (load-once "Derive.carp") at C:/Users/marti/tmp/Carp/core/Core.carp:25:1.

Thanks for the bug report!

Is it possible that you are in the examples directory? If so, the problem is that one of the examples is called derive.carp, shadowing the standard library file Derive.carp. If you try to run it from the parent directory, for example, it should run.

NB: Ideally we could resolve this issue by making core files take precedence, but I suppose users couldn’t overwrite those then, making it a bit of a double-edged sword.

That is where I am. Works from the parent dir, but now I am getting the below:

carp examples\benchmark_mandelbrot.carp -x
Can't find symbol 'defdynamic-once' at C:/Users/marti/AppData/Roaming/carp/profile.carp:1:2.

profile.carp is:

(defdynamic-once sdl-windows-header-path "C:\\msys64\mingw64\include\SDL2\\")
(defdynamic-once sdl-windows-library-path "C:\\msys64\mingw64\bin\\")

Hello, sorry about the late answer!

Indeed, defdynamic-once is defined after profile.carp is loaded. defdynamic should work.

Your profile file is indeed the first thing that is loaded, before any core libraries, so you can change things as early as possible. defdynamic-once on the other hand is a macro defined in the core libraries.

I set it per instructions here.

Ah yes, thanks for the heads-up. I will clarify the comment to say that you should use defdynamic instead to set them.

Check, I am on gitter now.