spitbol / x64

SPITBOL x64 provides raw power and speed for non-numeric computation on the x86_64 architecture
GNU General Public License v3.0
256 stars 23 forks source link

Fixed some old uppercase spitbol programs. Got spx modules to load. Much faster! #7

Closed hibengler closed 3 years ago

hibengler commented 6 years ago

It took a while, as I am rusty at assembly, but I fixed the .spx file so it could be read without croaking. The main problem was that the stack size reported was 12 bytes long - 12? Turns out, there were some hard-coded 4's in there. That caused the redirect minimal code to go right on past the upper boundary of its checking and modify the offsets on much more than the stack.

Also, calling to assembly uses a new style to receive calls from standard C - different than pop/store of the past.

I learned alot about how the system works, by reading through this code, and 88source as a second source. And in doing so, I received dramatic speedups on one of my projects - an english parser. This parser knows 90,000 words. It took 11 minutes to generate the complex patterns to match that. On regular spitbol, the startup time was a much better 18 seconds. But with the .spx file, the speed went to 0.045 seconds to startup.

The compression code is still broken. That can be fixed at a later time. I am thinking of switching out that section for a gpg code block that includes digital signatures of the code, and encryption requiring certain keys. This would go a long way to abate the fear of spitbol, basically being self modifying code.

daveshields commented 3 years ago

Hib,

Sorry, I never had time to look into this.

I haven't worked on SPITBOL for X64 for a couple of years. Lately I've started work on porting SPITBOL to arm, with special emphasis on the Raspberry Pi.

If you are still interested in working on the X64 version, I have just invited you to join the project. I am more than willing to grant you the access so you can make the changes you deem fit.

I haven't touched OSINT except to rename a couple of files (they're no longer needed).

I have reorganized the main directory, mainly to rename many of the files, so I can use a common convention for x64 and arm implementations. These changes should be self-evident.

Please let me know if you are interested in working on this. Feel free to call me at 914-924-8781 if you have any questions (I live near New York City).

thanks, dave

On Thu, Sep 10, 2020 at 3:42 PM Hib Engler notifications@github.com wrote:

Closed #7 https://github.com/spitbol/x64/pull/7.

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/spitbol/x64/pull/7#event-3752832164, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAARPPJCSH3BCQSUMYXAE4DSFETZTANCNFSM4EXGVWBQ .

hibengler commented 3 years ago

Thanks.  I'll do what I can.

I am also working on a variant that converts minimal into C. Hoping to bring spitbol to emscriptem, possibly GPU's. It is almost working. :)

On 9/11/20 12:58 PM, dave shields wrote:

Hib,

Sorry, I never had time to look into this.

I haven't worked on SPITBOL for X64 for a couple of years. Lately I've started work on porting SPITBOL to arm, with special emphasis on the Raspberry Pi.

If you are still interested in working on the X64 version, I have just invited you to join the project. I am more than willing to grant you the access so you can make the changes you deem fit.

I haven't touched OSINT except to rename a couple of files (they're no longer needed).

I have reorganized the main directory, mainly to rename many of the files, so I can use a common convention for x64 and arm implementations. These changes should be self-evident.

Please let me know if you are interested in working on this. Feel free to call me at 914-924-8781 if you have any questions (I live near New York City).

thanks, dave

On Thu, Sep 10, 2020 at 3:42 PM Hib Engler notifications@github.com wrote:

Closed #7 https://github.com/spitbol/x64/pull/7.

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/spitbol/x64/pull/7#event-3752832164, or unsubscribe

https://github.com/notifications/unsubscribe-auth/AAARPPJCSH3BCQSUMYXAE4DSFETZTANCNFSM4EXGVWBQ .

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/spitbol/x64/pull/7#issuecomment-691207584, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADBW6WGFM3XHODTVDOMWWHDSFJJMXANCNFSM4EXGVWBQ.

daveshields commented 3 years ago

Hib,

Let me know if you have the proper permissions/rights to make changes to the x64 version.

Re doing implementation in C, I could never figure out how to do the indirect branches that are essential to indirect threaded code, that is, to branch to any label label in the minimal code from within C, including an address held within a block.

As an aside, a few years ago I wrote an implementation of spitbol in go, using an interpreter. All that remains would be do do complete OSINT in go. It would be an interesting exercise, and would then allow porting spitbol to any architecture that go supports, which is virtually almost all of them.

thanks, dave

On Fri, Sep 11, 2020 at 2:57 PM Hib Engler notifications@github.com wrote:

Thanks. I'll do what I can.

I am also working on a variant that converts minimal into C. Hoping to bring spitbol to emscriptem, possibly GPU's. It is almost working. :)

On 9/11/20 12:58 PM, dave shields wrote:

Hib,

Sorry, I never had time to look into this.

I haven't worked on SPITBOL for X64 for a couple of years. Lately I've started work on porting SPITBOL to arm, with special emphasis on the Raspberry Pi.

If you are still interested in working on the X64 version, I have just invited you to join the project. I am more than willing to grant you the access so you can make the changes you deem fit.

I haven't touched OSINT except to rename a couple of files (they're no longer needed).

I have reorganized the main directory, mainly to rename many of the files, so I can use a common convention for x64 and arm implementations. These changes should be self-evident.

Please let me know if you are interested in working on this. Feel free to call me at 914-924-8781 if you have any questions (I live near New York City).

thanks, dave

On Thu, Sep 10, 2020 at 3:42 PM Hib Engler notifications@github.com wrote:

Closed #7 https://github.com/spitbol/x64/pull/7.

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/spitbol/x64/pull/7#event-3752832164, or unsubscribe

< https://github.com/notifications/unsubscribe-auth/AAARPPJCSH3BCQSUMYXAE4DSFETZTANCNFSM4EXGVWBQ

.

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/spitbol/x64/pull/7#issuecomment-691207584, or unsubscribe < https://github.com/notifications/unsubscribe-auth/ADBW6WGFM3XHODTVDOMWWHDSFJJMXANCNFSM4EXGVWBQ .

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/spitbol/x64/pull/7#issuecomment-691260448, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAARPPPGXSN2ZXURXX6WQQ3SFJXKRANCNFSM4EXGVWBQ .