Re: JavaScript 'lisp' calls

2012-10-11 Thread Rick Lyman
Note:

>From my location the browser does: GET
http://127.0.0.1:8081/!setLocation?39.7670160001&-86.156255

Per Alex:
Since an external (database) symbol starts with dash ('-'), a number
should be prefixed with '+', so a negative number could be specified
with "+-1234567".

Otherwise:

 (de setLocation (Lat Lon)
  (msg Lat)
  (msg Lon)  )

returns: 39.76... and NIL; instead of 39.76... & -86.15...

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


Re: arm

2013-03-21 Thread Rick Lyman
Tomas,

Which OS / arm board combination are you using?

Thanks,

-rl


On Sun, Mar 10, 2013 at 7:27 PM, Tomas Hlavaty  wrote:

> Hi Alex,
>
> attached is a patch to compile picolisp on arm out of the box.  The -m32
> switch doesn't seem to be defined there.
>
> The -fPIC option was necessary for:
>
> gcc -o ../lib/z3d   -shared -export-dynamic z3d.o
> /usr/bin/ld: z3d.o: relocation R_ARM_MOVW_ABS_NC against `a local symbol'
> can not be used when making a shared object; recompile with -fPIC
> z3d.o: could not read symbols: Bad value
> collect2: error: ld returned 1 exit status
> make: *** [../lib/z3d] Error 1
> make: Target `picolisp' not remade because of errors.
>
> Maybe there is a better way to handle the error?
>
> Would it be possible to include it in the official version?
>
> Thank you,
>
> Tomas
>
>
> diff --git a/src/Makefile b/src/Makefile
> index 7267011..a229ab8 100644
> --- a/src/Makefile
> +++ b/src/Makefile
> @@ -7,46 +7,55 @@ lib = ../lib
>
>  picoFiles = main.c gc.c apply.c flow.c sym.c subr.c big.c io.c net.c tab.c
>
> -CFLAGS = -c -O2 -m32 -pipe \
> +ifeq ($(shell uname -m), armv6l)
> +   M32 = -fPIC
> +else
> +ifeq ($(shell uname -m), armv7l)
> +   M32 = -fPIC
> +else
> +   M32 = -m32
> +endif
> +endif
> +
> +CFLAGS = -c -O2 $(M32) -pipe \
> -falign-functions -fomit-frame-pointer -fno-strict-aliasing \
> -W -Wimplicit -Wreturn-type -Wunused -Wformat \
> -Wuninitialized -Wstrict-prototypes \
> -D_GNU_SOURCE  -D_FILE_OFFSET_BITS=64
>
> -
>  ifeq ($(shell uname), Linux)
> OS = Linux
> -   PICOLISP-FLAGS = -m32 -rdynamic
> +   PICOLISP-FLAGS = $(M32) -rdynamic
> LIB-FLAGS = -lc -lm -ldl
> -   DYNAMIC-LIB-FLAGS = -m32 -shared -export-dynamic
> +   DYNAMIC-LIB-FLAGS = $(M32) -shared -export-dynamic
> STRIP = strip
>  else
>  ifeq ($(shell uname), OpenBSD)
> OS = OpenBSD
> -   PICOLISP-FLAGS = -m32 -rdynamic -Wl,-E
> +   PICOLISP-FLAGS = $(M32) -rdynamic -Wl,-E
> LIB-FLAGS = -lc -lm
> DYNAMIC-LIB-FLAGS = -Wl,-E -Wl,-shared
> STRIP = strip
>  else
>  ifeq ($(shell uname), FreeBSD)
> OS = FreeBSD
> -   PICOLISP-FLAGS = -m32 -rdynamic
> +   PICOLISP-FLAGS = $(M32) -rdynamic
> LIB-FLAGS = -lc -lm
> -   DYNAMIC-LIB-FLAGS = -m32 -shared -export-dynamic
> +   DYNAMIC-LIB-FLAGS = $(M32) -shared -export-dynamic
> STRIP = strip
>  else
>  ifeq ($(shell uname), NetBSD)
> OS = NetBSD
> -   PICOLISP-FLAGS = -m32 -rdynamic
> +   PICOLISP-FLAGS = $(M32) -rdynamic
> LIB-FLAGS = -lc -lm
> -   DYNAMIC-LIB-FLAGS = -m32 -shared -export-dynamic
> +   DYNAMIC-LIB-FLAGS = $(M32) -shared -export-dynamic
> STRIP = strip
>  else
>  ifeq ($(shell uname), Darwin)
> OS = Darwin
> -   PICOLISP-FLAGS = -m32
> +   PICOLISP-FLAGS = $(M32)
> LIB-FLAGS = -lc -lm -ldl
> -   DYNAMIC-LIB-FLAGS = -m32 -dynamiclib -undefined dynamic_lookup
> +   DYNAMIC-LIB-FLAGS = $(M32) -dynamiclib -undefined dynamic_lookup
> STRIP = strip -x
>  else
>  ifeq ($(shell uname -o), Cygwin)
>
>


Re: arm

2013-03-21 Thread Rick Lyman
re: Rpi:
re: Debian Linux: as downloaded from raspberrypi.org.

gcc reported -m32 as an invalid option. I removed it.

after building picoLisp:

/pil ./app/main.l -main -go +

!? (port 4040)
IP socket error: Address family not supported by protocol
?
The default Debian download is ipv4.

per Alex:
"If you absolutely have to use IPv4, you might download an older version,
e.g. http://software-lab.de/picoLisp-3.0.8.tgz, but this is rather
unsatisfactory."

There may be a newer version of Debian w/ ipv6 support. When last I checked
I found some "independent" builds; however it looked like the were as
likely to crash, as not.

(re: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=2&t=5069)

re: Rpi:
re: Arch Linux:

Arch on Rpi supports ipv6 and worked (I think after removing -m32, as
above, in the make file. I will have to look for my notes.)

Question:
Has anyone tried PicoLisp on a Google Nexus device w/ Ubuntu Touch?

-rl


On Thu, Mar 21, 2013 at 5:16 PM, Tomas Hlavaty  wrote:

> Hi Rick,
>
> > Which OS / arm board combination are you using?
>
> linux, pandaboard, beagleboard, rpi.
>
> Cheers,
>
> Tomas
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>


Re: arm

2013-03-22 Thread Rick Lyman
Tomas,

I did not have an -fPIC issue. Maybe because I removed -m32?

Thanks,

-rl


On Fri, Mar 22, 2013 at 4:49 AM, Tomas Hlavaty  wrote:

> Hi Rick,
>
> > re: Rpi:
> > re: Arch Linux:
> >
> > Arch on Rpi supports ipv6 and worked (I think after removing -m32, as
> > above, in the make file. I will have to look for my notes.)
>
> and the -fPIC issue?
>
> Thanks,
>
> Tomas
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>


Re: arm

2013-03-22 Thread Rick Lyman
Tomas,

I will look up my notes; and, try a re-compile tomorrow: will let you
know...

-rl


On Fri, Mar 22, 2013 at 8:08 AM, Rick Lyman  wrote:

> Tomas,
>
> I did not have an -fPIC issue. Maybe because I removed -m32?
>
> Thanks,
>
> -rl
>
>
> On Fri, Mar 22, 2013 at 4:49 AM, Tomas Hlavaty  wrote:
>
>> Hi Rick,
>>
>> > re: Rpi:
>> > re: Arch Linux:
>> >
>> > Arch on Rpi supports ipv6 and worked (I think after removing -m32, as
>> > above, in the make file. I will have to look for my notes.)
>>
>> and the -fPIC issue?
>>
>> Thanks,
>>
>> Tomas
>> --
>> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>>
>
>


Re: PicoLisp GUI on Smartphones

2013-12-23 Thread Rick Lyman
re: HTML5

