| Age | Commit message (Collapse) | Author |
|
|
|
This commit adds support for the frege intellij plugin by
- exposing the frege compiler jar as a dependency, so the plugin can
recognize the standard library.
- adding the name 'fregeRun' as that is used by the plugin to run files
- add support for overriding the main module executed by runFrege so
that arbitary files can be run by the plugin
|
|
tricktron/f-dependent-frege-files-with-wrong-source-path
Frege Compiler Make Mode Test
|
|
The following applies if the frege compiler is run with the `-make`
[flag](https://github.com/Frege/frege/wiki/Compiler-Manpage#make-mode):
Given two dependent frege files. If the `mainSourceDir` property is not
correctly configured, then the frege compiler cannot find the dependent
frege file and will therefore fail the compilation.
The frege compiler starts at the `mainSourceDir` and searches
recursively for dependent modules. E.g. If `mod.Main.fr` imports `other.Dep.fr`
then the frege compilers searches for `mainSourceDir/other/Dep.fr`.
|
|
Renames Configuration: implementation -> frege
|
|
The name implementation is already used by the java plugin and it
leads to conflicts when combining both plugins.
|
|
Adds testFrege Task
|
|
|
|
Adds initFrege Task
|
|
|
|
|
|
Adds Common Gradle Tasks Including Clean
|
|
This adds the following common tasks:
- clean
- check
- assemble
- build
- buildConfiguration task rule
- clean task rule
|
|
tricktron/f-only-compile-mainModule-and-replModule-files
Only Compile Specified Files if Specified
|
|
its dependencies
|
|
New Simpler Repl Task
|
|
|
|
|
|
The replFregeTask has the following new logic:
1. Compiles the specified fregeRepl module (either in the
`build.gradle` via command line option `--replModule=...`) and all
its dependencies.
2. Sets up the correct classpath so that dependent modules don't have
to be imported manually. In addition, it solves the shadowing problem by
removing the replModule java and class file from the classpath.
3. It prints one single command to directly start the repl and load the
specified module.
Bonus: I designed the task so that you can even automate step 3 with
the following bash command: `eval $(./gradlew -q replFrege)`.
|
|
|
|
|
|
|
|
|
|
(WIP)
|
|
- the `compileFregeTask` has a new optional input called `mainModuleName`. If
it is set, it and only its dependencies will be compiled, otherwise all
`.fr`files in the `mainSourceDir`will be compiled.
- the internal `DependencyFregeTask` is deleted because it was only
used by the vscode plugin and I decided to remove this gradle plugin
as a dependency.
- an example project folder was added to test the plugin manually.
|
|
Set Java 11 as Target Version
|
|
|
|
|
|
|
|
Repl with all Source Dependencies
|
|
|
|
|
|
The `replSource` property specifies the frege source file that you want to
load into the repl. It is excluded in the `fregeCompile` task so that
we don't get two java class files (one from `compileFrege` and one
from the fregeRepl `:l` command) that shadow each other on the classpath.
As a result, we can make interactive changes to the `replSource` file and
use the `:r` reload command to see them.
|
|
|
|
|
|
Frege Repl Refactoring
|
|
|
|
- `depsFregeTask`: only internal use for the vscode plugin to automate the
repl code lens.
- `replFregeTask`: simplified to only print the command to start the repl because
starting and interacting through a console is not gradle's core strength. See
https://github.com/tricktron/frege-gradle-plugin/issues/11.
|
|
Increases the max number of test processes, which may reduce the
test execution time.
|
|
|
|
|
|
|
|
Adds `replFrege` Task
|
|
|
|
|
|
Implementation Dependency Configuration
|
|
e.g:
```groovy
dependencies {
implementation 'org.frege-lang:fregefx:0.8.2-SNAPSHOT'
}
```
|
|
Dependent Frege Files
|
|
If a Frege module A depends on Frege module B, then you need to
compile with the `-make` flag so that the compiler resolves the
dependencies and compiles the module B before the module A.
|
|
Incremental Build and Cache Support
|