pico? (num)

2017-06-13 Thread Danilo Kordic
  If `lambda' (Lisp-defined Procedures) is `lst' why `num' is not?!

  Even if both `num' and `cnt' are defined in `structures', why `num'
can not be operated on as a `lst' that it is?!

  I think it would be (uber cute) to implement `num' as `lst' of `cnt'
as pure PL lib :) .  Even in 32-bit version.

  I think `(doc 'eval)' should be the main part of the Reference :) .
As we all know, to implement (define) Lisp /just/ `eval' is enough.
Who needs 7 primitives ;) ?  `(doc 'lst)' (and `fun'...) is missing :)


Subscribe

2017-06-13 Thread Todd Roth
Hello Todd Roth  :-)
You are now subscribed




 from my iPhone

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


Re: pico? (num)

2017-06-13 Thread Alexander Burger
Hi Danilo,

>   If `lambda' (Lisp-defined Procedures) is `lst' why `num' is not?!

I'm not completely sure how you mean that, but you can also "define" a number:

   : +
   -> 270167

   : (def 'plus (- (* 2 135085) 3))
   -> plus

   : plus
   -> 270167

   : (plus 3 4)
   -> 7


>   Even if both `num' and `cnt' are defined in `structures', why `num'
> can not be operated on as a `lst' that it is?!

The digits in a bignum are not numbers, because they have no tag bits. They are
just bit patterns, spanning the full 64 bits (or 32 on pil32). Thus, a bignum is
*not* a list of numbers.


>   I think it would be (uber cute) to implement `num' as `lst' of `cnt'
> as pure PL lib :) .  Even in 32-bit version.

Could be, but you waste 4 bits in each word for the tags. And numeric operations
would have to discard them, getting slower.


>   I think `(doc 'eval)' should be the main part of the Reference :) .

What about "doc/ref.html#ev"?


> As we all know, to implement (define) Lisp /just/ `eval' is enough.
> Who needs 7 primitives ;) ?  `(doc 'lst)' (and `fun'...) is missing :)

Not sure again what you mean. Which 7 primitives?

♪♫ Alex

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


Re: pico? (num)

2017-06-13 Thread Danilo Kordic
Hi Alex,

> >   If `lambda' (Lisp-defined Procedures) is `lst' why `num' is not?!
>
> I'm not completely sure how you mean that, but you can also "define" a number:

  [path "@src64/structures"] defines `num' as a list of ``cell's.  How
to do `cons', `car' and `cdr' on it.  Even shifting (`>\
>') by 64 (32) bits will copy the whole `num'.  Why `cnt?' is not defined?

  ATM we have:
[de fun . quote]

  Maybe `fun' and `list' should be `sym'bolic tags, and their
`apply'cation an Irreducible Form (`=='), if arguments are valid\


Re: pico? (num)

2017-06-13 Thread Danilo Kordic
  I was just thinking out loud :) .  Please ignore it if it does not make sense.

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


building picolisp in mobaxterm (cygwin)

2017-06-13 Thread pd
Hi,

I've tried to build picolisp in mobaxterm (a terminal program including
cygwin preinstalled) but I have a bunch of errors about foking and dll's
loading in different memory address

 ➤ make
  0 [main] make 14124 child_info_fork::abort:
C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
Loaded to different address: parent(0x6C) != child(0xDC)
make: Makefile:38: fork: Resource temporarily unavailable
  0 [main] make 852 child_info_fork::abort:
C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
Loaded to different address: parent(0x6C) != child(0xE4)
make: Makefile:58: fork: Resource temporarily unavailable
  0 [main] make 8692 child_info_fork::abort:
C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
Loaded to different address: parent(0x6C) != child(0x70)
make: Makefile:67: fork: Resource temporarily unavailable
  0 [main] make 11008 child_info_fork::abort:
C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
Loaded to different address: parent(0x6C) != child(0xE6)
make: Makefile:76: fork: Resource temporarily unavailable
  0 [main] make 5924 child_info_fork::abort:
C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
Loaded to different address: parent(0x6C) != child(0xE4)
make: Makefile:94: fork: Resource temporarily unavailable
gcc -c -O2 -pipe -falign-functions=32 -fomit-frame-pointer
-fno-strict-aliasing -W -Wimplicit -Wreturn-type -Wunused -Wformat
-Wuninitialized -Wstrict-prototypes -D_GNU_SOURCE  -D_FILE_OFFSET_BITS=64
-D_OS='"Windows_NT"' subr.c
  0 [main] make 14792 child_info_fork::abort:
C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
Loaded to different address: parent(0x6C) != child(0xE4)
make: fork: Resource temporarily unavailable


anyone have tried to build with mobaxterm or cygwin and had similar
problems?

regards

-- 
Andrés

*~ La mejor manera de librarse de la tentación es caer en ella**. ~ Oscar
Wilde* ~


Re: building picolisp in mobaxterm (cygwin)

2017-06-13 Thread Joe Bogner
Hi pd, yes, this is a common issue with cygwin and fork.

Are you on a 64-bit bit PC? If so, I have an experimental version of
PicoLisp on 64-bit that might be useful -
https://github.com/joebo/picoLisp-win-x86-64

I can elaborate if so

On Tue, Jun 13, 2017 at 3:22 PM, pd  wrote:

> Hi,
>
> I've tried to build picolisp in mobaxterm (a terminal program including
> cygwin preinstalled) but I have a bunch of errors about foking and dll's
> loading in different memory address
>
>  ➤ make
>   0 [main] make 14124 child_info_fork::abort:
> C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
> Loaded to different address: parent(0x6C) != child(0xDC)
> make: Makefile:38: fork: Resource temporarily unavailable
>   0 [main] make 852 child_info_fork::abort:
> C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
> Loaded to different address: parent(0x6C) != child(0xE4)
> make: Makefile:58: fork: Resource temporarily unavailable
>   0 [main] make 8692 child_info_fork::abort:
> C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
> Loaded to different address: parent(0x6C) != child(0x70)
> make: Makefile:67: fork: Resource temporarily unavailable
>   0 [main] make 11008 child_info_fork::abort:
> C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
> Loaded to different address: parent(0x6C) != child(0xE6)
> make: Makefile:76: fork: Resource temporarily unavailable
>   0 [main] make 5924 child_info_fork::abort:
> C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
> Loaded to different address: parent(0x6C) != child(0xE4)
> make: Makefile:94: fork: Resource temporarily unavailable
> gcc -c -O2 -pipe -falign-functions=32 -fomit-frame-pointer
> -fno-strict-aliasing -W -Wimplicit -Wreturn-type -Wunused -Wformat
> -Wuninitialized -Wstrict-prototypes -D_GNU_SOURCE  -D_FILE_OFFSET_BITS=64
> -D_OS='"Windows_NT"' subr.c
>   0 [main] make 14792 child_info_fork::abort:
> C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
> Loaded to different address: parent(0x6C) != child(0xE4)
> make: fork: Resource temporarily unavailable
>
>
> anyone have tried to build with mobaxterm or cygwin and had similar
> problems?
>
> regards
>
> --
> Andrés
>
> *~ La mejor manera de librarse de la tentación es caer en ella**. ~ Oscar
> Wilde* ~
>


Re: building picolisp in mobaxterm (cygwin)

2017-06-13 Thread pd
yes, I'm in a windows 10 64-bit PC.

I've cloned the repository you linked but when invoking make in src64
directory I got the same error messages

If I try to run pil in root picolisp-win-x86-64 directory I get an error
indicating picolisp not found in bin directroy, if I run pil in bin
directory I get an error indicating picolisp is not found in /usr/bin/
directory

➤ ./pil
/pil: line 2: /home/mobaxterm/picoLisp-win-x86-64/bin/picolisp: No such
file or directory
/pil: line 2: exec: /home/mobaxterm/picoLisp-win-x86-64/bin/picolisp:
cannot execute: No such file or directory
➤ cd bin
➤ ./pil
bash: ./pil: /usr/bin/picolisp: bad interpreter: No such file or directory

I suppose the problem is I didn't build picolisp so there's no picolisp
executable, but I cannot build picolisp because make fails with weird errors

