Jump to content
Excelsior Forums

All Activity

This stream auto-updates     

  1. Yesterday
  2. Topspeed Convert 2 errors not understood

    Hi Dave, Please turn on "M2EXTENSIONS" option to solve the problem with type compatibility. <* +M2EXTENSIONS *> MODULE MyModule; in the command line xc MyModule.mod +m2extensions or in the xc.cfg file. M2EXTENSIONS - enable Modula-2 extensions If the option is set ON, the compiler allows XDS Modula-2 language extensions, such as line comment ("--"), read-only parameters, etc., to be used in the source code. As an alternative you can use type cast MenuProc := SYSTEM.CAST(PROC, NIL); As regards to the second problem, I should see the prototype of "Pos" function to give an advice. With best regards, Konstantin
  3. Last week
  4. I am trying to convert some Topsped M2 library modules to XDS I have only just started using XDS and I am running into problems. I am having a problem understanding the following two errors. The code is as follows [ CODE ] (* This bit is Ok, for Info only *) MenuDefnPtr = POINTER TO MenuDefn; MenuDefn = RECORD MenuProc : PROC; (* Proc. to use while waiting for a responce *) (* Other bits of code *) END; [ END CODE ] (* No problem here *) When a Menu is displayed and awaits a key press, if Menu Proc has been allocated a procedure of type PROC the procedure will be called. and will return to the Menu on completion or a Key press. PROCEDURE SetMenuProc( MenuPtrs : Menu; NewProc : PROC ); this is set to NULLPROC when not required. (* in Topspeed *) MenuProc := NULLPROC; I changed NULLPROC to NIL but neither works. [ ORIGINAL CODE ] * [./p0/src/Menus.mod 556.19 E029] * incompatible types: "PROCEDURE [Modula] ()" "NILTYPE" MenuProc $:= NULLPROC; [ END Original ] [ CHANGED CODE ] * [./p0/src/Menus.mod 556.19 E029] * incompatible types: "PROCEDURE [Modula] ()" "NILTYPE" MenuProc $:= NIL; [ END Changed ] -------------------------------------------------------------------- Another Error that I cannot understand. * [./p0/src/Menus.mod 412.28 W325] * possible ambiguity; two-char array passed PosTilde := Pos( Name,$'~' ); How can '~' be a two char array, I believe CHAR is One Byte. Any help to resolve these two problems would be most welcome. Dave P..
  5. Earlier
  6. launch native java with jet dll

    Hello Stephan, If you want to run let's say class Foo with Oracle JDK and call a class Bar from JET-compiled DLL then it is not possible because these classes will require different VMs. When you run class Foo on Oracle JDK it works on Oracle HotSpot VM. At the same time class Bar can be used only by Java applications which run on Excelsior JET VM. So if you want to call class Bar from class Foo then you need either to compile class Foo with Excelsior JET or create a separate JET-compiled launcher application which will be used just to load class Foo without the need to pre-compile it. If you need more details regarding the provided solutions please don't hesitate to ask. -- Ruslan Kim Excelsior Support
  7. Hi, I want to use existing jet compiled java dll's with java code, thus calling jet compiled java class from java compiled class in byte code. Is there a java JET runtime environment available for running java native code in jet runtime enviornment ?
  8. Why Error E008

    Hi Lion. Thanks for the Info, unfortunately I am running Linux, so stuck in the 1980;s on the command line. At present I am working on some library modules that I wrote way back, once these compile Ok then I can move on to a few programmes written about the same time, I have compiled a couple of Def files Ok, and am happy about an error in a .mod file, as it simply needs another .def file to be compiled first. Then onto the next step, building a programme, finding where it is, and what it's called, and running it. I have a laptop with XP on it which I can take away with me this has XDS installed, and opens with an editor, so may do some work with it while traveling, So far I have found using the command line not as bad as I first thought, but a Linux IDE would be nice. anyway I have cleared a couple of problems and feel a bit more confident using XDS. Thanks again for the info Dave P..
  9. Why Error E008

    Hi Dave, May be you will be interested in the Eclipse-based Modula-2 IDE for XDS developers. It provides coding assistance for XDS Modula-2 on the Windows platform such as code completion, formatting and navigation (show usages / jump to definition). It is open source project. You can download binaries and source code from GitHub https://github.com/excelsior-oss/xds-ide/releases/tag/xds-ide-1.7.0 With best regards, Konstantin
  10. Why Error E008

    Hi, Many thanks for a clear and helpful reply. I have just tried <* +TOPSPEED +> DEFINITION MODULE Menus; Checked and it works fine, I have only just started to use the compiler, and have not used a Project file as I just wanted to compile a simple Def Module to get going with it , one step at a time !. Thanks again Dave P..
  11. Hey there, now I'm trying to install Native XDS-x86 251 on Ubuntu 17.10 and Ubuntu 12.04 but I have this request when I try to do ./apisyms-x86 any idea??
  12. Yes, there will be such precompiled code cache. At the start point, it will be valid for each concrete project and its parts could not be shared for other projects (e.g. with the same libs). Usually, we publish Beta builds of Excelsior JET on our site, so everyone could try it. You can subscribe to Excelsior JET releases (including Beta) mailing list on the main page: https://www.excelsiorjet.com/ Best regards, Excelsior Support Team
  13. Why Error E008

    Hi, it is recommended to turn on the "TOPSPEED" option on global level. Please place "-toopspeed+" into your command line or project file and remove this option from definition module. Other option to use ISO pragma syntax to turn on the "TOPSPEED" option inside definition module. In your example it will <* +TOPSPEED *> DEFINITION MODULE Menus; With best regards, Konstantin
  14. I would like to see the os2 version brought out of retirement as well. Or at least make the last version available for download.
  15. Interesting, it looks like this will replace the functionality I wanted to achieve. It looks like JET will maintain some kind of pre-compiled code cache? Will that be valid for one machine, or could that be shared across various machines, e.g. multiple build agents? I will be definitely interested in helping the testing the smart caching is that is possible. I saw you provide BETA release of JET to chosen customers. Thanks, Martin
  16. Thank you very much for your explanation! In this case, we have an announcement for you about upcoming improvement of compilation time by introducing Smart compilation mode, which will recompile only changed files and their dependencies that could be optimized better after changes. It should significantly reduce compilation time when there are many stable parts in your application, such as third-party libraries. This feature will be included in the next release of Excelsior JET in 2Q'18. However, it will make a multi-component model less useful, so we are planning to deprecate it in 2019. Please take this into account. Best regards, Excelsior Support Team
  17. Why Error E008

    Hi, This is a follow on from my Re-direction query, that's sort of solved. I have tried to compile a simple Definition file but get an error on line1 the file "Menus.def" was used with Topspeed under DOS ., The only change is the inclusion of -TOPSPEED+ at the beginning , without it there is a shed load of errors But I cannot figure out why the e008 error on line 1, Any help with this problem would be most welcome. [dave@localhost xds]$ xc ./p0/def/Menus.def XDS Modula-2 v2.40 [x86, v1.50] - build 10.05.2005 Compiling "./p0/def/Menus.def" * [./p0/def/Menus.def 1.01 E008] * expected symbol "MODULE" $-TOPSPEED+ DEFINITION MODULE Menus; errors 1, no warnings, lines 1, time 0.00 [END CODE] Line 1of the file = -TOPSPEED+ DEFINITION MODULE Menus; E008 expected symbol %s (symbol) The compiler expects the given symbol at the indicated position. The symbol may be one of the following: | ; : . [ ] := ( ) { } , = .. DO END OF THEN TO UNTIL IMPORT MODULE Dave P..
  18. Unable to get Redirection to work.

    Many thanks for the Reply. XDS re-installed, just the same. i've made some progress with the file Name and the Path. Seems that the Dos file name "MENUS..DEF" is unacceptable, but "Menus.def" is Ok. Although the xc.red file in the xds directory has *.def = ./def;./p0/def I have to use xc ./p0/def/FileName on the command line, not sure why ? So now I can get the compiler to work, but immediately hit an error problem, as this is unrelated to this post I have started a new post for the error problem. Dave P..
  19. Our fatjar contains about 14000 class files and JETting takes about 30-45 minutes. That is quite a lot of time. By separating all external libraries into shared libraries and compiling them only once + caching binaries and PDB files we can significantly reduce the build time. Number of our company's class files is about 2500. That is the primary reason for my investigation. Thanks, Martin
  20. Could you please tell us why you have started to investigate the multi-component functionality? What benefit do you try to achieve for your application by using it?
  21. We do use JET, but not the multi-component model yet. Currently we use JET to compile one huge fatjar into a final executable without any shared libraries. I am investigating the multi-component model, preparing a prototype and trying to figure out all the problematic cases our build might go into. Thanks, Martin
  22. We have a little survey about using multi-component model by Excelsior JET users: could you please clarify are you using multi-component model in your real product, and why if so, or are you just exploring Excelsior JET functionality? Thanks
  23. Awesome! Just let me know if I can help with anything. I was using JET 14 on 32bit platform. Thanks, Martin
  24. Hello, Thank you for reporting the problem and providing code sample. We have successfully reproduced the segmentation fault with missed "!uses" directive on your sample application. It is likely to be a bug in our loading and linking engine. We will investigate the cause of the problem and tell you as we get any results. Best regards, Excelsior Support Team
  25. Code sample committed into https://github.com/Crazyjavahacking/excelsior-jet-so-libs-segmentation-fault
  26. Hi, I was playing with multi-component functionality and I found out one place where adding additional error description will be very helpful: when I am creating SO library from a JAR file (e.g. impl.jar) that is using bytecode from another JAR file (e.g. api.jar) that is also compiled into SO library, and when the impl.prj file does not contain !uses api.prj, the application will crash at loadtime with segmentation fault, this is different from the situation when a JAR file compiled into executable will miss the !uses api.prj and which will fail with nice NoClassDefFoundError with stacktrace Would it be possible to add some better error handling, or diagnostics in described situation? Otherwise in huge multi-module project it will be difficult to figure out what is done wrong. I can provide sample Gradle + shell projects where the described situation can be reproduced. Thanks, Martin
  27. Safety of PDB files persistence

    Thank you very much for explanations!
  28. 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.
  1. Load more activity