Re: Newbie-level problem

2013-12-16 Thread Alexander Burger
Hi Jon,

> Yes, using #!/usr/bin/picolisp instead of #!/usr/bin/pil worked fine in OSX.
> In my case at the moment, however, this
> #!/usr/bin/picolisp /usr/lib/picolisp/lib/misc.l
> seemed to be better than .../lib.l, since the only "lib" function I
> needed was 'stamp'.

Oh, I see. However, I would strongly recommend to load "lib.l" first, as
it the base of most other functionality.

The core interpreter can be considered as the combination of the
'picolisp' binary and "lib.l", and many things will break if it is
missing.

Library functions should be loaded after that. E.g

   #!/usr/bin/picolisp /usr/lib/picolisp/lib.l
   (load "@lib/misc.l")

for a minimal setup, or

   #!/usr/bin/picolisp /usr/lib/picolisp/lib.l
   (load "@ext.l")

to get the same setup as 'pil'.

For scripts with a GUI, I do

   #!/usr/bin/picolisp /usr/lib/picolisp/lib.l
   (load "@ext.l" "@lib/http.l" "@lib/xhtml.l" "@lib/form.l")

and so on. In this way, you can make sure to load only what is needed,
and get the fastest startup time.

♪♫ Alex
-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe


Re: Newbie-level problem

2013-12-15 Thread Jon Kleiser
Hi Alex,

> Hi Jon,
>
>> The script was executable (-rwxr-xr-x@), but for some reason I had to
>> replace
>> #!/usr/bin/pil
>> with this "direct" variant:
>> #!/Volumes/P3/picoLisp/bin/picolisp
>>
>> Strange, since there was no problem launcing PicoLips with
>> "/usr/bin/pil"
>> on the command line.
>
> Is there really a 'pil' script in "/usr/bin/pil"?
>
>
> BTW, I'm not really sure, but as far as I know traditionally Unix allows
> only _binary_ executables in the "#!" notation.
>
> Because of that, I always write
>
>#!/usr/bin/picolisp /usr/lib/picolisp/lib.l
>
> as 'picolisp' is a true binary (not a script). In Linux it doesn't seem
> to matter, but I don't know how the situation is for Mac OSX.
>
> ?? Alex

Yes, using #!/usr/bin/picolisp instead of #!/usr/bin/pil worked fine in OSX.
In my case at the moment, however, this …
#!/usr/bin/picolisp /usr/lib/picolisp/lib/misc.l
… seemed to be better than .../lib.l, since the only "lib" function I
needed was 'stamp'.

Thanks for teaching me all this!

/Jon

-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe


Re: Newbie-level problem

2013-12-15 Thread Alexander Burger
Hi Jon,

> The script was executable (-rwxr-xr-x@), but for some reason I had to replace
> #!/usr/bin/pil
> with this "direct" variant:
> #!/Volumes/P3/picoLisp/bin/picolisp
> 
> Strange, since there was no problem launcing PicoLips with "/usr/bin/pil"
> on the command line.

Is there really a 'pil' script in "/usr/bin/pil"?


BTW, I'm not really sure, but as far as I know traditionally Unix allows
only _binary_ executables in the "#!" notation.

Because of that, I always write

   #!/usr/bin/picolisp /usr/lib/picolisp/lib.l

as 'picolisp' is a true binary (not a script). In Linux it doesn't seem
to matter, but I don't know how the situation is for Mac OSX.

♪♫ Alex
-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe


Re: Newbie-level problem

2013-12-14 Thread Jon Kleiser
Hi Alex,

The script was executable (-rwxr-xr-x@), but for some reason I had to replace
#!/usr/bin/pil
with this "direct" variant:
#!/Volumes/P3/picoLisp/bin/picolisp

Strange, since there was no problem launcing PicoLips with "/usr/bin/pil"
on the command line.

/Jon

> Hi Jon,
>
>> I'll look into that "#!" thing another day. I don't think I've used
>> it much, if at all, with PicoLisp.
>
> One thing which should not be forgotten is to set the script executable
> with 'chmod +x'.
>
>
>> Have a nice weekend!
>
> You, and everybody else, too!
>
> ?? Alex


-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe


Re: Newbie-level problem

2013-12-13 Thread Alexander Burger
Hi Jon,

> I'll look into that "#!" thing another day. I don't think I've used
> it much, if at all, with PicoLisp.

One thing which should not be forgotten is to set the script executable
with 'chmod +x'.


> Have a nice weekend!

You, and everybody else, too!

♪♫ Alex
-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe


Re: Newbie-level problem

2013-12-13 Thread Jon Kleiser

Hi Alex,

Thanks!

On 13-12-13 16:08 , Alexander Burger wrote:

Hi Jon,


(while T
 (let L (line)
 (prinl "Hello " (pack (trim L) "!") ) ) )

I haven't tried this specifically now, but I see two problems:

1. The loop

   (while T
  ...

will never terminate. I would use

   (until (eof)
  ...

2. The PicoLisp always interprets the current input channel. This is,
while a file is being 'load'ed, this very same file. So if you
intend to read from standard input (what I assume here), you need
an explicit

   (in NIL
  (until (eof)
 ...



Yes, doing "pil greeter.l +" now works, with this in my greeter.l file:

(in NIL
(until (eof)
(let L (pack (trim (line)))
(prinl "Hello " L "!") ) ) )


/greeter.l: line 6: syntax error near unexpected token `('
/greeter.l: line 6: `(let L (line)'

This, however, seems another problem. Obviously Bash tries to execute
this script. Something must have been wrong with the "#!" notation, so
that it was not recognized.

♪♫ Alex
I'll look into that "#!" thing another day. I don't think I've used it 
much, if at all, with PicoLisp.


Have a nice weekend!

/Jon
--
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe


Re: Newbie-level problem

2013-12-13 Thread Alexander Burger
Hi Jon,

> (while T
> (let L (line)
> (prinl "Hello " (pack (trim L) "!") ) ) )

I haven't tried this specifically now, but I see two problems:

1. The loop

  (while T
 ...

   will never terminate. I would use

  (until (eof)
 ...

2. The PicoLisp always interprets the current input channel. This is,
   while a file is being 'load'ed, this very same file. So if you
   intend to read from standard input (what I assume here), you need
   an explicit

  (in NIL
 (until (eof)
...


> /greeter.l: line 6: syntax error near unexpected token `('
> /greeter.l: line 6: `(let L (line)'

This, however, seems another problem. Obviously Bash tries to execute
this script. Something must have been wrong with the "#!" notation, so
that it was not recognized.

♪♫ Alex
-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe