linux sp-forth external calls

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

linux sp-forth external calls

Johnnydoes
Hello there.

Could you tell me where I could find an information on external commands execution from SP-FORTH programs in linux environment? It should be OK for me to get to the some commands forwarder to bash.

Thanks a million!

John
Reply | Threaded
Open this post in threaded view
|

Re: linux sp-forth external calls

ygrek-3
On Wed, 26 May 2010 10:19:37 -0700 (PDT)
Johnnydoes <[hidden email]> wrote:

> Could you tell me where I could find an information on external commands
> execution from SP-FORTH programs in linux environment? It should be OK for
> me to get to the some commands forwarder to bash.

$ rlwrap spf
SP-FORTH - ANS FORTH 94 for Linux
Open source project at http://spf.sf.net
Russian FIG at http://www.forth.org.ru ; Started by A.Cherezov
Version 4.20 Build 696 at 26.Sep.2009

~ygrek/lib/linux/process.f
 Ok
S" uname -sr && date" StartAppWait DROP
Linux 2.6.32-3-686
Wed May 26 20:54:24 EEST 2010
 Ok

--
 ~ygrek


------------------------------------------------------------------------------

_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|

Re: linux sp-forth external calls

Johnnydoes
ygrek-3 wrote
$ rlwrap spf
SP-FORTH - ANS FORTH 94 for Linux
Open source project at http://spf.sf.net
Russian FIG at http://www.forth.org.ru ; Started by A.Cherezov
Version 4.20 Build 696 at 26.Sep.2009

~ygrek/lib/linux/process.f
 Ok
S" uname -sr && date" StartAppWait DROP
Linux 2.6.32-3-686
Wed May 26 20:54:24 EEST 2010
 Ok
Hello there ygrek-3,

alas, I have only these files:

spf-devel-4.20/devel/~ygrek/lib/linux$ ls
ffi.f  file.f  findfile.f  mapfile.f  pthread_mutex.f  readline.f  sockets.f  timezone.f

Well, where can I find process.f?

Thank you man for your world fastest answer.
-----
update: OK, guys, I've found it at http://forth.org.ru/~ygrek/lib/linux/process.f -- that's a shame we don't have it in tarball yet!

It works perfect, thank you Y3 one more time!

D
Reply | Threaded
Open this post in threaded view
|

Re: linux sp-forth external calls

ygrek-3
On Wed, 26 May 2010 11:23:46 -0700 (PDT)
Johnnydoes <[hidden email]> wrote:

> Well, where can I find process.f?

In CVS.
http://spf.cvs.sourceforge.net/viewvc/spf/devel/~ygrek/lib/linux/process.f?revision=1.1&view=markup

--
 ~ygrek


------------------------------------------------------------------------------

_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|

Re: linux sp-forth external calls

Johnnydoes
Thank you, it's the one. It's also available from http://forth.org.ru/~ygrek/lib/linux/process.f (hope it will help someone). Ygrek-3, that's a shame we don't have this beaty in tar.gz!

Thank you a million!

Johnny Does
Reply | Threaded
Open this post in threaded view
|

extern - баг?

Абдрахимов Илья-2
В связи с переездом на Linux обнаружил, что extern (src/posix/envir.f) вызывает краш!
Пока воспользовался таким:
: extern: ( ->bl )
  BL PARSE 2DUP CREATED
    symbol-lookup ,
  DOES>
    @  symbol-address
;

-- 
Bye!
Илья


------------------------------------------------------------------------------
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|

Re: extern - баг?

ygrek-3
On Wed, 04 Aug 2010 17:08:03 +0400
Абдрахимов Илья <[hidden email]> wrote:

> В связи с переездом на Linux обнаружил, что *extern (src/posix/envir.f)*
> вызывает краш!
> Пока воспользовался таким:
> : extern: ( ->bl )
>    BL PARSE 2DUP CREATED
>      symbol-lookup ,
>    DOES>
>      @  symbol-address
> ;

Зачем использовать extern? Это деталь внутренней реализации.
Покажи как ты вызываешь внешние функции?
В документации есть небольшие примеры - http://spf.sourceforge.net/docs/intro.ru.html#dll
Ещё примеры есть в ~ygrek/lib/linux/ и lib/posix/

--
 ~ygrek


------------------------------------------------------------------------------
Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots, take your collaborative environment
to the next level, and enter the era of Social Business.
http://p.sf.net/sfu/lotusphere-d2d
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|

Re: extern - баг?

Абдрахимов Илья-2
18.12.2010 17:40, ygrek пишет:

> On Wed, 04 Aug 2010 17:08:03 +0400
> Абдрахимов Илья<[hidden email]>  wrote:
>
>> В связи с переездом на Linux обнаружил, что *extern (src/posix/envir.f)*
>> вызывает краш!
>> Пока воспользовался таким:
>> : extern: ( ->bl )
>>     BL PARSE 2DUP CREATED
>>       symbol-lookup ,
>>     DOES>
>>       @  symbol-address
>> ;
> Зачем использовать extern? Это деталь внутренней реализации.
> Покажи как ты вызываешь внешние функции?
> В документации есть небольшие примеры - http://spf.sourceforge.net/docs/intro.ru.html#dll
> Ещё примеры есть в ~ygrek/lib/linux/ и lib/posix/
>
Дык! extern: - иногда очень треба! :)
Я сейчас мучаю 1-wire через USB.
И мне нужен доступ к глоб. переменной libusb.
Пример:

