Hi Tristan,
The latest changes have been made available.  Addition of dict_secs.c with
support for ITC & DTC models and code relocatability.
These C files will be used by the cross-compiler to generate an assembler
based build, essentially a one to one instruction equivalent
of the assembler only source build.

Regards,
John S

On Mon, Feb 2, 2026 at 5:42 PM John Sarabacha <[email protected]> wrote:

> I forgot to mention it could also affect the relocatability of your code,
> like moving forth code from flash memory to sram memory.
>
> On Mon, Feb 2, 2026 at 5:29 PM John Sarabacha <[email protected]>
> wrote:
>
>> Hi Tristan,
>> This gives me more confidence in the code base and saves me time
>> investigating further.
>> Have you tried this in sram (your own user created word) rather than
>> flash resident code.
>> The flash resident code won't manifest this problem but the user created
>> words could.
>> Anyway I will now be releasing my version of dict_secs words (with
>> relative addressing) and it
>> will be updated further when the AmForth codebase is more stable.
>>
>> Thanks for getting back to me on this,
>> John S
>>
>>
>>
>> On Mon, Feb 2, 2026 at 3:49 PM <[email protected]> wrote:
>>
>>> Hi John,
>>>
>>> There is no issue with nesting or recursion and the design choice to
>>> branch to an address, rather than to an offset.
>>>
>>> |F=./fac.f
>>> |S|    1|: factorial ( n -- n! )
>>> |S|    2|    dup 2 < if        \ base case: if n < 2, return 1
>>> |S|    3|        drop 1
>>> |S|    4|    else
>>> |S|    5|        dup 1-        \ compute n-1
>>> |S|    6|        recurse       \ recursive call: factorial(n-1)
>>> |S|    7|        *             \ multiply n * factorial(n-1)
>>> |S|    8|    then ;
>>>
>>> > 10 factorial u.
>>> 3628800  ok
>>>
>>> There are situations nowadays where relative branches would make things
>>> easier, but I'm unconvinced these situations really existed on the
>>> target hardware in 2007. However, it is 2026 not 2007, and so is it
>>> worth looking at again? Certainly, and since AmForth is an open source
>>> project, we all have that opportunity.
>>>
>>> Best wishes,
>>> Tristan
>>>
>>> On 2026-02-02 18:30, John Sarabacha wrote:
>>> > Hi  Everyone,
>>> > There is an issue (or a lack of a useful feature) in the Amforth
>>> > distribution (32 bit riscv & arm, since they share the same secondary
>>> > hand
>>> > compiled words), I have made the adjustments to the secondary words
>>> > (which
>>> > I have not released yet, as I am verifying its impact). I suspect
>>> these
>>> > are
>>> > causing some of your tests to fail. This revolves around the use of
>>> > BRANCH
>>> > and CONDBRANCH primary words and the addresses they are using, they
>>> > should
>>> > be relative addresses and not absolute addresses specified in
>>> > .word(...)
>>> > after the BRANCH or CONDBRANCH. If there is no nesting or recursion
>>> > involving these words then no problem, but then you are limiting what
>>> > you
>>> > can do.
>>> >
>>> > Hope this helps,
>>> > John S
>>> >
>>> > _______________________________________________
>>> > Amforth-devel mailing list for http://amforth.sf.net/
>>> > [email protected]
>>> > https://lists.sourceforge.net/lists/listinfo/amforth-devel
>>>
>>>
>>> _______________________________________________
>>> Amforth-devel mailing list for http://amforth.sf.net/
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/amforth-devel
>>>
>>

_______________________________________________
Amforth-devel mailing list for http://amforth.sf.net/
[email protected]
https://lists.sourceforge.net/lists/listinfo/amforth-devel

Reply via email to