All work
- RedisLock not returning connections to the poolLRE-62Jon Clausen
- Redirecting ram:// via cacheDefaultResource not working as expectedLRE-61Jon Clausen
- Connecting to Elasticache RedisLRE-60
- Cluster Cache OptimizationsLRE-59Jon Clausen
- Add Distributed Locking CapabilitiesLRE-58Resolved issue: LRE-58Jon Clausen
- Cluster cache commands was not closing the jedis pool on some operationsLRE-57Resolved issue: LRE-57
- Error when editing connection in Lucee AdministratorLRE-56
- Add username support for RedisCacheLRE-55Resolved issue: LRE-55Jon Clausen
- Add support for SSL and username to Cluster CacheLRE-54Resolved issue: LRE-54Jon Clausen
- Remove old provider directories. They are no longer in useLRE-53Resolved issue: LRE-53
- Add support for cluster passwords, readTimeout, max connections in connection information for the cluster connectionsLRE-52Resolved issue: LRE-52
- Remove provider copies as it is now not usedLRE-51Resolved issue: LRE-51
- adds the ability to specify an array of hosts and ports on connectionsLRE-50Resolved issue: LRE-50
- fixes null pointer exceptions on ClusterCache connectionLRE-49Resolved issue: LRE-49
- Update Jedis VersionLRE-48Resolved issue: LRE-48Jon Clausen
- Error verifiying if key existsLRE-47Resolved issue: LRE-47
- Implement native redis convention based namespaces via colon separatorsLRE-46
- Uppercase letters in keyprefix setting causes problemsLRE-45
- Allow Environment Variable Support for License InfoLRE-44Resolved issue: LRE-44
- Remove of java dependencies from repo and delegate to gradleLRE-43Resolved issue: LRE-43
- Hibernate secondary cache supportLRE-42
- Ability to choose which database to connect to in Redis, apart from 0 being the defaultLRE-41Resolved issue: LRE-41
- Migration of docs to gitbookLRE-40Resolved issue: LRE-40
- New redisSubscribe() so you can subscribe with closures/lambdas or CFCs to listen to Redis messagesLRE-39Resolved issue: LRE-39Luis Majano
- New redisPublish() UDF so you can publish messages into the Redis clusterLRE-38Resolved issue: LRE-38
- New UDF redisGetClusterNodes() to get a map of cluster node objectsLRE-37Resolved issue: LRE-37
- Redis Cluster protocol support (RedisCluster, Sentinel, AWS, DigitalOcean)LRE-36Resolved issue: LRE-36
- cache filters for getting entries was not workingLRE-35Resolved issue: LRE-35
- pattern subscriptions and messagesLRE-34
- Redis publish and subscribe featuresLRE-33Resolved issue: LRE-33
- getting all values/entries was not passing a built key, so return struct was always nullLRE-32Resolved issue: LRE-32
- New native cfml function: redisGetCluster() to get access to the native redis cluster managerLRE-31Resolved issue: LRE-31
- Improve all exception handling to show exception messagesLRE-30Resolved issue: LRE-30
- Creation of a base class to share between cache implementationsLRE-29Resolved issue: LRE-29
- Add docker redis cluster supportLRE-28Resolved issue: LRE-28
- Update Jedis to 2.9.3LRE-27Resolved issue: LRE-27
- Document how to connect to different logical databases within Redis (0-16)LRE-26Resolved issue: LRE-26
- Allow for a new setting to allow for case-sensitive mode instead of case-insensitive mode (default)LRE-25Resolved issue: LRE-25
- Error on Redis Connection after upgrade to lucee redis ext 1.4.0LRE-24Resolved issue: LRE-24
- LicenseHelper not validating all editions of similar product skusLRE-23Resolved issue: LRE-23
- Hash session identifiers to avoid compromised database lookups of all session identifiersLRE-21
- Coverted all `valueList()` and `entryLIst()` to leverage parallel streams for performanceLRE-20Resolved issue: LRE-20
- Converted all connection pool access to try's with resources for auto-closing and better code visibilityLRE-19Resolved issue: LRE-19
- Added more context when exceptions happen to the error messagesLRE-18Resolved issue: LRE-18
- Added `RuntTimeExceptions and IOExceptions` whenever a Redis connection cannot be made to improve errorsLRE-17Resolved issue: LRE-17
- Added a `getConnectionKeys()` in the `RedisConnection` class to see which caches are configured and howLRE-16Resolved issue: LRE-16
- Added all members of the `RedisConnection` class to be public/static so they can be inspected and reusedLRE-15Resolved issue: LRE-15
- Compat with LUcee 5.29> for default valuesLRE-14Resolved issue: LRE-14Luis Majano
- Add the LuceeAppender log 4j bridgeLRE-13Resolved issue: LRE-13
- Throw runtime exceptions on connection issues.LRE-12Resolved issue: LRE-12
Support numeric literal separators in source code
Description
Details
Assignee
Brad WoodBrad WoodReporter
John WhishJohn WhishComponents
Fix versions
Priority
Major
Details
Details
Assignee
Reporter
Components
Fix versions
Priority
Sentry
Sentry
Sentry
Activity
Brad WoodAugust 21, 2024 at 6:09 AM
Finally had a bit of time to do this tonight. This ONLY applies to the Box Script parser, not CF.
The following are valid (underscores are simply removed at compile time)
The following are invalid (throw an exception)
Since underscores are a valid identifier name, the parser doesn’t know for certain if the developer was going for a numeric literal or not, so we treat it like a normal variable.
John WhishMay 21, 2024 at 3:34 PMEdited
It might be even easier as Java seems to support it already.
This also works:
Jacob BeersMay 21, 2024 at 2:30 PM
The way this is implemented in JavaScript actually allows the number separator to be used wherever you want in the number i.e. 1_0
is equal to 10
. Literals cannot start with an underscore though.
This should be as easy as just making underscore a valid character in the different literal lexer rules and then stripping them out in the parser.
This is stolen from Ruby, Java, Swift, Kotlin and Javascript also supports it - not sure which other languages support it but it’s really nice for readable code.
Ruby example
which is the same as
The first example is much more readable and developer friendly.
Javascript example
JS Spec