What future features are being worked on?

Thanks Alex,

-rl


On Mon, Dec 23, 2013 at 10:18 AM, Alexander Burger wrote:

> Hi all,
>
> it is quite straightforward to use the standard PicoLisp GUI on
> smartphones, basically by including a CSS file and new  menu
> function. More about this on
>
>http://picolisp.com/5000/!wiki?PhoneGUI
>
> The article presents a simple demo, and describes how to access it.
>
> A merry Christmas and a Happy New Year to everyone!
>
> ♪♫ Alex
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>


Re: websocketd, tested with pil32 and ersatz/pil

2013-12-31 Thread Rick Lyman
Jon,

Have you tried this:

https://bitbucket.org/cyborgar/web.l/src/249fe9f5c7d8/web/sockets.l

-rl



On Tue, Dec 31, 2013 at 10:02 AM, Alexander Burger wrote:

> Hi Jon,
>
> > server, and I have discovered that PicoLisp (at least the 32-bit),
> > behaves a little different from other "applications" (incl. bash and
> > ersatz/pil).
> > ...
> > websocketd --port=8080 -devconsole pil
> > (You get cleaner results back from PicoLisp if you don't add the "+"
> > after "pil".)
> > ...
> > ersatz/pil and other "applications", is that if you click the
> > disconnect button, then pil32 is not terminated. On my Mac it
> > instead starts using close to 100% CPU, and I have to kill it
> > manually. If I, instead of clicking disconnect, type "(bye)", then
> > PicoLisp terminates and I get a 'disconnect'.
>
> I haven't tried exactly this example, but I think I can explain the
> behavior.
>
> The runtime behavior of PicoLisp differs from other applications in that
> it evaluates all command-line arguments, and then goes into an infinite
> loop (REPL). This means specifically that (bye) must be called
> eventually. In debug mode, the REPL line editor takes care of that, by
> calling (bye) when Ctrl-D is hit.
>
> Perhaps it is a bug that EOF on STDIN is not handled more gracefully,
> and I'm not sure at the moment what it would involve.
>
> "Barebone" stdio-programs like bash, ersatzLisp, but also e.g.
> miniPicoLisp terminate despite of that, because they don't set up a
> special handler for the console.
>
> In any case, scripts like yours
>
> > #!/usr/bin/picolisp /usr/lib/picolisp/lib.l
> > (load "@lib/misc.l")
> >
> > (in NIL
> >(use (Exe Res)
> >   (until (eof)
> >   (setq Exe (read))
> >   (prin "-> ")
> >   (println
> >  (setq Res
> > (let @ Res
> >(eval Exe) ) ) )
> >   (flush) ) ) )
>
> should always call (bye) in the end (i.e. after 'until' or the enclosing
> 'in' terminated).
>
>
>
> > Something else is that output that goes to STDERR, does not show up
> > in the browser (it ends up in the websocketd log), and I guess that
> > is why I don't see any response if I type something like "(foo)",
> > where 'foo' is undefined. Can output to STDERR in an easy way be
> > redirected to STDOUT in a REPL script?
>
> Yes, this should be doable with (err NIL ...)
>
> ♪♫ Alex
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>


Re: PicoLisp GUI on Smartphones

2014-01-05 Thread Rick Lyman
Alex,

I trust that you had a merry Christmas and a Happy New Year...

Supporting phones is a very good idea: "
http://www.digitaltrends.com/mobile/mobile-phone-world-population-2014/";
The article mentions: "Of the 6 billion cell phones in use, only around 1.1
billion of them are mobile-broadband devices."

I wonder what market size Mozilla is expecting for Firefox OS. Prior to you
mentioning: "http://www.w3.org/2009/dap/";; I had not thought of the browser
supporting some of the same features as Firefox OS.

I have mixed feelings about: "this would break the fundamental rule that
the GUI should also work in an environment without JavaScript"

It seems contrary to what most companies are pursuing, e.g.: "
http://www.sencha.com/blog/the-making-of-fastbook-an-html5-love-story";

Anyway, have you looked at: "https://github.com/kripken/emscripten/wiki";
and "http://asmjs.org/faq.html";? I suppose that PicoLisp could run in the
browser; and, act as an offline cache for the server, etc

Some of the same code could also be used in nodeJS; for OS interop, etc...

Under Windows I have used nodeJS so that localhost can query PicoLisp, in a
psuedo RESTful manner (i.e., no app session...)

Thanks,

-rl







On Wed, Dec 25, 2013 at 7:35 AM, Alexander Burger wrote:

> Hi Jon,
>
> thanks for the input!
>
> > Numerical input elements can/should be given pattern attributes that
> > trigger the numerical keypad on iPhones/iPads, like this:
> > 
> > As far as I know, this pattern makes no difference on Android. ;-)
>
> This could be easily done using the '

Re: PicoLisp GUI on Smartphones

2014-01-06 Thread Rick Lyman
Thanks Henrik and Alex,

This came in my email this morning: "
http://us5.campaign-archive1.com/?u=502910cc28cb186a9e829f748&id=a8605b778a&e=9d2ada32e2
"

It seems to me that the easiest way to overcome server volume(1)
limitations ("http://www.kegel.com/c10k.html";), is by executing a much as
possible on the client. See also: "http://www.generalinterface.org/";.
(Disclosure: my at work architecture is Oracle/Microsoft SQL Server and
net. Sometimes General Interface is the UI.)

I will create, and share, some (HTML5 and/or General Interface and/or
TiddlyWiki)+PicoLisp examples; hopefully soon.(2)

Alex, thanks for pointing me to: "http://getfri.es/"; and "
https://github.com/jaunesarmiento/fries";. Do you use this for testing; or,
for production?

Thanks,

-rl

(1) Not that I have this problem (no volume, ha ha).
(2) A non PicoLisp experiment: http://ricklyman.net/gi4.html



On Mon, Jan 6, 2014 at 2:19 AM, Alexander Burger wrote:

> Hi Rick,
>
> a Happy New Year to you too! And to everybody else, of course! :)
>
>
> And thanks for the feedback and links.
>
> > I have mixed feelings about: "this would break the fundamental rule that
> > the GUI should also work in an environment without JavaScript"
> >
> > It seems contrary to what most companies are pursuing, e.g.: "
> > http://www.sencha.com/blog/the-making-of-fastbook-an-html5-love-story";
>
> Sure, that's true. And in fact we are currently also using Phonegap and
> fries.js in the same project.
>
> Still it is an important feature for me if an application works _also_
> without JavaScript and cookies, running in plain text browsers or
> scrape-script-driven, without any limits to handicapped persons (screen
> readers) or in otherwise restricted environments. Another gain is
> performance because of the lightweight.
>
>
> > Under Windows I have used nodeJS so that localhost can query PicoLisp,
> in a
> > psuedo RESTful manner (i.e., no app session...)
>
> Yes, and you can use PicoLisp in that way also in the standard setup. I
> do this for simple static pages.
>
> But I strongly disagree in non-trivial cases. The session-oriented
> protocol of a PicoLisp app is a must for me. A stateless paradigm like
> REST (keeping the state in the client instead of the server) would IMHO
> be by far inferior for the kind of applications I'm dealing with. As a
> matter of principle some state must be hold in the database on the
> server, and therefore also most decisions concerning the flow, so
> delegating some part of the state to the client gives a very unmodular
> program structure.
>
> ♪♫ Alex
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>


Re: PicoLisp GUI on Smartphones

2014-01-06 Thread Rick Lyman
http://www.engadget.com/2014/01/06/firefox-os-tablet-developer-program/

http://www.engadget.com/2014/01/06/panasonic-firefox-os-deal/




On Mon, Jan 6, 2014 at 10:15 AM, Rick Lyman  wrote:

