Custom Search
|
Date: November 29, 2005
From: kraehe <kraehe@xxxxxxxxxxx>
Moin Gurus,
i've just compiled gst 2.2 on amd64 and received a lot of warnings
from same location:
kraehe@durruti:~/smalltalk/smalltalk-2.2$ fgrep "comparison is always"
make.tee |sort | uniq -c
48 dict.inl:1246: warning: comparison is always true due to limited range
of data type
24 dict.inl:1269: warning: comparison is always true due to limited range
of data type
24 dict.inl:1272: warning: comparison is always false due to limited range
of data type
so far gst 2.2 looks to work fine, but perhaps someone who knows the
code, might look at dict.inl to check if its ok to compare 31bit and
63bit integers here.
ciao,Michael
--
mailto:kraehe@xxxxxxxxxxx UNA:+.? 'CED+2+:::Linux:2.6.12'UNZ+1'
http://www.xml-edifact.org/ CETERUM CENSEO WINDOWS ESSE DELENDAM
Date: November 28, 2005
From: Daniel Solaz <dsolaz@xxxxxxxxxxxxx>
In-reply-to:
<4386CD66.5070701@xxxxxxxxxxx>
References:
<43862C54.8040707@xxxxxxxxxxxxx> <4386CD66.5070701@xxxxxxxxxxx>
On Friday 25 November 2005 09:37, Paolo Bonzini wrote: > You can develop GNU Smalltalk modules with other compilers. It's > just the VM that needs GCC, and it's pure C (not C++). I'm sure all technical issues can be worked around. But I'd rather not develop what might (or might not) end up being an extensive set of micropatches. I'll stick with 2.1.12 or, more probably, drop GST. It's the political aspect of requiring GCC, which is not the main compiler on some platforms out there, that annoys me. But my POV isn't going to find much support on a GNU list :) Regards. -Daniel
Date: November 28, 2005
From: Paolo Bonzini <paolo.bonzini@xxxxxxxxxxx>
In-reply-to:
<200511281400.43161.dsolaz@xxxxxxxxxxxxx>
References:
<43862C54.8040707@xxxxxxxxxxxxx> <4386CD66.5070701@xxxxxxxxxxx> <200511281400.43161.dsolaz@xxxxxxxxxxxxx>
I meant that you most likely have a different source tree for GNU Smalltalk than for your modules. Compile the former with GCC, the other with what you like.I'm sure all technical issues can be worked around. But I'd rather not develop what might (or might not) end up being an extensive set of micropatches.You can develop GNU Smalltalk modules with other compilers. It's just the VM that needs GCC, and it's pure C (not C++).
If you need patches to make the GNU Smalltalk *headers* portable to other compilers, it should be easy and I'm all for incorporating them. If you want to write patches to make GNU Smalltalk compilable with other compilers than GCC, I don't expect you to do it but again I'm all for it.
I can assure it's not political. I'm not using GCC extensions "just because they exist".I'll stick with 2.1.12 or, more probably, drop GST.It's the political aspect of requiring GCC, which is not the main compiler on some platforms out there, that annoys me
Paolo
Date: November 25, 2005
From: Paolo Bonzini <paolo.bonzini@xxxxxxxxxxx>
In-reply-to:
<43862C54.8040707@xxxxxxxxxxxxx>
References:
<43862C54.8040707@xxxxxxxxxxxxx>
Daniel Solaz wrote:
Hello. > - GCC needed to compile GNU Smalltalk.If this is irrevocably so, my project to wrap Open Inventor and IRIS ViewKit, and develop an extensible Inventor editor has just been killed. These are IRIX MIPSpro C++ libraries that cannot be linked with g++ object code.
You can develop GNU Smalltalk modules with other compilers. It's just the VM that needs GCC, and it's pure C (not C++).
Was it really necessary?
Yes, because the new virtual machine's code is too complex to not be automatically generated, and the code generator only supports GCC. I can help you fix it if you really need it, but I think this is not a problem.
Paolo
Date: November 23, 2005
From: Serge Stinckwich <Serge.Stinckwich@xxxxxxxxxxxxxxx>
Hello all, the french Smalltalk community organize a SmalltalkParty in Paris.More info (in french) available here : http://community.ofset.org/wiki/Smalltalk_Party_Paris_2005
Several talks and demos about "Using Smalltalk for companies", Etoys, Squeak, Seaside, Croquet and UbiTalk (a new ubiquitous framework) are planned. We will have also a special dedication session with Stéphane Ducasse for his new book : "Squeak, Learn Programming with Robots" (http://smallwiki.unibe.ch/botsinc/).
You can register freely on the wiki page. PS : Paris is not to far away from Belgium or Luxemburg ;-) -- oooo Dr. Serge Stinckwich OOOOOOOO Université de Caen>CNRS UMR 6072>GREYC>MAD OOESUGOO http://purl.org/net/SergeStinckwich oooooo Smalltalkers do: [:it | All with: Class, (And love: it)] \ / ##
Date: November 22, 2005
From: Paolo Bonzini <paolo.bonzini@xxxxxxxxxxx>
In-reply-to:
<1132604108.22511.5.camel@xxxxxxxxxxxxxxxxxx>
References:
<4381F2C0.10103@xxxxxxxxxxx> <1132604108.22511.5.camel@xxxxxxxxxxxxxxxxxx>
This makes this possible: #!/bin/sh "exec" "gst" "-f" "$0" "$@" Which seems to be the best way to execute a Smalltalk script if you don't want to hardcode the path, due to the following.
That's a great suggestion, thanks. Paolo
Date: November 21, 2005
From: Mike Anderson <gnu-smalltalk@xxxxxxxxxxxxxxxxxxxx>
In-reply-to:
<43818660.7000506@xxxxxxxxxxx>
References:
<4380B024.2040300@xxxxxxxxxxxxxxxxxxxx> <43818660.7000506@xxxxxxxxxxx>
Paolo Bonzini wrote: > I'm interested, for 2.3, in making the startup time faster by modifying > the image format. Your approach however is very interesting. A major problem, as I see it, is that filing in packages is slow, so you would want your scripting image to have all of the packages that you might want to use pre-loaded. That will tend to make the image file large, which inevitably makes the startup time slower. Will your changes to the image format enable packages to be provided as image segments? > #basicPrint is meant for debugging, so it is not very interesting to > make it write to a socket. (It is a primitive on purpose). It would be > better to use dup2 to map the socket onto stderr. Ah, well, this is because I'm using Behavior >> #evaluate:, which means I can't handle the backtrace myself. I was having problems with STInST, and wanted something quick and dirty. (besides, how will I know which socket to map?) Mike
Date: November 21, 2005
From: Stefan Schmiedl <s@xxxxxx>
Hi Paolo, congrats on beating Object Arts' long-awaited D6 by one day :-) If I want to create an image containing the complete set of classes supplied with gst, is there a convenient way to do this, or do I have to find and enumerate the packages manually? Regards, 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: November 21, 2005
From: Stephen Compall <s11@xxxxxxxxxxxxxx>
In-reply-to:
<4381F2C0.10103@xxxxxxxxxxx>
References:
<4381F2C0.10103@xxxxxxxxxxx>
On Mon, 2005-11-21 at 17:16 +0100, Paolo Bonzini wrote: > GNU Smalltalk 2.2 will be available in a few minutes from > ftp://ftp.gnu.org/gnu/smalltalk. Hooray! > - A sharp-bang sequence at the beginning of a file is parsed as a > one-line comment. This makes this possible: #!/bin/sh "exec" "gst" "-f" "$0" "$@" Which seems to be the best way to execute a Smalltalk script if you don't want to hardcode the path, due to the following. > - Provides an "-f" option (long option "--file" to be used in a #! line, > as in "#! /usr/bin/env gst -f", According to the Guile documentation, some Unix systems only allow one argument on the #! line, making the above equivalent to /usr/bin/env "gst -f" <file>. See above for an alternative. I am not sure that matters, of course, as I don't know whether that includes any of the platforms GCC supports. -- Stephen Compall http://scompall.nocandysoftware.com/blog
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: November 21, 2005
From: Paolo Bonzini <paolo.bonzini@xxxxxxxxxxx>
It is also already available on the GNU arch repository http://mirrors.sourcecontrol.net/bonzini@xxxxxxxxxxxxxx in the smalltalk--stable--2.2 version.
Changes from the last prerelease include:- a bug fix in the file stat functions (timezone not set on the file times),
- a bug fix in signal handling, which- a new feature of the package loader, which allows (for example) the browser to recognize that Blox/GTK has been loaded even if the default Blox implementation is Blox/Tk.
- some GTK+ bug fixes- as announced, the default Blox implementation is still Blox/Tk for stable releases.
There are a lot of changes from GNU Smalltalk 2.1.12 to the new release: =============================================== Scripting improvements:- A sharp-bang sequence at the beginning of a file is parsed as a one-line comment.
- Provides an "-f" option (long option "--file" to be used in a #! line, as in "#! /usr/bin/env gst -f", which has the same effect of -Q, processing the file indicated by the option's argument, and passing the rest of the command line to GNU Smalltalk. In other words, the two invocations that follow are equivalent:
gst -f script.st ARG1 ARG2 gst script.st -Qa ARG1 ARG2- Load.st installed as gst-load, Reload.st installed as gst-reload, Test.st installed as gst-sunit.
=============================================== VM changes:- Can define subclasses of CompiledMethod and have a method invoked on the instances whenever the method is called.
- Can pass a "void **" to C using the #cObjectPtr parameter specifier (previously undocumented and broken).
- The #class method can be overridden. This is useful for example for debuggers and proxies.
- Code for decoding/interpreting the bytecode set is for the most part automatically generated. Take a look at the ``genbc'' and ``genvm'' programs if you are going to write an high performance interpreter, and write to the mailing list for any information on them or on the other program ``superops'' (this one is much more specialized).
- CompiledBlocks and CompiledMethods are read-only.- Dollars are allowed in the middle of identifiers and method names. This is unportable, so do not abuse it. As with underscores, it is not possible to use them at the beginning of an identifier or method name.
- Fixed bug that caused the compiler to accept duplicate argument or temporary names.
- GCC needed to compile GNU Smalltalk. - gst_smalltalk_args accepts a const char **.- Improved clarity and portability using intptr_t, size_t and ptrdiff_t more widely and wisely.
- Indexed instance variables can be 8-bit and 16-bit, signed and unsigned integers; or they can be 32-bit and 64-bit, signed integers and unsigned integers and floating point values; or objects of course. Previously the only three possibilities were objects, 8-bit unsigned ints, and pointer-sized unsigned ints.
- Instance variables are scanned backwards: if a subclass declares an instance variable with the same name of the superclass, it wins when compiling code in the subclass (fixes the so-called "fragile subclass" problem).
- Keywords and parameters need not be separated by a space (as in `self x: y z:w').
- New bytecode set. This is a significant departure from the Blue Book's instruction set, and it improves performance by ~20%. Over 150 common bytecode sequences are optimized, saving on dispatching overhead and minimizing the cost of decoding arguments.
- Options -l and -L (--log-changes and --log-file) are no more. The change log is not useful outside the GUI, while inside the GUI it ought to be maintained by the GUI itself.
- Option -s is no more. It was made the default in 2.1.5. - Passing floating-point arguments to C works.- Prefetching instructions are used wherever supported (Alpha, SPARC, PPC, AMD K6 or newer, Intel PIII or newer, all with GCC 3.2). This speeds up the startup by up to 20%.
- Instances of subclasses of CompiledBlock and CompiledMethod can be created using the same primitive that creates CompiledBlocks and CompiledMethods, but sent to the subclass.
- Several important bug fixes in event handling and asynchronous file input/output.
- Subclasses of MethodInfo can be used as the descriptors for CompiledMethod objects.
- Two-character binary messages ending with a minus are scanned differently if followed by a number: "1+-2" is now read as "1 + -2", not "1 +- 2". This is what you would usually expect; however, including spaces explicitly is recommended.
- When GCC 3.3 or later is used, a shared library is also built. The code has been to some extent optimized to make this less expensive, but the shared library still has a 5-10% performance hit. Note that the x86 shared library is undebuggable (-fomit-frame-pointer) with GCC < 4.0 because of the dearth of registers. The installed virtual machine is not linked to the shared library for optimal speed.
- Wider set of operations available to modules that plug into GNU Smalltalk, including access to system classes, queries on the method dictionaries, and access to indexed instance variables.
=============================================== Smalltalk changes:- CLongDouble class allows one to access long doubles; long doubles are supported by CStruct, Memory and ByteArray as well.
- CompiledCode>>#literalsDo: does what CompiledCode>>#allLiteralsDo: used to do. CompiledCode>>#allLiteralsDo: recurses into literal arrays.
- Glorp, a layer for mapping objects to relational databases, is provided and integrated with the MySQL driver.
- GNU Smalltalk includes a mechanism for defining security policies on a class-by-class basis. See below for more information.
- Interval can return a #first and #last even if the Interval is empty. These are the start and stop object that it was created with. The private methods #start, #stop and #step have thus been superseded by #first, #last and #increment.
- #min: and #max: always return a NaN when one of the two operands is a NaN; previously they would always return the other operand.
- New syntax for C call-outs, can be transparently filed out from the image and then filed back in. See the documentation or the kernel/CFuncs.st file for more information.
- PackageLoader can be told the namespace in which to load the package. Most package loading scripts are now no longer necessary or can be reduced to simple initialization duties.
- #raisedToInteger: is better optimized and does the minimum number of multiplications for exponents up to 256.
- SequenceableCollection has a more efficient implementation of #fold:, as well as #second, #third, and #fourth (and I'm going to stop here!).
- #return and #return: now reinstate exception handlers, which will therefore be active while executing pending #ensure: or #ifCurtailed: blocks.
- Stored CompiledBlocks into the method's literal frame for non-clean blocks, and turned #blockCopy: into a `make dirty block' bytecode without introducing a method of unclear utility. This is a little faster and (consistently) saves around 1% on image files.
- The syntax for primitives has been generalized into a "method attribute" mechanism; pragmas are accessible through methods in CompiledMethod.
- The thisContext variable is compiled as a message send like "ContextPart thisContext".
- When a send to super fails, #doesNotUnderstand: is also sent to super and not to self. This change is experimental; these semantics look more coherent to me. As a result (think about it...) sends to super from a root class are now forbidden.
- When a non-existing message is sent with the wrong number of arguments (using #perform:), #doesNotUnderstand: is invoked. In the past, the wrong number of arguments error would have been printed. The reason for this is to allow selector names that would be invalid for the Smalltalk language.
=============================================== Work in progress:- Blox-GTK interface, to use the browser under Gtk+. Currently, only the browser works; to try it, configure with --enable-gtk=blox or load the BloxGTK package. Thanks to Robert Collins.
- GNU Smalltalk now supports executing (some) Java programs. See the info documentation for more information. The class library is based on GCJ 3.4, but should be reasonably upwards-compatible. There is no AWT nor JNI support, and it is not planned; networking, reflection and serialization are not there but should be added in the future.
=============================================== Overview of the security mechanism:- Implemented class-level permissions. Each class can have its own permission set, and if this is not trivial (all-allowed) the class is marked untrusted; then instances of that class, as well as contexts that have at least an untrusted object as the receiver in the sender chain, are considered untrusted. In the future, security checks will be made for untrusted objects in ``dangerous'' methods.
- Instance variables of an untrusted class that are declared by a trusted class are read-only. This is necessary to avoid that a misbehaving class method screws up the instance variables of Behavior that are known to the VM.
- Methods are verified.- Permissions can be granted by a method to its callees if the method's definition class owns those permissions. This can be used to invoke trusted C call-outs.
- Primitives cannot be declared for untrusted objects (this might be fine-grained in the future).
Paolo
Date: November 21, 2005
From: Paolo Bonzini <paolo.bonzini@xxxxxxxxxxx>
In-reply-to:
<4380B024.2040300@xxxxxxxxxxxxxxxxxxxx>
References:
<4380B024.2040300@xxxxxxxxxxxxxxxxxxxx>
I'm interested, for 2.3, in making the startup time faster by modifying the image format. Your approach however is very interesting.a) the command line is a bit unwieldy - I'd want to specify an image every time, and I'm more likely to want to pass parameters than I am to execute more than one script. b) the startup time is slower than I'd like for running one-liners and such. (a) can be solved with a shell script, but (b) is harder. I've been playing around with the idea of lazily starting a server and using a very lightweight frontend to pass scripts and one-liners to it.
#basicPrint is meant for debugging, so it is not very interesting to make it write to a socket. (It is a primitive on purpose). It would be better to use dup2 to map the socket onto stderr.
Paolo
Date: November 20, 2005
From: Mike Anderson <gnu-smalltalk@xxxxxxxxxxxxxxxxxxxx>
Hello all, I'd really like to start scripting my system using gst, but it isn't quite what I'd like, for two reasons: a) the command line is a bit unwieldy - I'd want to specify an image every time, and I'm more likely to want to pass parameters than I am to execute more than one script. b) the startup time is slower than I'd like for running one-liners and such. (a) can be solved with a shell script, but (b) is harder. I've been playing around with the idea of lazily starting a server and using a very lightweight frontend to pass scripts and one-liners to it. Does anyone have any thoughts about this approach? My very experimental first effort is here, if anyone would care to look at it and give me their opinion: http://www.gingerbread.plus.com/downloads/gsti-0.1.tgz $ export GSTI_IMAGE=$PWD/TCP.im $ export GSTI_SCRIPT=$PWD/gsti.st $ time ./gsti -e "arguments size printNl." 1 2 3 4 5 6 6 real 0m0.335s user 0m0.004s sys 0m0.007s $ time ./gsti -e "arguments size printNl." 1 2 3 4 5 6 6 real 0m0.011s user 0m0.001s sys 0m0.001s $ time perl -e 'print scalar @ARGV' 1 2 3 4 5 6 6 real 0m0.011s user 0m0.003s sys 0m0.003s $ time perl -e 'print scalar @ARGV' 1 2 3 4 5 6 6 real 0m0.011s user 0m0.005s sys 0m0.001s Regards, Mike
Date: November 02, 2005
From: Mike Anderson <gnu-smalltalk@xxxxxxxxxxxxxxxxxxxx>
In-reply-to:
<20051102010313.GA5727@xxxxxxxxxxx>
References:
<4367F0F9.70800@xxxxxxxxxxxxxxxxxxxx> <4367F00E.7000406@xxxxxxxxxxxxxxxxxxxx> <20051102010313.GA5727@xxxxxxxxxxx>
kraehe wrote: > Moin Mike Anderson, > >>keshec92@xxxxxxxxxxxxxxxxxx wrote: >> >>>Is smalltalk primarily a functional language, an imperative language, or a >>>logic-programming language? >> >>You can eliminate two of the options quite easily. > > /me is cheating by using google ... > > http://www.justfuckinggoogleit.com/search?q=smalltalk+functional+language > " Smalltalk is a tidier functional language than Scheme " > > http://lists.squeakfoundation.org/pipermail/squeak-dev/1998-September/004676.html > and even more interesting .... > http://www.justfuckinggoogleit.com/search?q=smalltalk+imperative+language > google: smalltalk imperative language > http://www.cebollita.org/dugan/history.html > > and its of course suited for logic programming > > http://www.justfuckinggoogleit.com/search?q=smalltalk+logic-programming+language > SOUL http://prog.vub.ac.be/research/DMP/soul/soul2.html > google can eliminate all 3 options, i think. I think you'd need a degree of understanding to get an answers out of the first two links (although there is certainly value in reading the whole of the thread in the first one). As for the third one: "SOUL is an interpreter for a Prolog dialect that runs on top of a Smalltalk implementation" Hey, keshec92, are you still reading, anyway? > /me has also an evangelical streak sometimes. > > Smalltalk is Smalltalk ... other languages who came later just took > a feature out of context and hyped it. Do you agree, that most modern > languages become more and more similar to Smalltalk every year ? Do > you agree that now is the time, where everybody can afford a Smalltalk > machine, unlike in the late 60s, where mainframes had a maximum of > 16MB core and thousands of users running CICS in logical partitions. I dunno. There's certainly a lot of languages that think they are borrowing from Smalltalk lately, but I find that they don't really grok Smalltalk (if they did, they wouldn't try to bolt ALGOL-style syntax onto it). Mike
Date: November 02, 2005
From: kraehe <kraehe@xxxxxxxxxxx>
In-reply-to:
<4367F0F9.70800@xxxxxxxxxxxxxxxxxxxx> <4367F00E.7000406@xxxxxxxxxxxxxxxxxxxx>
References:
<4367F0F9.70800@xxxxxxxxxxxxxxxxxxxx> <4367F00E.7000406@xxxxxxxxxxxxxxxxxxxx>
Moin Mike Anderson, > Stewart Stremler wrote: > > Looks like a homework assignment was given out. > The worst thing is that the evangelical streak in me wants to answer, at > length. :-) > keshec92@xxxxxxxxxxxxxxxxxx wrote: > > Is smalltalk primarily a functional language, an imperative language, or a > > logic-programming language? > You can eliminate two of the options quite easily. /me is cheating by using google ... http://www.justfuckinggoogleit.com/search?q=smalltalk+functional+language " Smalltalk is a tidier functional language than Scheme " http://lists.squeakfoundation.org/pipermail/squeak-dev/1998-September/004676.html and even more interesting .... http://www.justfuckinggoogleit.com/search?q=smalltalk+imperative+language google: smalltalk imperative language http://www.cebollita.org/dugan/history.html and its of course suited for logic programming http://www.justfuckinggoogleit.com/search?q=smalltalk+logic-programming+language SOUL http://prog.vub.ac.be/research/DMP/soul/soul2.html google can eliminate all 3 options, i think. > The answer to this is practically the first sentence of any Smalltalk > introduction, and is one of the best things about Smalltalk. > This is maybe the hardest to answer, but I think you could guess quite > easily if you look at how variables and parameters are declared in the > source code. This is also one of the best things about Smalltalk. /me has also an evangelical streak sometimes. Smalltalk is Smalltalk ... other languages who came later just took a feature out of context and hyped it. Do you agree, that most modern languages become more and more similar to Smalltalk every year ? Do you agree that now is the time, where everybody can afford a Smalltalk machine, unlike in the late 60s, where mainframes had a maximum of 16MB core and thousands of users running CICS in logical partitions. I think the best thing about Smalltalk is that it was 30 years ahead of time. So lets smile and help those students in their class room assignment ... but I hope they not only copy and paste, but also try to understand it. Bye Michael -- mailto:kraehe@xxxxxxxxxxx UNA:+.? 'CED+2+:::Linux:2.6.12'UNZ+1' http://www.xml-edifact.org/ CETERUM CENSEO WINDOWS ESSE DELENDAM
Date: November 01, 2005
From: Mike Anderson <gnu-smalltalk@xxxxxxxxxxxxxxxxxxxx>
In-reply-to:
<20051101213925.GA16013@xxxxxxxxxxxx>
References:
<236d8a235350.235350236d8a@xxxxxxxxxxxxxxxxxx> <20051101213925.GA16013@xxxxxxxxxxxx>
Stewart Stremler wrote: > Looks like a homework assignment was given out. The worst thing is that the evangelical streak in me wants to answer, at length. :-) Mike
Date: November 01, 2005
From: Paolo Bonzini <paolo.bonzini@xxxxxxxxxxx>
Thank you, Paolo
Date: November 01, 2005
From: Mike Anderson <gnu-smalltalk@xxxxxxxxxxxxxxxxxxxx>
In-reply-to:
<236d8a235350.235350236d8a@xxxxxxxxxxxxxxxxxx>
References:
<236d8a235350.235350236d8a@xxxxxxxxxxxxxxxxxx>
Hi, I don't want you to get the impression that Smalltalkers are unfriendly, but you could at least try to disguise the fact that you are trying to get your homework done for you. :-) keshec92@xxxxxxxxxxxxxxxxxx wrote: > Is smalltalk primarily a functional language, an imperative language, or a > logic-programming language? You can eliminate two of the options quite easily. > Is smalltalk purely object-oriented, not object-oriented, or a hybrid (i.e., > you can do either object-oriented or non-object-oriented programming in this > language)? The answer to this is practically the first sentence of any Smalltalk introduction, and is one of the best things about Smalltalk. > Are data types bound to variables and parameters at compile-time? run-time? a > combination? This is maybe the hardest to answer, but I think you could guess quite easily if you look at how variables and parameters are declared in the source code. This is also one of the best things about Smalltalk. Mike
Date: November 01, 2005
From: Stewart Stremler <gst-user@xxxxxxxxxxxx>
In-reply-to:
<236d8a235350.235350236d8a@xxxxxxxxxxxxxxxxxx>
References:
<236d8a235350.235350236d8a@xxxxxxxxxxxxxxxxxx>
begin quoting keshec92@xxxxxxxxxxxxxxxxxx as of Tue, Nov 01, 2005 at 02:10:01PM -0500: > Is smalltalk primarily a functional language, an imperative language, > or a logic-programming language? > > Is smalltalk purely object-oriented, not object-oriented, or a hybrid > (i.e., you can do either object-oriented or non-object-oriented > programming in this language)? > > Are data types bound to variables and parameters at compile-time? > run-time? a combination? Looks like a homework assignment was given out. -- Stewart Stremler
Date: November 01, 2005
From: keshec92@xxxxxxxxxxxxxxxxxx
Is smalltalk primarily a functional language, an imperative language, or a logic-programming language? Is smalltalk purely object-oriented, not object-oriented, or a hybrid (i.e., you can do either object-oriented or non-object-oriented programming in this language)? Are data types bound to variables and parameters at compile-time? run-time? a combination?
Date: November 01, 2005
From: Stefan Schmiedl <s@xxxxxx>
In-reply-to:
<BAY105-F395FD523F9FE3513760C4EC76F0@xxxxxxx>
References:
<BAY105-F395FD523F9FE3513760C4EC76F0@xxxxxxx>
Kenny Holtz (31.10. 21:15): > I am doing a project on smalltalk and cant find any info on this. You can, if you look at some of the excellent books at http://www.iam.unibe.ch/~ducasse/FreeBooks.html Short answers: > > 1. Does smalltalk support some type of routines? yes: methods > 2. Can subroutines have local variables? yes > 3. Can subroutines have parameters? If so, how are parameters passed? > (Pass by value? Pass by reference? Pass by value-result? etc.) Is there > some symbol or keyword in the program that specifies how a particular > parameter will be passed? yes: objects are passed around all the time, there is nothing else in Smalltalk. > 4. Can a subroutine return a value? Must a subroutine always return a > value? yes. If *you* don't return a value, the receiving object of the message is returned as result. > > Any help would be great Don't be content with the one-liners above. Dig into the books and help yourself. You'll enjoy it. 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: November 01, 2005
From: "Kenny Holtz" <khstng50@xxxxxxxxxxx>
I am doing a project on smalltalk and cant find any info on this. 1. Does smalltalk support some type of routines? 2. Can subroutines have local variables?3. Can subroutines have parameters? If so, how are parameters passed? (Pass by value? Pass by reference? Pass by value-result? etc.) Is there some symbol or keyword in the program that specifies how a particular parameter will be passed? 4. Can a subroutine return a value? Must a subroutine always return a value?
Any help would be great