Issues
- modern style cfcs are parsed into lines twice into pageSourceCodes during compilationLDEV-5165
- initial stackoverflow compiling source code in CFMLTransformerLDEV-5164Resolved issue: LDEV-5164Michael Offner
- parser gets slower and slower with larger source filesLDEV-4603Resolved issue: LDEV-4603Michael Offner
- java.lang.StackOverflowError with 1.5mb cfml fileLDEV-4602Resolved issue: LDEV-4602Zac Spitzer
- improve contextual json deserializing error feedback, Syntax Error, invalid ExpressionLDEV-4225Resolved issue: LDEV-4225Pothys - MitrahSoft
- Lucee attempts to process a CF tag embedded as characters within a string within a function within a componentLDEV-3402Michael Offner
- CFScript Parser confused by <cfcomponent> stringLDEV-3228Michael Offner
- parseDateTime doesn't work with offsets greater than 12 hoursLDEV-1256Resolved issue: LDEV-1256Igal Sapir
- CFScript parses outputLDEV-1152Resolved issue: LDEV-1152Michael Offner
- Lucee try to parse coldfusion tag in commented line.LDEV-285Michael Offner
10 of 10
modern style cfcs are parsed into lines twice into pageSourceCodes during compilation
Description
Environment
None
relates to
Details
Assignee
UnassignedUnassignedReporter
Zac SpitzerZac SpitzerPriority
NewLabels
New Issue warning screen
Before you create a new Issue, please post to the mailing list first https://dev.lucee.org
Once the issue has been verified, one of the Lucee team will ask you to file an issue
Sprint
Details
Details
Assignee
Unassigned
UnassignedReporter
Zac Spitzer
Zac SpitzerPriority
Labels
New Issue warning screen
Before you create a new Issue, please post to the mailing list first https://dev.lucee.org
Once the issue has been verified, one of the Lucee team will ask you to file an issue
Sprint
Created 20 November 2024 at 16:10
Updated 17 December 2024 at 15:54
Activity
Show:
I noticed there’s a lot of repeated
PageSourceCode
initial parsing into lines for cfc'shttps://github.com/lucee/Lucee/blob/6.2/core/src/main/java/lucee/transformer/cfml/tag/CFMLTransformer.java#L201
this is a cfc using nice modern
component { }
style, yet it’s being parsed twice, due to the fallback logic for handling cfcs inside cfscript etci.e. https://github.com/Ortus-Solutions/TestBox/blob/development/system/reports/ConsoleReporter.cfc
[java] [script] PageSourceCode1: D:\work\lucee6\temp\testbox\testbox\system\reports\ConsoleReporter.cfc [java] [script] java.lang.Exception: Stack trace [java] [script] at lucee.aprint.ds(aprint.java:68) [java] [script] at lucee.aprint.ds(aprint.java:91) [java] [script] at lucee.aprint.ds(aprint.java:103) [java] [script] at lucee.transformer.util.PageSourceCode.<init>(PageSourceCode.java:38) [java] [script] at lucee.transformer.cfml.tag.CFMLTransformer.transform(CFMLTransformer.java:159) [java] [script] at lucee.runtime.compiler.CFMLCompilerImpl._compile(CFMLCompilerImpl.java:103) [java] [script] at lucee.runtime.compiler.CFMLCompilerImpl.compile(CFMLCompilerImpl.java:75) [java] [script] at lucee.runtime.PageSourceImpl._compile(PageSourceImpl.java:498) [java] [script] at lucee.runtime.PageSourceImpl.compile(PageSourceImpl.java:464) [java] [script] at lucee.runtime.PageSourceImpl.loadPhysical(PageSourceImpl.java:371) [java] [script] at lucee.runtime.PageSourceImpl.loadPageThrowTemplateException(PageSourceImpl.java:235) [java] [script] at lucee.runtime.PageSourceImpl.loadPage(PageSourceImpl.java:1125) [java] [script] at lucee.runtime.component.ComponentLoader._search(ComponentLoader.java:382) [java] [script] at lucee.runtime.component.ComponentLoader._search(ComponentLoader.java:212) [java] [script] at lucee.runtime.component.ComponentLoader.searchComponent(ComponentLoader.java:100) [java] [script] at lucee.runtime.functions.other._CreateComponent.call(_CreateComponent.java:67) [java] [script] new src code [java] [script] PageSourceCode2: D:\work\lucee6\temp\testbox\testbox\system\reports\ConsoleReporter.cfc [java] [script] java.lang.Exception: Stack trace [java] [script] at lucee.aprint.ds(aprint.java:68) [java] [script] at lucee.aprint.ds(aprint.java:91) [java] [script] at lucee.aprint.ds(aprint.java:103) [java] [script] at lucee.transformer.util.PageSourceCode.<init>(PageSourceCode.java:46) [java] [script] at lucee.transformer.cfml.tag.CFMLTransformer.transform(CFMLTransformer.java:203) [java] [script] at lucee.runtime.compiler.CFMLCompilerImpl._compile(CFMLCompilerImpl.java:103) [java] [script] at lucee.runtime.compiler.CFMLCompilerImpl.compile(CFMLCompilerImpl.java:75) [java] [script] at lucee.runtime.PageSourceImpl._compile(PageSourceImpl.java:498) [java] [script] at lucee.runtime.PageSourceImpl.compile(PageSourceImpl.java:464) [java] [script] at lucee.runtime.PageSourceImpl.loadPhysical(PageSourceImpl.java:371) [java] [script] at lucee.runtime.PageSourceImpl.loadPageThrowTemplateException(PageSourceImpl.java:235) [java] [script] at lucee.runtime.PageSourceImpl.loadPage(PageSourceImpl.java:1125) [java] [script] at lucee.runtime.component.ComponentLoader._search(ComponentLoader.java:382) [java] [script] at lucee.runtime.component.ComponentLoader._search(ComponentLoader.java:212) [java] [script] at lucee.runtime.component.ComponentLoader.searchComponent(ComponentLoader.java:100) [java] [script] at lucee.runtime.functions.other._CreateComponent.call(_CreateComponent.java:67)
some parsing perf stats in nanoseconds, so it’s less than 1ms per larger file but it all adds up
https://github.com/Ortus-Solutions/TestBox/blob/v3.2.0/system/Assertion.cfc
1052 lines (943 loc) · 33.4 KB
[java] [script] D:\\work\\lucee6\\temp\\testbox\\testbox\\system\\Assertion.cfc [java] [script] SourceCode init took 799900 [java] [script] PageSourceCode1: D:\\work\\lucee6\\temp\\testbox\\testbox\\system\\Assertion.cfc [java] [script] SourceCode init took 770300 [java] [script] PageSourceCode2: D:\\work\\lucee6\\temp\\testbox\\testbox\\system\\Assertion.cfc