It seems that for mingw we do some unholy mashup between posix and window 
-specific options, that is we do a flat structure instead of a tree 
(/usr/loca/bin etc). In that case you are expected to ship all your modules in 
the same directory as the application (quite like with dll files when they are 
shipped with a program).

Regarding shipping particular modules with ECL
./configure --with-asdf=builtin --with-tcp-sockets=builtin
should do the trick.

Best regards,
Daniel

--
Daniel Kochmański ;; aka jackdaniel | Przemyśl, Poland
TurtleWare - Daniel Kochmański | www.turtleware.eu

"Be the change that you wish to see in the world." - Mahatma Gandhi

------- Original Message -------
On Thursday, March 23rd, 2023 at 12:11 PM, Binh Nguyen <nguyen1...@gmail.com> 
wrote:

> Hi Daniel,
>
> _| ̄|○
>
> Thank you for your reply!
>
> Yep, I passed "--prefix=/usr/local/" to configure and then performed make 
> install afterwards, as per the notes on Autoconf based configurations.
> (https://ecl.common-lisp.dev/static/manual/Building-ECL.html#Building-ECL)
>
> I agree, I think there is something funny going on with my pathnames.
>
> I compared the features variable and the list of packages in the ECL 
> executable and my program and they were the same. So I had a hunch there 
> something external was different. So I copied my executable to "/usr/local" 
> to be with "ecl.exe", and I was able to call (require 'asdf).
>
>> $ /usr/local/a.exe
>
>> ...
>
>>> (require 'asdf)
>
>>
>
>> ;;; Loading #P"C:/msys64/usr/local/asdf.fas"
>
>> ("ASDF" "asdf" "UIOP" "uiop")
>
> When I my executable from my home directory, I was not able to call (require 
> 'asdf).
>
>>> (require 'asdf)
>
>>
>
>> Debugger received error of type: SIMPLE-ERROR
>
>> Module error: Don't know how to REQUIRE ASDF.
>
>> Error flushed.
>
> I tried loading ASDF with the directory but I got the following error.
>
>>> (load #P"C:/msys64/usr/local/asdf.fas")
>
>>
>
>> ;;; Loading "C:/msys64/usr/local/asdf.fas"Debugger received error of type: 
>> FILE-ERRORFilesystem error with pathname "SYS:help.doc".Either 1) the file 
>> does not exist, or 2) we are not allowed to access the file, or 3) the 
>> pathname points to a broken symbolic link.Error flushed.
>
> So I copied "/usr/local/help.doc" to my home directory and then I was able to 
> load ASDF.
>
>>> (load #P"C:/msys64/usr/local/asdf.fas")
>
>>
>
>> #P"C:/msys64/usr/local/asdf.fas"
>
> After that, I was able to load SOCKETS ad Quicklisp.
>
> I don't know how to specify that ASDF and SOCKETS are builtin but I'll look 
> into it.
>
> Thank you for your help and thank you for all your work on ECL.
>
> Best regards,
>
> Binh Nguyen
>
> On Thu, 23 Mar 2023 at 20:20, Daniel Kochmański <dan...@turtleware.eu> wrote:
>
>> Hey Binh,
>>
>> it is not that the function REQUIRE is not available, it is that it doesn't 
>> know /where/ to look for sockets.fas. I see that you have unix pathnames, so 
>> ecl should not expect the flat structure. Did you pass 
>> "--prefix=/usr/local/" to configure (or something in this spirit)? If so, 
>> did you perform make install afterwards? If so, then require should be able 
>> to find sockets.fas in /usr/local/lib/ecl/... , and if not - it can't find 
>> it. The same applies to the module "ASDF", so I think that having 
>> installation with known pathnames should fix all your issues on that front.
>>
>> Alternatively you may specify that ASDF and SOCKETS are builtin (see 
>> ./configure --help for details).
>>
>> As the last resort, if you want to push in the same direction you've already 
>> started - load ASDF.fas the same way you've loaded SOCKETS.fas (it should be 
>> in the same directory) - that will ensure ASDF 3.1.8.
>>
>> Best regards,
>> Daniel
>>
>> --
>> Daniel Kochmański ;; aka jackdaniel | Przemyśl, Poland
>> TurtleWare - Daniel Kochmański | www.turtleware.eu
>>
>> "Be the change that you wish to see in the world." - Mahatma Gandhi
>>
>> ------- Original Message -------
>> On Wednesday, March 22nd, 2023 at 1:55 PM, Binh Nguyen 
>> <nguyen1...@gmail.com> wrote:
>>
>>> Dear ECL Community,
>>>
>>> Could you let me know how to do the following, please?
>>>
>>> - How to load file "quicklisp.lisp" in an embedded instance of ECL
>>> - How to make the function REQUIRE available in an embedded instance of ECL
>>> - How to load ASDF 3 or newer in an embedded instance of ECL
>>>
>>> I am able to load file "quicklisp.lisp" when I run "/usr/local/ecl.exe".
>>>
>>> I saw that there is an "ecl-quicklisp.lisp" but I'd like to learn how to 
>>> load non-ECL Quicklisp.
>>>
>>> I am running ECL 21.2.1. that I compiled with MSYS MinGW x86.
>>>
>>> The first error that comes up is that the function REQUIRE is not available.
>>>
>>>>> (load "quicklisp.lisp")
>>>
>>>>
>>>
>>>> ;;; Loading "C:/msys64/home/Admin/quicklisp.lisp"
>>>
>>>> Debugger received error of type: SIMPLE-ERROR
>>>
>>>> Module error: Don't know how to REQUIRE SOCKETS.
>>>
>>>> Error flushed.
>>>
>>> So I manually loaded SOCKETS.
>>>
>>>>> (load #P"C:/msys64/usr/local/sockets.fas")
>>>
>>>>
>>>
>>>> ;;; Loading "C:/msys64/usr/local/sockets.fas"
>>>
>>>> #P"C:/msys64/usr/local/sockets.fas"
>>>
>>> Then I tried again and I was able to progress further.
>>>
>>>>> (load "quicklisp.lisp")
>>>
>>>>
>>>
>>>> ;;; Loading "C:/msys64/home/Admin/quicklisp.lisp"
>>>
>>>>
>>>
>>>> ==== quicklisp quickstart 2015-01-28 loaded ====
>>>
>>>>
>>>
>>>> To continue with installation, evaluate: (quicklisp-quickstart:install)
>>>
>>>>
>>>
>>>> For installation options, evaluate: (quicklisp-quickstart:help)
>>>
>>>>
>>>
>>>> #P"C:/msys64/home/Admin/quicklisp.lisp"
>>>
>>>>> (quicklisp-quickstart:install)
>>>
>>>>
>>>
>>>> Debugger received error of type: SIMPLE-ERROR
>>>
>>>> Quicklisp has already been installed. Load 
>>>> #P"C:/msys64/home/Admin/quicklisp/setup.lisp" instead.
>>>
>>>> Error flushed.
>>>
>>> Bu the following error appeared that I don't know how to solve.
>>>
>>>>> (load #P"C:/msys64/home/Admin/quicklisp/setup.lisp")
>>>
>>>>
>>>
>>>> ;;; Loading "C:/msys64/home/Admin/quicklisp/setup.lisp"
>>>
>>>> Debugger received error of type: SIMPLE-ERROR
>>>
>>>> Could not load ASDF "3.0" or newer
>>>
>>>> Error flushed.
>>>
>>> I tried loading the other ".fas" files in "/usr/local" such as "asdf.fas" 
>>> but that did not help.
>>>
>>> I checked the *features* variable in both versions but they were the same.
>>>
>>>> $ ./a.exe
>>>
>>>> ...
>>>
>>>> Condition of type: INTERACTIVE-INTERRUPT
>>>
>>>> Console interrupt.
>>>
>>>> Available restarts:
>>>
>>>>
>>>
>>>> 1. (CONTINUE) CONTINUE
>>>
>>>> ...
>>>
>>>>> (print-list *features*)
>>>> (WALKER ECL-BYTECMP CDR-1 CDR-5 FORMATTER CDR-7 WSOCK ECL-WEAK-HASH 
>>>> LITTLE-ENDIAN LONG-LONG UINT64-T UINT32-T UINT16-T COMPLEX-FLOAT 
>>>> LONG-FLOAT UNICODE DFFI CLOS-STREAMS CMU-FORMAT WINDOWS WIN32 MINGW32 
>>>> ECL-PDE DLOPEN CLOS THREADS BOEHM-GC ANSI-CL COMMON-LISP 
>>>> IEEE-FLOATING-POINT PACKAGE-LOCAL-NICKNAMES CDR-14 PREFIXED-API FFI I686 
>>>> COMMON ECL)
>>>
>>>> $ /usr/local/ecl.exe
>>>> ...> (print-list *features*)
>>>> (WALKER ECL-BYTECMP CDR-1 CDR-5 FORMATTER CDR-7 WSOCK ECL-WEAK-HASH 
>>>> LITTLE-ENDIAN LONG-LONG UINT64-T UINT32-T UINT16-T COMPLEX-FLOAT 
>>>> LONG-FLOAT UNICODE DFFI CLOS-STREAMS CMU-FORMAT WINDOWS WIN32 MINGW32 
>>>> ECL-PDE DLOPEN CLOS THREADS BOEHM-GC ANSI-CL COMMON-LISP 
>>>> IEEE-FLOATING-POINT PACKAGE-LOCAL-NICKNAMES CDR-14 PREFIXED-API FFI I686 
>>>> COMMON ECL)
>>>
>>> Best regards,
>>>
>>> Binh Nguyen

Reply via email to