> Thanks Henrik and Alex,
>
> This came in my email this morning: "
> http://us5.campaign-archive1.com/?u=502910cc28cb186a9e829f748&id=a8605b778a&e=9d2ada32e2
> "
>
> It seems to me that the easiest way to overcome server volume(1)
> limitations ("http://www.kegel.com/c10k.html";), is by executing a much as
> possible on the client. See also: "http://www.generalinterface.org/";.
> (Disclosure: my at work architecture is Oracle/Microsoft SQL Server and
> .net. Sometimes General Interface is the UI.)
>
> I will create, and share, some (HTML5 and/or General Interface and/or
> TiddlyWiki)+PicoLisp examples; hopefully soon.(2)
>
> Alex, thanks for pointing me to: "http://getfri.es/"; and "
> https://github.com/jaunesarmiento/fries";. Do you use this for testing;
> or, for production?
>
> Thanks,
>
> -rl
>
> (1) Not that I have this problem (no volume, ha ha).
> (2) A non PicoLisp experiment: http://ricklyman.net/gi4.html
>
>
>
> On Mon, Jan 6, 2014 at 2:19 AM, Alexander Burger wrote:
>
>> Hi Rick,
>>
>> a Happy New Year to you too! And to everybody else, of course! :)
>>
>>
>> And thanks for the feedback and links.
>>
>> > I have mixed feelings about: "this would break the fundamental rule that
>> > the GUI should also work in an environment without JavaScript"
>> >
>> > It seems contrary to what most companies are pursuing, e.g.: "
>> > http://www.sencha.com/blog/the-making-of-fastbook-an-html5-love-story";
>>
>> Sure, that's true. And in fact we are currently also using Phonegap and
>> fries.js in the same project.
>>
>> Still it is an important feature for me if an application works _also_
>> without JavaScript and cookies, running in plain text browsers or
>> scrape-script-driven, without any limits to handicapped persons (screen
>> readers) or in otherwise restricted environments. Another gain is
>> performance because of the lightweight.
>>
>>
>> > Under Windows I have used nodeJS so that localhost can query PicoLisp,
>> in a
>> > psuedo RESTful manner (i.e., no app session...)
>>
>> Yes, and you can use PicoLisp in that way also in the standard setup. I
>> do this for simple static pages.
>>
>> But I strongly disagree in non-trivial cases. The session-oriented
>> protocol of a PicoLisp app is a must for me. A stateless paradigm like
>> REST (keeping the state in the client instead of the server) would IMHO
>> be by far inferior for the kind of applications I'm dealing with. As a
>> matter of principle some state must be hold in the database on the
>> server, and therefore also most decisions concerning the flow, so
>> delegating some part of the state to the client gives a very unmodular
>> program structure.
>>
>> ♪♫ Alex
>> --
>> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>>
>
>


Re: PicoLisp GUI on Smartphones

2014-01-07 Thread Rick Lyman
Alex,

> and the load distributed across multiple servers.

How so? Currently PicoLisp forks on the same sever. Are you using remote
queries to other PicoLisp instances? A proxy to parse routes?

re: "https://www.mail-archive.com/picolisp@software-lab.de/msg00097.html";


> For production. At the moment the project is still in prototype stage.

How does fries.js GET and POST to PicoLisp? JSON converted to PicoLisp
objects?

re: "http://www.prodevtips.com/2008/09/11/pico-lisp-and-json/"; (:Thanks
Henrik)


Thanks,

-rl


On Tue, Jan 7, 2014 at 1:52 AM, Alexander Burger wrote:

> Hi Rick,
>
> > It seems to me that the easiest way to overcome server volume(1)
> > limitations ("http://www.kegel.com/c10k.html";), is by executing a much
> as
> > possible on the client. See also: "http://www.generalinterface.org/";.
>
> It all depends on the application. But, in my experience, the relative
> load on the server is quite low in the current PicoLisp architecture.
>
> Some things _have_ to be done on the server anyway, like validations and
> synchronizations, so you can't put much on the client alone.
>
> Also, the client does the most work anyway. The bottleneck is rendering
> the layout in the browser, not the virtual representation of the GUI
> components on the server. You can see that easily with 'top', if you run
> both the client and server on a single machine.
>
> And with tens of thousands of clients (doing heavy database work, not
> just static pages) the situation needs to be analyzed carefully, and the
> load distributed across multiple servers.
>
>
> > Alex, thanks for pointing me to: "http://getfri.es/"; and "
> > https://github.com/jaunesarmiento/fries";. Do you use this for testing;
> or,
> > for production?
>
> For production. At the moment the project is still in prototype stage.
>
> ♪♫ Alex
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>


Re: Altering web app framework look via a css framework

2014-02-16 Thread Rick Lyman
Not PicoLisp; but you may want to look at:
http://foundation.zurb.com/docs/css.html.


On Sun, Feb 16, 2014 at 1:51 PM, me  wrote:

> Hello List,
>
> Are there any pro tips for how could I go about adding/altering css
> styling via a css framework like bootstrap for example?  Including the
> necessary files is no problem but I'm finding it difficult to specify CSS
> classes and such for gui components.  Thank you in advance for your help.
>


Re: JSON Rest

2014-02-17 Thread Rick Lyman
Look at this post:
http://blog.gmane.org/gmane.lisp.picolisp.general/month=20121001.

For session management you may want to look at:
http://picolisp.com/wiki/?macropis.




On Mon, Feb 17, 2014 at 1:44 PM, klaus schilling wrote:

> hello,
> is it possible to write a client for a JSON rest service in picolisp?
>
> Many services abandon their XML-RPC API and flee to JSON rets, for
> whatever reason.
>
> Klaus Schilling
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>


Re: Regarding the implementations of PicoLisp

2014-05-09 Thread Rick Lyman
Christophe,

How about porting the c version using: https://github.com/kripken/emscripten
?

-rl


On Thu, May 8, 2014 at 5:08 PM, Christophe Gragnic <
christophegrag...@gmail.com> wrote:

> Hi,
>
> I'm currently embedding a «pedagogical pseudo-code like language» in
> PicoLisp.
> As using plain browsers is a nice thing to have in front of students,
> I tried with
> EmuLisp (PicoLisp in JS, by Jon Kleiser, that I won't thank enough, with
> Alex),
> which proved to be a good solution for me.
>
> So I had some thoughts, ideas and questions.
>
> 1) EmuLisp lacks some functions. The first idea I had was to write them in
> the
> available functions (like 'glue' with 'pack'). It worked for some, but
> some others
> needed to be implemented in JS. Now my question: how far could be pushed
> the
> idea to write a maximal subset of Picolisp in a minimal subset of
> Picolisp? Like in
> the original paper of McCarthy or «the Jewel» in SICP? I'm not talking
> about
> performance here, just functions availability.
>
> 2) Since PicoLisp64 is written in a «generic assembly» embedded in
> PicoLisp,
> I was wondering (only wondering, since the concepts are a bit vague for
> me) if
> instead of building the .s files we could build some http://asmjs.org/file(s).
>
> 3) Regarding EmuLisp again, and for your information, I've created
> (and am using seriously!) a JS pil, that I named `piljs` which runs on node


Re: Regarding the implementations of PicoLisp

2014-05-09 Thread Rick Lyman
Joe,

Something like:

Browser
 Stream IN
  miniPicoLisp (c to asm.js via emscripten)
   PiL i/o
read-eval-print loop
 Stream OUT
  HTML, PiL i/o to Server, JSON, ...
   localStorage, indexedDB, cookies, sessionStorage, ...

Server
 Stream IN
  PicoLisp
   PiL i/o from miniPicoLisp/Browser
read-eval-print loop
 Stream OUT
  PiL i/o to Browser/miniPicoLisp


