Shop OBEX P1 Docs P2 Docs Learn Events
Propeller Tool Symbol Table Limit — Parallax Forums

Propeller Tool Symbol Table Limit

prof_brainoprof_braino Posts: 4,313
edited 2010-06-23 02:04 in Propeller 1
The spin compiler runs out of DAT symbols at 1024 decimals. Is there a way to increase this?

Or am I doing something wrong, is there another way around this?

Thanks!

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
There are 10 types of people in the world,
Those who understand binary, and those who don't

Comments

  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2010-06-22 16:58
    How on earth did you use that many symbols? That's one label for every eight longs in RAM. Can you post your code, please?

    -Phil
  • prof_brainoprof_braino Posts: 4,313
    edited 2010-06-22 17:28
    Phil Pilgrim (PhiPi) said...
    How on earth did you use that many symbols? That's one label for every eight longs in RAM. Can you post your code, please?

    -Phil

    It the development version of propforth 3.0. Its not posted yet (being still in development) but the previous version (propforth 2.7) is posted on google code so you can get an idea of what we're working with.

    The process of making a new version of the kernel is:
    - Redefining the changed words in forth source.
    - Loading the new definitions into the running dictionary.
    - Regenerating the spin source file from the running forth kernel (catches only the new definitions).

    The generated spin code (for the forth words) was around 26,000 characters in 2.7. There's also the assembly support words for the dictionary and internal interpreter. Then there are the assembly the drivers for VGA, SD, etc. Result is things can get big during a development cycle.

    But that's all beside the point. For whatever reason, there is a case where somebody wants more that 1024 DAT symbols.

    To rephrase the original question:
    Can the Propeller Tool's 1024 DAT symbol limit be changed; or is there a method for getting around this limit?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    There are 10 types of people in the world,
    Those who understand binary, and those who don't
  • Mike GreenMike Green Posts: 23,101
    edited 2010-06-22 17:35
    The short answer is no. The Propeller Tool is not configurable (in terms of table sizes, etc.)

    You might try BST or HomeSpun, two 3rd party Spin/PASM compilers. These are designed and written independently and may have different limits. There are already some software packages that will only compile under BST (partly because of the conditional compilation feature), so the lack of compatiibility isn't much of an issue. Like the Propeller Tool, these are freely downloadable.
  • prof_brainoprof_braino Posts: 4,313
    edited 2010-06-22 17:59
    Thanks, Mike. I will check into BST and HomeSpun
    Mike Green said...
    The short answer is no. The Propeller Tool is not configurable (in terms of table sizes, etc.)

    You might try BST or HomeSpun, two 3rd party Spin/PASM compilers. These are designed and written independently and may have different limits. There are already some software packages that will only compile under BST (partly because of the conditional compilation feature), so the lack of compatiibility isn't much of an issue. Like the Propeller Tool, these are freely downloadable.
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    There are 10 types of people in the world,
    Those who understand binary, and those who don't
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2010-06-22 18:43
    Ah, so. I guess Chip didn't anticipate a Forth dictionary when he wrote the compiler!

    -Phil
  • BradCBradC Posts: 2,601
    edited 2010-06-23 02:04
    Mike Green said...
    The short answer is no. The Propeller Tool is not configurable (in terms of table sizes, etc.)

    You might try BST or HomeSpun, two 3rd party Spin/PASM compilers. These are designed and written independently and may have different limits.

    bst artificially imposes the limits of 64 elseif statements, otherwise there appear to be no practical limits (this includes the 8 nested block limit, case statement limits and other boundaries).

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    "I mean, if I went around sayin' I was an emperor just because some moistened bint had lobbed a scimitar at me they'd put me away!"
Sign In or Register to comment.