Commit Graph

19 Commits

Author SHA1 Message Date
Daniel Chao 8ec06e631f Add support for Windows (#492)
This adds support for Windows.
The in-language path separator is still `/`, to ensure Pkl programs are cross-platform.

Log lines are written using CRLF endings on Windows.
Modules that are combined with `--module-output-separator` uses LF endings to ensure
consistent rendering across platforms.

`jpkl` does not work on Windows as a direct executable.
However, it can work with `java -jar jpkl`.

Additional details:

* Adjust git settings for Windows
* Add native executable for pkl cli
* Add jdk17 windows Gradle check in CI
* Adjust CI test reports to be staged within Gradle rather than by shell script.
* Fix: encode more characters that are not safe Windows paths
* Skip running tests involving symbolic links on Windows (these require administrator privileges to run).
* Introduce custom implementation of `IoUtils.relativize`
* Allow Gradle to initialize ExecutableJar `Property` values
* Add Gradle flag to enable remote JVM debugging

Co-authored-by: Philip K.F. Hölzenspies <holzensp@gmail.com>
2024-05-28 15:56:20 -07:00
Daniel Chao 5f4d475d84 Fix local dependency globbing (#496)
This fixes an issue where globbing resources within a local dependency
fails to match anything.
2024-05-16 08:36:37 -07:00
Islon Scherer 27d8a030b1 Remove hidden modifier from many reflect properties for better equality/rendering (#470) 2024-05-03 11:04:15 +02:00
luuvish 2f0436ff2f Cannot assign property with fixed/const in spread (#428)
When using spread syntax with typed object, properties that are fixed
or const cannot be assigned or amended.
This should be checked in the checkTypedProperty() function.
2024-04-16 14:45:33 -07:00
Philip K.F. Hölzenspies 309e3ff4f6 Update expected test outcome 2024-04-10 14:02:36 +01:00
Jungwoo 0f9ef53126 fix: add test 2024-04-05 11:18:02 +01:00
Daniel Chao 28448b5512 Ensure owner and receiver are reset after executing alias (#373)
This fixes an issue where the frame's owner/receiver are not reset
if a type test on a typealias fails.
2024-03-28 07:58:22 -07:00
translatenix deaf6983c4 Follow HTTP redirects (#328)
- Change HttpClient to follow all redirects except HTTPS to HTTP.
- Run language snippet tests with --no-cache and real PackageServer
  instead of pre-seeded cache.
  This increases HTTP test coverage and enables testing of package redirects.
- Change PackageServer to return 301 for request paths starting with /HTTP301/
  and 307 for request paths starting with /HTTP307/.
- Update some outdated test package checksums that apparently weren't verified.
2024-03-21 10:26:07 -07:00
translatenix dfe85b786e Replace magic test port 12110 with 0 (#345)
Also introduce constants for some test package SHAs
to make them easier to update.
2024-03-20 10:47:28 -07:00
translatenix 496e064caf Update to Gradle 8.6 (#245)
- Fix and clean up the pkl-commons-test build script.
- Change tests to read test packages/certs directly from
  the file system instead of packaging and reading them
  from the class path.
- Update expected checksums of some test packages.
- Fix a conflict between Pkl's and Gradle's
  Kotlin libraries in the pkl-gradle project.
- Fix build deprecation warnings.
- Ensure Gradle distribution integrity with `distributionSha256Sum`.
- Manually verify integrity of Gradle wrapper added by this commit.
2024-03-15 17:00:23 -07:00
Daniel Chao faa7ac69bb Fix amending module with abstract class (#319)
This fixes an assertion error that gets thrown if:
1. A module declares a class as abstract
2. An amending module does not use that abstract class as a type

Underneath the hood, the modifiers of the class/typelias object member
is considered different from the modifiers on the VmClass/VmTypeAlias
values.

The object model skips forcing any explicitly members that are explicitly
declared hidden, abstract, or local.
However, it _should_ evaluate any abstract classes found in a module.
So, it's incorrect to apply the same modifiers on the class to the object member.
2024-03-15 07:53:09 -07:00
Islon Scherer 8dc258ef7d fix bug with for generator variables in mixin (#297) 2024-03-07 20:47:21 +01:00
Daniel Chao 6746040362 Fix: add missing "const" and "fixed" modifiers to reflect API (#265)
This fixes an issue where the reflect API does not show fixed or const modifiers on a property.
2024-02-29 07:02:09 -08:00
Islon Scherer 90dedb7837 remove file with \ on the name as windows does not support it (#251) 2024-02-26 15:03:46 +01:00
translatenix d756dff0e7 Delete stale files in LanguageSnippetTests/output
When I delete pkl-core/src/test/files/LanguageSnippetTests/output and
run "gw test", most output files are regenerated, but 46 of them aren't.
I assume these are stale files that should be deleted.
2024-02-22 15:05:14 +00:00
Islon Scherer 611ab3b55c make reflected values renderable (#170) 2024-02-21 09:57:08 +01:00
Kushal Pisavadia 3d1db25864 Fix name resolution in typealias with constraint (#144)
The body of a typealias gets inlined into wherever the typealias
is used. This fixes a bug where the references in the typealias body can
resolve to the wrong value.
2024-02-15 13:28:10 -08:00
Dimitris Apostolou 80aff3afad Fix typos 2024-02-04 18:55:08 +02:00
Peter Niederwieser ecad035dca Initial commit 2024-02-01 14:00:22 -08:00