http://software-lab.de/doc/ref.html#io: ...read-eval-print loop...
http://software-lab.de/doc/tut.html#funio: ...functions operate on implicit
input and output channels...
http://picolisp.com/wiki/?ideasPage: ...pilBrowserDB...


-rl


On Fri, May 9, 2014 at 8:19 AM, Joe Bogner  wrote:

> Hi Rick, Christophe,
>
> I was thinking the same thing. miniPicolisp might be a simpler first step
> to port
>
>
> On Fri, May 9, 2014 at 7:51 AM, Rick Lyman 
> 
> > wrote:
>
>> Christophe,
>>
>> How about porting the c version using:
>> https://github.com/kripken/emscripten?
>>
>> -rl
>>
>>
>> On Thu, May 8, 2014 at 5:08 PM, Christophe Gragnic <
>> christophegrag...@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I'm currently embedding a «pedagogical pseudo-code like language» in
>>> PicoLisp.
>>> As using plain browsers is a nice thing to have in front of students,
>>> I tried with
>>> EmuLisp (PicoLisp in JS, by Jon Kleiser, that I won't thank enough, with
>>> Alex),
>>> which proved to be a good solution for me.
>>>
>>> So I had some thoughts, ideas and questions.
>>>
>>> 1) EmuLisp lacks some functions. The first idea I had was to write them
>>> in the
>>> available functions (like 'glue' with 'pack'). It worked for some, but
>>> some others
>>> needed to be implemented in JS. Now my question: how far could be pushed
>>> the
>>> idea to write a maximal subset of Picolisp in a minimal subset of
>>> Picolisp? Like in
>>> the original paper of McCarthy or «the Jewel» in SICP? I'm not talking
>>> about
>>> performance here, just functions availability.
>>>
>>> 2) Since PicoLisp64 is written in a «generic assembly» embedded in
>>> PicoLisp,
>>> I was wondering (only wondering, since the concepts are a bit vague for
>>> me) if
>>> instead of building the .s files we could build some 
>>> http://asmjs.org/file(s).
>>>
>>> 3) Regarding EmuLisp again, and for your information, I've created
>>> (and am using seriously!) a JS pil, that I named `piljs` which runs on
>>> node
>>
>>
>>
>


Re: Regarding the implementations of PicoLisp

2014-05-09 Thread Rick Lyman
Joe, Christophe,

re: miniPicoLisp (c to asm.js via emscripten) and stream management:

Simlarly maybe "Query" could be adapted via emscripten:

https://github.com/tj64/picolisp-by-example/blob/master/mainmatter/rosettacode-C.tex


"[
Calling a PicoLisp function from another program requires a running
interpreter.
There are several possibilities, like IPC via fifo's or sockets using the
PLIO
(PicoLisp-I/O) protocol, but the easiest is calling the interpreter in a
pipe.
This is relatively efficient, as the interpreter's startup time is quite
short.
]"


"[

int Query(char *Data, size_t *Length) {
   FILE *fp;
   char buf[64];

   sprintf(buf, "/usr/bin/picolisp query.l \%d -bye", *Length);
   if (!(fp = popen(buf, "r")))
  return 0;
   fgets(Data, *Length, fp);
   *Length = strlen(Data);
   return pclose(fp) >= 0 \&\& *Length != 0;
}
]"



On Fri, May 9, 2014 at 8:19 AM, Joe Bogner  wrote:

> Hi Rick, Christophe,
>
> I was thinking the same thing. miniPicolisp might be a simpler first step
> to port
>
>
> On Fri, May 9, 2014 at 7:51 AM, Rick Lyman 
> 
> > wrote:
>
>> Christophe,
>>
>> How about porting the c version using:
>> https://github.com/kripken/emscripten?
>>
>> -rl
>>
>>
>> On Thu, May 8, 2014 at 5:08 PM, Christophe Gragnic <
>> christophegrag...@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I'm currently embedding a «pedagogical pseudo-code like language» in
>>> PicoLisp.
>>> As using plain browsers is a nice thing to have in front of students,
>>> I tried with
>>> EmuLisp (PicoLisp in JS, by Jon Kleiser, that I won't thank enough, with
>>> Alex),
>>> which proved to be a good solution for me.
>>>
>>> So I had some thoughts, ideas and questions.
>>>
>>> 1) EmuLisp lacks some functions. The first idea I had was to write them
>>> in the
>>> available functions (like 'glue' with 'pack'). It worked for some, but
>>> some others
>>> needed to be implemented in JS. Now my question: how far could be pushed
>>> the
>>> idea to write a maximal subset of Picolisp in a minimal subset of
>>> Picolisp? Like in
>>> the original paper of McCarthy or «the Jewel» in SICP? I'm not talking
>>> about
>>> performance here, just functions availability.
>>>
>>> 2) Since PicoLisp64 is written in a «generic assembly» embedded in
>>> PicoLisp,
>>> I was wondering (only wondering, since the concepts are a bit vague for
>>> me) if
>>> instead of building the .s files we could build some 
>>> http://asmjs.org/file(s).
>>>
>>> 3) Regarding EmuLisp again, and for your information, I've created
>>> (and am using seriously!) a JS pil, that I named `piljs` which runs on
>>> node
>>
>>
>>
>


Re: Regarding the implementations of PicoLisp

2014-05-09 Thread Rick Lyman
Joe, Christophe,

A downside to asm.js is that it is Firefox only...

http://www.infoworld.com/t/javascript/apple-has-its-own-javascript-accelerator-in-the-works-242042

-rl

p.s.: anyone considering c directly via Chrome/NaCL?


On Fri, May 9, 2014 at 8:19 AM, Joe Bogner  wrote:

> Hi Rick, Christophe,
>
> I was thinking the same thing. miniPicolisp might be a simpler first step
> to port
>
>
> On Fri, May 9, 2014 at 7:51 AM, Rick Lyman 
> 
> > wrote:
>
>> Christophe,
>>
>> How about porting the c version using:
>> https://github.com/kripken/emscripten?
>>
>> -rl
>>
>>
>> On Thu, May 8, 2014 at 5:08 PM, Christophe Gragnic <
>> christophegrag...@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I'm currently embedding a «pedagogical pseudo-code like language» in
>>> PicoLisp.
>>> As using plain browsers is a nice thing to have in front of students,
>>> I tried with
>>> EmuLisp (PicoLisp in JS, by Jon Kleiser, that I won't thank enough, with
>>> Alex),
>>> which proved to be a good solution for me.
>>>
>>> So I had some thoughts, ideas and questions.
>>>
>>> 1) EmuLisp lacks some functions. The first idea I had was to write them
>>> in the
>>> available functions (like 'glue' with 'pack'). It worked for some, but
>>> some others
>>> needed to be implemented in JS. Now my question: how far could be pushed
>>> the
>>> idea to write a maximal subset of Picolisp in a minimal subset of
>>> Picolisp? Like in
>>> the original paper of McCarthy or «the Jewel» in SICP? I'm not talking
>>> about
>>> performance here, just functions availability.
>>>
>>> 2) Since PicoLisp64 is written in a «generic assembly» embedded in
>>> PicoLisp,
>>> I was wondering (only wondering, since the concepts are a bit vague for
>>> me) if
>>> instead of building the .s files we could build some 
>>> http://asmjs.org/file(s).
>>>
>>> 3) Regarding EmuLisp again, and for your information, I've created
>>> (and am using seriously!) a JS pil, that I named `piljs` which runs on
>>> node
>>
>>
>>
>


Re: Regarding the implementations of PicoLisp

2014-05-09 Thread Rick Lyman
Joe, Christophe,

Some links:

http://ricklyman.net:81/!wiki?emscripten


On Thu, May 8, 2014 at 5:08 PM, Christophe Gragnic <
christophegrag...@gmail.com> wrote:

