diff --git a/docs/Stacker.html b/docs/Stacker.html index b8431d2ebe8..7e885c0bded 100644 --- a/docs/Stacker.html +++ b/docs/Stacker.html @@ -1352,13 +1352,13 @@ operations. The work will almost be completely limited to the by the compiler. That means you don't have to futz around with figuring out how to get the keyword recognized. It already is. The part of the compiler that you need to implement is the ROLL case in the -StackerCompiler::handle_word(int) method.

See the implementations -of PICk and SELECT in the same method to get some hints about how to complete -this exercise.

+StackerCompiler::handle_word(int) method.

See the +implementations of PICK and SELECT in the same method to get some hints about +how to complete this exercise.

Good luck!

-
Things Remaining To Be Done
+
Things Remaining To Be Done

The initial implementation of Stacker has several deficiencies. If you're interested, here are some things that could be implemented better:

@@ -1367,21 +1367,21 @@ interested, here are some things that could be implemented better:

program. Currently the stack is set to a fixed number which means programs with large numbers of definitions might fail.
  • Enhance to run on 64-bit platforms like SPARC. Right now the size of a - pointer on 64-bit machines will cause incorrect results because of the 32-bit - size of a stack element currently supported. This feature was not implemented - because LLVM needs a union type to be able to support the different sizes - correctly (portably and efficiently).
  • + pointer on 64-bit machines will cause incorrect results because of the + 32-bit size of a stack element currently supported. This feature was not + implemented because LLVM needs a union type to be able to support the + different sizes correctly (portably and efficiently).
  • Write an LLVM pass to optimize the use of the global stack. The code emitted currently is somewhat wasteful. It gets cleaned up a lot by existing passes but more could be done.
  • Add -O -O1 -O2 and -O3 optimization switches to the compiler driver to allow LLVM optimization without using "opt."
  • -
  • Make the compiler driver use the LLVM linking facilities (with IPO) before - depending on GCC to do the final link.
  • +
  • Make the compiler driver use the LLVM linking facilities (with IPO) + before depending on GCC to do the final link.
  • Clean up parsing. It doesn't handle errors very well.
  • Rearrange the StackerCompiler.cpp code to make better use of inserting instructions before a block's terminating instruction. I didn't figure this - technique out until I was nearly done with LLVM. As it is, its a bad example + technique out until I was nearly done with LLVM. As it is, its a bad example of how to insert instructions!
  • Provide for I/O to arbitrary files instead of just stdin/stdout.
  • Write additional built-in words; with inspiration from FORTH