Upper limit for list lenght in PicoLisp?

2012-07-23 Thread Thorsten Jolitz

Hi List, 
I have a rather strange problem:

I want to (from within Emacs)

,--
| (setq X (list string1 ... string200))
`--

and it seems PicoLisp just freezes - no error messages, but no output
either, and the process seems to be frozen. 
Now when I split the list into 

,
| (setq Y (list string1 ... string100))
| (setq Z (list string101 ... string200))
`

both evaluations work, and quite fast. I could make Y even smaller and Z
bigger - until a certain limit (Y = 25, Z = ca. 180 or so), and both
assignments work just fine. But when I add both parts together, PicoLisp
freezes again when assigning X.

Is there something like an upper limit for how many Strings can be in a
list in PicoLisp? Or might that be Emacs related?

200 or 300 are not really that big numbers ...

-- 
cheers,
Thorsten


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


Re: Upper limit for list lenght in PicoLisp?

2012-07-23 Thread Alexander Burger
Hi Thorsten,

 Is there something like an upper limit for how many Strings can be in a
 list in PicoLisp? Or might that be Emacs related?

No, there is no limit. Neither to the length of the command line (if you
use the built-in line editor).

How did you invoke PicoLisp? Does this also happen if you invoke just as

   $ pil +

i.e. PicoLisp alone, without Emacs?

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


Re: Upper limit for list lenght in PicoLisp?

2012-07-23 Thread Thorsten Jolitz
Alexander Burger a...@software-lab.de writes:

Hi Alex,

 Is there something like an upper limit for how many Strings can be in a
 list in PicoLisp? Or might that be Emacs related?

 No, there is no limit. Neither to the length of the command line (if you
 use the built-in line editor).

 How did you invoke PicoLisp? Does this also happen if you invoke just as

$ pil +

 i.e. PicoLisp alone, without Emacs?

No, that works, although there are is someting strange happening too:
some of the strings in the list are replaces by NIL, and it seems as if
the '\' that signals a linebreak in an Emacs buffer is somehow
misinterpreted as an escaping backslash

 ,
 | wiki/Binary_strings wiki/Bitmap
 | wiki/Bitmap/Bresenham%27s_line_algorithm
 | wiki/Bitmap/B%C3%A9zier_curves/Cubic
 | wiki/Bitmap/B%C3%A9zier_curves/Quadratic wiki/Bitmap/Flood_fill
 | wiki/Bitmap/Histogram wiki/Bitmap/Midpoint_circle_algorithm
 | wiki/Bitmap/PPM_conversion_through_a_pipe
 | wiki/Bitmap/Read_a_PPM_file
 | wiki/Bitmap/Read_an_image_through_a_pipe
 | wiki/Bitmap/Write_a_PPM_file wiki/Bitwise_IO
 | wiki/Bitwise_operations wiki/Boolean_values wiki/Box_the_compass
 | wiki/Break_OO_privacy wiki/Brownian_tree wiki/Bulls_and_cows
 | wiki/Bulls_and_cows/Player wiki/Caesar_cipher wiki/Calendar
 | wiki/Calendar_-_for_%22real%22_programmers
 | wiki/Call_a_foreign-language_function wiki/Call_a_function
 | wiki/Call_a_function_in_a_shared_library wiki/Call_an_object_method
 | wiki/Case-sensitivity_of_identifiers wiki/Catalan_numbers
 | wiki/Character_codes wiki/Character_matching wiki/Chat_server
 | wiki/Checkpoint_synchronization wiki/Chess_player
 | wiki/Chess_player/PicoLisp
 `

becomes

  ,--
  | wiki/Binary_strings wiki/Bitmap
  | wiki/Bitmap/Bresenham%27s_line_algorithm\  NIL   NIL   NIL  
  | NIL   NIL   NIL   NIL   NIL   NIL   NIL   NIL   NIL 
  |  NIL   NIL   NIL   NIL   NIL   NIL   NIL   NIL   NIL
  |   NIL   NIL   NIL   NIL   NIL   NIL   NIL 
  | \wiki/Chat_server wiki/Checkpoint_synchronization
  | wiki/Chess_player wiki/Chess_player/PicoLisp 
  `--


So it looks more like an Emacs (PicoLisp mode) related problem. 

-- 
cheers,
Thorsten

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


Re: Upper limit for list lenght in PicoLisp?

2012-07-23 Thread Thorsten Jolitz
Alexander Burger a...@software-lab.de writes:

Hi Alex,

 You said that you call it as

(setq X (list string1 ... string200))

 Note that this evaluates the transient symbols string1 etc., so if one
 of them has a value NIL (or anything else), it will be included in the
 list.

 What you actually want to do is

(setq X '(string1 ... string200))

yes, definitely... thanks

-- 
cheers,
Thorsten

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