> Hi,
>
> I'm currently embedding a «pedagogical pseudo-code like language» in
> PicoLisp.
> As using plain browsers is a nice thing to have in front of students,
> I tried with
> EmuLisp (PicoLisp in JS, by Jon Kleiser, that I won't thank enough, with
> Alex),
> which proved to be a good solution for me.
>
> So I had some thoughts, ideas and questions.
>
> 1) EmuLisp lacks some functions. The first idea I had was to write them in
> the
> available functions (like 'glue' with 'pack'). It worked for some, but
> some others
> needed to be implemented in JS. Now my question: how far could be pushed
> the
> idea to write a maximal subset of Picolisp in a minimal subset of
> Picolisp? Like in
> the original paper of McCarthy or «the Jewel» in SICP? I'm not talking
> about
> performance here, just functions availability.
>
> 2) Since PicoLisp64 is written in a «generic assembly» embedded in
> PicoLisp,
> I was wondering (only wondering, since the concepts are a bit vague for
> me) if
> instead of building the .s files we could build some http://asmjs.org/file(s).
>
> 3) Regarding EmuLisp again, and for your information, I've created
> (and am using seriously!) a JS pil, that I named `piljs` which runs on node


Re: Regarding the implementations of PicoLisp

2014-05-09 Thread Rick Lyman
re: http://pypyjs.org/demo/

Success:
Chrome: 34
Internet Explorer: 11

Failure:
Safari: 5


On Fri, May 9, 2014 at 10:50 AM, Joe Bogner  wrote:

> It works in chrome too and IE10 too
>
> Check out: http://pypyjs.org/demo/
>
>
>
>
> On Fri, May 9, 2014 at 10:21 AM, Rick Lyman  wrote:
>
>> Joe, Christophe,
>>
>> A downside to asm.js is that it is Firefox only...
>>
>>
>> http://www.infoworld.com/t/javascript/apple-has-its-own-javascript-accelerator-in-the-works-242042
>>
>> -rl
>>
>> p.s.: anyone considering c directly via Chrome/NaCL?
>>
>>
>> On Fri, May 9, 2014 at 8:19 AM, Joe Bogner  wrote:
>>
>>> Hi Rick, Christophe,
>>>
>>> I was thinking the same thing. miniPicolisp might be a simpler first
>>> step to port
>>>
>>>
>>> On Fri, May 9, 2014 at 7:51 AM, Rick Lyman 
>>> 
>>> > wrote:
>>>
>>>> Christophe,
>>>>
>>>> How about porting the c version using:
>>>> https://github.com/kripken/emscripten?
>>>>
>>>> -rl
>>>>
>>>>
>>>> On Thu, May 8, 2014 at 5:08 PM, Christophe Gragnic <
>>>> christophegrag...@gmail.com> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I'm currently embedding a «pedagogical pseudo-code like language» in
>>>>> PicoLisp.
>>>>> As using plain browsers is a nice thing to have in front of students,
>>>>> I tried with
>>>>> EmuLisp (PicoLisp in JS, by Jon Kleiser, that I won't thank enough,
>>>>> with Alex),
>>>>> which proved to be a good solution for me.
>>>>>
>>>>> So I had some thoughts, ideas and questions.
>>>>>
>>>>> 1) EmuLisp lacks some functions. The first idea I had was to write
>>>>> them in the
>>>>> available functions (like 'glue' with 'pack'). It worked for some, but
>>>>> some others
>>>>> needed to be implemented in JS. Now my question: how far could be
>>>>> pushed the
>>>>> idea to write a maximal subset of Picolisp in a minimal subset of
>>>>> Picolisp? Like in
>>>>> the original paper of McCarthy or «the Jewel» in SICP? I'm not talking
>>>>> about
>>>>> performance here, just functions availability.
>>>>>
>>>>> 2) Since PicoLisp64 is written in a «generic assembly» embedded in
>>>>> PicoLisp,
>>>>> I was wondering (only wondering, since the concepts are a bit vague
>>>>> for me) if
>>>>> instead of building the .s files we could build some 
>>>>> http://asmjs.org/file(s).
>>>>>
>>>>> 3) Regarding EmuLisp again, and for your information, I've created
>>>>> (and am using seriously!) a JS pil, that I named `piljs` which runs on
>>>>> node
>>>>
>>>>
>>>>
>>>
>>
>


Re: Regarding the implementations of PicoLisp

2014-05-09 Thread Rick Lyman
just a note:

Downloaded miniPicoLisp.
Building under Linux/gcc ok

Downloaded Emscripten (for Windows)
Using c files (from Linux re: above) I tried: "emcc -O2 flow.c -o flow.bc"

below are a few of the errors generated:

flow.c:41:62: warning: '&&' within '||' [-Wlogical-op-parentheses]
   if (isNum(x = EVAL(x)) || isNil(x) || x == T || isCell(x) &&
isNum(car(x)))
~~
~~^~~~
flow.c:41:62: note: place parentheses around the '&&' expression to silence
this

  warning
   if (isNum(x = EVAL(x)) || isNil(x) || x == T || isCell(x) &&
isNum(car(x)))

 ~~^~~~
flow.c:60:37: error: fields must have a constant size: 'variable length
array in

  structure' extension will never be supported
 struct {any sym; any val;} bnd[length(x)];
^
flow.c:77:18: warning: using the result of an assignment as a condition
without
  parentheses [-Wparentheses]
  } while (p = p->link);
   ~~^

..




On Fri, May 9, 2014 at 11:20 AM, Rick Lyman  wrote:

> re: http://pypyjs.org/demo/
>
> Success:
> Chrome: 34
> Internet Explorer: 11
>
> Failure:
> Safari: 5
>
>
> On Fri, May 9, 2014 at 10:50 AM, Joe Bogner  wrote:
>
>> It works in chrome too and IE10 too
>>
>> Check out: http://pypyjs.org/demo/
>>
>>
>>
>>
>> On Fri, May 9, 2014 at 10:21 AM, Rick Lyman  wrote:
>>
>>> Joe, Christophe,
>>>
>>> A downside to asm.js is that it is Firefox only...
>>>
>>>
>>> http://www.infoworld.com/t/javascript/apple-has-its-own-javascript-accelerator-in-the-works-242042
>>>
>>> -rl
>>>
>>> p.s.: anyone considering c directly via Chrome/NaCL?
>>>
>>>
>>> On Fri, May 9, 2014 at 8:19 AM, Joe Bogner  wrote:
>>>
>>>> Hi Rick, Christophe,
>>>>
>>>> I was thinking the same thing. miniPicolisp might be a simpler first
>>>> step to port
>>>>
>>>>
>>>> On Fri, May 9, 2014 at 7:51 AM, Rick Lyman 
>>>> 
>>>> > wrote:
>>>>
>>>>> Christophe,
>>>>>
>>>>> How about porting the c version using:
>>>>> https://github.com/kripken/emscripten?
>>>>>
>>>>> -rl
>>>>>
>>>>>
>>>>> On Thu, May 8, 2014 at 5:08 PM, Christophe Gragnic <
>>>>> christophegrag...@gmail.com> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I'm currently embedding a «pedagogical pseudo-code like language» in
>>>>>> PicoLisp.
>>>>>> As using plain browsers is a nice thing to have in front of students,
>>>>>> I tried with
>>>>>> EmuLisp (PicoLisp in JS, by Jon Kleiser, that I won't thank enough,
>>>>>> with Alex),
>>>>>> which proved to be a good solution for me.
>>>>>>
>>>>>> So I had some thoughts, ideas and questions.
>>>>>>
>>>>>> 1) EmuLisp lacks some functions. The first idea I had was to write
>>>>>> them in the
>>>>>> available functions (like 'glue' with 'pack'). It worked for some, but
>>>>>> some others
>>>>>> needed to be implemented in JS. Now my question: how far could be
>>>>>> pushed the
>>>>>> idea to write a maximal subset of Picolisp in a minimal subset of
>>>>>> Picolisp? Like in
>>>>>> the original paper of McCarthy or «the Jewel» in SICP? I'm not
>>>>>> talking about
>>>>>> performance here, just functions availability.
>>>>>>
>>>>>> 2) Since PicoLisp64 is written in a «generic assembly» embedded in
>>>>>> PicoLisp,
>>>>>> I was wondering (only wondering, since the concepts are a bit vague
>>>>>> for me) if
>>>>>> instead of building the .s files we could build some
>>>>>> http://asmjs.org/ file(s).
>>>>>>
>>>>>> 3) Regarding EmuLisp again, and for your information, I've created
>>>>>> (and am using seriously!) a JS pil, that I named `piljs` which runs
>>>>>> on node
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>


