exoad / meta_javac Goto Github PK
View Code? Open in Web Editor NEWA generalized plugin library for the Javac compiler
License: BSD 4-Clause "Original" or "Old" License
A generalized plugin library for the Javac compiler
License: BSD 4-Clause "Original" or "Old" License
JMCC - JackMeng Configurable Compiler (4j) DORMANT REPO: I am not currently working on this project due to other projects conflicting with my workload [WARNING] It is highly recommended to not use anything from the "com.sun" packages due to them being very vendor specific and thus this standalone plugin will try its best to avoid doing so through the usage via "javax.lang" and the ToolsAPI. However, for older and less specific plugins, "com.sun" will be utilized. Furthermore, due the prevalence of different versions under the "javax.lang" module, all specified versions & utility class will be written and included: 1. 14 -> Files prefixed with "se14_" 2. 9 -> Files prefixed with "se09_" 3. 8 -> Files prefixed with "se08_" Note: 6,7 are not supported due to them being slightly obsolete and the dire preference to stay up to date. Thus different SDK versions will require different build versions and so force. The reason being that many compiler related libraries were removed from the unreliable "com.sun.*" packages. One such JAR that is crucial to make a functional plugin is required from "tools.jar" under "$JAVA_HOME/lib/" which has been unfortunately removed since Java 9 (messed up everything). If you would like to tag along with my development environment, you may follow with the below specifications: JDK Base : OpenJDK Build 2022-07-19 JDK Vendor : Adoptium (Eclipse) Temurin [https://adoptium.net/about/] JDK Version : 17.0.4 (build 17.0.4+8) This repository contains a set of plugins that I have created for the Javac compiler. Much of these plugins aim to increase functionality and the ability for the user to define certain functionalities based on certain compilation params. However, there are certain limitations within the compiler itself that can also influence how things can work and how certain pragmas can be called be between source and compiler. For example, you cannot simply leech a macro find and replace tool onto Javac's annotation parsing phase, instead you most definitely need to either: 1. Write a parser that handles the macros beforehand and then invokes the Javac compiler 2. Write a precheck for Javac that is ran in the first cycle of the Javac compilation life cycle. [This however, heavily depends on Javac implementation] In general, you should not depend on these plugins to make Java much more friendlier, instead, it is probably far less problematic to use a different language. Additionally, plugins here can break at any time due to inconsistent source file versions and other different stuffs between JDK providers and Javac implementations. == File prefixing legend == This legend adds some prefixes that are native to this project and does "se14" For files relating to the specific SE Release Version 14 - Highly environment specific "se08" For files relating to the specific SE Release Version 8 (1.8) - Highly environment specific "se09" For files relating to the specific SE Release Version 9 - Highly environment specific "csun" For files relating to the specific module "com.sun" and utilizes its defunct routines - EXTREMELY ENVIRONMENT & COMPILER SPECIFIC "_" Standard annotation that is checked and validated by this plugin "__" Internal to external interfaces that are exposed so certain functionalities like being able to be recognized as a Javac compiler etc..
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.