USE libusb.so
extern: usb_busses
. . . . .
: main
(()) usb_init ASCIIZ> CR TYPE
(()) usb_find_busses CR ." bus:" .
(()) usb_find_devices CR ." dev:" .
usb_busses @ TO *bus
. . . . .


--
Bye!
Илья


------------------------------------------------------------------------------
Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots, take your collaborative environment
to the next level, and enter the era of Social Business.
http://p.sf.net/sfu/lotusphere-d2d
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|

Re: extern - баг?

Andrey Cherezov
Re: [Spf-dev] extern - баг?

Привет!

Fw: [Spf-commits] devel/~ac/lib/lin/usb/usb.f

Added Files: 	usb.f 
Log Message: libusb test

\ libusb 1.0 API wrapper

REQUIRE
SO ~ac/lib/ns/so-xt.f
REQUIRE
{ lib/ext/locals.f

ALSO SO NEW: libusb-1.0.dll
ALSO
SO NEW: libusb-1.0.so.0
[...]

Только что проверил на Ubuntu 10.10, работает правдоподобно :)

(Libusb в комплекте Убунты не нашел, в репах тоже нет, пришлось скачать текущую версию с libusb.org и компильнуть вручную)


-------- Исходное сообщение --------
Тема: Re: [Spf-dev] extern - баг?
Дата: 2010-12-18 18:50:14
От: Абдрахимов Илья

18.12.2010 17:40, ygrek пишет:

On Wed, 04 Aug 2010 17:08:03 +0400
Абдрахимов Илья wrote:
В связи с переездом на Linux обнаружил, что *extern (src/posix/envir.f)*
вызывает краш!
Пока воспользовался таким:
: extern: ( ->bl )
BL PARSE 2DUP CREATED
symbol-lookup ,
DOES>
@ symbol-address
;

Зачем использовать extern? Это деталь внутренней реализации.

Покажи как ты вызываешь внешние функции?
В документации есть небольшие примеры — http://spf.sourceforge.net/docs/intro.ru.html#dll
Ещё примеры есть в ~ygrek/lib/linux/ и lib/posix/

Дык! extern: — иногда очень треба!
Я сейчас мучаю 1-wire через USB.
И мне нужен доступ к глоб. переменной libusb.
Пример:

USE libusb.so extern: usb_busses
. . . . .
: main
usb_init ASCIIZ> CR TYPE (( usb_find_busses CR ." bus:" .
usb_find_devices CR ." dev:" . usb_busses @ TO *bus . . . . . -- Bye! Илья


------------------------------------------------------------------------------
Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots, take your collaborative environment
to the next level, and enter the era of Social Business.
http://p.sf.net/sfu/lotusphere-d2d
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|

Re: extern - баг?

ygrek-3
In reply to this post by Абдрахимов Илья-2
On Sat, 18 Dec 2010 18:49:26 +0300
Абдрахимов Илья <[hidden email]> wrote:

> И мне нужен доступ к глоб. переменной libusb.

Точно, про переменные я забыл. Убрал extern из src, добавил extern: в lib/include/facil.f

$ spf
SP-FORTH - ANS FORTH 94 for Linux
Open source project at http://spf.sf.net
Russian FIG at http://www.forth.org.ru ; Started by A.Cherezov
Version 4.20 Build 697 at 19.Dec.2010

USE libusb-0.1.so.4
 Ok
lib/include/facil.f
 Ok
extern: usb_busses
 Ok
: main
(()) usb_init ASCIIZ> CR TYPE
(()) usb_find_busses CR ." bus:" .
(()) usb_find_devices CR ." dev:" .
usb_busses @ ;
 Ok
main .

/dev/bus/usb
bus:4
dev:6 153205552  Ok

--
 ~ygrek


------------------------------------------------------------------------------
Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots, take your collaborative environment
to the next level, and enter the era of Social Business.
http://p.sf.net/sfu/lotusphere-d2d
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev
Reply | Threaded
Open this post in threaded view
|

Re: extern - баг?

Иванов
In reply to this post by Абдрахимов Илья-2
Для обращения к глобальным переменным в libusb есть функции, специально
для языков отличных от си. У меня сделано так.

USE libusb.so \ используем библиотеку libusb 0.1
: initUSB ( -- *bus) \ инициализирует библиотеку,
\ ищет шины и устройства,
\ возвращает адрес структуры usb_bus
    (( )) usb_init         DROP
    (( )) usb_find_devices DROP
    (( )) usb_get_busses  \ возвращает адрес структуры usb_bus
    ;

В Сбт, 18/12/2010 в 18:49 +0300, Абдрахимов Илья пишет:

> Дык! extern: - иногда очень треба! :)
> Я сейчас мучаю 1-wire через USB.
> И мне нужен доступ к глоб. переменной libusb.
> Пример:
>
> USE libusb.so
> extern: usb_busses
> . . . . .
> : main
> (()) usb_init ASCIIZ> CR TYPE
> (()) usb_find_busses CR ." bus:" .
> (()) usb_find_devices CR ." dev:" .
> usb_busses @ TO *bus
> . . . . .
>
>



------------------------------------------------------------------------------
Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots, take your collaborative environment
to the next level, and enter the era of Social Business.
http://p.sf.net/sfu/lotusphere-d2d
_______________________________________________
Spf-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/spf-dev