Re: Regarding the implementations of PicoLisp

2014-05-16 Thread Rick Lyman
useful? links:

http://www.cs.indiana.edu/~dyb/pubs/3imp.pdf
http://clang.llvm.org/compatibility.html
http://www.linuxplumbersconf.org/2013/ocw/system/presentations/1221/original/VLAIS.pdf
http://events.linuxfoundation.org/slides/2011/lfcs/lfcs2011_llvm_lelbach.pdf
http://www.biwascheme.org/

asm.js performance:

https://hacks.mozilla.org/2014/05/asm-js-performance-improvements-in-the-latest-version-of-firefox-make-games-fly/
http://asmjs.org/faq.html




On Thu, May 8, 2014 at 5:08 PM, Christophe Gragnic <
christophegrag...@gmail.com> wrote:

> Hi,
>
> I'm currently embedding a «pedagogical pseudo-code like language» in
> PicoLisp.
> As using plain browsers is a nice thing to have in front of students,
> I tried with
> EmuLisp (PicoLisp in JS, by Jon Kleiser, that I won't thank enough, with
> Alex),
> which proved to be a good solution for me.
>
> So I had some thoughts, ideas and questions.
>
> 1) EmuLisp lacks some functions. The first idea I had was to write them in
> the
> available functions (like 'glue' with 'pack'). It worked for some, but
> some others
> needed to be implemented in JS. Now my question: how far could be pushed
> the
> idea to write a maximal subset of Picolisp in a minimal subset of
> Picolisp? Like in
> the original paper of McCarthy or «the Jewel» in SICP? I'm not talking
> about
> performance here, just functions availability.
>
> 2) Since PicoLisp64 is written in a «generic assembly» embedded in
> PicoLisp,
> I was wondering (only wondering, since the concepts are a bit vague for
> me) if
> instead of building the .s files we could build some http://asmjs.org/file(s).
>
> 3) Regarding EmuLisp again, and for your information, I've created
> (and am using seriously!) a JS pil, that I named `piljs` which runs on node


Re: Announce: PicoLisp in Hardware (PilMCU)

2014-09-19 Thread Rick Lyman
How about an indiegogo or kickstarter project for a FPGA board that would
plug into this:

http://www.raspberrypi.org/products/compute-module-development-kit/

or this:

https://www.sparkfun.com/products/13097

or this:

http://www.mouser.com/new/Freescale-Semiconductor/freescale_tower_system/?gclid=CjwKEAjwqO-gBRCEyp2Fufm0lBASJAAZrX-5AWIHEXmSxSISYGndWQZ6YpVpHo0i65Tj9FJb43o4whoCY__w_wcB

or 

-rl

On Fri, Sep 19, 2014 at 7:39 AM, Alexander Burger 
wrote:

