Skip to content

Instantly share code, notes, and snippets.

View mperry's full-sized avatar

Mark Perry mperry

View GitHub Profile
@mperry
mperry / winmerge-diff.bat
Created February 28, 2017 07:00
WinMerge SVN diff integration batch file
@echo off
set WM="%WINMERGE_HOME%\winmergeu.exe"
rem echo parameters 0 %0 1 %1 2 %2 3 %3 4 %4 5 %5 6 %6 7 %7 8 %8 9 %9
set LEFT=%6
set RIGHT=%7
set LEFT_TITLE=%3
set RIGHT_TITLE=%5
start %WM% /B %WM% /e /s /u /dl %LEFT_TITLE% /dr %RIGHT_TITLE% %left% %right%
@mperry
mperry / frege-init.gradle
Last active September 24, 2015 02:24
Frege Gradle project setup script.
// copy this file (frege-init.gradle) to an empty directory.
// Setup the project by typing 'gradle -b frege-init.gradle fregeInit'.
// You can now run 'gradlew build run' to compile, test and run your application.
apply plugin : 'groovy'
repositories {
mavenCentral()
}
@echo off
set WRITE=%1
set READ=%2
:main
call :myset %WRITE% %%READ%%
goto :end
:myset
for /F "usebackq tokens=*" %%i in (`echo %%%2%%`) do set %1=%%i&& set PATH=%%i\bin;%PATH%
goto :eof
:end
@mperry
mperry / genericTypeCheck.groovy
Last active August 29, 2015 14:00
Generic type checking defect for Groovy 2.3.0-rc-4
// bug with Groovy 2.3.0-rc-4, should type check, but does not
// http://jira.codehaus.org/browse/GROOVY-6748
import groovy.transform.TypeChecked
//import org.junit.Test
@TypeChecked
class Class1 {
static <A, B> void method1(A a, B b) {
@mperry
mperry / staticMethodTypeChecking.groovy
Last active August 29, 2015 14:00
Static methods do not type check generic parameters properly
// defect in Groovy 2.3.0-rc-1, code does not compile when it should
// run with: groovy staticMethodTypeChecking.groovy
// http://jira.codehaus.org/browse/GROOVY-6723
/*
Output is (note that line numbers will not match):
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
@Grab("org.functionaljava:functionaljava:3.1")
import fj.F
import fj.data.Stream
import groovy.transform.Memoized
@Memoized
Stream<Integer> primes() {
Stream.cons(2, { ->
Stream.range(3).filter { Integer i ->
@mperry
mperry / setTypeChecking.groovy
Last active August 29, 2015 13:59
Example of found defect in Groovy 2.3.0-beta-2
/**
* This scripts runs successfully with Groovy 2.2.2, but not with Groovy 2.3.0-beta-2
*/
@Grab('junit:junit:4.11')
import groovy.transform.TypeChecked
import org.junit.Test
import static org.junit.Assert.assertTrue
@mperry
mperry / setMonadTest.groovy
Created April 14, 2014 04:08
Testing the set monad and the extension methods added from the monad combinators.
// from https://github.com/mperry/functionalgroovy/blob/master/test-extensions/src/test/groovy/com/github/mperry/fg/SetMonadExtensionTest.groovy
//@GrabResolver('https://oss.sonatype.org/content/groups/public')
@GrabResolver('https://oss.sonatype.org/content/repositories/snapshots/')
@Grab('com.github.mperry:functionalgroovy-main:0.5-SNAPSHOT')
import fj.F
import fj.F2
import fj.function.Integers
import groovy.transform.TypeChecked
@mperry
mperry / optionMonadTest.groovy
Created April 14, 2014 04:06
Testing the option monad.
// from https://github.com/mperry/functionalgroovy/blob/master/test-extensions/src/test/groovy/com/github/mperry/fg/OptionMonadExtensionTest.groovy
//@GrabResolver('https://oss.sonatype.org/content/groups/public')
@GrabResolver('https://oss.sonatype.org/content/repositories/snapshots/')
@Grab('com.github.mperry:functionalgroovy-main:0.5-SNAPSHOT')
import fj.F
import fj.F2
import fj.function.Integers
@mperry
mperry / listMonadTest.groovy
Last active August 29, 2015 13:59
Testing a ListMonad and the extension methods added to List from the monad.
// taken from https://github.com/mperry/functionalgroovy/blob/master/test-extensions/src/test/groovy/com/github/mperry/fg/ListMonadExtensionTest.groovy
//@GrabResolver('https://oss.sonatype.org/content/groups/public')
@GrabResolver('https://oss.sonatype.org/content/repositories/snapshots/')
@Grab('com.github.mperry:functionalgroovy-main:0.5-SNAPSHOT')
import fj.F
import fj.F2
import groovy.transform.TypeChecked
import groovy.transform.TypeCheckingMode
import org.junit.Test