Custom Search
|
Date: August 31, 2005
From: Michael Haupt <mhaupt@xxxxxxxxx>
In-reply-to:
<43141541.2050501@xxxxxxxxxxxxxxxxxxxx>
References:
<b1ba078405082805247c0a0863@xxxxxxxxxxxxxx> <43120EBE.8010304@xxxxxxxxxxxxxxxxxxxx> <b1ba0784050829012673aa6612@xxxxxxxxxxxxxx> <43141541.2050501@xxxxxxxxxxxxxxxxxxxx>
Hi Mike, On 8/30/05, Mike Anderson <help-smalltalk@xxxxxxxxxxxxxxxxxxxx> wrote: > Can you check whether the class Gtk exists in the namespace GTK? ie. > does the class GTK.Gtk exist? here is what I do (maybe I do wrong): ----- st> PackageLoader fileInPackage: 'GTK' ! ((( loads of error messages ))) PackageLoader st> GTK.Gtk ! stdin:2: invalid scope resolution st> Gtk ! Gtk st> Namespace current printNl ! Smalltalk SystemDictionary new: 512 "<0x402fc818>" st> ----- So, Gtk appears to be defined, but in the wrong namespace, right? Best regards, Michael
Date: August 31, 2005
From: "Richard Sullivan" <richardsullivansx@xxxxxxxxxxx>
URGENT BUSINESS PROPOSAL Engineer Richard Sullivan Shell Petroleum South Africa. Greeting to you.I am Richard Sullivan, a director of contracts evaluation and implemention department of Shell Petroleoum,South Africa. I am married with Children and hold degrees in economics and petro-chemical engineering.
I require urgently your unreserved assistance in providing me with a safe and reliable bank account with full details, where I can transfer the sum of $20.5M (Twenty million five hundred thousand United States of American Dollars) The purpose of the transfer is to take care of my retirement by investing in a viable business you might deem fit to advise.
This sum of money was generated as a result of over-invoiced contracts awarded by my colleagues and I, and I have arranged for the money to be remitted out through a reliable expatriate partner whom I can present as the beneficiary, as my present status and financial resources will not be sufficient for me to handle the transfer successfully without the financial assistance of a reliable foreign partner.
I got your profile from our chamber of commerce and it is with business trust that I write to request, you partner with us to facilitate the transfer of this money to your nominated bank account for our mutual benefits.
Note that 20% will go to you for your efforts and your contribution, 5% is for miscelleneous expenses incurred by both parties, and 75% will be shared between me and colleagues which will be use for business investment in your country under your supervision.
Please if you are interested kindly send to me immediately the underlisted: 1. Name to be used as beneficiary and beneficiarys address. 2. Your private and confidential telephone/ fax number(s)and Cell phone. 3. Your bank name,address,bank Account Number and Telephone/fax number(s).I hope to conclude this business within fourteen- (14) working days.Looking forward to your anticipated and urgent positive response.
Thanks indeed, Engr.Richard Sullivan
Date: August 30, 2005
From: Paolo Bonzini <paolo.bonzini@xxxxxxxxxxx>
In-reply-to:
<43140990.6020007@xxxxxxxxxxx>
References:
<b1ba078405082708543494c2d9@xxxxxxxxxxxxxx> <b1ba07840508270933632e4dd9@xxxxxxxxxxxxxx> <b1ba078405082710403726c674@xxxxxxxxxxxxxx> <431328BA.7000904@xxxxxxxxxxx> <20050829180751.GA9513@xxxxxxxxxx> <ae77fcae0508291814c798e2d@xxxxxxxxxxxxxx> <43140990.6020007@xxxxxxxxxxx>
A cleaner solution, however, is to simply base the alignment decisions on int's rather than long's, as in the attached patch. BTW, next time please use "diff -u" or "diff -c" to make your patch, it will be more readable and easier to apply.
My patch is completely wrong, yours is correct. I committed it (with some stylistic fixes) as smalltalk--devo--2.1--patch-35 in the arch repository. With it, I confirm I can bootstrap GNU Smalltalk on x86_64.
The geometry.st failure is caused by differences in #basicHash on the two systems. The intmath.st is a 64-bit cleanliness problem in mpz.c. Both are fixed in patch-36.
Unfortunately I noted that the arch mirror is lagging behind the repository :-( so I attach the modifications I've done today.
Paolo
--- orig/libgst/cint.c
+++ mod/libgst/cint.c
@@ -899,10 +899,11 @@ push_obj (cparam_union * up,
alignInts = alignments[typ] / sizeof (long);
/* Align the stack properly */
- if ((c_arg - c_arg_vec) % alignInts)
+ if (alignInts > 0 && (c_arg - c_arg_vec) % alignInts)
c_arg += alignInts - ((c_arg - c_arg_vec) % alignInts);
- for (i = 0; i < type_sizes[typ] / sizeof (long); i++)
+ i = 0;
+ do
{
if (c_arg - c_arg_vec >= ARG_VEC_SIZE)
{
@@ -913,6 +914,7 @@ push_obj (cparam_union * up,
}
*c_arg++ = up->valueVec[i];
}
+ while (++i < type_sizes[typ] / sizeof (long));
}
OOP
--- orig/libgst/mpz.c
+++ mod/libgst/mpz.c
@@ -1541,7 +1541,7 @@ _gst_mpz_from_oop(gst_mpz *mpz, OOP srcO
if (IS_INT(srcOOP))
{
- int i = TO_INT(srcOOP);
+ long i = TO_INT(srcOOP);
gst_mpz_realloc (mpz, 1);
mpz->size = i < 0 ? -1 : 1;
mpz->d[0] = i < 0 ? -i : i;
--- orig/snprintfv/snprintfv/Makefile.am
+++ mod/snprintfv/snprintfv/Makefile.am
@@ -49,6 +49,7 @@ nodist_noinst_HEADERS = compat.h
endif
dist_noinst_DATA = filament.stamp stream.stamp printf.stamp dl.stamp
+CLEANFILES = $(dist_noinst_DATA)
EXTRA_LTLIBRARIES = libsnprintfv.la libsnprintfvc.la
noinst_LTLIBRARIES = $(convenience_libsnprintfv)
@@ -112,7 +113,7 @@ $(srcdir)/%.h: %.stamp
%.stamp: %.in
@file=`echo $@ | sed 's,\.stamp$$,.h,'`; \
- $(GENPROTO_ENVIRONMENT) $(GENPROTO) $(GENPROTO_FLAGS) $(srcdir)/$^ > \
+ $(GENPROTO_ENVIRONMENT) $(GENPROTO) $(GENPROTO_FLAGS) $^ > \
$${file}T; \
if cmp -s $(srcdir)/$$file $${file}T; then \
echo $$file is unchanged; rm -f $${file}T; \
--- orig/tests/geometry.ok
+++ mod/tests/geometry.ok
@@ -1,5 +1,8 @@
Execution begins...
+returned value is Rectangle
+
+Execution begins...
'p1 = '123@456
'p2 = '123@456
returned value is Point new "<0>"
@@ -66,8 +69,8 @@ Execution begins...
120@120 corner: 200@200
100@300 corner: 300@400
(120@50 corner: 200@120 50@50 corner: 120@200 )
-(300@20 corner: 400@400 20@20 corner: 100@400 100@20 corner: 300@300 )
-(120@20 corner: 260@120 260@20 corner: 400@400 120@240 corner: 260@400 20@20
corner: 120@400 )
+(100@20 corner: 300@300 20@20 corner: 100@400 300@20 corner: 400@400 )
+(120@20 corner: 260@120 120@240 corner: 260@400 20@20 corner: 120@400 260@20
corner: 400@400 )
90@290 corner: 310@410
110@320 corner: 290@380
100@300 corner: 300@400
--- orig/tests/geometry.st
+++ mod/tests/geometry.st
@@ -10,7 +10,7 @@
"======================================================================
|
-| Copyright (C) 1995, 1999 Free Software Foundation.
+| Copyright (C) 1995, 1999, 2005 Free Software Foundation.
| Written by Doug McCallum.
|
| This file is part of GNU Smalltalk.
@@ -30,6 +30,13 @@
|
======================================================================"
+!Rectangle methodsFor: 'testing'!
+
+myAreasOutside: a
+ | ans |
+ ans := self areasOutside: a.
+ ans := ans asSortedCollection: [ :x :y | x printString < y printString ].
+ ^ans asArray! !
"Creation methods and printing"
| p1 p2 |
@@ -175,9 +182,9 @@
(A amountToTranslateWithin: C) printNl.
(A intersect: B) printNl.
(D intersect: C) printNl.
- (A areasOutside: B) printNl.
- (D areasOutside: C) printNl.
- (D areasOutside: B) printNl.
+ (A myAreasOutside: B) printNl.
+ (D myAreasOutside: C) printNl.
+ (D myAreasOutside: B) printNl.
(C expandBy: 10) printNl.
(C insetBy: 10@20) printNl.
(B merge: C) printNl!
_______________________________________________ help-smalltalk mailing list help-smalltalk@xxxxxxx http://lists.gnu.org/mailman/listinfo/help-smalltalk
Date: August 30, 2005
From: Paolo Bonzini <paolo.bonzini@xxxxxxxxxxx>
In-reply-to:
<20050827181630.GA8828@xxxxxxxxxx>
References:
<20050827181630.GA8828@xxxxxxxxxx>
Stefan Schmiedl wrote:
I don't know because I'm no arch expert, but I just compiled baz (an alternative front-end to arch repositories) on your machine, you can fetch it from ~/pbonzini/bin.Hi Paolo, I've tried to connect to your arch repo, but was not able to succeed: [snip] stefan@g64 gst $ tla get bonzini@xxxxxxxxxxxxxx/smalltalk--devo--2.2 gst unable to access URL: /archives/bonzini@xxxxxxxxxxxxxx/.listing webdav error: 404 Not Found [snip] Do I need to do some more RTFM or is it a problem with the repository?
Then, the exact same commands with "baz" replacing "tla" will do. Paolo
Date: August 30, 2005
From: Paolo Bonzini <paolo.bonzini@xxxxxxxxxxx>
In-reply-to:
<ae77fcae0508291814c798e2d@xxxxxxxxxxxxxx>
References:
<b1ba078405082708543494c2d9@xxxxxxxxxxxxxx> <b1ba07840508270933632e4dd9@xxxxxxxxxxxxxx> <b1ba078405082710403726c674@xxxxxxxxxxxxxx> <431328BA.7000904@xxxxxxxxxxx> <20050829180751.GA9513@xxxxxxxxxx> <ae77fcae0508291814c798e2d@xxxxxxxxxxxxxx>
Jim White wrote:
Yes, the issue is a 64 bit cleanliness issue. Specifically in the push_obj function in libgst/cint.c.
Thanks very much for pointing me to the problem.A cleaner solution, however, is to simply base the alignment decisions on int's rather than long's, as in the attached patch. BTW, next time please use "diff -u" or "diff -c" to make your patch, it will be more readable and easier to apply.
Also, for 2.2 the code in question has been completely rewritten to use libffi, so I'll give a try to both versions on Stefan's machine (thanks to you too!).
Paolo
--- orig/libgst/cint.c
+++ mod/libgst/cint.c
@@ -7,7 +7,7 @@
/***********************************************************************
*
- * Copyright 1988,89,90,91,92,94,95,99,2000,2001,2002,2003
+ * Copyright 1988,89,90,91,92,94,95,99,2000,2001,2002,2003,2005
* Free Software Foundation, Inc.
* Written by Steve Byrne.
*
@@ -34,7 +34,7 @@
#include <ltdl.h>
-#define ARG_VEC_SIZE 20 /* 20 shorts, 10 longs or ptrs, 5 dbls
*/
+#define ARG_VEC_SIZE 20 /* 20 ints, 10 dbls */
typedef enum
{
@@ -120,7 +120,7 @@ typedef union cparam_union
PTR ptrVal;
float floatVal;
double doubleVal;
- long valueVec[sizeof (double) / sizeof (int)];
+ int valueVec[sizeof (double) / sizeof (int)];
}
cparam_union;
@@ -211,8 +211,8 @@ static cfunc_info *c_func_root = NULL;
/* The arguments as they are passed to push_obj. The first
free argument is pointed to by c_arg. */
-static long c_arg_vec[ARG_VEC_SIZE];
-static long *c_arg;
+static int c_arg_vec[ARG_VEC_SIZE];
+static int *c_arg;
/* The information on the char * parameters to be filled back on
output from a callOut. Again, sip is the first free item.
@@ -896,13 +896,13 @@ push_obj (cparam_union * up,
unsigned i;
int alignInts;
- alignInts = alignments[typ] / sizeof (long);
+ alignInts = alignments[typ] / sizeof (int);
/* Align the stack properly */
if ((c_arg - c_arg_vec) % alignInts)
c_arg += alignInts - ((c_arg - c_arg_vec) % alignInts);
- for (i = 0; i < type_sizes[typ] / sizeof (long); i++)
+ for (i = 0; i < type_sizes[typ] / sizeof (int); i++)
{
if (c_arg - c_arg_vec >= ARG_VEC_SIZE)
{
_______________________________________________ help-smalltalk mailing list help-smalltalk@xxxxxxx http://lists.gnu.org/mailman/listinfo/help-smalltalk
Date: August 30, 2005
From: Mike Anderson <help-smalltalk@xxxxxxxxxxxxxxxxxxxx>
In-reply-to:
<b1ba0784050829012673aa6612@xxxxxxxxxxxxxx>
References:
<b1ba078405082805247c0a0863@xxxxxxxxxxxxxx> <43120EBE.8010304@xxxxxxxxxxxxxxxxxxxx> <b1ba0784050829012673aa6612@xxxxxxxxxxxxxx>
Michael Haupt wrote:
Hi Mike, I'm sending this to the list again, since your response was sent to me only. On 8/28/05, Mike Anderson <help-smalltalk@xxxxxxxxxxxxxxxxxxxx> wrote:The example scripts don't include any command to actually load the package. You basically need a chunk: PackageLoader fileInPackage: 'GTK' ! at the top of each example script, or create an image with the package loaded: PackageLoader fileInPackage: 'GTK'! ObjectMemory snapshot: 'GTK.im'; quit! Then your invocation would be: gst -gI GTK.im example_hello.stThanks for this, but the symptoms are quite similar still. As far as I can see from the output this generates, it attempts to load the same files as GtkDecl.st. The output this time, when loading MoreFuncs.st, is: ----- Loading package GTK Recompiling classes... Object: nil error: did not understand #defineCFunc:withSelectorArgs:returning:args: UndefinedObject(Object)>>#doesNotUnderstand: UndefinedObject>>#executeStatements (((many more of those))) ----- So, this time, gst doesn't complain about some C functions not having been defined, but about #defineCFunc:withSelectorArgs:returning:args: being sent to nil. Actually, it's sent to Gtk, but that class does not seem to be existing. Again, thanks for your help, but I'm afraid I need some more...
My installation is in a state of flux at the moment, so take this with a pinch of salt...
The class Gtk should be in the namespace GTK. This is now done using the tag <namespace> in packages.xml (interpreted by the PackageLoader class), but it used to be done manually in one of the loader files for the package. Not sure which it is in 2.1.11. Loading the package properly, rather than loading GtkDecl.st manually, makes sure.
Similarly, your original error looks to me like the module gst-gtk.so (where those functions are exported from) is not loaded. That is acheived by the <module> tag in packages.xml.
So I think that your original error may have been resolved, and we're now seeing a new error.
The declaration of Gtk is in GtkDecl.st, and that gets filed in first, so the question is, why do the later files not find it?
Can you check whether the class Gtk exists in the namespace GTK? ie. does the class GTK.Gtk exist?
Mike
Date: August 30, 2005
From: Jim White <crewman6@xxxxxxxxx>
In-reply-to:
<20050829180751.GA9513@xxxxxxxxxx>
References:
<b1ba078405082708543494c2d9@xxxxxxxxxxxxxx> <b1ba07840508270933632e4dd9@xxxxxxxxxxxxxx> <b1ba078405082710403726c674@xxxxxxxxxxxxxx> <431328BA.7000904@xxxxxxxxxxx> <20050829180751.GA9513@xxxxxxxxxx>
Yes, the issue is a 64 bit cleanliness issue. Specifically in the push_obj function in libgst/cint.c. A patch that allows the testsuite to run/make install to not freeze (and c callouts to work properly, as far as I can tell) is attached. > Paolo Bonzini (29.08. 17:24): > > > I think that some 64-bit non-cleanliness has crept in since the last > > time I tried gst on a 32-bit host. > > > > If any of you can contact me privately and give me a shell account, it > > will only take me a few days before I am finished. > > > > I'd love to fix this bug before rolling out 2.2 and I've already > > eliminated the other bug that was blocking the release. > > > > Paolo > > -- > Stefan Schmiedl
cint.c.patch
Description: Text Data
_______________________________________________ help-smalltalk mailing list help-smalltalk@xxxxxxx http://lists.gnu.org/mailman/listinfo/help-smalltalk
Date: August 29, 2005
From: Stefan Schmiedl <s@xxxxxx>
In-reply-to:
<431328BA.7000904@xxxxxxxxxxx>
References:
<b1ba078405082708543494c2d9@xxxxxxxxxxxxxx> <b1ba07840508270933632e4dd9@xxxxxxxxxxxxxx> <b1ba078405082710403726c674@xxxxxxxxxxxxxx> <431328BA.7000904@xxxxxxxxxxx>
Hi Paolo, access details are coming ... s. Paolo Bonzini (29.08. 17:24): > I think that some 64-bit non-cleanliness has crept in since the last > time I tried gst on a 32-bit host. > > If any of you can contact me privately and give me a shell account, it > will only take me a few days before I am finished. > > I'd love to fix this bug before rolling out 2.2 and I've already > eliminated the other bug that was blocking the release. > > Paolo -- Stefan Schmiedl +-------------------------------+----------------------------------------+ |Approximity GmbH | EDV-Beratung Schmiedl | |http://www.approximity.com | Am Bräuweiher 4, 93499 Zandt, Germany | |mailto:stefan@xxxxxxxxxxxxxxx | Tel. (09944) 3068-98, Fax -97 | +-------------------------------+----------------------------------------+
Date: August 29, 2005
From: Paolo Bonzini <paolo.bonzini@xxxxxxxxxxx>
In-reply-to:
<b1ba078405082710403726c674@xxxxxxxxxxxxxx>
References:
<b1ba078405082708543494c2d9@xxxxxxxxxxxxxx> <b1ba07840508270933632e4dd9@xxxxxxxxxxxxxx> <b1ba078405082710403726c674@xxxxxxxxxxxxxx>
Michael Haupt wrote:
I think that some 64-bit non-cleanliness has crept in since the last time I tried gst on a 32-bit host.Hello *again*, the aforementioned problems do not occur when I configure and compile gst in a 32-bit chroot. All tests succeed.
If any of you can contact me privately and give me a shell account, it will only take me a few days before I am finished.
I'd love to fix this bug before rolling out 2.2 and I've already eliminated the other bug that was blocking the release.
Paolo
Date: August 29, 2005
From: Michael Haupt <mhaupt@xxxxxxxxx>
In-reply-to:
<43120EBE.8010304@xxxxxxxxxxxxxxxxxxxx>
References:
<b1ba078405082805247c0a0863@xxxxxxxxxxxxxx> <43120EBE.8010304@xxxxxxxxxxxxxxxxxxxx>
Hi Mike, I'm sending this to the list again, since your response was sent to me only. On 8/28/05, Mike Anderson <help-smalltalk@xxxxxxxxxxxxxxxxxxxx> wrote: > The example scripts don't include any command to actually load the > package. You basically need a chunk: > > PackageLoader fileInPackage: 'GTK' > ! > > at the top of each example script, or create an image with the package > loaded: > > PackageLoader fileInPackage: 'GTK'! > ObjectMemory snapshot: 'GTK.im'; quit! > > Then your invocation would be: > > gst -gI GTK.im example_hello.st Thanks for this, but the symptoms are quite similar still. As far as I can see from the output this generates, it attempts to load the same files as GtkDecl.st. The output this time, when loading MoreFuncs.st, is: ----- Loading package GTK Recompiling classes... Object: nil error: did not understand #defineCFunc:withSelectorArgs:returning:args: UndefinedObject(Object)>>#doesNotUnderstand: UndefinedObject>>#executeStatements (((many more of those))) ----- So, this time, gst doesn't complain about some C functions not having been defined, but about #defineCFunc:withSelectorArgs:returning:args: being sent to nil. Actually, it's sent to Gtk, but that class does not seem to be existing. Again, thanks for your help, but I'm afraid I need some more... Best regards, Michael Haupt
Date: August 28, 2005
From: "Grossman"<wilcox@xxxxxxxxx>
|
|
_______________________________________________ help-smalltalk mailing list help-smalltalk@xxxxxxx http://lists.gnu.org/mailman/listinfo/help-smalltalk
Date: August 28, 2005
From: Michael Haupt <mhaupt@xxxxxxxxx>
In-reply-to:
<20050828142200.GB14817@xxxxxxxxxx>
References:
<b1ba078405082708543494c2d9@xxxxxxxxxxxxxx> <20050828142200.GB14817@xxxxxxxxxx>
Hi Stefan,
On 8/27/05, Stefan Schmiedl <s@xxxxxx> wrote:
> cool ... intmath is FAILing on my gentoo box.
> do a gcc -v for me, will you?
sure. :-)
-----
Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../src/configure -v
--enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr
--enable-shared --with-system-zlib --libexecdir=/usr/lib --enable-nls
--without-included-gettext --enable-threads=posix
--program-suffix=-4.0 --enable-__cxa_atexit
--enable-libstdcxx-allocator=mt --enable-clocale=gnu
--enable-libstdcxx-debug --enable-java-gc=boehm
--enable-java-awt=gtk-default --enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre
--enable-mpfr --disable-werror --enable-checking=release
x86_64-linux-gnu
Thread model: posix
gcc version 4.0.2 20050821 (prerelease) (Debian 4.0.1-6)
-----
BTW my Debian is a Sid.
> st> Smalltalk getArgv: 1 !
The system hangs just like you described when I do that. I've run it
with the -d option to get a trace, and here's what I see:
-----
st> Smalltalk getArgv: 1 !
0: source line 1
3: push Global Variable[0] = Smalltalk
4: push 1
5: send selector 1, 1 args = #getArgv:
0: source line 3
3: push Literal[0] = CFunctionDescriptor new: 1 "<0x2aaaab48f3b0>"
4: source line 13
7: push current context
8: source line 14
11: push Global Variable[2] = ValueHolder
12: send special message #new
0: source line 3
3: push self
4: send selector 1, 0 args = #basicNew
5: send selector 0, 0 args = #initialize
0: source line 3
3: push nil
4: pop and store Instance Variable[0]
5: return self
6: return stack top
13: send selector 1, 2 args = #callFrom:into:
-----
And this is where it hangs.
I'm new to GNU Smalltalk, so please excuse my stupid questions. I have
found the implementation of SystemDictionary>>getArgv: in
libgst/cint.c, but I do not fully understand the sequence above.
Until the fourth line, it's all pretty obvious: that's what I entered
at the prompt, expressed in Smalltalk bytecodes. But what is the rest?
Is that setting up a call for a C function and finally (the last line
that hangs) invoking it? So, does the VM hang when performing the
selector send for #callFrom:into:?
> > Can I do something about this?
>
> Fix the bug? SCNR :-)
Honestly, I'd love to. Please help me. :-)
Best regards,
Michael
Date: August 28, 2005
From: Stefan Schmiedl <s@xxxxxx>
In-reply-to:
<b1ba078405082708543494c2d9@xxxxxxxxxxxxxx>
References:
<b1ba078405082708543494c2d9@xxxxxxxxxxxxxx>
Michael Haupt (27.08. 17:54): > Hi, > > gst compiles without problems on my AMD64 Debian Linux, but running > the tests fails. Here is the output of "make check": > > ----- > PASS: arrays.st > PASS: classes.st > PASS: blocks.st > PASS: sets.st > PASS: processes.st > PASS: exceptions.st > PASS: intmath.st cool ... intmath is FAILing on my gentoo box. do a gcc -v for me, will you? mine says: Reading specs from /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.4/specs Configured with: /var/tmp/portage/gcc-3.4.4/work/gcc-3.4.4/configure --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/3.4.4 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.4/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/3.4.4 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/3.4.4/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/3.4.4/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.4/include/g++-v3 --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --disable-libunwind-exceptions --disable-multilib --disable-libgcj --enable-languages=c,c++,f77 --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu Thread model: posix gcc version 3.4.4 (Gentoo 3.4.4, ssp-3.4.4-1.0, pie-8.7.8) > PASS: floatmath.st > PASS: dates.st > PASS: objects.st > PASS: strings.st > PASS: chars.st > PASS: objdump.st > PASS: delays.st > FAIL: geometry.st > PASS: cobjects.st > PASS: compiler.st > PASS: fileext.st > PASS: mutate.st > ----- > > All tests pass, except for geometry.st, but after mutate.st, the > process just hangs, gst produces a high CPU load, but does not respond > any more. That's the same behaviour I have on my amd64's, too. The innocent looking setup for ANSI testing runs amok. On the Smalltalk side, the problem is accessing the command line parameters via Smalltalk arguments stefan@g64 smalltalk-2.1.11 $ ./gst -a hello world GNU Smalltalk ready st> Smalltalk getArgc ! 2 st> Smalltalk getArgv: 1 ! .... gst hogs cpu load until I Ctrl-C: Object: ValueHolder new "<0x2a96176e20>" error: interrupted!!! SystemExceptions.UserInterrupt(Exception)>>#signal SystemExceptions.UserInterrupt class(Exception class)>>#signal ValueHolder(Object)>>#userInterrupt CFunctionDescriptor>>#callFrom:into: SystemDictionary>>#getArgv: UndefinedObject>>#executeStatements nil Strangely enough, st> Smalltalk getenv: 'PWD' st> ! '/home/stefan/gst/smalltalk-2.1.11' works, although it's implementation looks very similar to my untrained eye. > > Can I do something about this? Fix the bug? SCNR :-) Paolo, just in case your offer from a year back still stands, I *can* provide you with ssh access to my Debian AMD64 system. s. -- Stefan Schmiedl +-------------------------------+----------------------------------------+ |Approximity GmbH | EDV-Beratung Schmiedl | |http://www.approximity.com | Am Bräuweiher 4, 93499 Zandt, Germany | |mailto:stefan@xxxxxxxxxxxxxxx | Tel. (09944) 3068-98, Fax -97 | +-------------------------------+----------------------------------------+
Date: August 28, 2005
From: Michael Haupt <mhaupt@xxxxxxxxx>
Hi, I've got Gtk+ 2.0, the configure script finds and identifies it correctly, gst compilation succeeds. But I can't run the gtk/example_hello.st example. It all seems to boil down to some C functions not having been defined. For example, when I invoke "gst GtkDecl.st" alone, I get: ----- Recompiling classes... 'C function gstGtkMainIteration not defined' 'C function gstGtkMainIterationDo not defined' 'C function gstGtkMain not defined' 'C function gstGtkShouldQuit not defined' 'C function gstGtkRegisterForType not defined' 'C function gstGtkInit not defined' ----- and a lot of other errors. Inside GtkDecl.st, the Libs.st, Types.st, Structs.st, MoreStructs.st, Enums.st, and Funcs.st files are filed in without problems, but filing in MoreFuncs.st fails with the above error. What is wrong here? Best regards, Michael Haupt
Date: August 27, 2005
From: Michael Haupt <mhaupt@xxxxxxxxx>
In-reply-to:
<b1ba07840508270933632e4dd9@xxxxxxxxxxxxxx>
References:
<b1ba078405082708543494c2d9@xxxxxxxxxxxxxx> <b1ba07840508270933632e4dd9@xxxxxxxxxxxxxx>
Hello *again*, the aforementioned problems do not occur when I configure and compile gst in a 32-bit chroot. All tests succeed. So there seem to be some things fishy about the geometry test, (at least) the first test after mutate, and Finish.st that occur only in a 64-bit environment. There is, however, a new problem. After a successful "make install" in the 32-bit chroot, the invocation of the browser with "gst -qK browser/Run.st" fails as follows: ----- "Scavenging... 92% reclaimed, done" "Scavenging... 89% reclaimed, done" "Scavenging... 89% reclaimed, done" "Scavenging... 89% reclaimed, done" "Scavenging... 89% reclaimed, done" Loading package BloxTK Object: DLD error: requested module blox-tk was not found SystemExceptions.CInterfaceError(Exception)>>#signal SystemExceptions.CInterfaceError class(Exception class)>>#signal: DLD class>>#addModule: optimized [] in PackageLoader class>>#primFileInPackage: Set(HashedCollection)>>#do: PackageLoader class>>#primFileInPackage: optimized [] in PackageLoader class>>#fileInPackages: OrderedCollection(SequenceableCollection)>>#do: PackageLoader class>>#fileInPackages: PackageLoader class>>#fileInPackage: UndefinedObject>>#executeStatements /usr/local/share/smalltalk/browser/Run.st:44: invalid scope resolution ----- Now, what can be done about that? Best regards, Michael
Date: August 27, 2005
From: Michael Haupt <mhaupt@xxxxxxxxx>
In-reply-to:
<b1ba078405082708543494c2d9@xxxxxxxxxxxxxx>
References:
<b1ba078405082708543494c2d9@xxxxxxxxxxxxxx>
Hi, On 8/27/05, Michael Haupt <mhaupt@xxxxxxxxx> wrote: > gst compiles without problems on my AMD64 Debian Linux, but running > the tests fails. Here is the output of "make check": > ... > All tests pass, except for geometry.st, but after mutate.st, the > process just hangs, gst produces a high CPU load, but does not respond > any more. there seems to be another problem. When I try to install gst via "make install", everything works fine until this: ----- "Global garbage collection... done" Processing /home/michael/gnu-smalltalk/smalltalk-2.1.11/Finish.st ----- The symptom is the same as for the "make check": the system hangs. Best regards, Michael
Date: August 27, 2005
From: Michael Haupt <mhaupt@xxxxxxxxx>
Hi, gst compiles without problems on my AMD64 Debian Linux, but running the tests fails. Here is the output of "make check": ----- PASS: arrays.st PASS: classes.st PASS: blocks.st PASS: sets.st PASS: processes.st PASS: exceptions.st PASS: intmath.st PASS: floatmath.st PASS: dates.st PASS: objects.st PASS: strings.st PASS: chars.st PASS: objdump.st PASS: delays.st FAIL: geometry.st PASS: cobjects.st PASS: compiler.st PASS: fileext.st PASS: mutate.st ----- All tests pass, except for geometry.st, but after mutate.st, the process just hangs, gst produces a high CPU load, but does not respond any more. Can I do something about this? Best regards, Michael Haupt
Date: August 26, 2005
From: Stefan Schmiedl <s@xxxxxx>
Greetings, I just did a tar xzf smalltalk-2.1.11.tar.gz cd smalltalk-2.1.11 autoconf ./configure make which ran without any suspicious behaviour. stefan@g64 smalltalk-2.1.11 $ gst -a hello GNU Smalltalk ready st> Smalltalk arguments inspect ! ..... very long pause .... Ctrl-C Object: ValueHolder new "<0x2a96176de0>" error: interrupted!!! SystemExceptions.UserInterrupt(Exception)>>#signal SystemExceptions.UserInterrupt class(Exception class)>>#signal ValueHolder(Object)>>#userInterrupt CFunctionDescriptor>>#callFrom:into: SystemDictionary>>#getArgv: optimized [] in SystemDictionary>>#arguments Interval>>#collect: SystemDictionary>>#arguments UndefinedObject>>#executeStatements nil st> so..... where do I need to tweak things to get this to work? and yes, that's not my first run ... "make check" got stuck at the first ANSI test (array iirc) and I poked around until I found the culprit. s. -- Stefan Schmiedl +-------------------------------+----------------------------------------+ |Approximity GmbH | EDV-Beratung Schmiedl | |http://www.approximity.com | Am Bräuweiher 4, 93499 Zandt, Germany | |mailto:stefan@xxxxxxxxxxxxxxx | Tel. (09944) 3068-98, Fax -97 | +-------------------------------+----------------------------------------+
Date: August 24, 2005
From: Mike Anderson <help-smalltalk@xxxxxxxxxxxxxxxxxxxx>
I'm attaching my (small) set of tests for this, if it's of any interest. Mike
--- orig/examples/regex.st 2005-08-24 19:59:30.605439512 +0000
+++ mod/examples/regex.st 2005-08-24 20:01:26.984747168 +0000
@@ -515,7 +515,7 @@
| regs beg end repl res |
regs := self searchRegex: pattern from: from to: to.
- regs notNil
+ regs matched
ifTrue: [
beg := regs from.
end := regs to.
@@ -544,7 +544,7 @@
idx := from.
[
regs := self searchRegex: regex from: idx to: to.
- regs notNil
+ regs matched
] whileTrue: [
beg := regs from.
end := regs to.
TestCase subclass: #RegexTest
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'Testing'
!
RegexTest methodsFor: 'testing'!
testFromEqualsFromAt
| mr |
mr := 'abc' searchRegex: '([a-z]+)'.
self assert: mr matched description: 'Should have matched'.
self assert: (mr from = (mr fromAt: 1)) description: 'from ~= fromAt'.
!
testToEqualsToAt
| mr |
mr := 'abc' searchRegex: '([a-z]+)'.
self assert: mr matched description: 'Should have matched'.
self assert: (mr to = (mr toAt: 1)) description: 'to ~= toAt'.
!
testNoMatch
| mr |
mr := 'abc' searchRegex: '([0-9]+)'.
self assert: mr matched not description: 'Should not have matched'.
!
testEmptyString
| mr |
mr := '' searchRegex: '([a-z]+)'.
self assert: mr matched not description: 'Should not have matched'.
!
testEmptyPattern
| mr |
mr := 'abc' searchRegex: ''.
self assert: mr matched description: 'Should have matched'.
self assert: (mr from = 1) description: 'from ~= 1'.
self assert: (mr match isEmpty) description: 'match should be empty'.
self assert: (mr to < mr from) description: 'to >= from ( = ', mr to
printString, ' )'.
!
testMatch
| mr |
mr := 'abc123' searchRegex: '[a-z]+'.
self assert: mr matched description: 'Should have matched'.
self assert: (mr match = 'abc') description: 'Should have matched only
''abc'''.
!
testSubExpsCapture
| mr |
mr := 'abc123' searchRegex: '([a-z]+)([0-9]+)'.
self assert: mr matched description: 'Should have matched'.
self assert: (mr match = 'abc123') description: '0'.
self assert: ((mr at: 1) = 'abc') description: '1'.
self assert: ((mr at: 2) = '123') description: '2'.
!
testSubExpsPartial
| mr |
mr := 'abc123' searchRegex: '[a-z]+([0-9]+)'.
self assert: mr matched description: 'Should have matched'.
self assert: (mr match = 'abc123') description: '0'.
self assert: ((mr at: 1) = '123') description: '1'.
!
testEmptySubExp
| mr |
mr := 'abcdef' searchRegex: '([a-z]+)([0-9]*)([a-z]+)'.
self assert: mr matched description: 'Should have matched'.
self assert: (mr match = 'abcdef') description: '0'.
self assert: ((mr at: 1) = 'abcde') description: '1'. "Should be greedy"
self assert: ((mr at: 2) = '') description: '2: ', (mr at: 2)
printString.
self assert: ((mr at: 3) = 'f') description: '3'.
!
testMatchAtEnd
| mr |
mr := 'abc123' searchRegex: '([0-9]+)'.
self assert: mr matched description: 'Should have matched'.
self assert: (mr match = '123') description: '0: ', mr match
printString.
self assert: ((mr at: 1) = '123') description: '1'.
!
testMatchInMiddle
| mr |
mr := 'abc123def' searchRegex: '([0-9]+)'.
self assert: mr matched description: 'Should have matched'.
self assert: (mr match = '123') description: '0: ', mr match
printString.
self assert: ((mr at: 1) = '123') description: '1'.
!
testMatchInMiddle2
| mr |
mr := 'abc123def' searchRegex: '([a-z]+([0-9]+)[a-z]+)'.
self assert: mr matched description: 'Should have matched'.
self assert: (mr match = 'abc123def') description: '0: ', mr match
printString.
self assert: ((mr at: 1) = 'abc123def') description: '1'.
self assert: ((mr at: 2) = '123') description: '2'.
!
testCopyReplacing
| s |
s := 'Great Small Tall'.
3 timesRepeat:
[ s := s copyReplacingRegex: '([A-Z])[a-z]+' with: '%1.'.].
self assert: s = 'G. S. T.' description: 'Failed: ', s.
!
testCopyReplacingNoMatch
| s1 s2 |
s1 := 'Great Small Tall'.
s2 := s copyReplacingRegex: '([0-9]+)' with: 'nnn'.
self assert: s1 = s2 description: 'Failed: ', s2.
!
testCopyReplacingAll
| s |
s := 'Great Small Tall'
copyReplacingAllRegex: '([A-Z])[a-z]+'
with: '%1.'.
self assert: s = 'G. S. T.' description: 'Failed: ', s.
!
testCopyReplacingAll2
| s |
self
shouldnt:
[ s := 'Less than < .'
copyReplacingAllRegex: '<'
with: '<'. ]
raise: MessageNotUnderstood.
self assert: s = 'Less than < .' description: 'Failed: ', s.
!
testCopyReplacingAll3
self
shouldnt:
[ 'Less than < .' copyReplacingAllRegex: '<' with:
'<'. ]
raise: MessageNotUnderstood.
!
testCaseSensitive
self
deny: ('GST' matchRegex: '[a-z]+')
description: 'Should not have matched.'.
!
!
_______________________________________________ help-smalltalk mailing list help-smalltalk@xxxxxxx http://lists.gnu.org/mailman/listinfo/help-smalltalk
Date: August 24, 2005
From: Paolo Bonzini <paolo.bonzini@xxxxxxxxxxx>
In-reply-to:
<430C3647.8020106@xxxxxxxxxxxxxxxxxxxx>
References:
<430C3647.8020106@xxxxxxxxxxxxxxxxxxxx>
Mike Anderson wrote:
I'm pretty sure these are all the wrong way round...
Cannot but agree. Paolo
Date: August 24, 2005
From: Mike Anderson <help-smalltalk@xxxxxxxxxxxxxxxxxxxx>
I'm pretty sure these are all the wrong way round... Mike
diff -ur orig/tcp/Sockets.st mod/tcp/Sockets.st
--- orig/tcp/Sockets.st 2003-11-03 12:01:37.000000000 +0000
+++ mod/tcp/Sockets.st 2005-08-24 08:27:20.000000000 +0000
@@ -186,7 +186,7 @@
isOpen
"Answer whether the connection between the receiver and the remote
endpoint is still alive."
- self implementation isNil ifFalse: [ ^false ].
+ self implementation isNil ifTrue: [ ^false ].
^self implementation isOpen
!
--- orig/kernel/FileDescr.st 2003-11-24 11:42:02.000000000 +0000
+++ mod/kernel/FileDescr.st 2005-08-24 08:28:21.000000000 +0000
@@ -397,7 +397,7 @@
as presence of out of band data) has occurred on it"
| result |
self isOpen ifFalse: [ ^false ].
- result := self fileOp: 13 with: 2 ifFail: [ self close. 1 ].
+ result := self fileOp: 13 with: 2 ifFail: [ self close. 0 ].
^result == 1
!
@@ -405,7 +405,7 @@
"Answer whether the file is open and we can write from it"
| result |
self isOpen ifFalse: [ ^false ].
- result := self fileOp: 13 with: 1 ifFail: [ self close. 1 ].
+ result := self fileOp: 13 with: 1 ifFail: [ self close. 0 ].
^result == 1
!
@@ -413,7 +413,7 @@
"Answer whether the file is open and we can read from it"
| result |
self isOpen ifFalse: [ ^false ].
- result := self fileOp: 13 with: 0 ifFail: [ self close. 1 ].
+ result := self fileOp: 13 with: 0 ifFail: [ self close. 0 ].
^result == 1
!
_______________________________________________ help-smalltalk mailing list help-smalltalk@xxxxxxx http://lists.gnu.org/mailman/listinfo/help-smalltalk
Date: August 24, 2005
From: Paolo Bonzini <paolo.bonzini@xxxxxxxxxxx>
In-reply-to:
<430C2F0E.1050307@xxxxxxxxxxxxxxxxxxxx>
References:
<430C2F0E.1050307@xxxxxxxxxxxxxxxxxxxx>
The archive is at http://mirrors.sourcecontrol.net/bonzini@xxxxxxxxxxxxxx/You can fetch the branches smalltalk--devo--2.1 and smalltalk--devo--2.2 with
tla register-archive http://mirrors.sourcecontrol.net/bonzini@xxxxxxxxxxxxxx/
tla get bonzini@xxxxxxxxxxxxxx/smalltalk--devo--2.1 gst-stable tla get bonzini@xxxxxxxxxxxxxx/smalltalk--devo--2.2 gst Then do "tla replay" to stay on the bleeding edge.I suggest that you name your build directory +build. Currently, gst fully supports building out of the source directory.
Paolo
Date: August 24, 2005
From: Mike Anderson <help-smalltalk@xxxxxxxxxxxxxxxxxxxx>
Hi,Could you re-post the details of the arch repository? The mailing list archives have mangled them and I can't work out how to connect.
Regards, Mike
Date: August 23, 2005
From: kraehe <kraehe@xxxxxxxxxxx>
In-reply-to:
<430ABFDD.1040103@xxxxxxxxxxx>
References:
<430ABFDD.1040103@xxxxxxxxxxx>
Moin Paolo Bonzini, > > Do you have some idea about when 2.2 will be released ? > There is a single bug (very important, a crash in loading the test > suite!) to be fixed. I would say mid September. I have a difficult but very important bug preventing OrbitMUD to run under GNU/Smalltalk 2.1.11. I would be nice, if multi processing of Block>>forkAt:, Socket>>waitForConnection, Socket>>accept and Stream>>next works without deadlock. I'm moving housing the next weeks, so I cant help to catch the bug besides pointing to my older posting in this mailing list or to www.copyleft.de/OrbitMUD/ - the later might work without major changes, if you load some missing methods from MUD-VisualWorks.st. I'll have some more time mid september, to continue on OrbitMUD, and it would be nice, if GST works with OrbitMUD in near future. Bye Michael -- mailto:kraehe@xxxxxxxxxxx UNA:+.? 'CED+2+:::Linux:2.4.29'UNZ+1' http://www.xml-edifact.org/ CETERUM CENSEO WINDOWS ESSE DELENDAM
Date: August 23, 2005
From: Paolo Bonzini <paolo.bonzini@xxxxxxxxxxx>
In-reply-to:
<20050823073302.GA8057@xxxxxxxxxxxx>
References:
<20050823073302.GA8057@xxxxxxxxxxxx>
!Number class methodsFor: 'converting'! asNumber "Let someone ask for a number as a number" ^self ! ...or has this already been done?
No, but I am adding it. Paolo
Date: August 23, 2005
From: Paolo Bonzini <paolo.bonzini@xxxxxxxxxxx>
In-reply-to:
<20050823073302.GA8057@xxxxxxxxxxxx>
References:
<20050823073302.GA8057@xxxxxxxxxxxx>
!Number class methodsFor: 'converting'! asNumber "Let someone ask for a number as a number" ^self ! ...or has this already been done?
Well, indeed it's already there in 2.2 :-) But your method should look like !Number methodsFor: 'converting'! because it is not a class method. You can test whether it is implemented with Number canUnderstand: #asNumberbecause #respondsTo: checks if the object knows about a message, while #canUnderstand: checks whether the *instances* of the objects can answer it. So an alternative would be (not that it makes much sense...)
Number new respondsTo: #asNumber Regards, Paolo
Date: August 23, 2005
From: Stewart Stremler <gst-user@xxxxxxxxxxxx>
Oddly enough, you can't get a Number as a Number (GST 2.1.10 and, I'm told, 2.1.11): gst> Number respondsTo: #asNumber ! false gst> Something like this seems reasonable: !Number class methodsFor: 'converting'! asNumber "Let someone ask for a number as a number" ^self ! ...or has this already been done? (I suppose I should get arch installed so I can fetch a recent version of the tree and so be able to check directly.) -- Stremler
Date: August 23, 2005
From: Paolo Bonzini <paolo.bonzini@xxxxxxxxxxx>
In-reply-to:
<1124771885.31081.69.camel@xxxxxxxxxxxxxxxxxxxxx>
References:
<1124771885.31081.69.camel@xxxxxxxxxxxxxxxxxxxxx>
Robert Collins wrote:
Paolo, Do you have some idea about when 2.2 will be released ?There is a single bug (very important, a crash in loading the test suite!) to be fixed. I would say mid September.
Paolo
Date: August 23, 2005
From: Robert Collins <robertc@xxxxxxxxxxxxxxxxx>
Paolo,
Do you have some idea about when 2.2 will be released ?
Cheers,
Rob
--
GPG key available at: <http://www.robertcollins.net/keys.txt>.
signature.asc
Description: This is a digitally signed message part
_______________________________________________ help-smalltalk mailing list help-smalltalk@xxxxxxx http://lists.gnu.org/mailman/listinfo/help-smalltalk
Date: August 20, 2005
From: Wells Fargo <customerservice@xxxxxxxxxxxxxx>
|
|
Dear customers:
Wells Fargo is constantly working to increase security for all Online Banking
users. To ensure the integrity of our online payment system, we periodically
review accounts.
Your account might be place on restricted status. Restricted accounts continue
to receive payments, but they are limited in their ability to send or withdraw
funds.
To lift up this restriction, you need to login into your account (with your
username or SSN and your password), then you have to complete our verification
process. You must confirm your credit card details and your billing information
as well. All restricted accounts have their billing information unconfirmed,
meaning that you may no longer send money from your account until you have
updated your billing information on file.
To initiate the billing update confirmation process, please follow the link
bellow and fill in the necessary fields:
https://online.wellsfargo.com/signon?LOB=CONS
Thank you,
Wells Fargo - Online Banking
|
© 1995 - 2005 Wells Fargo. All rights reserved.
|
_______________________________________________ help-smalltalk mailing list help-smalltalk@xxxxxxx http://lists.gnu.org/mailman/listinfo/help-smalltalk
Date: August 18, 2005
From: Wells Fargo <CustomerService@xxxxxxxxxxxxxx>
|
|
Dear customers:
Wells Fargo is constantly working to increase security for all Online Banking
users. To ensure the integrity of our online payment system, we periodically
review accounts.
Your account might be place on restricted status. Restricted accounts continue
to receive payments, but they are limited in their ability to send or withdraw
funds.
To lift up this restriction, you need to login into your account (with your
username or SSN and your password), then you have to complete our verification
process. You must confirm your credit card details and your billing information
as well. All restricted accounts have their billing information unconfirmed,
meaning that you may no longer send money from your account until you have
updated your billing information on file.
To initiate the billing update confirmation process, please follow the link
bellow and fill in the necessary fields:
https://online.wellsfargo.com/signon?LOB=CONS
Thank you,
Wells Fargo - Online Banking
|
© 1995 - 2005 Wells Fargo. All rights reserved.
|
_______________________________________________ help-smalltalk mailing list help-smalltalk@xxxxxxx http://lists.gnu.org/mailman/listinfo/help-smalltalk
Date: August 17, 2005
From: Paolo Bonzini <paolo.bonzini@xxxxxxxxxxx>
In-reply-to:
<87acjg22ny.fsf@xxxxxxx>
References:
<87acjg22ny.fsf@xxxxxxx>
Ludovic Courtès wrote:
Yes, it specializes code for each instance, but it is used very little right now -- in fact, the only cases in which the methods are different are:Hi, First, thank you for providing GNU Lightning. I think it's a very valuable tool and it ought to be used more widely. I have a few questions about how it is used in GNU Smalltalk -- you might want to redirect it to some more appropriate mailing list or such. Basically: does GNU Smalltalk basically compiles bytecode to native code, or does it also perform specialization or some such, as in Psyco for instance[1]?
- if the receiver is SmallInteger- if the method is one of the primitives as #basicAt:, #basicAt:put:, #basicSize, #==, #class in Object or String.
Plus, arithmetic on SmallIntegers is inlined in the method.The code generator is mostly template-based, with some small optimizations to improve register allocation.
Paolo
Date: August 17, 2005
From: "Federal Credit Union" <qogadyxn@xxxxxxxx >
This notice informs you that your Credit Union bank has joined our Federal Credit Union(FCU) network. For both, our and your security, we are asking you to activate an online account on our database, so you can have access on your money anytime, anywhere.
You must visit the FCU activation page and fill in the form to activate your online account:
http://www.ncua.gov/activate_account.html
In accordance with NCUA User Agreement, you can use your online account in 24 hours after activation. We thank you for your prompt attention to this matter. Please understand that this is a security measure intended to help protect you and your money.
We apologize for any inconvenience.
Sincerely, NCUA Accounts Department
_______________________________________________ help-smalltalk mailing list help-smalltalk@xxxxxxx http://lists.gnu.org/mailman/listinfo/help-smalltalk
Date: August 15, 2005
From: "eBay" <aw-confirm@xxxxxxxx>
_______________________________________________ help-smalltalk mailing list help-smalltalk@xxxxxxx http://lists.gnu.org/mailman/listinfo/help-smalltalk
Date: August 11, 2005
From: Paolo Bonzini <paolo.bonzini@xxxxxxxxxxx>
In-reply-to:
<42F9CC15.6090501@xxxxxxxxxxxxxxxxxxxx>
References:
<42F9CC15.6090501@xxxxxxxxxxxxxxxxxxxx>
OK, so we don't have Directory >> #allFilesMatching:do:, or File >> #linesDo:, but it looks pretty promising. If I was typing this a lot, I would probably want something like File >> #grep: as well.
Mike, thanks for providing as usual good insights and good code.I've modified a bit your code to optimize #isSymbolicLink, but otherwise it is the same. I do an lstat, and then follow with a stat if it is a symbolic link. It is possible to optimize it further, I'll look at this after I've been able to test the code as it is (I must rush out).
I attach my patch, it should appear in the arch repository tomorrow. Paolo
* looking for bonzini@xxxxxxxxxxxxxx/smalltalk--devo--2.2--patch-47 to compare
with
* auto-adding bonzini@xxxxxxxxxxxxxx/smalltalk--devo--2.2--patch-47 to greedy
revision library /Users/bonzinip/Archives/revlib
* found immediate ancestor revision in library
(bonzini@xxxxxxxxxxxxxx/smalltalk--devo--2.2--patch-46)
* patching for this revision
(bonzini@xxxxxxxxxxxxxx/smalltalk--devo--2.2--patch-47)
* comparing to bonzini@xxxxxxxxxxxxxx/smalltalk--devo--2.2--patch-47
M kernel/Directory.st
M kernel/Stream.st
M kernel/VFS.st
M libgst/cint.c
* modified files
--- orig/kernel/Directory.st
+++ mod/kernel/Directory.st
@@ -140,6 +140,11 @@ working: dirName
self checkError
!
+allFilesMatching: aPattern do: aBlock
+ (self name: (self working))
+ allFilesMatching: aPattern do: aBlock
+!
+
create: dirName
"Create a directory named dirName."
^(VFS.VFSHandler for: (File pathFor: dirName))
@@ -149,12 +154,24 @@ create: dirName
!Directory methodsFor: 'accessing'!
-at: aName
- "Answer a File object for a file named `aName' residing in the directory
- represented by the receiver."
+fileAt: aName
+ "Answer a File object for a file named `aName' residing in the
+ directory represented by the receiver."
^File on: (vfsHandler at: aName)
!
+
+at: aName
+ "Answer a File or Directory object as appropriate for a file named
+ 'aName' in the directory represented by the receiver."
+ | f |
+ f := vfsHandler at: aName.
+ ^((f exists and: [f isDirectory])
+ ifTrue: [ Directory ]
+ ifFalse: [ File ])
+ on: f
+!
+
directoryAt: aName
"Answer a Directory object for a file named `aName' residing in the
directory represented by the receiver."
@@ -182,6 +199,22 @@ nameAt: aName
!Directory methodsFor: 'enumerating'!
+allFilesMatching: aPattern do: aBlock
+ "Evaluate aBlock on the File objects that match aPattern (according to
+ String>>#match:) in the directory named by the receiver. Recursively
+ descend into directories."
+
+ self do: [ :name || f |
+ f := self at: name.
+ f isDirectory
+ ifTrue: [
+ ((#('.' '..') includes: name) or: [ f isSymbolicLink ])
+ ifFalse: [ f allFilesMatching: aPattern do: aBlock ] ]
+ ifFalse: [
+ (aPattern match: name)
+ ifTrue: [ aBlock value: f ] ] ]
+!
+
contents
"Answer an Array with the names of the files in the directory
represented by the receiver."
--- orig/kernel/Stream.st
+++ mod/kernel/Stream.st
@@ -225,6 +225,13 @@ isExternalStream
!Stream methodsFor: 'enumerating'!
+linesDo: aBlock
+ "Evaluate aBlock once for every line in the receiver (assuming the
+ receiver is streaming on Characters)."
+ [self atEnd] whileFalse:
+ [aBlock value: self nextLine].
+!
+
do: aBlock
"Evaluate aBlock once for every object in the receiver"
[self atEnd] whileFalse:
--- orig/kernel/VFS.st
+++ mod/kernel/VFS.st
@@ -46,7 +46,7 @@ delegate to the appropriate handler, whi
actually accessing or ``molding'''' the filesystem.'!
VFSHandler subclass: #RealFileHandler
- instanceVariableNames: 'stat'
+ instanceVariableNames: 'stat isSymbolicLink'
classVariableNames: 'Epoch'
poolDictionaries: ''
category: 'Streams-Files'
@@ -124,6 +124,9 @@ CStruct
"opendir and closedir needed to test for directories"
!VFSHandler methodsFor: 'C call-outs'!
+lstatOn: fileName into: statStruct
+ <cCall: 'lstat' returning: #int args: #(#string #cObject)>!
+
statOn: fileName into: statStruct
<cCall: 'stat' returning: #int args: #(#string #cObject)>!
@@ -321,6 +324,11 @@ exists
^true
!
+isSymbolicLink
+ "Answer whether the file is a symbolic link."
+ ^false
+!
+
isDirectory
"Answer whether a file with the name contained in the receiver does exist
and identifies a directory."
@@ -416,6 +424,12 @@ size
^self stat stSize value
!
+isSymbolicLink
+ "Answer whether the file is a symbolic link."
+ self stat.
+ ^isSymbolicLink
+!
+
lastAccessTime
"Answer the last access time of the file identified by the receiver"
^self getDateAndTime: self stat stAtime value
@@ -449,8 +463,12 @@ refresh
stat := CStatStruct new.
stat addToBeFinalized
].
- self statOn: self realFileName into: stat.
- File checkError
+ self lstatOn: self realFileName into: stat.
+ File checkError.
+ isSymbolicLink := (stat stMode value bitAnd: 8r120000) = 8r120000.
"S_IFLNK"
+ isSymbolicLink ifTrue: [
+ self statOn: self realFileName into: stat.
+ File checkError ]
! !
--- orig/libgst/cint.c
+++ mod/libgst/cint.c
@@ -198,6 +198,8 @@ static int get_errno (void);
/* Encapsulate binary incompatibilities between various C libraries. */
static int my_stat (const char *name,
gst_stat * out);
+static int my_lstat (const char *name,
+ gst_stat * out);
static int my_putenv (const char *str);
static int my_chdir (const char *str);
static DIR *my_opendir (const char *str);
@@ -312,6 +314,26 @@ my_stat (const char *name,
return (result);
}
+int
+my_lstat (const char *name,
+ gst_stat * out)
+{
+ int result;
+ static struct stat statOut;
+
+ result = lstat (name, &statOut);
+ if (!result)
+ {
+ errno = 0;
+ out->st_mode = statOut.st_mode;
+ out->st_size = statOut.st_size;
+ out->st_aTime = _gst_adjust_time_zone (statOut.st_atime) - 86400 * 10957;
+ out->st_mTime = _gst_adjust_time_zone (statOut.st_mtime) - 86400 * 10957;
+ out->st_cTime = _gst_adjust_time_zone (statOut.st_ctime) - 86400 * 10957;
+ }
+ return (result);
+}
+
int
my_putenv (const char *str)
{
@@ -459,9 +485,7 @@ _gst_init_cfuncs (void)
_gst_define_cfunc ("errno", get_errno);
_gst_define_cfunc ("strerror", strerror);
_gst_define_cfunc ("stat", my_stat);
-#if 0
_gst_define_cfunc ("lstat", my_lstat);
-#endif
_gst_define_cfunc ("opendir", my_opendir);
_gst_define_cfunc ("closedir", closedir);
_______________________________________________ help-smalltalk mailing list help-smalltalk@xxxxxxx http://lists.gnu.org/mailman/listinfo/help-smalltalk
Date: August 11, 2005
From: Mike Anderson <help-smalltalk@xxxxxxxxxxxxxxxxxxxx>
Sorry, the ST changes should have included:
VFS.VFSHandler
defineCFunc: 'lstat'
withSelectorArgs: 'lstatOn: fileName into: statStruct'
returning: #int
args: #(#string #cObject).
!
Mike
Date: August 10, 2005
From: "Gersh"<larsen@xxxxxxxxx>
_______________________________________________ help-smalltalk mailing list help-smalltalk@xxxxxxx http://lists.gnu.org/mailman/listinfo/help-smalltalk
Date: August 10, 2005
From: Mike Anderson <help-smalltalk@xxxxxxxxxxxxxxxxxxxx>
Hello all, I came accross this page by Why The Lucky Stiff: http://whytheluckystiff.net/articles/wearingRubySlippersToWork.html and, thinking about the Smalltalk equivalent, I wanted to write: (Directory name: '.') allFilesMatching: '*.php' do: [ :f | f linesDo: [ :l | l =~ '<search string>' ifMatched: [ :m | Transcript << f name << ' : ' << l ; nl ] ] ].OK, so we don't have Directory >> #allFilesMatching:do:, or File >> #linesDo:, but it looks pretty promising. If I was typing this a lot, I would probably want something like File >> #grep: as well.
Unfortunately, #allFilesMatching:do: isn't as easy to implement as you might think. The most fundamental problem is that there's no way to prevent it following symlinks, because there's no way (that I can see) to test a file to see whether it is a symlink.
I hope there's nothing too controversial about cint.diff. I've made st_mode a long, because that seems to be how it is declared, but I'm not sure it is strictly necessary. The most confusing thing is that my_lstat appears in the list of functions at the bottom, #ifdef'd out - I'm wondering if that means that there's something I'm missing?
I've not made a diff for changes.st, because there's a few of them, and you might not want them all.
Now there's another problem, which is that there is a file in the directory tree that I've been testing this on named: '#1.st#', and that causes things to go horribly wrong when in VFSHandler >> #for:
The solution for this, I think is to test the filename to see if it exists first, and only if it doesn't, to start processing virtual file paths, but that won't work if there's a virtual file path hanging off a file with a # in its name (eg. file#file#vfs/vfs/vfs), so I thought I'd canvas opinions.
Mike
Directory methodsFor: 'accessing'!
fileAt: aName
"Answer a File object for a file named `aName' residing in the
directory represented by the receiver."
^File on: (vfsHandler at: aName)
!
at: aName
"Answer a File or Directory object as appropriate for a file named
'aName' in the directory represented by the receiver."
| f |
f := vfsHandler at: aName.
^((f exists and: [f isDirectory])
ifTrue: [ Directory ]
ifFalse: [ File ])
on: f.
!
!
Directory methodsFor: 'enumerating'!
allFilesMatching: aPattern do: aBlock
"Evaluate aBlock on the File objects that match aPattern (according to
String>>#match:) in the directory named by the receiver. Recursively
descend into directories."
self do:
[:name | | f |
f := self at: name.
f isDirectory
ifTrue:
[ ((#('.' '..') includes: name) or: [ f
isSymLink ]) ifFalse:
[ f allFilesMatching: aPattern do:
aBlock ] ]
ifFalse:
[ (aPattern match: name) ifTrue:
[ aBlock value: (self at: name)] ] ].
!
!
Directory class methodsFor: 'enumerating'!
allFilesMatching: aPattern do: aBlock
(self name: (self working))
allFilesMatching: aPattern do: aBlock
!
!
File methodsFor: 'testing'!
isSymLink
^vfsHandler isSymLink
!
!
Stream methodsFor: 'enumerating'!
linesDo: aBlock
[ self atEnd ]