> Hello List,
>
> we are proud to announce PilMCU, the Lisp Machine on a Chip! :)
>
> We, that is George Orais (who persuaded me into the project) and me.
> Georg built the actual machine in Verilog, and I did the changes and
> extensions to PicoLisp.
>
>
> PilMCU is an implementation of 64-bit PicoLisp directly in hardware. A
> truly minimalistic system. PicoLisp is both the machine language and the
> operating system:
>
>* Memory management is trivial, just the Lisp heap and the stack
>* The built-in database is extended to hold a "file system"
>* One SSD per database file for mass storage
>* "Processes" run as tasks and coroutines
>* Events (timing and interrupts) via a 'wait' instruction
>* Complex I/O protocols are delegated to peripheral chips
>
> The final hardware can be very lightweight. Low transistor count and
> power consumption. No overhead for an OS. It is conceivable for a later
> stage to put many interconnected CPUs on a single chip.
>
> At present, we have it running in the Verilog simulator, and in an
> emulator (adaption of the PicoLisp 'emu' architecture).
>
>
> How shall we proceed? We need investors (or crowdfunding) to polish,
> manufacture and distribute the real thing.
>
> We imagine something in the line of an "Embedded Lisp Machine" or a
> "Lisp Machine Kit". Perhaps for home brewing, educational institutions
> and/or robotics research?
>
> Is anybody interested -- or knows people who are?
>
>
> For the fun of it, here is a sample session:
>
>$ make mcu  &&  vvp -M. -mtty mcu   # Build and start Verilog engine
>:
>
>$ make emu  &&  ./emu ssd@ ssdA # Or: Build and start the emulator
>:
>
> Now we are in an environment equivalent to the standard 'pil +'. The
> database is open on two image files for two SSD drives. Besides the
> normal, full DB functionality
>
>: (show *DB)
>{1} (7 . {17})
>   T ({2} {20} {56} {64} {105} {146})
>-> {1}
>
> you can call 'in', 'out', 'load' and 'rm' on files which are maintained
> in external symbols:
>
>: (dir)
>-> ("lib.l" "lib/")
>
>: (dir "lib")
>-> ("btree.l" "db.l" "dbg.l" "misc.l" "pilog.l" "sq.l")
>
>: (in "lib/db.l" (read))
>-> (de dbs Lst (default *Dbs (_dbs 1)))
>
>: (out "foo/bar/mumble.l" (prinl "Hello world"))
>-> "Hello world"
>: (in "foo/bar/mumble.l" (line))
>-> ("H" "e" "l" "l" "o" " " "w" "o" "r" "l" "d")
>
>: (dir "foo/bar")
>-> ("mumble.l")
>
>: (cd "foo/bar")
>-> "foo/bar/"
>: (dir)
>-> ("mumble.l")
>
>: (pwd)
>-> "foo/bar/"
>
> Path names are stored as a normal B-Tree in the DB root:
>
>: (scan)
>"foo/bar/mumble.l" {172}
>"lib.l" {2}
>"lib/btree.l" {64}
>"lib/db.l" {105}
>"lib/dbg.l" {20}
>"lib/misc.l" {56}
>"lib/pilog.l" {146}
>"lib/sq.l" {166}
>
> They point to external symbols, like {2} for "lib.l".
>
>(load '{2})
>
> is equivalent to
>
>(load "lib.l")
>
> The values of these symbols hold the file size:
>
>: (show '{2})
>{2} 12401
>-> {2}
>
> They should not have properties, and store the raw file data invisibly
> in dynamically maintained DB blocks.
>
> The rest of the system is standard PicoLisp :)
>
> ♪♫ Alex
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>


Lisp on board...

2014-10-23 Thread Rick Lyman
IOT,WiFi Module,OpenWrt,Smart Device,APP,Chipduino,IFTTT,Lisp

https://www.indiegogo.com/projects/zero-plus-prototype-your-iot-product-in-seconds


-rl


Mezzano

2015-01-27 Thread Rick Lyman
http://www.osnews.com/story/28254/Mezzano_operating_system_written_in_Common_Lisp


Re: Booting PilOS

2015-07-10 Thread Rick Lyman
Do we need to re-invent the wheel here? maybe we could leverage:


https://en.wikipedia.org/wiki/BareMetal
https://github.com/ReturnInfinity/BareMetal-OS
http://www.returninfinity.com/baremetal.html
http://www.osnews.com/story/27566/BareMetal_OS_gets_TCP_IP


On Fri, Jul 10, 2015 at 9:30 AM, Alexander Burger 
wrote:

> Hi Geo,
>
> thanks for the investigations!
>
> > I think i got some leads why some of us got stuck with "Checking long
> mode"
> > What i noticed is the that if i insert some message printing on most
> > parts of the code between "Loading PilOS" and "Checking long mode", i
> > will arrive on the real error which is "ERROR: CPU has no local APIC".
>
> Yes, that's interesting. So this means that message printing doesn't
> work reliably? Did the messages you inserted appear? Or does it mean
> that your CPU passed the tests for "Extended function available" and
> "Check long mode" (Bit 29), but then finally failed in the "Check local
> APIC"?
>
>
> > I check my BIOS how to enable APIC but seems my BIOS does not have
> > such option. So my plan is to enable APIC through assembly code but
> > didn't work, any idea?
>
> I think this is not an option in the BIOS. The "Local APICs" are part of
> the CPU. Each core in a multi-core CPU has its own private local APIC
> (see http://wiki.osdev.org/APIC).
>
> The APIC *is* actually enabled at the end of "pilos/x86-64/beg.l", in
> these lines:
>
>mov $0x001B, %ecx # APIC Base MSR
>rdmsr
>or $0x0800, %eax  # Enable APIC (Bit 11)
>wrmsr
>and $0xF000, %eax # Get base address
>or $0x93, %eax# 2 MiB + P | R/W | PCD
>mov %eax, 8(%edi) # Map APICs to 0x20
>movl $0xFEC00093, 16(%edi)# Map IO-APIC 0x40
>movw $0x1FF, (0x2000F0)   # Spurious IR vector + APIC enable
>
> But only after the above test succeeded, of course.
>
>
> > But before that i want to resolve why the code will not work properly
> > if without the newly inserted message printing.. is it about code
>
> Yes, this is a strange thing. It is not good if we can't even rely on
> the debug messages ;)
>
> > misalignment? Maybe it differs per CPU model?
>
> Misalignment should not be an issue. We are still in 16-bit code (8086
> real mode) here.
>
> ♪♫ Alex
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>


Re: Booting PilOS

2015-07-10 Thread Rick Lyman
May be useful:

https://blog.netbsd.org/tnf/entry/an_internet_ready_os_from

https://www.raspberrypi.org/forums/viewtopic.php?f=72&t=92579

https://lse.epita.fr/lse-summer-week-2014/slides/lse-summer-week-2014-21-Porting%20and%20testing%20a%20TCPIP%20stack%20without%20an%20ethernet%20driver.pdf

https://news.ycombinator.com/item?id=8537645

http://www.embedded.com/design/prototyping-and-development/4237636/Bare-metal-embedded-software-development-with---without-an-RTOS



On Fri, Jul 10, 2015 at 9:30 AM, Alexander Burger 
wrote:

> Hi Geo,
>
> thanks for the investigations!
>
> > I think i got some leads why some of us got stuck with "Checking long
> mode"
> > What i noticed is the that if i insert some message printing on most
> > parts of the code between "Loading PilOS" and "Checking long mode", i
> > will arrive on the real error which is "ERROR: CPU has no local APIC".
>
> Yes, that's interesting. So this means that message printing doesn't
> work reliably? Did the messages you inserted appear? Or does it mean
> that your CPU passed the tests for "Extended function available" and
> "Check long mode" (Bit 29), but then finally failed in the "Check local
> APIC"?
>
>
> > I check my BIOS how to enable APIC but seems my BIOS does not have
> > such option. So my plan is to enable APIC through assembly code but
> > didn't work, any idea?
>
> I think this is not an option in the BIOS. The "Local APICs" are part of
> the CPU. Each core in a multi-core CPU has its own private local APIC
> (see http://wiki.osdev.org/APIC).
>
> The APIC *is* actually enabled at the end of "pilos/x86-64/beg.l", in
> these lines:
>
>mov $0x001B, %ecx # APIC Base MSR
>rdmsr
>or $0x0800, %eax  # Enable APIC (Bit 11)
>wrmsr
>and $0xF000, %eax # Get base address
>or $0x93, %eax# 2 MiB + P | R/W | PCD
>mov %eax, 8(%edi) # Map APICs to 0x20
>movl $0xFEC00093, 16(%edi)# Map IO-APIC 0x40
>movw $0x1FF, (0x2000F0)   # Spurious IR vector + APIC enable
>
> But only after the above test succeeded, of course.
>
>
> > But before that i want to resolve why the code will not work properly
> > if without the newly inserted message printing.. is it about code
>
> Yes, this is a strange thing. It is not good if we can't even rely on
> the debug messages ;)
>
> > misalignment? Maybe it differs per CPU model?
>
> Misalignment should not be an issue. We are still in 16-bit code (8086
> real mode) here.
>
> ♪♫ Alex
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>


Re: Booting PilOS

2015-07-10 Thread Rick Lyman
Alex,

> PilOS is complete so far

What could PilOS be used for?

Does it have any way of communicating with the outside world?

(http://lwip.wikia.com/wiki/Porting_For_Bare_Metal)

Any thoughts re: IOT: eg:

http://www.adafruit.com/products/2112?gclid=Cj0KEQjw2v2sBRCazKGu3tSFz64BEiQAKIE1htXJRrxOaZQdrYYHh5qrwo0Ohob02GyUN_gCZMbxyPkaAhp68P8HAQ

Thanks for the osdev.org link.

Also, what about using containers?

http://www.infoworld.com/article/2942721/linux/from-coreos-to-nano-micro-oses-strip-down-for-containers.html

Thanks,

-rl


On Fri, Jul 10, 2015 at 10:24 AM, Alexander Burger 
wrote:

> On Fri, Jul 10, 2015 at 09:55:30AM -0400, Rick Lyman wrote:
> > May be useful:
> >
> > https://blog.netbsd.org/tnf/entry/an_internet_ready_os_from
> > https://www.raspberrypi.org/forums/viewtopic.php?f=72&t=92579
> >
> https://lse.epita.fr/lse-summer-week-2014/slides/lse-summer-week-2014-21-Porting%20and%20testing%20a%20TCPIP%20stack%20without%20an%20ethernet%20driver.pdf
> > https://news.ycombinator.com/item?id=8537645
> >
> http://www.embedded.com/design/prototyping-and-development/4237636/Bare-metal-embedded-software-development-with---without-an-RTOS
>
> Thanks for the links!
>
> However, PilOS is complete so far. We just have some very concrete
> problems at the moment, which should be solved.
>
> Or, to be exact, I myself don't have any problem ;) But PilOS doesn't
> boot properly on some machines. This may well be due to the fact that
> those machines don't have the right CPU or BIOS. What's expected is a
> multi-core x86-64 CPU, for example.
>
> Of course I'm glad for any hint which may solve these problems. Perhaps
> just some little stupid error ...
>
> ♪♫ Alex
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>


PilOS

2015-07-15 Thread Rick Lyman
Alex,

>The PicoLisp Operating System
>on standard PC hardware
>In the future, we might think of utilizing it in embedded systems

Meaning ARM boards?

Thanks,

-rl


Re: PilOS

2015-07-15 Thread Rick Lyman
Which board would you like to start with?

On Wed, Jul 15, 2015 at 10:55 AM, Alexander Burger 
wrote:

> Hi Rick,
>
> > >In the future, we might think of utilizing it in embedded systems
> >
> > Meaning ARM boards?
>
> Yes, this too. But first pil64 must be ported to ARMv8. This is on my
> todo list since a long time, but I don't have the necessary hardware.
>
> ♪♫ Alex
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>


Arm Board

2015-07-15 Thread Rick Lyman
Alex,

How about;

http://wiki.minix3.org/doku.php?id=developersguide:minixonarm

or

http://www.androidcentral.com/back-and-order-remix-mini-android-pc-kickstarter-just-20

-rl


Re: Arm Board

2015-07-15 Thread Rick Lyman
How about:

http://shield.nvidia.com/store/android-tv

https://developer.nvidia.com/android-tv-developer-guide



On Wed, Jul 15, 2015 at 1:08 PM, Alexander Burger 
wrote:

> On Wed, Jul 15, 2015 at 12:44:03PM -0400, Rick Lyman wrote:
> > How about;
> >
> > http://wiki.minix3.org/doku.php?id=developersguide:minixonarm
>
> No way. Cortex-A8 is 32 bit.
>
>
> >
> http://www.androidcentral.com/back-and-order-remix-mini-android-pc-kickstarter-just-20
>
> This seems better.
>
> Actually, I'm aiming at the Nexus 9 ... but, as I said, not now. Perhaps
> never.
>
> ♪♫ Alex
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>


Re: Arm Board

2015-07-15 Thread Rick Lyman
Or maybe:

https://developer.nvidia.com/jetson-tk1

On Wed, Jul 15, 2015 at 1:17 PM, Rick Lyman  wrote:

> How about:
>
> http://shield.nvidia.com/store/android-tv
>
> https://developer.nvidia.com/android-tv-developer-guide
>
>
>
> On Wed, Jul 15, 2015 at 1:08 PM, Alexander Burger 
> wrote:
>
>> On Wed, Jul 15, 2015 at 12:44:03PM -0400, Rick Lyman wrote:
>> > How about;
>> >
>> > http://wiki.minix3.org/doku.php?id=developersguide:minixonarm
>>
>> No way. Cortex-A8 is 32 bit.
>>
>>
>> >
>> http://www.androidcentral.com/back-and-order-remix-mini-android-pc-kickstarter-just-20
>>
>> This seems better.
>>
>> Actually, I'm aiming at the Nexus 9 ... but, as I said, not now. Perhaps
>> never.
>>
>> ♪♫ Alex
>> --
>> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>>
>
>


Bare Metal

2015-09-17 Thread Rick Lyman
http://interim.mntmn.com/

https://github.com/mntmn/interim


Re: crypto db

2016-02-17 Thread Rick Lyman
or, maybe:

https://css.csail.mit.edu/mylar/

On Wed, Feb 17, 2016 at 3:04 PM, Yiorgos Adamopoulos <
yiorgos.adamopou...@gmail.com> wrote:

> On Wed, Feb 17, 2016 at 6:42 PM, Mike Pechkin 
> wrote:
> > hi,
> >
> > first of all, i don't understand picodb and didn't write a line of code.
> > question: is it hard to implement crypto-like-db with encryption
> on-the-fly?
> > as example for local password manager, right?
> >
>
> Are you describing something like CryptDB?
>
> https://css.csail.mit.edu/cryptdb/
>
>
> --
> "If technology is your thing plan to die reading manuals" --Gene Woolsey
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>


Re: crypto db

2016-02-18 Thread Rick Lyman
>This link https://css.csail.mit.edu/mylar/ is not working for me

https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=mylar%20meteor%20pdf


Ubuntu on Windows

2016-03-30 Thread Rick Lyman
http://www.zdnet.com/article/microsoft-and-canonical-partner-to-bring-ubuntu-to-windows-10/?tag=nl.e539&s_cid=e539&ttag=e539&ftag=TRE17cfd61


Re: Future of PicoLisp?

2017-02-04 Thread Rick Lyman
https://www.amazon.com/Universal-Assembly-Language-Robert-Fitz/dp/0830627308
http://hackaday.com/2015/08/06/hacking-a-universal-assembler/
http://linuxfinances.info/info/assembler.html


On Sat, Feb 4, 2017 at 4:55 AM, Alexander Burger 
wrote:

> Hi Dean,
>
> > re multiple entry points...assuming that means setjmp and longjmp which
> > save and preserve those registers above (albeit the 16 bit ones SP & BP
> as
>
> Nono, setjmp/longjmp correspond to catch/throw in Lisp. This is something
> completely different, it jumps *up* the call history to an enclosing
> environment. There is only a single entry point to a function in C (and
> also in
> Lisp). I don't know PowerBasic, but traditional Basic allowed that, you
> could
> GOTO any point in a program, also in other subroutines, just like a JMP in
> assembly.
>
> ♪♫ Alex
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>


Re: Announce: PilBox - Building Mobile Apps in PicoLisp

2017-03-12 Thread Rick Lyman
https://www.pine64.pro/

https://www.pine64.pro/pine-a64-plus/

https://www.pine64.pro/faqs-android/

*What Versions Of Android Work On The Pine64?*

   Currently the official version is 5.1.1 Lollipop which is currently in
   beta.


On Sun, Mar 12, 2017 at 3:19 PM, Joh-Tob Schäg  wrote:

>$../Sdk/ndk-bundle/build/tools/make_standalone_toolchain.py \
>>   --*api 21* \
>>   --arch arm64 \
>>   --install-dir toolchain/
>>
>
> ​This means it will only work with Android version 5.0 or younger​
>
> ​I feel left behind but i have no arm64 anyway. So i would need to buy a
> new smartphone. ​
>
> 2017-03-12 20:15 GMT+01:00 Joh-Tob Schäg :
>
>> Non homebrew iOS will not be possible since it is not allowed to create
>> apps which run user code with access to the device api.
>>
>> 2017-03-12 18:54 GMT+01:00 Amaury Hernández Águila :
>>
>>> Will it be possible to have iOS apps in the future too?
>>>
>>> On Sun, Mar 12, 2017 at 10:42 AM Jakob Eriksson 
>>> wrote:
>>>
 Fantastic!

 On 2017-03-12 17:10, Alexander Burger wrote:
 > Hi all,
 >
 > it is now possible to build Android Apps completely in PicoLisp!
 >
 >
 > I have prepared an environment which lets you run normal PicoLisp
 (Web-)
 > applications on Android devices, without the need to write Java code

Re: Announce: PilBox - Building Mobile Apps in PicoLisp

2017-03-12 Thread Rick Lyman
https://www.youtube.com/watch?v=7Dxl9jeLyEw

On Sun, Mar 12, 2017 at 3:19 PM, Joh-Tob Schäg  wrote:

>$../Sdk/ndk-bundle/build/tools/make_standalone_toolchain.py \
>>   --*api 21* \
>>   --arch arm64 \
>>   --install-dir toolchain/
>>
>
> ​This means it will only work with Android version 5.0 or younger​
>
> ​I feel left behind but i have no arm64 anyway. So i would need to buy a
> new smartphone. ​
>
> 2017-03-12 20:15 GMT+01:00 Joh-Tob Schäg :
>
>> Non homebrew iOS will not be possible since it is not allowed to create
>> apps which run user code with access to the device api.
>>
>> 2017-03-12 18:54 GMT+01:00 Amaury Hernández Águila :
>>
>>> Will it be possible to have iOS apps in the future too?
>>>
>>> On Sun, Mar 12, 2017 at 10:42 AM Jakob Eriksson 
>>> wrote:
>>>
 Fantastic!

 On 2017-03-12 17:10, Alexander Burger wrote:
 > Hi all,
 >
 > it is now possible to build Android Apps completely in PicoLisp!
 >
 >
 > I have prepared an environment which lets you run normal PicoLisp
 (Web-)
 > applications on Android devices, without the need to write Java code