tcunit/TcUnit

Include .library in release

Roald87 opened this issue ยท 6 comments

I'm currently upgrading a project from 1.0 to 1.2. Version 1.2 was installed with the .compiled-library version. Now I'm experiencing some issues and want to figure out how to solve them. For this it would be useful to have the .library version, such that I can step into the code when debugging.

Furthermore it would be useful in general. For example when I'm curious how a function is implemented. Now if I want to see the source code I have to clone the project, or look on GitHub.

I'm not sure if there are any drawbacks/differences between the .compiled-library and .library version, apart from hiding the source code. Infosys only mentions:

To make library modules view- and access-protected, a library project can be saved in a precompiled format (.compiled-library) โ€“ see Command Save as library.

Since TcUnit is open source, I do not see the need to hide the source code. But maybe I'm missing something.

Of course I can compile my own version, but for convenience it would be nice to include this in the release ๐Ÿ˜„

Good idea. Do you know if there is penatly in any other way to run this with a .library instead of .compiled-library? I remember I had a discussion with Beckhoff about this at some point, but it never got to a point where something was concluded.

Can you investigate it?

I send support an email.

I got an answer! The .library files are bigger because they contain all source code. Apart from that there are no differences.

Found a bit more info on this InfoSys page

*.library (source library)

  • You can open a source library (for viewing and/or editing) by using the command Add Existing Item, which is available on the PLC node within the project tree.
  • You can "step" into a source library using the usual debug functionality.

*.compiled-library (compiled library)

  • This file extension can be used to save a library project in a compiled format. An encrypted image of the precompile context of the library is stored, which means the implementations of the library function blocks are no longer accessible or visible.
  • A compiled library cannot be opened or debugged.
  • Otherwise, *.compiled-library files behave like *.library files. You can therefore install and reference them in the same way.
  • The source code of a library can be protected by using the compiled library format. In addition, the library files are smaller and the loading times are shorter.

You've convinced me ๐Ÿ‘

Latest release has been updated: https://github.com/tcunit/TcUnit/releases/tag/1.2.0.0

Documentation updated as well: https://tcunit.org/introduction-user-guide/

Thanks!