➤ cd src ; make
  0 [main] make 12524 child_info_fork::abort:
C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
Loaded to different address: parent(0xE0) != child(0x70)
make: Makefile:20: fork: Resource temporarily unavailable
  0 [main] make 9428 child_info_fork::abort:
C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
Loaded to different address: parent(0xE0) != child(0x6C)
make: Makefile:29: fork: Resource temporarily unavailable
  0 [main] make 15996 child_info_fork::abort:
C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
Loaded to different address: parent(0xE0) != child(0xE2)
make: Makefile:38: fork: Resource temporarily unavailable
  0 [main] make 13620 child_info_fork::abort:
C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
Loaded to different address: parent(0xE0) != child(0x6C)
make: Makefile:49: fork: Resource temporarily unavailable
  0 [main] make 11160 child_info_fork::abort:
C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
Loaded to different address: parent(0xE0) != child(0x6C)
make: Makefile:58: fork: Resource temporarily unavailable
  0 [main] make 8060 child_info_fork::abort:
C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
Loaded to different address: parent(0xE0) != child(0xE4)
make: Makefile:67: fork: Resource temporarily unavailable
  0 [main] make 6624 child_info_fork::abort:
C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
Loaded to different address: parent(0xE0) != child(0x6C)
make: Makefile:76: fork: Resource temporarily unavailable
  0 [main] make 8616 child_info_fork::abort:
C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
Loaded to different address: parent(0xE0) != child(0x64)
make: Makefile:85: fork: Resource temporarily unavailable
  0 [main] make 11084 child_info_fork::abort:
C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
Loaded to different address: parent(0xE0) != child(0x6C)
make: Makefile:94: fork: Resource temporarily unavailable
gcc -c -O2 -pipe -falign-functions=32 -fomit-frame-pointer
-fno-strict-aliasing -W -Wimplicit -Wreturn-type -Wunused -Wformat
-Wuninitialized -Wstrict-prototypes -D_GNU_SOURCE  -D_FILE_OFFSET_BITS=64
-D_OS='"Windows_NT"' main.c
  1 [main] make 1120 child_info_fork::abort:
C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
Loaded to different address: parent(0xE0) != child(0xDC)
make: fork: Resource temporarily unavailable

➤ cd src64; make
  0 [main] make 12428 child_info_fork::abort:
C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
Loaded to different address: parent(0xE3) != child(0x6C)
make: Makefile:55: fork: Resource temporarily unavailable
  0 [main] make 15468 child_info_fork::abort:
C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
Loaded to different address: parent(0xE3) != child(0x6C)
make: Makefile:81: fork: Resource temporarily unavailable
  0 [main] make 8052 child_info_fork::abort:
C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
Loaded to different address: parent(0xE3) != child(0x71)
make: Makefile:91: fork: Resource temporarily unavailable
  0 [main] make 6728 child_info_fork::abort:
C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
Loaded to different address: parent(0xE3) != child(0x6C)
make: Makefile:101: fork: Resource temporarily unavailable
  0 [main] make 7972 child_info_fork::abort:
C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
Loaded to different address: parent(0xE3) != child(0xDF)
make: Makefile:111: fork: Resource temporarily unavailable
  0 [main] make 6360 child_info_fork::abort:
C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
Loaded t

Re: building picolisp in mobaxterm (cygwin)

2017-06-13 Thread Joe Bogner
If you get stuck, jump on #picolisp on irc.freenode.net

On Tue, Jun 13, 2017 at 5:19 PM, Joe Bogner  wrote:

> Building from my repo is complicated as it requires a different toolchain

Re: building picolisp in mobaxterm (cygwin)

2017-06-13 Thread Joe Bogner
Building from my repo is complicated as it requires a different toolchain.

It's best to try out the binary release
https://github.com/joebo/picoLisp-win-x86-64/releases

Clone the repo and then drop that picoLisp-win-x86-64-dist.zip into the
folder and unzip. You should be able to run pil.cmd then

Again, this is all experimental

If you're on win10, I hear pil also works with WSL -
https://msdn.microsoft.com/en-us/commandline/wsl/about



