Jump to content
Excelsior Forums

All Activity

This stream auto-updates     

  1. Today
  2. Safety of PDB files persistence

    Thank you very much for explanations!
  3. Safety of PDB files persistence

    Hi Martin, Let me answer to your questions referring to their numbers only. 1.2. Yes. In fact, glibc is just a standard system library so any linux application depends on it. 1.3. Yes, but note that there is section Compliance Tests. Given the large variety of linux distributions we cannot guarantee totality of support. Also note that if you're building a native (ex. C/C++) library it is not JET-compiled and thus might require higher version of glibc/kernel depending on its compiler settings and build environment. 1.4. JET-compiled applications/libs are compiled by `jc` and linked by `xlink` -- internal compiler and linker placed in $JET_HOME/bin. 2.1. Yes. 2.2.2. Yes, that should work. But note that in JET 15 (scheduled to May) we plan to rework smart recompilation and some things regarding *pdb might change. 2.3. All of those files are used at some step of build process. Removing some of them might result in partial or full recompilation. For example in obj.zip all object files (machine code from compiler) are written and from them the linker composes resulting exe/so. Kind regards, Igor Jorch, Excelsior Support.
  4. Unable to get Redirection to work.

    If you reinstall XDS, can you compile the samples that come with it?
  5. What happened with the compilerheap option?

    Hi Martin, The thing is, `compilerheap` option always made sense only in Excelsior JET targeting x86 CPUs. Starting with JET 14 it is hardwired to maximum and removed from compiler' interface. On the other hand, compiler in Excelsior JET for AMD64 and ARM32 CPUs is itself a JET-compiled Java application, so its heaplimit can be set using JETVMPROP environment variable as following: JETVMPROP=-Xmx2g $JET_HOME/bin/jc ... Kind regards, Igor Jorch, Excelsior Support.
  6. Class unloading

    Hello, You both are right, for now Excelsior JET doesn't have Class GC. We're working to make it possible, but it isn't the main priority for nearest releases. Kind regards, Igor Jorch, Excelsior Support.
  7. Class unloading

    According to the JLS, finalize() method is not guaranteed to be executed. I guess JET runtime will simply hold strong reference to the classloader and that prevents CL to be unloaded.
  8. Yesterday
  9. Class unloading

    I am working on an app that has a plugin system that loads plugins (jars) with their own classloader. Under java I can see that when a plugin is stopped the classloader is finalized and collected. But under excelsior the finalize method is never called, the memory usage increases over time (as plugins start and stop), and according to visualvm no classes are ever unloaded. Does excelsior jet simply never unload classes loaded my the jit compiler? EDIT: On further investigation it seems that no classloader will be gc after it has loaded classes.
  10. Safety of PDB files persistence

    Hi, I was performing some testing for multi-component JET applications and I have couple of questions. System requirements: The documentation is mentioning the following minimal system requirements for Linux OS: glibc >= 2.12 linux kernel >= 2.6.32 What does this practically mean? Is JET compiler internally using glibc in the given version? Will all of the produced executables/shared libs be runnable under any Linux OS system that contains at least the given glibc? What compiler/linked is used for the produced executable/shared libs? Project Data Base files Are *.pdb files system independent on the same OS family (e.g. Ubuntu Linux)? Is it possible to safely cache PDB files on the same machine for later usage? In our case it will be very beneficial to pre-compile all external JARs into SO files and only re-compile the application JAR file. For that we will need PDB files (which we can store in artifact repository). Would that work? Multiple files in the "project_jetpdb" directory are created, but it seems like not all of them are necessary (executable will be compiled and linked without them). Can you please verify the following assumptions are correct? bod.pdb (necessary), xyz.efs (not necessary), xyz.rsp (not necessary), xyz.env (becessary), lambdaclasses.pdb (not necessary and looks like dynamically generated at each run), obj.zip (not necessary), rdf.pdb (not necessary and looks like dynamically generated at each run), sym.pdb (necessary) Thanks, Martin
  11. Run-time linking of shared libraries

    Thank you, your answer is explaining everything well.
  12. Cleanup of files in JET directory

    Thank you, this is helpful.
  13. Run-time linking of shared libraries

    Hi Martin. Note that this citation is from section Run time linking and above that the Load time linking and their differences are described. If you are making a multi-component application following the steps from section 11.3 Multi-component applications of User's Guide, then there are `!uses` directives in your project files. That directive enforces load-lime linking for specified components, so there is no need in provoking run-time linking for them. Pretty the same is effect of `!module` directive, yet it is more restritive in a way that while `!uses` allows inter-component (but not cyclic) dependecies, for `!module` there must be no static dependencies between libs. To sum this up, there are three different ways to tell JET-compiled executable about additional classes in a separate library: `!uses lib1.prj` directive, which provides load-time linking and allows AOT-compiler to see info about classes compiled into lib1 so that it can resolve static dependencies onto them. `!module lib2.so` directive, which also provides load-time linking but doesn't know anything about how this library were compiled, so cannot provide AOT-compiler with info needed to resolve static dependencies onto classes. `-dll:class-...:lib3.so` runtime property, which provides run-time linking and thus cannot influent AOT compilation in any way. Hope this helps, but don't hesitate to ask additional questions if anything not clear enough. Kind regards, Igor Jorch, Excelsior Support.
  14. Cleanup of files in JET directory

    Hi Martin, You better not remove those folders manually, but use JETSetup utility for it. What you need is the following commands: jetsetup -remove-profile <profile-index> jetsetup -cleanup-backup Note that on Windows you need to add `-batch` option before any others. Please refer to User's Guide section "2.5 JET Setup options summary" for futher info. Kind regards, Igor Jorch, Excelsior Support.
  15. Cleanup of files in JET directory

    Hi, I am trying to analyze which files in JET directory are no longer necessary. The question is whether for proper JET execution do we need: older JRE profiles, setup/backup folder, setup/prebuilt folder, setup/updates folder. Can you please verify? Thanks, Martin
  16. Last week
  17. Run-time linking of shared libraries

    Hi, I was testing multi-component applications in JET 14 and the documentation is saying: It looks like that I don't have to use mentioned switch if I put all the compiled *.so shared libraries in the same directory as the binary. Is that correct? Please verify. Thanks, Martin
  18. Hi, I was looking at the JET 14 documentations and it seems like `compilerheap` option is no longer supported. Why is it so? Is there any replacement? Thanks, Martin
  19. Documentation of RSP file format

    Hi Martin, No, there is no such documentation. This file is just linker configuration, and the only documentation available about it is help which is printed for `xlink.exe`. Regards, Igor Jorch, Excelsior Support
  20. Documentation of RSP file format

    Hi, is there any documentation describing the RSP file format? Thanks, Martin
  21. Earlier
  22. Documentation of xlink, xxd and xpack

    Hi Martin, Yes, the effect of this command is that your exe stats to explicitly import all symbols, that are exported by the specified .so. However, the reason you need this in your build is unknown - you can try to remove it and see what would happen, most probably everything will continue to work fine. Kind regards, Igor.
  23. Documentation of xlink, xxd and xpack

    This is exactly what we are executing: xlink @"jet_project_release_jetpdb/release.rsp" /lib/i386-linux-gnu/libm.so.6 Is my assumption correct that for some reason the shared library in our build is needed to be explicitly linked?
  24. Documentation of xlink, xxd and xpack

    Hello Martin, There is no documentation (besides built-in help) for most of our command-line tools. Most notable exceptions are jc and xpack, which are JET compiler and JET packager respectively. The xlink tool is our linker and should not be used explicitly, thus it is not documented. As for xxd -- I have no idea, what this tool could be. Best Regards, Ivan
  25. Hi, we have some old Excelsior JET scripts which are explicitly executing xlink, xxd and xpack binaries. In the latest version Jet 14 the official documentation is mentioning xpack, but not the others binaries. What are they used for? Is there any more specific documentation on those libraries? Thanks, Martin
  26. Unable to run binary

    Hello Jane, Currently Excelsior JET doesn't support cross-platform builds. So in order to compile application for target Linux machine, you will need to use Excelsior JET for Linux, on a Linux building machine (either hardware or virtual machine can work). Note however, that Excelsior JET doesn't support Unix targets except for OS X. So if you are trying to compile for Unix (e.g. FreeBSD-based system), you can try compiling for Linux and running the application in Linux Binary Compatibility mode (see https://www.freebsd.org/doc/handbook/linuxemu.html). We have not tested this approach, so it may or may not work for you or target Unix system. Best Regards
  27. Unable to run binary

    Hello, I am using the trial version of excelsior jet. I am working on mac and have downloaded the version for it. However, my compiled binaries should work on aws unix. I have compiled my jar to a binary ( selected server in the distribution type ) and packaged it as single folder. However, I am not able to run it on my aws machine. I am getting the error of When running file <filename> I am getting the following: So the question is, how can I generate a binary of my jar for unix while I am running on mac. Thank you
  28. JIT cache is deprecated?

    sent to java@excelsior-usa.com please check
  29. JIT cache is deprecated?

    Hi, Can you please send us the whole log with JIT-compiled classes, as well as *.vaz file. If you prefer, you can send them directly to our support contact via email: java@excelsior-usa.com
  1. Load more activity