Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #41507 > unrolled thread
| Started by | Bernd Paysan <bernd.paysan@gmx.de> |
|---|---|
| First post | 2015-08-25 01:50 +0200 |
| Last post | 2015-11-29 03:07 +0100 |
| Articles | 20 on this page of 23 — 6 participants |
Back to article view | Back to comp.lang.forth
Another Gforth snapshot Bernd Paysan <bernd.paysan@gmx.de> - 2015-08-25 01:50 +0200
Re: Another Gforth snapshot Bernd Paysan <bernd.paysan@gmx.de> - 2015-08-25 02:12 +0200
Re: Another Gforth snapshot peter.m.falth@gmail.com - 2015-08-25 13:57 -0700
Re: Another Gforth snapshot Bernd Paysan <bernd.paysan@gmx.de> - 2015-08-26 01:46 +0200
Re: Another Gforth snapshot peter.m.falth@gmail.com - 2015-08-25 23:56 -0700
Re: Another Gforth snapshot mhx@iae.nl - 2015-08-26 00:49 -0700
Re: Another Gforth snapshot anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-08-26 07:57 +0000
Re: Another Gforth snapshot Bernd Paysan <bernd.paysan@gmx.de> - 2015-08-26 15:26 +0200
Re: Another Gforth snapshot anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-08-26 16:04 +0000
Re: Another Gforth snapshot Bernd Paysan <bernd.paysan@gmx.de> - 2015-08-27 01:18 +0200
Re: Another Gforth snapshot Greg <borota@gmail.com> - 2015-08-25 20:20 -0700
Re: Another Gforth snapshot anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-08-26 09:03 +0000
Re: Another Gforth snapshot Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2015-08-27 11:29 +0100
Re: Another Gforth snapshot Bernd Paysan <bernd.paysan@gmx.de> - 2015-08-27 15:17 +0200
Re: Another Gforth snapshot Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2015-08-27 19:54 +0100
Re: Another Gforth snapshot Bernd Paysan <bernd.paysan@gmx.de> - 2015-08-28 04:06 +0200
Re: Another Gforth snapshot Bernd Paysan <bernd.paysan@gmx.de> - 2015-08-28 04:16 +0200
Re: Another Gforth snapshot mhx@iae.nl - 2015-11-28 03:12 -0800
Re: Another Gforth snapshot Bernd Paysan <bernd.paysan@gmx.de> - 2015-11-28 17:23 +0100
Re: Another Gforth snapshot Bernd Paysan <bernd.paysan@gmx.de> - 2015-11-28 22:11 +0100
Re: Another Gforth snapshot Bernd Paysan <bernd.paysan@gmx.de> - 2015-11-29 01:00 +0100
Re: Another Gforth snapshot mhx@iae.nl - 2015-11-28 17:11 -0800
Re: Another Gforth snapshot Bernd Paysan <bernd.paysan@gmx.de> - 2015-11-29 03:07 +0100
Page 1 of 2 [1] 2 Next page →
| From | Bernd Paysan <bernd.paysan@gmx.de> |
|---|---|
| Date | 2015-08-25 01:50 +0200 |
| Subject | Another Gforth snapshot |
| Message-ID | <mrgah4$11j$1@dont-email.me> |
In the usual place, date code 20150825:
https://www.complang.tuwien.ac.at/forth/gforth/Snapshots/
This time, there's also a 32 bit executable for Windows (for those with
older computers), and for people who like to just unpack the bindist tarball
(without actually installing Cygwin), there 's a gforth...-dll.tar.gz which
contains the necessary Cygwin dlls to run it. Please report back if that
works.
I think we considered all reports received from the last snapshot. I've
also generated gdi32 and user32 bindings for Windows, so load (historical
misnomer - *all* foreign function interfaces live in unix/) unix/gdi.fs and
unix/user.fs; maybe I'll move that to another subdirectory like win/ or so.
Only the wide char versions of the string stuff is loaded; in utf16.fs you
find a conversion utility, where >UTF16 creates an UTF16 string ("addr u" on
stack, zero terminated, so ready for Windows if you just drop the "u"), and
>UTF8 converts UTF16 strings back to UTF-8 (you need to scan for the
terminating 0 first; I forgot to add that). 16 buffers exist, so you can
create several strings and then pass them to Windows. This code handles
surrogates, but doesn't check for surrogate errors.
I've only played with trivial functions like IsCharAlpha, so please try.
Due to the fact that the Windows API has some name conflicts between upper
and lower case, the two vocabularies GDI32 and USER32 are case sensitive.
So you can only call rightcased Windows API functions. That may be a bit of
a surprise given that Gforth otherwise is case insensitive ;-).
Ob-GNU-project-disclaimer: despite Gforth is available for Windows, we do
not encourage anybody to install and run non-free software such as Windows.
--
Bernd Paysan
"If you want it done right, you have to do it yourself"
net2o ID: kQusJzA;7*?t=uy@X}1GWr!+0qqp_Cn176t4(dQ*
http://bernd-paysan.de/
[toc] | [next] | [standalone]
| From | Bernd Paysan <bernd.paysan@gmx.de> |
|---|---|
| Date | 2015-08-25 02:12 +0200 |
| Message-ID | <mrgbpc$4ep$1@dont-email.me> |
| In reply to | #41507 |
Bernd Paysan wrote: > Ob-GNU-project-disclaimer: despite Gforth is available for Windows, we do > not encourage anybody to install and run non-free software such as > Windows. Another disclaimer: The -dll.tar.gz files certainly are all free software, you can download the corresponding source code and licenses with the Cygwin installer. -- Bernd Paysan "If you want it done right, you have to do it yourself" net2o ID: kQusJzA;7*?t=uy@X}1GWr!+0qqp_Cn176t4(dQ* http://bernd-paysan.de/
[toc] | [prev] | [next] | [standalone]
| From | peter.m.falth@gmail.com |
|---|---|
| Date | 2015-08-25 13:57 -0700 |
| Message-ID | <67f9ee58-3406-4cd5-9610-d70ee6394bd2@googlegroups.com> |
| In reply to | #41507 |
On Tuesday, 25 August 2015 01:50:38 UTC+2, Bernd Paysan wrote:
> In the usual place, date code 20150825:
>
> https://www.complang.tuwien.ac.at/forth/gforth/Snapshots/
>
> This time, there's also a 32 bit executable for Windows (for those with
> older computers), and for people who like to just unpack the bindist tarball
> (without actually installing Cygwin), there 's a gforth...-dll.tar.gz which
> contains the necessary Cygwin dlls to run it. Please report back if that
> works.
Many Thanks, this works without problem
There is another problem, also present in the snapshot from a few days ago.
The commandline history do not work when gforth is run directly from cmd.exe
It works when run in cygwin. The problem is the s" ~/.gforth-history" in
gforth-history. It is not recognized as a valid filename.
> I think we considered all reports received from the last snapshot. I've
> also generated gdi32 and user32 bindings for Windows, so load (historical
> misnomer - *all* foreign function interfaces live in unix/) unix/gdi.fs and
> unix/user.fs; maybe I'll move that to another subdirectory like win/ or so.
> Only the wide char versions of the string stuff is loaded; in utf16.fs you
> find a conversion utility, where >UTF16 creates an UTF16 string ("addr u" on
> stack, zero terminated, so ready for Windows if you just drop the "u"), and
> >UTF8 converts UTF16 strings back to UTF-8 (you need to scan for the
> terminating 0 first; I forgot to add that). 16 buffers exist, so you can
> create several strings and then pass them to Windows. This code handles
> surrogates, but doesn't check for surrogate errors.
You need to execute set-encoding-utf-8 for the conversion to work.
The conversion is wrong and the stack is filled with unused addresses.
Should that not have been set automatically while loading the utility?
Do you really need any other encoding than utf8?
I have only that on my forths. They work internally with utf8, expect input
in utf8 and give all out put in it. In windows I internally before a
systemcall change to utf16 but that is invisible for the user.
Peter
> I've only played with trivial functions like IsCharAlpha, so please try.
>
> Due to the fact that the Windows API has some name conflicts between upper
> and lower case, the two vocabularies GDI32 and USER32 are case sensitive.
> So you can only call rightcased Windows API functions. That may be a bit of
> a surprise given that Gforth otherwise is case insensitive ;-).
>
> Ob-GNU-project-disclaimer: despite Gforth is available for Windows, we do
> not encourage anybody to install and run non-free software such as Windows.
>
> --
> Bernd Paysan
> "If you want it done right, you have to do it yourself"
> net2o ID: kQusJzA;7*?t=uy@X}1GWr!+0qqp_Cn176t4(dQ*
> http://bernd-paysan.de/
[toc] | [prev] | [next] | [standalone]
| From | Bernd Paysan <bernd.paysan@gmx.de> |
|---|---|
| Date | 2015-08-26 01:46 +0200 |
| Message-ID | <mriulh$ih5$1@dont-email.me> |
| In reply to | #41523 |
peter.m.falth@gmail.com wrote: > On Tuesday, 25 August 2015 01:50:38 UTC+2, Bernd Paysan wrote: > Many Thanks, this works without problem > > There is another problem, also present in the snapshot from a few days > ago. The commandline history do not work when gforth is run directly from > cmd.exe It works when run in cygwin. The problem is the s" > ~/.gforth-history" in gforth-history. It is not recognized as a valid > filename. Yes, you have to define the environment variable $HOME, and it has to point to a user-writable directory. I probably should make a workaround for Windows to check if $HOME is present (e.g. inside Cygwin), and then use it, and if not, use HOMEDRIVE and HOMEPATH to construct a valid $HOME. We have some workarounds already in place (using $TEMP and $TMP if no $HOME is defined), but when you have cygwin installed, the situation is worse: $HOME is defined, but relatively to the cygwin root. So I also need to check if it actually exists... > You need to execute set-encoding-utf-8 for the conversion to work. > The conversion is wrong and the stack is filled with unused addresses. The latter means that something in the fixed-width handling doesn't work... > Should that not have been set automatically while loading the utility? > > Do you really need any other encoding than utf8? Sometimes, Latin-1 is needed (legacy stuff). That's however another artefact of not using Cygwin but cmd.exe: $LANG is undefined. That should default to UTF-8 in Cygwin. > I have only that on my forths. They work internally with utf8, expect > input in utf8 and give all out put in it. In windows I internally before a > systemcall change to utf16 but that is invisible for the user. We could do that in the C bindings, too; at the moment, it's just a pointer passed to C without implicit conversion to anything. -- Bernd Paysan "If you want it done right, you have to do it yourself" net2o ID: kQusJzA;7*?t=uy@X}1GWr!+0qqp_Cn176t4(dQ* http://bernd-paysan.de/
[toc] | [prev] | [next] | [standalone]
| From | peter.m.falth@gmail.com |
|---|---|
| Date | 2015-08-25 23:56 -0700 |
| Message-ID | <a845d719-8c0b-4900-96b3-94820052d715@googlegroups.com> |
| In reply to | #41528 |
On Wednesday, 26 August 2015 01:46:36 UTC+2, Bernd Paysan wrote: > peter.m.falth@gmail.com wrote: > > > On Tuesday, 25 August 2015 01:50:38 UTC+2, Bernd Paysan wrote: > > Many Thanks, this works without problem > > > > There is another problem, also present in the snapshot from a few days > > ago. The commandline history do not work when gforth is run directly from > > cmd.exe It works when run in cygwin. The problem is the s" > > ~/.gforth-history" in gforth-history. It is not recognized as a valid > > filename. > > Yes, you have to define the environment variable $HOME, and it has to point > to a user-writable directory. I probably should make a workaround for > Windows to check if $HOME is present (e.g. inside Cygwin), and then use it, > and if not, use HOMEDRIVE and HOMEPATH to construct a valid $HOME. We have > some workarounds already in place (using $TEMP and $TMP if no $HOME is > defined), but when you have cygwin installed, the situation is worse: $HOME > is defined, but relatively to the cygwin root. So I also need to check if > it actually exists... > > > You need to execute set-encoding-utf-8 for the conversion to work. > > The conversion is wrong and the stack is filled with unused addresses. > > The latter means that something in the fixed-width handling doesn't work... > > > Should that not have been set automatically while loading the utility? > > > > Do you really need any other encoding than utf8? > > Sometimes, Latin-1 is needed (legacy stuff). That's however another > artefact of not using Cygwin but cmd.exe: $LANG is undefined. That should > default to UTF-8 in Cygwin. > > > I have only that on my forths. They work internally with utf8, expect > > input in utf8 and give all out put in it. In windows I internally before a > > systemcall change to utf16 but that is invisible for the user. > > We could do that in the C bindings, too; at the moment, it's just a pointer > passed to C without implicit conversion to anything. That is what I do in my latest effort of a 64 bit forth. I have 2 wrapper libraries, one for windows and one for linux. They are written in C and take care of all conversations. In fact now the forth image is identical on both platforms, they even run at he same address, all differences are taken care of by the libraries. Peter > -- > Bernd Paysan > "If you want it done right, you have to do it yourself" > net2o ID: kQusJzA;7*?t=uy@X}1GWr!+0qqp_Cn176t4(dQ* > http://bernd-paysan.de/
[toc] | [prev] | [next] | [standalone]
| From | mhx@iae.nl |
|---|---|
| Date | 2015-08-26 00:49 -0700 |
| Message-ID | <d8d07499-cd8f-4732-8715-d523c9192d42@googlegroups.com> |
| In reply to | #41541 |
On Wednesday, August 26, 2015 at 8:56:52 AM UTC+2, peter....@gmail.com wrote: > On Wednesday, 26 August 2015 01:46:36 UTC+2, Bernd Paysan wrote: > > peter.m.falth@gmail.com wrote: > That is what I do in my latest effort of a 64 bit forth. I have 2 wrapper > libraries, one for windows and one for linux. They are written in C and > take care of all conversations. In fact now the forth image is identical > on both platforms, they even run at he same address, all differences > are taken care of by the libraries. This is also how iForth does it. To make it run on OSX the C server had to be slightly modified. The Windows server is very different from the Linux one, but I guess it can be backported quite easily from Linux by now. -marcel
[toc] | [prev] | [next] | [standalone]
| From | anton@mips.complang.tuwien.ac.at (Anton Ertl) |
|---|---|
| Date | 2015-08-26 07:57 +0000 |
| Message-ID | <2015Aug26.095735@mips.complang.tuwien.ac.at> |
| In reply to | #41528 |
Bernd Paysan <bernd.paysan@gmx.de> writes:
>peter.m.falth@gmail.com wrote:
>> I have only that on my forths. They work internally with utf8, expect
>> input in utf8 and give all out put in it. In windows I internally before a
>> systemcall change to utf16 but that is invisible for the user.
>
>We could do that in the C bindings, too; at the moment, it's just a pointer
>passed to C without implicit conversion to anything.
It can be done in the same call as the conversion to zero-terminated
strings (how are these UTF16 strings terminated, BTW?).
Doing it automatically (with SWIG) is not possible, because the C
headers don't contain information on whether the pointers point to
input strings or to output buffers (or something that serves as both).
So we need to provide that information manually.
- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: http://www.forth200x.org/forth200x.html
EuroForth 2015: http://www.rigwit.co.uk/EuroForth2015/
[toc] | [prev] | [next] | [standalone]
| From | Bernd Paysan <bernd.paysan@gmx.de> |
|---|---|
| Date | 2015-08-26 15:26 +0200 |
| Message-ID | <mrkemb$sa1$1@dont-email.me> |
| In reply to | #41545 |
Anton Ertl wrote: > Bernd Paysan <bernd.paysan@gmx.de> writes: >>peter.m.falth@gmail.com wrote: >>> I have only that on my forths. They work internally with utf8, expect >>> input in utf8 and give all out put in it. In windows I internally before >>> a systemcall change to utf16 but that is invisible for the user. >> >>We could do that in the C bindings, too; at the moment, it's just a >>pointer passed to C without implicit conversion to anything. > > It can be done in the same call as the conversion to zero-terminated > strings (how are these UTF16 strings terminated, BTW?). By a zero wide-char, i.e. by \u0000. > Doing it automatically (with SWIG) is not possible, because the C > headers don't contain information on whether the pointers point to > input strings or to output buffers (or something that serves as both). > So we need to provide that information manually. As long as the C declaration had "const" for those strings that aren't used as return values, it could be done. Microsoft uses a defined type, LPCSTR (or LPCWSTR for wide char, they don't like C naming conventions) to specify strings only used as input, so that information can be automatically extracted from the C headers. Other, read- write (or write-only) strings are LPSTR and LPWSTR. Swig distinguishes between const char * and char *, (and of course also const w_char * and w_char *), so mapping those to different Forth types is pretty easy. -- Bernd Paysan "If you want it done right, you have to do it yourself" net2o ID: kQusJzA;7*?t=uy@X}1GWr!+0qqp_Cn176t4(dQ* http://bernd-paysan.de/
[toc] | [prev] | [next] | [standalone]
| From | anton@mips.complang.tuwien.ac.at (Anton Ertl) |
|---|---|
| Date | 2015-08-26 16:04 +0000 |
| Message-ID | <2015Aug26.180448@mips.complang.tuwien.ac.at> |
| In reply to | #41557 |
Bernd Paysan <bernd.paysan@gmx.de> writes:
>Anton Ertl wrote:
>> Doing it automatically (with SWIG) is not possible, because the C
>> headers don't contain information on whether the pointers point to
>> input strings or to output buffers (or something that serves as both).
>> So we need to provide that information manually.
>
>As long as the C declaration had "const" for those strings that aren't used
>as return values, it could be done.
There is no requirement to use "const" and therefore no guarantee that
it is used in that way. And even if it were, there is no guarantee
that a "const char *" refers to a string.
>Microsoft uses a defined type, LPCSTR (or LPCWSTR for wide char, they don't
>like C naming conventions) to specify strings only used as input, so that
>information can be automatically extracted from the C headers. Other, read-
>write (or write-only) strings are LPSTR and LPWSTR.
That sounds more promising.
- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: http://www.forth200x.org/forth200x.html
EuroForth 2015: http://www.rigwit.co.uk/EuroForth2015/
[toc] | [prev] | [next] | [standalone]
| From | Bernd Paysan <bernd.paysan@gmx.de> |
|---|---|
| Date | 2015-08-27 01:18 +0200 |
| Message-ID | <mrlhdk$9qm$1@dont-email.me> |
| In reply to | #41562 |
Anton Ertl wrote: > Bernd Paysan <bernd.paysan@gmx.de> writes: >>Anton Ertl wrote: >>> Doing it automatically (with SWIG) is not possible, because the C >>> headers don't contain information on whether the pointers point to >>> input strings or to output buffers (or something that serves as both). >>> So we need to provide that information manually. >> >>As long as the C declaration had "const" for those strings that aren't >>used as return values, it could be done. > > There is no requirement to use "const" and therefore no guarantee that > it is used in that way. And even if it were, there is no guarantee > that a "const char *" refers to a string. SWIG makes that assumption throughout for other languages. If you happen to have a library which doesn't, just #define const as nothing, so SWIG won't see it, and map the type to a normal char * (which then is just an address). And for derived types, you can apply typemaps to get what you want. I'm pretty sure you can deal with const GLubyte * in OpenGL (which is *not* a string). >>Microsoft uses a defined type, LPCSTR (or LPCWSTR for wide char, they >>don't like C naming conventions) to specify strings only used as input, so >>that >>information can be automatically extracted from the C headers. Other, >>read- write (or write-only) strings are LPSTR and LPWSTR. > > That sounds more promising. As Swig does a good job for other languages to translate the strings correctly, the assumption Swig makes about const char * seems to hold, most of the time. C's string stuff is a mess, but people seem to be able to deal with it. There may be some exceptions that you'll have to deal with. XCreateBitmapFromData takes a byte array as const char *, which doesn't need any conversion. There are some obvious exceptions in Xlib.h. Xlib.h is probably the worst case here, it has strings before an int, and byte arrays with size following, and it doesn't use size_t for the sizes, but sometimes int, sometimes unsigned int. Overall, however, the majority of cases where a const char * is followed by an integer, it's binary data or a string in Forth string format, which we don't need to convert. Therefore, a relatively small patch script is sufficient. -- Bernd Paysan "If you want it done right, you have to do it yourself" net2o ID: kQusJzA;7*?t=uy@X}1GWr!+0qqp_Cn176t4(dQ* http://bernd-paysan.de/
[toc] | [prev] | [next] | [standalone]
| From | Greg <borota@gmail.com> |
|---|---|
| Date | 2015-08-25 20:20 -0700 |
| Message-ID | <7f2728f2-5085-40e4-99d1-c1358b147781@googlegroups.com> |
| In reply to | #41507 |
On Monday, August 24, 2015 at 6:50:38 PM UTC-5, Bernd Paysan wrote:
> In the usual place, date code 20150825:
>
> https://www.complang.tuwien.ac.at/forth/gforth/Snapshots/
>
> This time, there's also a 32 bit executable for Windows (for those with
> older computers), and for people who like to just unpack the bindist tarball
> (without actually installing Cygwin), there 's a gforth...-dll.tar.gz which
> contains the necessary Cygwin dlls to run it. Please report back if that
> works.
>
> I think we considered all reports received from the last snapshot. I've
> also generated gdi32 and user32 bindings for Windows, so load (historical
> misnomer - *all* foreign function interfaces live in unix/) unix/gdi.fs and
> unix/user.fs; maybe I'll move that to another subdirectory like win/ or so.
> Only the wide char versions of the string stuff is loaded; in utf16.fs you
> find a conversion utility, where >UTF16 creates an UTF16 string ("addr u" on
> stack, zero terminated, so ready for Windows if you just drop the "u"), and
> >UTF8 converts UTF16 strings back to UTF-8 (you need to scan for the
> terminating 0 first; I forgot to add that). 16 buffers exist, so you can
> create several strings and then pass them to Windows. This code handles
> surrogates, but doesn't check for surrogate errors.
>
> I've only played with trivial functions like IsCharAlpha, so please try.
>
> Due to the fact that the Windows API has some name conflicts between upper
> and lower case, the two vocabularies GDI32 and USER32 are case sensitive.
> So you can only call rightcased Windows API functions. That may be a bit of
> a surprise given that Gforth otherwise is case insensitive ;-).
>
> Ob-GNU-project-disclaimer: despite Gforth is available for Windows, we do
> not encourage anybody to install and run non-free software such as Windows.
>
> --
> Bernd Paysan
> "If you want it done right, you have to do it yourself"
> net2o ID: kQusJzA;7*?t=uy@X}1GWr!+0qqp_Cn176t4(dQ*
> http://bernd-paysan.de/
Nice. Thanks for the quick fixes:
1) Console window is no longer visble.
2) By stealing gdb from cygwin
base @ 1- . 9 ok
see nip
Code nip
0x0000000100402f98 <gforth_engine+7864>: mov %rbx,0x30(%rsi)
0x0000000100402f9c <gforth_engine+7868>: mov (%r15),%rdx
0x0000000100402f9f <gforth_engine+7871>: mov %r15,%rax
0x0000000100402fa2 <gforth_engine+7874>: lea 0x8(%r15),%r15
0x0000000100402fa6 <gforth_engine+7878>: add $0x8,%rbx
0x0000000100402faa <gforth_engine+7882>: mov %rdx,0x8(%rax)
0x0000000100402fae <gforth_engine+7886>: mov -0x8(%rbx),%rdx
0x0000000100402fb2 <gforth_engine+7890>: mov %rdx,%rax
0x0000000100402fb5 <gforth_engine+7893>: jmpq *%rax
end-code
ok
base @ 1- . 9 ok
Note though that if you change the default installation path, installation
fails to finish due to sh being expected to still be at the default path.
Also I am trying to have locate work with either cygwin emacs or native
emacs. I am getting this:
locate recognizer
*ERROR*: Symbol's function definition is void: forth-find-tag ok
Any idea?
[toc] | [prev] | [next] | [standalone]
| From | anton@mips.complang.tuwien.ac.at (Anton Ertl) |
|---|---|
| Date | 2015-08-26 09:03 +0000 |
| Message-ID | <2015Aug26.110352@mips.complang.tuwien.ac.at> |
| In reply to | #41536 |
Greg <borota@gmail.com> writes:
>2) By stealing gdb from cygwin
>base @ 1- . 9 ok
>see nip
>Code nip
> 0x0000000100402f98 <gforth_engine+7864>: mov %rbx,0x30(%rsi)
> 0x0000000100402f9c <gforth_engine+7868>: mov (%r15),%rdx
> 0x0000000100402f9f <gforth_engine+7871>: mov %r15,%rax
> 0x0000000100402fa2 <gforth_engine+7874>: lea 0x8(%r15),%r15
> 0x0000000100402fa6 <gforth_engine+7878>: add $0x8,%rbx
> 0x0000000100402faa <gforth_engine+7882>: mov %rdx,0x8(%rax)
> 0x0000000100402fae <gforth_engine+7886>: mov -0x8(%rbx),%rdx
> 0x0000000100402fb2 <gforth_engine+7890>: mov %rdx,%rax
> 0x0000000100402fb5 <gforth_engine+7893>: jmpq *%rax
>end-code
> ok
>base @ 1- . 9 ok
That probably already worked before, now it behaves nicer when gdb is
not available.
>Also I am trying to have locate work with either cygwin emacs or native
>emacs. I am getting this:
>locate recognizer
>*ERROR*: Symbol's function definition is void: forth-find-tag ok
>Any idea?
Emacs needs gforth.el or gforth.elc loaded.
- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: http://www.forth200x.org/forth200x.html
EuroForth 2015: http://www.rigwit.co.uk/EuroForth2015/
[toc] | [prev] | [next] | [standalone]
| From | Gerry Jackson <gerry@jackson9000.fsnet.co.uk> |
|---|---|
| Date | 2015-08-27 11:29 +0100 |
| Message-ID | <mrmonj$g8t$1@dont-email.me> |
| In reply to | #41507 |
On 25/08/2015 00:50, Bernd Paysan wrote: > In the usual place, date code 20150825: > > https://www.complang.tuwien.ac.at/forth/gforth/Snapshots/ > > This time, there's also a 32 bit executable for Windows (for those with > older computers), and for people who like to just unpack the bindist tarball > (without actually installing Cygwin), there 's a gforth...-dll.tar.gz which > contains the necessary Cygwin dlls to run it. Please report back if that > works. > I tried installing gforth-0.7.9_20150825.exe which is the only Win 32 self-installing executable dated 25 Aug 2015 I could find and it failed with sh.exe displaying the following error message "The procedure entry point __ctype_ptr__ could not be located in the dynamic link library cygwin1.dll" -- Gerry
[toc] | [prev] | [next] | [standalone]
| From | Bernd Paysan <bernd.paysan@gmx.de> |
|---|---|
| Date | 2015-08-27 15:17 +0200 |
| Message-ID | <mrn2hv$jfj$1@dont-email.me> |
| In reply to | #41576 |
Gerry Jackson wrote: > I tried installing gforth-0.7.9_20150825.exe which is the only Win 32 > self-installing executable dated 25 Aug 2015 I could find and it failed > with sh.exe displaying the following error message > > "The procedure entry point __ctype_ptr__ could not be located in the > dynamic link library cygwin1.dll" Strange. According to nm, this symbol is in cygwin1.dll. Do you have by chance another, older cygwin1.dll somewhere in you path? cygwin1.dll is extremely prone of DLL hell :-(. -- Bernd Paysan "If you want it done right, you have to do it yourself" net2o ID: kQusJzA;7*?t=uy@X}1GWr!+0qqp_Cn176t4(dQ* http://bernd-paysan.de/
[toc] | [prev] | [next] | [standalone]
| From | Gerry Jackson <gerry@jackson9000.fsnet.co.uk> |
|---|---|
| Date | 2015-08-27 19:54 +0100 |
| Message-ID | <mrnm9t$5kd$1@dont-email.me> |
| In reply to | #41577 |
On 27/08/2015 14:17, Bernd Paysan wrote: > Gerry Jackson wrote: >> I tried installing gforth-0.7.9_20150825.exe which is the only Win 32 >> self-installing executable dated 25 Aug 2015 I could find and it failed >> with sh.exe displaying the following error message >> >> "The procedure entry point __ctype_ptr__ could not be located in the >> dynamic link library cygwin1.dll" > > Strange. According to nm, this symbol is in cygwin1.dll. Do you have by > chance another, older cygwin1.dll somewhere in you path? > > cygwin1.dll is extremely prone of DLL hell :-(. > When I looked at the path there were some old GForth directories there that probably had an old copy. Presumably GForth installation set the path to include those some time ago? When I cleared the path and tried again it overcame the above problem - so thanks for that. Incidentally I had to install GForth into C:\Program Files\ otherwise I received this error message when I tried installation on another drive: Gforth postinstall started ./gforthmi.sh: line 1: /bin/sh.exe: No such file or directory Gforth postinstall failed! An error occured, pess return to quit (Presumably one of your messages, if so there are a couple of typos there :-) Anyway all is well now - many thanks Apart from 1 minor problem (see below), that 32 bit GForth runs all the Forth 2012 test programs, the only system (apart from mine) that does so. Other major systems either lack some Forth 2012 words or crash - I may not have the latest versions of some of course. The minor problem: Forth 2012 states that "at least sixteen locals in a definition" shall be supported. This implies that the environment query #LOCALS should return a number > 15. GForth returns 15. -- Gerry
[toc] | [prev] | [next] | [standalone]
| From | Bernd Paysan <bernd.paysan@gmx.de> |
|---|---|
| Date | 2015-08-28 04:06 +0200 |
| Message-ID | <mrofkp$par$1@dont-email.me> |
| In reply to | #41580 |
Gerry Jackson wrote: > The minor problem: Forth 2012 states that "at least sixteen locals in a > definition" shall be supported. This implies that the environment query > #LOCALS should return a number > 15. GForth returns 15. AFAIK we don't have any real limit, and nobody uses the environmental query. But I'll bump that up to 16. -- Bernd Paysan "If you want it done right, you have to do it yourself" net2o ID: kQusJzA;7*?t=uy@X}1GWr!+0qqp_Cn176t4(dQ* http://bernd-paysan.de/
[toc] | [prev] | [next] | [standalone]
| From | Bernd Paysan <bernd.paysan@gmx.de> |
|---|---|
| Date | 2015-08-28 04:16 +0200 |
| Message-ID | <mrog61$qq9$1@dont-email.me> |
| In reply to | #41580 |
Gerry Jackson wrote:
> Incidentally I had to install GForth into C:\Program Files\ otherwise I
> received this error message when I tried installation on another drive:
Yes, the /bin directory is now in Program Files; but should go into {app}\..
\bin, whereever that {app} directory is. I'll try.
Gforth puts its own installation directory into PATH, but can't remove it;
that's a shortcoming of the path adder script I use in Inno Setup. Maybe
there's now something better which will be removed at uninstall.
However, if you just keep old Gforth versions around, this doesn't help.
Adding Gforth to PATH is done so that you can use it from the normal command
line. If you want multiple Gforth versions around, please install a
minimalistic Cygwin, and use the bindist tarball and "make install" from
that one. That's gonna install gforth-<version> so that you can call
different versions. The setup.exe will never be as good as Gforth within a
Cygwin installation.
--
Bernd Paysan
"If you want it done right, you have to do it yourself"
net2o ID: kQusJzA;7*?t=uy@X}1GWr!+0qqp_Cn176t4(dQ*
http://bernd-paysan.de/
[toc] | [prev] | [next] | [standalone]
| From | mhx@iae.nl |
|---|---|
| Date | 2015-11-28 03:12 -0800 |
| Message-ID | <6e377f1d-4e4c-4a6e-8c67-68bec93644d4@googlegroups.com> |
| In reply to | #41507 |
On Tuesday, August 25, 2015 at 1:50:38 AM UTC+2, Bernd Paysan wrote: > In the usual place, date code 20150825: > > https://www.complang.tuwien.ac.at/forth/gforth/Snapshots/ [..] > Please report back if that works. (I have a full cygwin64 install that is good enough to compile and run even X-windows.) When using the self-installing Windows binary a DOS window opens and I see at least four error messages. Running (either from the Windows menu or cygwin64) fails. marcel@me-tarzan /cygdrive/c/Program Files (x86)/gforth64 $ gforth-fast gforth-fast: cannot open image file gforth.fi in path .:/usr/local/lib/gforth/site-forth:/usr/local/lib/gforth/0.7.9_20150825:/usr/local/share/gforth/0.7.9_20150825:/usr/share/gforth/site-forth:/usr/local/share/gforth/site-forth for reading Also: marcel@me-tarzan /cygdrive/c/Program Files (x86)/gforth64 $ ls /usr/local/lib/ total 0 and marcel@me-tarzan /cygdrive/c/Program Files (x86)/gforth64 $ ls -l /usr/local/lib/gforth/site-forth ls: cannot access /usr/local/lib/gforth/site-forth: No such file or directory The installer appears to assume something? I could try the amd64 stuff, but what is *.s2o and *.sig? -marcel
[toc] | [prev] | [next] | [standalone]
| From | Bernd Paysan <bernd.paysan@gmx.de> |
|---|---|
| Date | 2015-11-28 17:23 +0100 |
| Message-ID | <n3ckaf$77g$1@dont-email.me> |
| In reply to | #43895 |
mhx@iae.nl wrote: > On Tuesday, August 25, 2015 at 1:50:38 AM UTC+2, Bernd Paysan wrote: >> In the usual place, date code 20150825: >> >> https://www.complang.tuwien.ac.at/forth/gforth/Snapshots/ > [..] >> Please report back if that works. > > (I have a full cygwin64 install that is good enough to compile and > run even X-windows.) Then you probably want the cygwin tarball, as having two cygwin1.dll in different places is often the root cause of a lot of problems (DLL hell, it works when both versions are identical). > When using the self-installing Windows binary a DOS window opens and > I see at least four error messages. Those would be interesting. > Running (either from the Windows menu or cygwin64) fails. > > marcel@me-tarzan /cygdrive/c/Program Files (x86)/gforth64 > $ gforth-fast > gforth-fast: cannot open image file gforth.fi in path > .:/usr/local/lib/gforth/site- forth:/usr/local/lib/gforth/0.7.9_20150825:/usr/local/share/gforth/0.7.9_20150825:/usr/share/gforth/site- forth:/usr/local/share/gforth/site-forth > for reading That installer wants to replace the preprogrammed path with the actual path. If that fails, you can't use Gforth. The path content looks somewhat inconsistent, maybe there's a mixup between old and new files, and that causes the failure... I'll check that. > Also: > > marcel@me-tarzan /cygdrive/c/Program Files (x86)/gforth64 > $ ls /usr/local/lib/ > total 0 > > and > > marcel@me-tarzan /cygdrive/c/Program Files (x86)/gforth64 > $ ls -l /usr/local/lib/gforth/site-forth > ls: cannot access /usr/local/lib/gforth/site-forth: No such file or > directory > > > The installer appears to assume something? It assumes that the just installed .exe files are writeable. Perhaps you capture the error messages. > I could try the amd64 stuff, but what is *.s2o and *.sig? A *.sig is a PGP (GnuPG) signature, and a *.s2o is a net2o signature. -- Bernd Paysan "If you want it done right, you have to do it yourself" net2o ID: kQusJzA;7*?t=uy@X}1GWr!+0qqp_Cn176t4(dQ* http://bernd-paysan.de/
[toc] | [prev] | [next] | [standalone]
| From | Bernd Paysan <bernd.paysan@gmx.de> |
|---|---|
| Date | 2015-11-28 22:11 +0100 |
| Message-ID | <n3d55e$9tl$1@dont-email.me> |
| In reply to | #43895 |
mhx@iae.nl wrote:
> On Tuesday, August 25, 2015 at 1:50:38 AM UTC+2, Bernd Paysan wrote:
>> In the usual place, date code 20150825:
>>
>> https://www.complang.tuwien.ac.at/forth/gforth/Snapshots/
> [..]
>> Please report back if that works.
>
> (I have a full cygwin64 install that is good enough to compile and
> run even X-windows.)
>
> When using the self-installing Windows binary a DOS window opens and
> I see at least four error messages.
Ok, I see the problem: launching 64 bit sh.exe from 32 bit programs (PE32)
doesn't work anymore. Since the setup.exe installer is a PE32 program,
installing gforth64 won't work. The error messages look like this:
fork: can't reserve memory for parent stack 0x600000 – 0x800000, (child has
0x400000 – 0x600000), Win32 error 487
Since this affects the older gforth64 installers, too, it's probably not a
new Cygwin64 bug, but a new Windows bug. Tested with Windows 10 1511.
From a quick look it seems that installing a 32 bit sh.exe in {app}\..\bin
fixes the problem; this 32 bit sh.exe needs its own set of cygwin dlls
(fortunately they can stay in {app}\..\bin, and won't conflict with Gforth's
directory), and it can launch 64 bit Gforth during install successfully.
--
Bernd Paysan
"If you want it done right, you have to do it yourself"
net2o ID: kQusJzA;7*?t=uy@X}1GWr!+0qqp_Cn176t4(dQ*
http://bernd-paysan.de/
[toc] | [prev] | [next] | [standalone]
Page 1 of 2 [1] 2 Next page →
Back to top | Article view | comp.lang.forth
csiph-web