TailBite is a tool that splits the PureBasic.asm file generated by PureBasic 4.0 beta 1 for Windows from a .pb source file into several ASM files, and compiles them into a PureBasic library using different tools included with PureBasic.

Although this can be made manually, this tool allows to compile the final user library in just one step, from the original .pb source file, and requires no ASM knowledge from the user.

The PureLibraries compiled with TailBite use the same format as any other UserLibrary (in fact, they're just like any other ASM library). It doesnīt mean the functions included in them will be faster than using PureBasic procedures; they will be as fast (or as slow) as the original .pb code.

So, whatīs the use of a tool like that? In my opinion, it could be useful for any of these purposes:

What TailBite is finally used for, is not my business. Personally, I want to use it for the first of these reasons. But, if your only motivation is only the third, my advice would be to consider using plain PureBasic procedures, as you wonīt get any real advantage by using TailBite and itīll be easier for you to get help from other PureBasic coders. But itīs up to you.

In the first case, once you get a working stable library, you should dig into the ASM code splitted by TailBite and do some easy optimizations -providing you have some knowledge of ASM-. Not that PureBasic generates unoptimized code -on the contrary-, but coding directly in ASM allows you to go further into optimization, and use some tricks to get a better result, which will make the difference between using a procedure or using an ASM PureLibrary.

IMPORTANT: if you plan to release a library, made with TailBite or not, you should be careful with the function names you use in order not to conflict with native libraries or other UserLibraries. There's not a standard in this issue, but a good habit would be to give your functions a name like: MyNick_MyLib_MyFunction, which would avoid any possible conflicts. MyNick_MyFunction should be ok too, as long as you don't reuse your own libraries function names.

In case that you release a library coded with TailBite, I encourage you to release the source code as well, since other people will be able to help you trace bugs or learn from your code. Once again, itīs up to you.