Comments (4)
also, would you accept a patch to fix this?
from closure-templates.
We are evaluating the expression because it is part of our tree simplifying pass where we 'preevaluate' constant expressions
the runtime error is a bit weird, soy does most of its calculations on integers using java longs, but at various points we assert that it isn't 'too big' I believe the goal is all about server/client consistency. We don't want a server rendered template to give different results because it has higher precision integers (64 vs. 52 bits). imho it is a bit misguided, but I also didn't add these checks so i am not entirely sure about the motivation.
@Ubehebe any opinion on this?
from closure-templates.
ok, just took a quicker look at the specific code in question and there are additional bits of weirdness.
apparently soy only allows integer constants to be declared if they fit in 32 bits. as a work around you should be able to add a '.0' suffix to any one of those numbers and flip into double math.
imho we should probably just switch all soy integer math to use 'long's instead of ints. There are a few places where we need 'int's (like indexing into collections), but unchecked downcasts should be fine in those places.
from closure-templates.
fwiw, there's already an exception catch that tells the simplifier to back off and leave the expression alone.
I was going to suggest that we move the convertPrimitiveDataToExpr
call into the exception block. That fixes the obvious problem without turning this into a referendum on how soy represents numbers, or on the whole SimplifyExpr enterprise.
from closure-templates.
Related Issues (20)
- Internal Soy Error when compiling Soy headers HOT 2
- comments in parameter lists HOT 2
- Missing documentation / example how to use protobufs in Soy HOT 5
- Google UI HOT 1
- Latest release (release-2022-10-26) has several security issues
- Invalid multimap flag entry. No '=' found: io.noticeable.newspage.soy.functions.ContainsFunction HOT 1
- Dependencies addition of soyutils_usegoog.js makes hard to compile soy files HOT 5
- src/js/soyutils/soyutils_usegoog.js:46:264 ERROR - [JSC_MISSING_MODULE_OR_PROVIDE] Required namespace "safevalues" never defined. HOT 2
- Missing module HOT 4
- src/js/soyutils/soyutils_usegoog.js:46:264 ERROR - [JSC_MISSING_MODULE_OR_PROVIDE] Required namespace "safevalues" never defined. HOT 2
- Consider create new release from closure-templates@HEAD HOT 1
- Question about soy reportWarnings
- There is a vulnerability in ICU for C/C++/Java 57.1,upgrade recommended HOT 1
- There is a vulnerability in google-gson 2.7,upgrade recommended HOT 1
- SoyToJsSrcCompiler.jar is out of date HOT 1
- Remove `--deps` from CLI usage message
- What kind of path can be specified in import statements?
- Invalid 'for' command text
- variable soy is undeclared HOT 1
- Ts** are not declared HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from closure-templates.