Open lispstudent opened 6 months ago
I am much interested in combining LispWorks and Filemaker Pro, but I am not an experience Lisp developer, and I failed to see use-cases that can help me understand what
fm-plugin-tools
can do.Is this perhaps similar to FMProKit?
How can one use
fm-plugin-tools
as a bridge between LispWorks code and FileMaker?
This project lets you write FileMaker plugins completely in Common Lisp. With this project you don't need to write any C/C++ code and you can use LispWorks to generate/deliver binary FM plugins (essentially a dynamic library or DLL). The user must be experienced Common Lisp programmers and owns commercial licenses (professional edition is fine, but still quite expensive) of LispWorks.
One big use case is inside the regex-plugin
folder, which is a FileMaker plugin adding functions of regular expressions when you do calculations of table fields or writing scripts (I use this plugin everyday).
Hope this helps, and feel free to ask more questions.
Thank you very much for the details. fm-plugin-tools
is an amazing projects, with so many possibilities.
I do have a Hobby DV LispWorks 8 license for Mac, but I am not an experienced Common Lisp programmer.
I see a Win32 lisp file in the regex-plugin
example, would that be fine for me to try to build the regex-plugin
example on a Mac, Silicon CPU (M2)?
I would follow the documentation.
Thank you very much for the details.
fm-plugin-tools
is an amazing projects, with so many possibilities.I do have a Hobby DV LispWorks 8 license for Mac, but I am not an experienced Common Lisp programmer.
I see a Win32 lisp file in the
regex-plugin
example, would that be fine for me to try to build theregex-plugin
example on a Mac, Silicon CPU (M2)?I would follow the documentation.
Yes, with a Hobby DV version you should be able to build the regex-plugin example on your M2 Mac. The resulting plugin, of course, can only be loaded in M2 version of FileMaker on macOS. But I've never tried with M2 Mac, as I only have Intel MacBook Pro and my FileMaker Pro version is 18 (Intel only). It would be interesting to know if you can build it. (However, with Hobby DV license you may not distribute the resulting plugin, if succeed. But I'm not so sure, check with LW people.)
You may need to modify the some scripts, to reflect your actual installation directory of LispWorks.
Let me know if you meet any issue, either specific to M2 Mac or to higher versions of FileMaker.
I will, thank you very much.
I have fixed the documentation page: https://binghe.github.io/fm-plugin-tools/
Thank you for pointing it out, it is helpful to have it online. I have downloaded the Plug-in SDK for Mac and I am studying that documentation.
I am having trouble creating the bindings to the C header files, the Listener returns: Reader cannot find package PREP.
This is what I do:
After cloning fm-plugin-tools
repository into ~/Lisp, from LispWorks Listener:
;; From docs:
;; "use ASDF to load the PREPARE-FM-PLUGIN-TOOLS system."
;; "(Do not compile or load FM-PLUGIN-TOOLS itself yet.)"
CL-USER 1 > (require 'asdf) ; already loaded in my case by init files
NIL
CL-USER 2 > (cd "~/Lisp/fm-plugin-tools")
#P"/Users/lispstudent/Lisp/fm-plugin-tools/"
CL-USER 3 > (load "prepare-fm-plugin-tools.asd")
; Loading text file /Users/lispstudent/Lisp/fm-plugin-tools/prepare-fm-plugin-tools.asd
#P"/Users/lispstudent/Lisp/fm-plugin-tools/prepare-fm-plugin-tools.asd"
;; "Call the function PREP:PREPARE. It should return :DONE when it's finished. "
Error while reading: Reader cannot find package PREP.
CL-USER 4 > (prep:prepare)
I solved this step by executing,
CL-USER 5 > (ql:quickload "prepare-fm-plugin-tools")
CL-USER 6 > (prep:prepare)
Processing FMXExtern.h...
Processing FMXClient.h...
Processing FMXTypes.h...
Processing FMXText.h...
Processing FMXCalcEngine.h...
Processing FMXBinaryData.h...
Processing FMXTextStyle.h...
Processing FMXData.h...
Processing FMXDateTime.h...
Processing FMXFixPt.h...
:DONE
Runningbuild-plugin64.command
successfully builds the example plugin,
cd /Users/lispstudent/Lisp/fm-plugin-tools
# ./build-plugin64.command
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/itself/0001/0005.64yfasl
; Loaded public patch PATCH-ITSELF 1.5
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/itself/0001/0006.64yfasl
; Loaded public patch PATCH-ITSELF 1.6
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/itself/0001/0007.64yfasl
; Loaded public patch PATCH-ITSELF 1.7
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/itself/0001/0008.64yfasl
; Loaded public patch PATCH-ITSELF 1.8
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/capi-cocoa/0001/0013.64yfasl
; Loaded public patch CAPI-COCOA 1.13
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/capi-cocoa/0001/0014.64yfasl
; Loaded public patch CAPI-COCOA 1.14
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/capi-cocoa/0001/0015.64yfasl
; Loaded public patch CAPI-COCOA 1.15
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/capi-cocoa/0001/0016.64yfasl
; Loaded public patch CAPI-COCOA 1.16
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/capi-cocoa/0001/0017.64yfasl
; Loaded public patch CAPI-COCOA 1.17
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/capi-cocoa/0001/0018.64yfasl
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/full/0001/0003.64yfasl
; Loaded public patch FULL 1.3
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/full/0001/0004.64yfasl
; Loaded public patch FULL 1.4
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/full/0001/0005.64yfasl
; Loaded public patch FULL 1.5
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/full/0001/0006.64yfasl
; Loaded public patch FULL 1.6
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/full/0001/0007.64yfasl
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/capi/0001/0011.64yfasl
; Loaded public patch CAPI 1.11
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/capi/0001/0012.64yfasl
; Loaded public patch CAPI 1.12
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/capi/0001/0013.64yfasl
; Loaded public patch CAPI 1.13
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/capi/0001/0014.64yfasl
; Loaded public patch CAPI 1.14
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/capi/0001/0015.64yfasl
; Loaded public patch CAPI 1.15
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/capi/0001/0016.64yfasl
; Loaded public patch CAPI 1.16
; Loaded public patch FULL 1.7
; Loaded public patch CAPI-COCOA 1.18
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/capi-cocoa/0001/0019.64yfasl
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/cocoa/0001/0002.64yfasl
; Loaded public patch COCOA 1.2
; Loaded public patch CAPI-COCOA 1.19
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/compiler/0001/0002.64yfasl
; Loaded public patch COMPILER 1.2
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/compiler/0001/0003.64yfasl
; Loaded public patch COMPILER 1.3
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/compiler/0001/0004.64yfasl
; Loaded public patch COMPILER 1.4
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/compiler/0001/0005.64yfasl
; Loaded public patch COMPILER 1.5
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/compiler/0001/0006.64yfasl
; Loaded public patch COMPILER 1.6
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/editor/0001/0002.64yfasl
; Loaded public patch EDITOR 1.2
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/editor/0001/0003.64yfasl
; Loaded public patch EDITOR 1.3
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/editor/0001/0004.64yfasl
; Loaded public patch EDITOR 1.4
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/editor/0001/0005.64yfasl
; Loaded public patch EDITOR 1.5
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/editor/0001/0006.64yfasl
; Loaded public patch EDITOR 1.6
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/editor/0001/0007.64yfasl
; Loaded public patch EDITOR 1.7
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/editor/0001/0008.64yfasl
; Loaded public patch EDITOR 1.8
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/editor/0001/0009.64yfasl
; Loaded public patch EDITOR 1.9
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/editor/0001/0010.64yfasl
; Loaded public patch EDITOR 1.10
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/editor/0001/0011.64yfasl
; Loaded public patch EDITOR 1.11
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/fli/0001/0003.64yfasl
; Loaded public patch FLI 1.3
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/fli/0001/0004.64yfasl
; Loaded public patch FLI 1.4
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/full/0001/0008.64yfasl
; Loaded public patch FULL 1.8
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/hqn-web/0001/0001.64yfasl
; Loaded public patch HQN-WEB 1.1
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/hqn-web/0001/0002.64yfasl
; Loaded public patch HQN-WEB 1.2
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/mp/0001/0002.64yfasl
; Loaded public patch MP 1.2
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/objc/0001/0001.64yfasl
; Loaded public patch OBJC 1.1
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/system/0001/0011.64yfasl
; Loaded public patch SYSTEM 1.11
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/system/0001/0012.64yfasl
; Loaded public patch SYSTEM 1.12
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/system/0001/0013.64yfasl
; Loaded public patch SYSTEM 1.13
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/system/0001/0014.64yfasl
; Loaded public patch SYSTEM 1.14
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/system/0001/0015.64yfasl
; Loaded public patch SYSTEM 1.15
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/system/0001/0016.64yfasl
; Loaded public patch SYSTEM 1.16
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/patches/system/0001/0017.64yfasl
; Loaded public patch SYSTEM 1.17
; Loading text file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/private-patches/load.lisp
LispWorks(R): The Common Lisp Programming Environment
Copyright (C) 1987-2021 LispWorks Ltd. All rights reserved.
Version 8.0.1
Saved by LispWorks as lispworks-8-0-0-arm64-darwin, at 06 Dec 2021 17:56
User lispstudent on argo.vsm.in
; Loading text file /Users/lispstudent/Lisp/fm-plugin-tools/deliver.lisp
; Loading text file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/private-patches/load.lisp
; Loading text file /Users/lispstudent/quicklisp/setup.lisp
; Loading /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/load-on-demand/utilities/asdf.64yfasl on demand...
Warning: Using DEFPACKAGE to modify #<The QL-SETUP package, 24/32 internal, 3/16 external>.
; Loading /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/load-on-demand/processes/comm-defsys.lisp on demand...
;; Creating system "COMM"
; Loading /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/load-on-demand/processes/macos-comm-defsys.lisp on demand...
;; Creating system "MACOS-COMM"
; Loading /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/load-on-demand/ccl/describe.64yfasl on demand...
; Loading /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/load-on-demand/ccl/inspector-values.64yfasl on demand...
; Loading /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/load-on-demand/ffi/types/inspector.64yfasl on demand...
To load "cl-fad":
Load 1 ASDF system:
cl-fad
; Loading "cl-fad"
; Loading text file /Users/lispstudent/Lisp/fm-plugin-tools/fm-plugin-example.asd
; Loading text file /Users/lispstudent/Lisp/fm-plugin-tools/fm-plugin-tools.asd
; Loading text file /Users/lispstudent/quicklisp/dists/quicklisp/software/cxml-20200610-git/cxml.asd
;;; Checking for wide character support... yes, using code points.
; Loading text file /Users/lispstudent/quicklisp/dists/quicklisp/software/closure-common-20181018-git/closure-common.asd
;;; Checking for wide character support... yes, using code points.
;;; Building Closure with CHARACTER RUNES
; Loading text file /Users/lispstudent/quicklisp/dists/quicklisp/software/trivial-gray-streams-20231021-git/trivial-gray-streams.asd
; Loading text file /Users/lispstudent/quicklisp/dists/quicklisp/software/babel-20230214-git/babel.asd
; Loading text file /Users/lispstudent/quicklisp/dists/quicklisp/software/puri-20201016-git/puri.asd
; Loading text file /Users/lispstudent/quicklisp/dists/quicklisp/software/cl-ppcre-20230618-git/cl-ppcre-unicode.asd
; Loading text file /Users/lispstudent/quicklisp/dists/quicklisp/software/cl-ppcre-20230618-git/cl-ppcre.asd
; Loading text file /Users/lispstudent/quicklisp/dists/quicklisp/software/cl-unicode-20210228-git/cl-unicode.asd
; Loading text file /Users/lispstudent/quicklisp/dists/quicklisp/software/flexi-streams-20220220-git/flexi-streams.asd
; Loading text file /Users/lispstudent/quicklisp/dists/quicklisp/software/zpb-exif-release-1.2.5/zpb-exif.asd
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/trivial-gray-streams-20231021-git/package.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/trivial-gray-streams-20231021-git/streams.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/babel-20230214-git/src/packages.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/babel-20230214-git/src/encodings.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/babel-20230214-git/src/enc-ascii.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/babel-20230214-git/src/enc-ebcdic.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/babel-20230214-git/src/enc-ebcdic-int.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/babel-20230214-git/src/enc-iso-8859.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/babel-20230214-git/src/enc-unicode.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/babel-20230214-git/src/enc-cp437.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/babel-20230214-git/src/enc-cp1251.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/babel-20230214-git/src/enc-cp1252.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/babel-20230214-git/src/jpn-table.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/babel-20230214-git/src/enc-jpn.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/babel-20230214-git/src/enc-gbk.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/babel-20230214-git/src/enc-koi8.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/babel-20230214-git/src/external-format.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/babel-20230214-git/src/strings.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/babel-20230214-git/src/gbk-map.64yfasl
Warning: (DEFPARAMETER *GBK-UNICODE-MAPPING*) being redefined in /Users/lispstudent/quicklisp/dists/quicklisp/software/babel-20230214-git/src/gbk-map.lisp (previously in /Users/lispstudent/quicklisp/dists/quicklisp/software/babel-20230214-git/src/enc-gbk.lisp).
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/babel-20230214-git/src/sharp-backslash.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/closure-common-20181018-git/package.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/closure-common-20181018-git/definline.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/closure-common-20181018-git/characters.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/closure-common-20181018-git/syntax.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/closure-common-20181018-git/encodings.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/closure-common-20181018-git/encodings-data.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/closure-common-20181018-git/xstream.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/closure-common-20181018-git/ystream.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/closure-common-20181018-git/hax.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/puri-20201016-git/src.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cxml-20200610-git/xml/package.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cxml-20200610-git/xml/util.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cxml-20200610-git/xml/sax-handler.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cxml-20200610-git/xml/xml-name-rune-p.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cxml-20200610-git/xml/split-sequence.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cxml-20200610-git/xml/xml-parse.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cxml-20200610-git/xml/unparse.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cxml-20200610-git/xml/xmls-compat.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cxml-20200610-git/xml/recoder.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cxml-20200610-git/xml/xmlns-normalizer.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cxml-20200610-git/xml/space-normalizer.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cxml-20200610-git/xml/catalog.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cxml-20200610-git/xml/sax-proxy.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cxml-20200610-git/xml/atdoc-configuration.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/Lisp/fm-plugin-tools/packages.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/Lisp/fm-plugin-tools/specials.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/Lisp/fm-plugin-tools/utils.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/Lisp/fm-plugin-tools/fli.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/Lisp/fm-plugin-tools/fm-objects.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/Lisp/fm-plugin-tools/locale-objects.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/Lisp/fm-plugin-tools/color-objects.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/Lisp/fm-plugin-tools/style-objects.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/Lisp/fm-plugin-tools/text-objects.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/Lisp/fm-plugin-tools/fix-pt-objects.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/Lisp/fm-plugin-tools/date-time-objects.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/Lisp/fm-plugin-tools/binary-data-objects.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/Lisp/fm-plugin-tools/data-objects.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/Lisp/fm-plugin-tools/functions.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/Lisp/fm-plugin-tools/main.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-ppcre-20230618-git/packages.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-ppcre-20230618-git/specials.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-ppcre-20230618-git/util.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-ppcre-20230618-git/errors.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-ppcre-20230618-git/charset.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-ppcre-20230618-git/charmap.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-ppcre-20230618-git/chartest.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-ppcre-20230618-git/lexer.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-ppcre-20230618-git/parser.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-ppcre-20230618-git/regex-class.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-ppcre-20230618-git/regex-class-util.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-ppcre-20230618-git/convert.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-ppcre-20230618-git/optimize.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-ppcre-20230618-git/closures.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-ppcre-20230618-git/repetition-closures.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-ppcre-20230618-git/scanner.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-ppcre-20230618-git/api.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-unicode-20210228-git/packages.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-unicode-20210228-git/specials.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-unicode-20210228-git/util.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-unicode-20210228-git/conditions.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-unicode-20210228-git/lists.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-unicode-20210228-git/hash-tables.64yfasl
;;; Computing Hangul syllable names
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-unicode-20210228-git/api.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-unicode-20210228-git/methods.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-unicode-20210228-git/test-functions.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-unicode-20210228-git/derived.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-unicode-20210228-git/alias.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-ppcre-20230618-git/cl-ppcre-unicode/packages.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/cl-ppcre-20230618-git/cl-ppcre-unicode/resolver.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/flexi-streams-20220220-git/packages.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/flexi-streams-20220220-git/mapping.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/flexi-streams-20220220-git/ascii.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/flexi-streams-20220220-git/koi8-r.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/flexi-streams-20220220-git/mac.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/flexi-streams-20220220-git/iso-8859.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/flexi-streams-20220220-git/enc-cn-tbl.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/flexi-streams-20220220-git/code-pages.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/flexi-streams-20220220-git/specials.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/flexi-streams-20220220-git/util.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/flexi-streams-20220220-git/conditions.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/flexi-streams-20220220-git/external-format.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/flexi-streams-20220220-git/length.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/flexi-streams-20220220-git/encode.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/flexi-streams-20220220-git/decode.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/flexi-streams-20220220-git/in-memory.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/flexi-streams-20220220-git/stream.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/flexi-streams-20220220-git/lw-char-stream.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/flexi-streams-20220220-git/output.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/flexi-streams-20220220-git/input.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/flexi-streams-20220220-git/io.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/flexi-streams-20220220-git/strings.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/quicklisp/dists/quicklisp/software/zpb-exif-release-1.2.5/exif.64yfasl
Warning: (DEFVAR *OPTIMIZATIONS*) defined more than once in /Users/lispstudent/quicklisp/dists/quicklisp/software/zpb-exif-release-1.2.5/exif.lisp.
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/Lisp/fm-plugin-tools/plugin-example/packages.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/Lisp/fm-plugin-tools/plugin-example/specials.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/Lisp/fm-plugin-tools/plugin-example/cf.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/Lisp/fm-plugin-tools/plugin-example/utils.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/Lisp/fm-plugin-tools/plugin-example/configuration.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/Lisp/fm-plugin-tools/plugin-example/functions.64yfasl
; Loading fasl file /Users/lispstudent/.cache/common-lisp/lw-8.0.1-macosx-arm64/Users/lispstudent/Lisp/fm-plugin-tools/plugin-example/init.64yfasl
;;; Compiling file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/examples/configuration/macos-application-bundle ...
;;; Safety = 3, Speed = 1, Space = 1, Float = 1, Interruptible = 1
;;; Compilation speed = 1, Debug = 2, Fixnum safety = 3
;;; Source level debugging is on
;;; Source file recording is on
;;; Cross referencing is on
; (TOP-LEVEL-FORM 0)
; (TOP-LEVEL-FORM 1)
; WRITE-MACOS-APPLICATION-BUNDLE
; CHOOSE-TEMPLATE-BUNDLE-PATH
; EXECUTABLE-APPLICATION-BUNDLE-DIRECTORY
; MAKE-APPLICATION-SUBPATHS
; COPY-MODIFIED-INFO-PLIST
; WRITE-DOCUMENT-TYPES
; WRITE-MODIFIED-INFO-VALUE
; COPY-FILES
;; Processing Cross Reference Information
; Loading fasl file /private/var/tmp/macos-application-bundle-0pT7U5v.64yfasl
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/load-on-demand/deliv/variables.64yfasl
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/load-on-demand/deliv/pkg.64yfasl
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/load-on-demand/deliv/delivery-keywords.64yfasl
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/load-on-demand/deliv/clean-share.64yfasl
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/load-on-demand/deliv/clean-actions.64yfasl
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/load-on-demand/deliv/clean-gui.64yfasl
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/load-on-demand/deliv/clean-unix.64yfasl
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/load-on-demand/deliv/dvintfc.64yfasl
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/load-on-demand/deliv/shake-share.64yfasl
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/load-on-demand/nclos/deliv-patch.64yfasl
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/load-on-demand/utilities/around-shake-actions-runtime.64yfasl
;;; Delivery function DO-NOTHING
;;; Destination file #P"/Users/lispstudent/src/FMPLisp.fmplugin/Contents/MacOS/FMPLisp"
;;; Delivery severity 0
;;; Delivery parameters (:IMAGE-TYPE :BUNDLE :KEEP-SYMBOLS (#:|FM-PLUGIN-TOOLS-foreign-callable19528| #:|FM-PLUGIN-TOOLS-foreign-callable19514| #:|FM-PLUGIN-TOOLS-foreign-callable19493| #:|FM-PLUGIN-TOOLS-foreign-callable19477| #:|FM-PLUGIN-TOOLS-foreign-callable19462| #:|FM-PLUGIN-TOOLS-foreign-callable19448| #:|FM-PLUGIN-TOOLS-foreign-callable19431| #:|FM-PLUGIN-TOOLS-foreign-callable19416| #:|FM-PLUGIN-TOOLS-foreign-callable19402| #:|FM-PLUGIN-TOOLS-foreign-callable19364| #:|FM-PLUGIN-TOOLS-foreign-callable19349| #:|FM-PLUGIN-TOOLS-foreign-callable19336|) :KEEP-LISP-READER T :KEEP-DEBUG-MODE T :VERSIONINFO (:BINARY-VERSION 12884967424 :VERSION-STRING "0.3.1" :COMPANY-NAME "Edi Weitz" :PRODUCT-NAME "FMPLisp" :FILE-DESCRIPTION "An example plug-in created with FM-PLUGIN-TOOLS." :LEGAL-COPYRIGHT "Copyright (c) 2006-2010, Dr. Edmund Weitz. All rights reserved.") :DLL-EXPORTS ("FMExternCallProc") :INTERFACE NIL :MULTIPROCESSING NIL)
; Loading /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/load-on-demand/editor/mac-mode.64yfasl on demand...
; Loading /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/load-on-demand/editor/selection-mode.64yfasl on demand...
; Loading /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/load-on-demand/editor/delete-selection.64yfasl on demand...
; Loading text file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/config/mac-key-binds.lisp
; Loading text file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/config/selection-key-binds.lisp
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/load-on-demand/deliv/pkg.64yfasl
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/load-on-demand/deliv/do-command-classes.64yfasl
; Loading fasl file /Applications/LispWorks 8.0 (64-bit)/Library/lib/8-0-0-0/load-on-demand/deliv/command-classes.64yfasl
Shaking stage : Starting delivery
Removing plist indicators :: (EDITOR::SECTION-PARSING-FUNCTION EDITOR::SECTION EXTERNAL-FORMAT::EF-FUNCTION-SPEC)
> Generation 7: 36887672 (0x232DC78)
Cons 4543408 (0x4553B0)
Non-Pointer 3632376 (0x376CF8)
Other 9641240 (0x931D18)
Symbol 6516272 (0x636E30)
Function 12471232 (0xBE4BC0)
Non-Pointer-Static 11808 (0x2E20)
Mixed-Static 70656 (0x11400)
Weak 680 (0x2A8)
-- Segments:
Cons 8200038800 - 8200490000
Non-Pointer 8210000800 - 821037C000
Other 8220038800 - 8220970000
Symbol 8230038800 - 8230674000
Function 8240010000 - 8240BC4000
Function 8100010000 - 8100048000
Non-Pointer-Static 8090000800 - 8090018000
Mixed-Static 800004E800 - 8000074000
Weak 8250038800 - 825003C000
================================
> Generation 6: 0 (0x0)
> Generation 5: 0 (0x0)
> Generation 4: 0 (0x0)
> Generation 3: 27330952 (0x1A10988)
Cons 8164496 (0x7C9490)
Non-Pointer 4143296 (0x3F38C0)
Other 10248984 (0x9C6318)
Symbol 1707952 (0x1A0FB0)
Function 3066192 (0x2EC950)
Weak 32 (0x20)
-- Segments:
Cons 8290018800 - 82907E4000
Non-Pointer 8260000800 - 82603F8000
Other 8270018800 - 82709E4000
Symbol 8280018800 - 82801BC000
Function 82A0010000 - 82A0300000
Weak 82B0018800 - 82B001C000
================================
> Generation 2: 8376576 (0x7FD100)
Cons 2058480 (0x1F68F0)
Non-Pointer 460264 (0x705E8)
Other 4285296 (0x416370)
Symbol 563488 (0x89920)
Function 686616 (0xA7A18)
Non-Pointer-Static 279296 (0x44300)
Weak 43136 (0xA880)
-- Segments:
Cons 82C0010800 - 82C020C000
Non-Pointer 82D0000800 - 82D0074000
Other 82E0010800 - 82E042C000
Symbol 82F0010800 - 82F00A0000
Function 8300010000 - 83000BC000
Non-Pointer-Static 8050000800 - 8050048000
Weak 8310010800 - 831001C000
================================
> Generation 1: 16616 (0x40E8)
Cons 480 (0x1E0)
Non-Pointer 15688 (0x3D48)
Other 272 (0x110)
Symbol 144 (0x90)
Weak 32 (0x20)
-- Segments:
Cons 8320008800 - 832000C000
Non-Pointer 8330000800 - 8330008000
Other 8340008800 - 834000C000
Symbol 8350008800 - 835000C000
Weak 8370008800 - 837000C000
================================
> Generation 0: 2306296 (0x2330F8)
Cons 1216864 (0x129160)
Non-Pointer 10472 (0x28E8)
Other 990848 (0xF1E80)
Symbol 88112 (0x15830)
-- Segments:
Cons 8040000800 - 8040404000
Non-Pointer 8010000800 - 8010404000
Other 8020000800 - 8020404000
Symbol 8030000800 - 8030104000
================================
Total allocated 74918112 (0x47728E0), total size 96534528 (0x5C10000)
Shaking stage : Saving image
Build saving image: /Users/lispstudent/src/FMPLisp.fmplugin/Contents/MacOS/FMPLisp
Build saved image: /Users/lispstudent/src/FMPLisp.fmplugin/Contents/MacOS/FMPLisp
Build split image: /Users/lispstudent/src/FMPLisp.fmplugin/Contents/MacOS/Resources/FMPLisp.lwheap
Build executable: /Users/lispstudent/src/FMPLisp.fmplugin/Contents/MacOS/FMPLisp
Delivery successful - /Users/lispstudent/src/FMPLisp.fmplugin/Contents/MacOS/FMPLisp
Looks good, but can you actually load it in FileMaker Pro?
Besides, this is NOT the regex plugin but the other smaller example. You can use the delivery scripts inside the regex-plugin
folder to build the regex plugin.
Ah, you are right of course! Launching Filemaker, I do not see the plugin in Preferences > Plugins
I am now going to run the script from the inside the regex-plugin
folder and report back.
Ah, you are right of course! Launching Filemaker, I do not see the plugin in
Preferences > Plugins
I am now going to run the script from the inside the
regex-plugin
folder and report back.
You need to copy the plugin bundle into FileMaker's plugin folder - the exact location depends on FMP version, it can open the folder for your from the settings, then you just copy. There will be extra security warnings since the plugin is not code-signed, you need to modify your macOS privacy settings to let it pass. FileMaker itself may also complain that the plugin does not have certifications, which is another different requirement then code signing. If everything is done correctly, you should be able to load the plugin, but it won't create any new menu items. Instead you need to create a database and see if you have more custom functions available.
Delivery is successful, but the scritp cannot copy the plugin with this error:
Delivery successful - /Users/lispstudent/src/RegexPlugIn.fmplugin/Contents/MacOS/RegexPlugIn
mv: rename /Users/lispstudent/src/RegexPlugIn.app to /Users/lispstudent/Library/Application Support/FileMaker/FileMaker Pro/20.0/Extensions/RegexPlugIn.fmplugin: No such file or directory
Couldn't copy the bundle to /Users/lispstudent/Library/Application Support/FileMaker/FileMaker Pro/20.0/Extensions.
Changing line 36 of build-plugin64.command
,
from: mv "$build_dir/$name.app" "$target_dir/$name.fmplugin"
to: mv "$build_dir/$name.fmplugin" "$target_dir/$name.fmplugin"
allows the script to copy the plugin.
But launching Filemaker Pro does not show the plugin in the Preferences > Plugins setting pane.
By clicking on Reveal Plugin-In Folder
I can verify it is there.
I have tried to compile with (defvar *deliver-level* 0)
instead of (defvar *deliver-level* 5)
, with same results:
Plugin is compiled and copied over in the proper directory, /Users/lispstudent/Library/Application Support/FileMaker/FileMaker Pro/20.0/Extensions/
.
A freshly launched FileMaker does not see the plugins. I tried with other third-party plugin in same directory, .i.e BaseElementsand they are seen.
How could I go about debugging this issue?
You can set the variable *fm-logfile
to T
, to enable some basic logging. This log file will be created at your "~/Library/Application Support/FM-PlugIn-Tools/fm-plugin-tools.log":
(defun fm-log (control-string &rest format-args)
"Utility function which might be useful for debugging a plug-in.
Writes data to the file denoted by *FM-LOGFILE* unless this value
is NIL. CONTROL-STRING and FORMAT-ARGS are interpreted as by
FORMAT."
(when *fm-logfile*
(let ((fm-logfile (if (eq *fm-logfile* t)
(merge-pathnames "FM-PlugIn-Tools/fm-plugin-tools.log"
(sys:get-folder-path #-:macosx :local-appdata
#+:macosx :my-appsupport))
*fm-logfile*)))
(with-open-file (out (ensure-directories-exist fm-logfile)
:direction :output
:element-type 'lw:simple-char
:external-format '(:utf-8 :eol-style :lf)
:if-exists :append
:if-does-not-exist :create)
(apply #'format out control-string format-args)
(finish-output out))))
(values))
If, unfortunately, after enabling the log, such a log file doesn't exist at all. This will mean that the code inside plugin didn't execute at all, and this means the translation of SDK header files has some problems due to FMP version changes, or the new ARM64 platform. Then this is harder to fix for me, without actually having a Mac with Apple Silicon processors.
Thank you so much for the code, very instructive!
Where shall I include it, in main.lisp
, or perhaps functions.lisp
?
Thank you so much for the code, very instructive!
Where shall I include it, in
main.lisp
, or perhapsfunctions.lisp
?
That function is already in utils.lisp
. I meant putting the following line into deliver.lisp
, before calling lw:deliver
:
(setq fm:*fm-logfile* t)
Thank you. I have added that line in deliver.lisp
. After launching FileMaker Pro, I do not see the log file fm-plugin-tools.log
or any empty directory at ~/Library/Application Support/FM-PlugIn-Tools/
.
My school has FileMaker for Windows, and may have a LispWorks Windows license. I could try to compile it there. Would that help?
If I found time, I will first make sure the last PluginSDK works on Intel macOS, and then confirm with x64 Windows. This may involved some actual code changes in the C++ header parser, and perhaps it will cause some positive changes on your side.
Thank you very, very much for your help and time.
I am learning a lot from this process. Will you let me know if there is anything I can do. For sure I could test building on Mac M2, and I believe I could on Windows 10/11 as well.
Thank you again.
Hello there, I can confirm that this project currently doesn't support FileMaker SDKHeader version 20. If I use SDKHeader from 18 to build FM plugins, the resulting plugin can be correctly loaded into FileMaker Pro 20 (2023) on Intel macOS and x64 Windows. But FileMaker Pro 18 doesn't support ARM macOS, and I don't think you can use old SDK headers to generate working plugins for FileMaker Pro 20 on ARM64 macOS.
I need some time to analyse the differences between SDKHeader 18 and 20, and fix the SDK parser.
Thank you for the confirmation, very much appreciated.
Please, let me know if/when I can be of any help by testing.
I am much interested in combining LispWorks and Filemaker Pro, but I am not an experience Lisp developer, and I failed to see use-cases that can help me understand what
fm-plugin-tools
can do.Is this perhaps similar to FMProKit?
How can one use
fm-plugin-tools
as a bridge between LispWorks code and FileMaker?