Commit Graph

3906 Commits

Author SHA1 Message Date
chriseth
426c4a2e38
Merge pull request #8327 from imapp-pl/yul-phaser-random-algorithm
[yul-phaser] Random algorithm
2020-02-26 14:44:24 +01:00
Leonardo
6930e0c2e0
Merge pull request #8384 from ethereum/fixRePrintingValue
Fix re-printing value expectations.
2020-02-26 09:57:30 +01:00
chriseth
bb09787bd0
Merge pull request #8378 from mijovic/yulSourceLocations
Adding source location support to AssemblyStack
2020-02-25 22:34:57 +01:00
Djordje Mijovic
ec083c4878 Adding source location support to AssemblyStack and thus debugging Yul sources 2020-02-25 22:19:03 +01:00
chriseth
c5a0a434e2
Merge pull request #8374 from ethereum/writeAccessToSlot
Allow access to ``_slot`` for local storage pointer variables.
2020-02-25 22:11:13 +01:00
chriseth
40cae442d5 Fix re-printing value expectations. 2020-02-25 22:10:35 +01:00
Kamil Śliwak
e1b8b64f05 [yul-phaser] Population: Remove no longer used methods for running algorithm steps
- They have been superseded by objects from GeneticAlgorithms.h
2020-02-25 16:06:16 +01:00
cameel
67fbafab8f [yul-phaser] Add RandomAlgorithm 2020-02-25 16:06:16 +01:00
cameel
4665b7a7e4 [yul-phaser] Population: Add select() method 2020-02-25 15:25:16 +01:00
cameel
83b8ab8012 [yul-phaser] Add RangeSelection, MosaicSelection and RandomSelection classes 2020-02-25 15:25:16 +01:00
cameel
11bdf358df [yul-phaser] Base class for genetic algorithms 2020-02-25 15:25:16 +01:00
Kamil Śliwak
26bae6b459 [yul-phaser] Common: Add countSubstringOccurrences() 2020-02-25 15:25:16 +01:00
chriseth
45041e5d3a Allow access to `_slot` for local storage pointer variables. 2020-02-25 14:28:04 +01:00
Djordje Mijovic
8524e3f48d Standard-JSON-Interface: Fix a bug (#8371) related to empty filenames and imports. 2020-02-25 01:07:36 +01:00
Leonardo
44bcff42f5
Merge pull request #8161 from ethereum/yulTypeChecking
Yul type checking
2020-02-24 16:05:04 -03:00
Djordje Mijovic
c891597204 Adding ssa type check and test for that one 2020-02-24 15:05:19 +01:00
Djordje Mijovic
2efda4129b Adding test for multi return values including bool in evmTyped dialect. Calling zeroLiteralForType from inliner 2020-02-24 15:05:19 +01:00
chriseth
bddbcbe6a4 Use bool type in word size transform. 2020-02-24 15:05:19 +01:00
chriseth
a52305d3bd Use bool type in conditional simplifier and for loop condition into body. 2020-02-24 15:05:19 +01:00
Djordje Mijovic
a52c9af5b9 Adding vardecl optimization for boolean types 2020-02-24 15:05:19 +01:00
chriseth
b9b36cd89e Properly assign types in ExpressionSplitter. 2020-02-24 15:05:19 +01:00
chriseth
2ee748b7f5 Add tests 2020-02-24 15:05:19 +01:00
chriseth
9140bc52c4 Tests for invalid types. 2020-02-24 15:05:18 +01:00
chriseth
6eec968365 Test updates. 2020-02-24 15:05:18 +01:00
chriseth
449a8533ce
Merge pull request #8340 from mijovic/value-keyword-wei
TestFileParser: Adding keyword wei for expressing function call value
2020-02-24 15:01:15 +01:00
Djordje Mijovic
dd9009eba6 TestFileParser: Adding new keyword wei for expressing function value 2020-02-21 11:39:37 +01:00
cameel
2291cf78ac [yul-phaser] Population: Add constructors to Individual to simplify initialization 2020-02-19 17:26:34 +01:00
cameel
cef01c961a [yul-phaser] Population: Keep the individuals always sorted 2020-02-19 17:26:34 +01:00
cameel
76842ac3fd [yul-phaser] Population: Evaluate fitness immediately when an individual is added or modified
- This removes the explicit evaluation phase.
- Fitness is no longer optional in Individual
2020-02-19 17:26:34 +01:00
cameel
66fdc1c374 [yul-phaser] Population: Store fitness metric rather than program directly
- In the console app use ProgramSize metric when creating the population.
2020-02-19 17:03:35 +01:00
Kamil Śliwak
930a9918a6 [yul-phaser] ProgramSize: Add an option to repeat the optimisation sequence several times 2020-02-19 16:36:14 +01:00
Kamil Śliwak
751caf0ed3 [yul-phaser] Common: Add ChromosomeLengthMetric 2020-02-19 16:36:14 +01:00
cameel
2238919c76 [yul-phaser] Add ProgramSize metric 2020-02-19 16:36:14 +01:00
cameel
096129fbc4 [yul-phaser] Base class for fitness metrics 2020-02-19 16:36:14 +01:00
chriseth
357c936243
Merge pull request #8325 from imapp-pl/yul-phaser-population-tweaks
[yul-phaser] Miscellaneous Population tweaks and improvements
2020-02-19 12:35:10 +01:00
chriseth
8f2c5fc081
Merge pull request #8287 from a3d4/cmdlinetests-mingw
Adapted cmdlineTests.sh for MinGW
2020-02-19 11:50:24 +01:00
a3d4
4a29726f76 Adjusted solc path and fixed remapping tests in cmdlineTests.sh under mingw64. 2020-02-19 06:05:11 +01:00
cameel
d9c5e2dc9f [yul-phaser] Population: Add operator+() 2020-02-18 19:40:37 +01:00
Kamil Śliwak
ecb30c670f [yul-phaser] Population: Make ordering of individuals with same fitness deterministic and prioritise shorter chromosomes
- Before this change the order of chromosomes with the same fitness in a population depended on the initial order set when the population was first created. Now it only depends on the individual.
- The length comparison is not strictly necessary (lexicographical order covers that) but it makes the intention clear and the comparison slightly faster when chromosomes have different lengths.
2020-02-18 19:40:37 +01:00
Kamil Śliwak
40a6669538 [yul-phaser] Population: Extract a function for comparing fitness of individuals
- Mostly for readability and convenience. This significantly shortens calls to sort().
- I could define it as Individual::operator< instead but it would be inconsistent with operator== because it does not compare the chromosomes, only fitness. It could result in an unintuitive situation where (a <= b <= a) does not necessarily imply (a == b).
2020-02-18 19:40:37 +01:00
Kamil Śliwak
823e715902 [yul-phaser] Population+Chromosome: Better tests for makeRandom() 2020-02-18 19:40:37 +01:00
Kamil Śliwak
806891f494 [yul-phaser] Population: Customizable chromosome length in makeRandom() 2020-02-18 19:40:37 +01:00
Kamil Śliwak
e771f00971 [yul-phaser] Population: Extract Program construction in tests into a fixture 2020-02-18 19:38:55 +01:00
Kamil Śliwak
d22c59aa0e [yul-phaser] Chromosome: Add a constructor that reads steps from an abbreviation string 2020-02-18 19:38:55 +01:00
Kamil Śliwak
38f79a1761 [yul-phaser] Common: Add chromosomeLengths() 2020-02-18 19:38:55 +01:00
Kamil Śliwak
837ea96da7 [yul-phaser] Move stripWhitespace() from Program tests to Common 2020-02-18 19:38:55 +01:00
chriseth
c2e22d4cab
Merge pull request #8221 from ethereum/structured-docs-error-locations
[parser] Source locations for structured documentation errors
2020-02-18 14:57:28 +01:00
chriseth
64f9dc351e
Merge pull request #8337 from mijovic/assembly-multifile
Assembly: Added missing source field to legacy assembly json output
2020-02-18 12:47:19 +01:00
Djordje Mijovic
18dea6b69c Assembly: Added missing source field to legacy assembly json output to complete the source reference 2020-02-18 10:22:34 +01:00
Jason Cobb
6db0d50094
Don't use identifiers starting with an underscore followed by an uppercase letter 2020-02-17 12:44:39 -05:00