On Tue, Jun 13, 2017 at 4:21 PM, pd  wrote:

> yes, I'm in a windows 10 64-bit PC.
>
> I've cloned the repository you linked but when invoking make in src64
> directory I got the same error messages
>
> If I try to run pil in root picolisp-win-x86-64 directory I get an error
> indicating picolisp not found in bin directroy, if I run pil in bin
> directory I get an error indicating picolisp is not found in /usr/bin/
> directory
>
> ➤ ./pil
> ./pil: line 2: /home/mobaxterm/picoLisp-win-x86-64/bin/picolisp: No such
> file or directory
> /pil: line 2: exec: /home/mobaxterm/picoLisp-win-x86-64/bin/picolisp:
> cannot execute: No such file or directory
> ➤ cd bin
> ➤ ./pil
> bash: ./pil: /usr/bin/picolisp: bad interpreter: No such file or directory
>
> I suppose the problem is I didn't build picolisp so there's no picolisp
> executable, but I cannot build picolisp because make fails with weird errors
>
> ➤ cd src ; make
>   0 [main] make 12524 child_info_fork::abort:
> C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
> Loaded to different address: parent(0xE0) != child(0x70)
> make: Makefile:20: fork: Resource temporarily unavailable
>   0 [main] make 9428 child_info_fork::abort:
> C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
> Loaded to different address: parent(0xE0) != child(0x6C)
> make: Makefile:29: fork: Resource temporarily unavailable
>   0 [main] make 15996 child_info_fork::abort:
> C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
> Loaded to different address: parent(0xE0) != child(0xE2)
> make: Makefile:38: fork: Resource temporarily unavailable
>   0 [main] make 13620 child_info_fork::abort:
> C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
> Loaded to different address: parent(0xE0) != child(0x6C)
> make: Makefile:49: fork: Resource temporarily unavailable
>   0 [main] make 11160 child_info_fork::abort:
> C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
> Loaded to different address: parent(0xE0) != child(0x6C)
> make: Makefile:58: fork: Resource temporarily unavailable
>   0 [main] make 8060 child_info_fork::abort:
> C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
> Loaded to different address: parent(0xE0) != child(0xE4)
> make: Makefile:67: fork: Resource temporarily unavailable
>   0 [main] make 6624 child_info_fork::abort:
> C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
> Loaded to different address: parent(0xE0) != child(0x6C)
> make: Makefile:76: fork: Resource temporarily unavailable
>   0 [main] make 8616 child_info_fork::abort:
> C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
> Loaded to different address: parent(0xE0) != child(0x64)
> make: Makefile:85: fork: Resource temporarily unavailable
>   0 [main] make 11084 child_info_fork::abort:
> C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
> Loaded to different address: parent(0xE0) != child(0x6C)
> make: Makefile:94: fork: Resource temporarily unavailable
> gcc -c -O2 -pipe -falign-functions=32 -fomit-frame-pointer
> -fno-strict-aliasing -W -Wimplicit -Wreturn-type -Wunused -Wformat
> -Wuninitialized -Wstrict-prototypes -D_GNU_SOURCE  -D_FILE_OFFSET_BITS=64
> -D_OS='"Windows_NT"' main.c
>   1 [main] make 1120 child_info_fork::abort:
> C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
> Loaded to different address: parent(0xE0) != child(0xDC)
> make: fork: Resource temporarily unavailable
>
> ➤ cd src64; make
>   0 [main] make 12428 child_info_fork::abort:
> C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
> Loaded to different address: parent(0xE3) != child(0x6C)
> make: Makefile:55: fork: Resource temporarily unavailable
>   0 [main] make 15468 child_info_fork::abort:
> C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
> Loaded to different address: parent(0xE3) != child(0x6C)
> make: Makefile:81: fork: Resource temporarily unavailable
>   0 [main] make 8052 child_info_fork::abort:
> C:\Users\jose\DOWNLO~1\jose\PROGRA~2\MOBAXT~1\PERSIS~1\slash\bin\cyggmp-10.dll:
> Loaded to different address: parent(0xE3) != child(0x71)
> make: Makefile:91: fork: Resource temporarily unavaila