Issues

Select view

Select search mode

 

modern style cfcs are parsed into lines twice into pageSourceCodes during compilation

Description

I noticed there’s a lot of repeated PageSourceCode initial parsing into lines for cfc's

https://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 etc

i.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

Environment

None

Details

Assignee

Reporter

Priority

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:

Flag notifications