Wolfgang Lux
c4edd15418
Fix translation of cascades to avoid linear growth of the stack size
2025-04-18 17:20:04 +02:00
Wolfgang Lux
24f4aa5aab
Add optimization to merge pop after store into a single bytecode
2025-04-18 16:05:28 +02:00
Wolfgang Lux
50bea91ee5
Add bytecode instructions for a more efficient translation of assignments
2025-04-18 11:42:41 +02:00
Wolfgang Lux
34bf3a32c1
Remove erroneous code that was increasing the required stack size
2025-04-18 11:36:41 +02:00
Wolfgang Lux
cfc2540b25
Allow for temporaries in blocks
2025-04-13 22:08:51 +02:00
Wolfgang Lux
81702d35bd
Avoid shift/reduce conflicts for array parser
2025-04-13 21:43:02 +02:00
Wolfgang Lux
af7d12cdcf
Update grammar file to support modern Bison
2025-04-13 21:21:17 +02:00
Wolfgang Lux
8d856d505e
Fix bug where duplicate argument names were not detected
2025-04-13 17:13:32 +02:00
Wolfgang Lux
5b7d8c1cf1
Refactor to prepare for blocks with temporaries
2025-04-13 16:56:24 +02:00
Wolfgang Lux
9e2fca4a0d
Factor out code for the compilation of blocks.
2025-04-13 15:54:07 +02:00
Wolfgang Lux
a8c10032c8
Remove redundant code to discard temporary variables
2025-04-13 15:40:49 +02:00
Wolfgang Lux
1682f849a4
Implement Smalltalk collection protocol methods for NSSet
2025-04-06 17:53:51 +02:00
Wolfgang Lux
232d35f218
Add keysDo: to the collection protocol methods for NSDictionary
2025-04-06 17:44:14 +02:00
Wolfgang Lux
c31a7dc5e9
Return nil from detect: if no match was found
2025-04-06 17:40:27 +02:00
Wolfgang Lux
ed62d8d758
Add methods whileTrue and whileFalse to STBlock
2025-04-06 17:29:45 +02:00
Wolfgang Lux
1a6660563e
Prevent exception when sending a nil argument to a block
2025-04-06 17:24:06 +02:00
Wolfgang Lux
9a3eef25c5
Use numberWithBool: when pushing true and false values onto the stack.
2019-03-27 09:22:10 +01:00
Wolfgang Lux
09841d976e
Report unimplemented script methods rather than returning nil
2019-03-25 10:54:17 +01:00
Wolfgang Lux
f3ce2b7f32
Implement Smalltalk collection protocol methods for NSDictionary
2019-02-22 11:24:15 +01:00
Graham Lee
705e29eb3c
correct the spelling of deprecated throughout
2018-03-20 21:10:02 +00:00
Wolfgang Lux
fdce6b2210
Remove comma that unintentionally breaks an exception format string
2017-12-27 18:59:05 +01:00
Wolfgang Lux
37e2cfb6cc
Fix wrong return type in method declaration
2017-12-27 17:43:44 +01:00
Wolfgang Lux
5e87e76a79
Fix bug where the cached context of a block could be reused prematurely.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@38146 72102866-910b-0410-8b05-ffd578937521
2014-11-01 18:26:39 +00:00
Wolfgang Lux
54ff99c389
Fix a whole bunch of space leaks in StepTalk.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@38145 72102866-910b-0410-8b05-ffd578937521
2014-11-01 17:47:23 +00:00
Wolfgang Lux
cf50d0e507
Remove unused interpreter attribute and corresponding argument from
...
STBlockContext and its initializer.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@38119 72102866-910b-0410-8b05-ffd578937521
2014-10-14 20:13:09 +00:00
Wolfgang Lux
e352e229d5
Remove unused environment argument from STMethodContext initializer.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@38118 72102866-910b-0410-8b05-ffd578937521
2014-10-14 20:03:39 +00:00
Wolfgang Lux
51b17b1ba5
Set the return value of the invocation also when the exit pseudo
...
method of a Smalltalk script object is called.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@38117 72102866-910b-0410-8b05-ffd578937521
2014-10-14 07:58:57 +00:00
Wolfgang Lux
8b6c53712c
Add missing nil terminator to argument list of arrayWithObjects.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@38116 72102866-910b-0410-8b05-ffd578937521
2014-10-14 07:51:02 +00:00
Wolfgang Lux
a58da09aa0
Fix another mutable vs. non-mutable array mismatch detected by clang.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@38065 72102866-910b-0410-8b05-ffd578937521
2014-09-09 15:11:46 +00:00
Wolfgang Lux
27f1ac7524
Use non-mutable array to fix mutable vs. non-mutable array mismatch
...
detected by clang.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@38064 72102866-910b-0410-8b05-ffd578937521
2014-09-09 15:00:54 +00:00
Wolfgang Lux
779c0b47c4
Fix NSDebugLLog format issues detect by clang.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@38063 72102866-910b-0410-8b05-ffd578937521
2014-09-09 13:52:49 +00:00
Wolfgang Lux
66bd2c33fe
Revert bogus change
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@37540 72102866-910b-0410-8b05-ffd578937521
2014-01-06 11:24:16 +00:00
Richard Frith-MacDonald
fad9c634f1
trivial optimisation
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@37485 72102866-910b-0410-8b05-ffd578937521
2013-12-20 14:42:10 +00:00
Wolfgang Lux
70936d6e15
Fix bug where the Smalltalk source reader was loosing the last character
...
of a symbol token that appears immediately before the end of input.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@36777 72102866-910b-0410-8b05-ffd578937521
2013-06-30 17:44:50 +00:00
Wolfgang Lux
254398ccdf
Fix bug where the Smalltalk source reader was loosing the last character
...
of a symbol token that appears immediately before the end of input.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@36776 72102866-910b-0410-8b05-ffd578937521
2013-06-30 17:42:15 +00:00
Wolfgang Lux
0e94ff5bac
Fix bug where the Smalltalk source reader was setting a wrong token
...
range for character literals.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@36775 72102866-910b-0410-8b05-ffd578937521
2013-06-30 17:30:52 +00:00
Wolfgang Lux
bfed68b1c3
Fix bug where the Smalltalk source reader would accept an incomplete
...
exponent in a real number, e.g., '1e'.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@36774 72102866-910b-0410-8b05-ffd578937521
2013-06-30 17:24:51 +00:00
Wolfgang Lux
4298e255e7
Prevent out of range accesses for the input string in the Smalltalk
...
source reader.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@36773 72102866-910b-0410-8b05-ffd578937521
2013-06-30 17:13:05 +00:00
Wolfgang Lux
c046955909
Tidy Smalltalk source reader.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@36772 72102866-910b-0410-8b05-ffd578937521
2013-06-30 16:54:32 +00:00
Wolfgang Lux
f1d9694b1c
Change Smalltalk grammar to allow empty list of temporaries.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@36662 72102866-910b-0410-8b05-ffd578937521
2013-05-26 16:14:13 +00:00
Wolfgang Lux
3f8eeb9ff0
StepTalk Smalltalk compiler: int->NSInteger transition
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@36658 72102866-910b-0410-8b05-ffd578937521
2013-05-26 15:51:26 +00:00
Wolfgang Lux
ba12bd3874
Fix bug in Smalltalk reader where the last character of an identifier
...
was dropped when the assignment operator ':=' follows it immediately.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@36480 72102866-910b-0410-8b05-ffd578937521
2013-04-06 12:22:28 +00:00
Wolfgang Lux
9feb26b63c
Fix -collect: method to properly handle nil results from block.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@36456 72102866-910b-0410-8b05-ffd578937521
2013-04-03 07:46:24 +00:00
Wolfgang Lux
5cfb99c758
Fix Smalltalk reader to always return correct line numbers.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@36455 72102866-910b-0410-8b05-ffd578937521
2013-04-03 07:42:02 +00:00
Wolfgang Lux
ac8fc9cbb6
Fix bug where the STInterpreterReturnException was not handled when a
...
block returns nil.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@36426 72102866-910b-0410-8b05-ffd578937521
2013-03-25 11:32:20 +00:00
Wolfgang Lux
b7a0150e02
Fix stack underflow exception when computing the value of an empty
...
block.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@36422 72102866-910b-0410-8b05-ffd578937521
2013-03-24 17:29:43 +00:00
Wolfgang Lux
1fc2e5fb63
Follow Smalltalk convention to return the receiver from a method
...
without an explicit return statement.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@36421 72102866-910b-0410-8b05-ffd578937521
2013-03-24 17:24:11 +00:00
Wolfgang Lux
fd46046983
Fix to allow using Smalltalk blocks even after the method containing
...
their definition has returned.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@36420 72102866-910b-0410-8b05-ffd578937521
2013-03-24 17:19:55 +00:00
Wolfgang Lux
b5aeea6a29
Implement correct semantics for return statements inside a Smalltalk
...
block, which is to return from the method containing the block's
definition.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@36419 72102866-910b-0410-8b05-ffd578937521
2013-03-24 17:02:20 +00:00
Wolfgang Lux
9b35f05577
Fix Smalltalk compiler bug: The value of a statement sequence is the
...
value of its last statement.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@36410 72102866-910b-0410-8b05-ffd578937521
2013-03-23 20:02:23 +00:00