aboutsummaryrefslogtreecommitdiffstats
path: root/core
Commit message (Expand)AuthorAgeFilesLines
* cmd, common, core, eth, node, rpc, tests, whisper, xeth: use protocol stacksPéter Szilágyi2015-11-276-61/+84
* core, eth, miner, xeth: clean up tx/receipt db accessorsPéter Szilágyi2015-11-197-189/+346
* Merge pull request #1917 from obscuren/validator-interfaceJeffrey Wilcke2015-11-1912-599/+646
|\
| * core, eth, rpc: split out block validator and state processorJeffrey Wilcke2015-11-1812-599/+646
* | core/vm/runtime: added simple execution runtimeJeffrey Wilcke2015-11-185-0/+399
|/
* core: only reset head header/fastblock if stalePéter Szilágyi2015-10-281-11/+18
* core: fix #1921, decode all receipt field, not just consensusPéter Szilágyi2015-10-221-3/+2
* Merge pull request #1883 from obscuren/jit-vm-optimisationsJeffrey Wilcke2015-10-2210-83/+469
|\
| * core/vm: added parsing utilitiesJeffrey Wilcke2015-10-174-3/+180
| * core/vm: added JIT segmenting / optimisationsJeffrey Wilcke2015-10-178-5/+202
| * core/vm: abstracted instruction execution away from JITJeffrey Wilcke2015-10-172-76/+88
* | Merge pull request #1889 from karalabe/fast-sync-rebaseJeffrey Wilcke2015-10-2220-504/+1670
|\ \
| * | core, eth, trie: fix data races and merge/review issuesPéter Szilágyi2015-10-219-61/+75
| * | core, eth: roll back uncertain headers in failed fast syncsPéter Szilágyi2015-10-192-3/+49
| * | eth/downloader: concurrent receipt and state processingPéter Szilágyi2015-10-198-167/+254
| * | core, eth, trie: direct state trie synchronizationPéter Szilágyi2015-10-193-4/+357
| * | core, eth: receipt chain reconstructionPéter Szilágyi2015-10-1914-87/+406
| * | core: differentiate receipt concensus and storage decodingPéter Szilágyi2015-10-197-74/+107
| * | core: fix block canonical mark / content write racePéter Szilágyi2015-10-191-20/+11
| * | eth/downloader: add fast and light sync strategiesPéter Szilágyi2015-10-192-11/+10
| * | core: support inserting pure header chainsPéter Szilágyi2015-10-195-321/+645
| |/
* | core, tests: get_hash fixJeffrey Wilcke2015-10-212-3/+5
* | core, core/state: move gas tracking out of core/stateFelix Lange2015-10-177-121/+75
|/
* Merge pull request #1899 from obscuren/mipmap-bloomJeffrey Wilcke2015-10-178-60/+274
|\
| * core, eth/filters, miner, xeth: Optimised log filteringJeffrey Wilcke2015-10-178-61/+271
| * eth/filters: added benchmarkJeffrey Wilcke2015-10-161-0/+4
* | Merge pull request #1869 from Gustav-Simonsson/gpu_minerJeffrey Wilcke2015-10-162-3/+3
|\ \
| * | all: Add GPU mining, disabled by defaultGustav Simonsson2015-10-072-3/+3
* | | core/state, core, miner: handle missing root error from state.NewGustav Simonsson2015-10-1611-48/+97
| |/ |/|
* | Merge pull request #1898 from karalabe/eventmux-post-raceJeffrey Wilcke2015-10-162-39/+28
|\ \
| * | core, eth, event, miner, xeth: fix event post / subscription racePéter Szilágyi2015-10-122-39/+28
* | | core/vm: copy stack element to prevent overwritesPéter Szilágyi2015-10-121-3/+4
|/ /
* | Merge pull request #1888 from obscuren/testnetJeffrey Wilcke2015-10-092-0/+26
|\ \
| * | cmd, core, eth: added official testnetJeffrey Wilcke2015-10-092-0/+26
* | | Merge pull request #1880 from Gustav-Simonsson/core_transferJeffrey Wilcke2015-10-094-14/+5
|\ \ \
| * | | core, core/vm, cmd/evm: remove redundant balance checkGustav Simonsson2015-10-064-14/+5
| |/ /
* | | Merge pull request #1850 from karalabe/genesis-block-receiptsJeffrey Wilcke2015-10-071-0/+3
|\ \ \ | |/ / |/| |
| * | core: fix #1848, block receipts db entry for the genesis tooPéter Szilágyi2015-09-251-0/+3
* | | core: fixed head write on block insertionJeffrey Wilcke2015-10-052-0/+16
* | | cmd/geth, cmd/utils, core, rpc: renamed to blockchainJeffrey Wilcke2015-10-0415-126/+86
* | | cmd/evm, core/vm, test: refactored VM and coreJeffrey Wilcke2015-10-0429-974/+863
* | | core, event/filter, xeth: refactored filter systemJeffrey Wilcke2015-10-031-212/+0
| |/ |/|
* | core: deadlock in chainmanager after posting RemovedTransactionEventJeffrey Wilcke2015-10-021-1/+3
* | Merge pull request #1405 from fjl/lean-trieJeffrey Wilcke2015-10-018-95/+108
|\ \
| * | core, core/state: batch-based state syncFelix Lange2015-09-237-77/+78
| * | core, trie: new trieFelix Lange2015-09-233-21/+33
* | | core: fix a formatting loop in BadHashErrorPéter Szilágyi2015-09-291-1/+1
| |/ |/|
* | core: Add BadHashErr and test for BadHashes handlingGustav Simonsson2015-09-233-2/+66
* | cmd/geth, core: make "geth blocktest" work againFelix Lange2015-09-231-0/+1
|/
* core, core/types: readd transactions after chain re-orgJeffrey Wilcke2015-09-2210-54/+228
* core: separate and contain POW verifier, extensive testsPéter Szilágyi2015-09-214-62/+327
* Merge pull request #1817 from obscuren/nonce-fixJeffrey Wilcke2015-09-192-2/+21
|\
| * core: transaction nonce recovery fixJeffrey Wilcke2015-09-182-2/+21
* | core: allow modifying test-chain block timesPéter Szilágyi2015-09-171-0/+11
* | Merge pull request #1810 from karalabe/pure-header-verifications-2Jeffrey Wilcke2015-09-172-26/+24
|\ \ | |/ |/|
| * core, eth, miner: use pure header validationPéter Szilágyi2015-09-162-26/+24
* | all: move common.Database to package ethdbFelix Lange2015-09-1512-52/+59
|/
* Merge pull request #1789 from Gustav-Simonsson/core_remove_unused_functionsJeffrey Wilcke2015-09-126-281/+0
|\
| * core, core/vm, core/state: remove unused functionsGustav Simonsson2015-09-116-281/+0
* | core: split out TD from database and all internalsPéter Szilágyi2015-09-117-197/+478
* | core, eth: split the db blocks into headers and bodiesPéter Szilágyi2015-09-115-142/+341
|/
* core/state: test formatting adhering to Go conventionGustav Simonsson2015-09-091-17/+17
* core/state: deleted field in StateObject Copy() and unit testGustav Simonsson2015-09-082-0/+105
* core: improve block gas trackingFelix Lange2015-09-022-24/+27
* Filter on addresses should work as an OR not an AND.Maran2015-09-011-3/+3
* Merge pull request #1701 from karalabe/eth62-sync-rebaseFelix Lange2015-08-271-0/+14
|\
| * eth: port the synchronisation algo to eth/62Péter Szilágyi2015-08-251-0/+14
* | Add tests for uncle timestamps and refactor timestamp typeGustav Simonsson2015-08-2513-26/+42
|/
* remove 0xJeffrey Wilcke2015-08-211-1/+1
* canary updateJeffrey Wilcke2015-08-211-4/+4
* core, tests: Double SUICIDE fixJeffrey Wilcke2015-08-213-13/+13
* core, miner: write miner receiptsJeffrey Wilcke2015-08-193-7/+9
* cmd/evm, core/vm, tests: changed DisableVm to EnableVmJeffrey Wilcke2015-08-124-16/+6
* core/vm: fixed jit error & added inline docsJeffrey Wilcke2015-08-112-11/+14
* Merge pull request #1604 from obscuren/db-mergeJeffrey Wilcke2015-08-099-67/+60
|\
| * core, eth, trie, xeth: merged state, chain, extra databases in oneJeffrey Wilcke2015-08-089-67/+60
* | Merge pull request #1611 from obscuren/expdiff-olympic-fixJeffrey Wilcke2015-08-091-2/+2
|\ \
| * | cmd/utils, core: disable exp diff for olympic netJeffrey Wilcke2015-08-061-2/+2
| |/
* | cmd/geth, core/vm: setup vm settings and defaulted JIT disabledJeffrey Wilcke2015-08-091-3/+3
* | core/vm: reduced big int allocationsJeffrey Wilcke2015-08-073-122/+77
* | core, tests: reduced state copy by N callsJeffrey Wilcke2015-08-077-11/+29
* | core/vm, tests: implemented semi-jit vmJeffrey Wilcke2015-08-0711-67/+1357
|/
* miner, core: sort txs by price, nonceJeffrey Wilcke2015-08-051-0/+19
* core, miner: added difficulty bombJeffrey Wilcke2015-08-054-6/+95
* miner: gas limit strategy, target 3141592 & def gas price 50 ShannonGustav Simonsson2015-08-041-2/+15
* Merge pull request #1568 from obscuren/issue-1559Jeffrey Wilcke2015-08-031-1/+5
|\
| * core: added a running flag to prevent panics in the chainmanagerJeffrey Wilcke2015-08-011-1/+5
* | Merge pull request #1569 from obscuren/default-genesisJeffrey Wilcke2015-08-033-2/+40
|\ \
| * | core: added default genesis blockJeffrey Wilcke2015-08-023-2/+40
| |/
* | Merge pull request #1461 from bas-vk/eth_resendJeffrey Wilcke2015-08-022-3/+4
|\ \
| * | bugfix, pending transaction was resend with new gas price/limit but not remov...Bas van Kervel2015-07-282-3/+4
* | | Merge pull request #1541 from bas-vk/issue1518Jeffrey Wilcke2015-08-011-9/+0
|\ \ \
| * | | improved error detection and handling for NewTransactionFromBytesBas van Kervel2015-07-291-9/+0
| | |/ | |/|
* / | core/state: Set log index. Closes #1226Jeffrey Wilcke2015-07-291-0/+5
|/ /
* | Merge pull request #1515 from fjl/license-fixesJeffrey Wilcke2015-07-2863-63/+63
|\ \
| * | all: fix license headers one more timeFelix Lange2015-07-2463-63/+63
* | | core: genesis extra data field fixJeffrey Wilcke2015-07-261-1/+1
* | | core: fixed genesis write out to write only canon numberJeffrey Wilcke2015-07-262-3/+19
* | | Merge pull request #1520 from obscuren/reward-5ethJeffrey Wilcke2015-07-252-2/+2
|\ \ \
| * | | core: 5 ether block rewardJeffrey Wilcke2015-07-252-2/+2
* | | | Merge pull request #1521 from obscuren/client-updateJeffrey Wilcke2015-07-252-7/+4
|\ \ \ \
| * | | | cmd/geth, core, eth: Version 1.0.0Jeffrey Wilcke2015-07-252-7/+4
| |/ / /
* / / / core: check genesis block before writeoutJeffrey Wilcke2015-07-251-0/+4
|/ / /
* | | cmd/core,xeth: removed unneeded states & added batch writesJeffrey Wilcke2015-07-233-27/+38
* | | Merge pull request #1510 from fjl/license-fixesJeffrey Wilcke2015-07-2363-252/+252
|\| |
| * | all: update license headers to distiguish GPL/LGPLFelix Lange2015-07-2363-252/+252
* | | Merge pull request #1508 from karalabe/database-cachingJeffrey Wilcke2015-07-231-1/+1
|\ \ \
| * | | cmd, core, eth, ethdb: cache flag to allocate memory for db internal usePéter Szilágyi2015-07-221-1/+1
| |/ /
* / / core: fix an RLP encoding data race due to deep struct copyPéter Szilágyi2015-07-231-2/+2
|/ /
* | Fixed canary to require 2+ nonzero, not sum 2+Vitalik Buterin2015-07-201-7/+14
* | core: during chain reorg rewrite receipts and transactionsJeffrey Wilcke2015-07-153-13/+46
* | cmd, core, eth, common: genesis preparationJeffrey Wilcke2015-07-108-110/+196
|/
* core/vm: added str to opJeffrey Wilcke2015-07-091-0/+136
* Merge pull request #1441 from obscuren/logs-return-fixJeffrey Wilcke2015-07-091-1/+1
|\
| * miner, xeth: fire log event during mining. Fix return raw txJeffrey Wilcke2015-07-081-1/+1
* | Use uint64 on ts in chain_manager, block_processorGustav Simonsson2015-07-084-5/+11
|/
* all: goimports -wFelix Lange2015-07-071-2/+4
* all: add some godoc synopsis commentsFelix Lange2015-07-074-0/+4
* all: update license informationFelix Lange2015-07-0763-0/+1008
* core, eth, rpc: proper gas used. Closes #1417Jeffrey Wilcke2015-07-073-3/+6
* core, miner: removed vm errors from consensus err checkingJeffrey Wilcke2015-07-064-5/+13
* Merge pull request #1400 from obscuren/badblock-reportingJeffrey Wilcke2015-07-062-0/+58
|\
| * core, miner, tests: added test, implemented bad block reportingJeffrey Wilcke2015-07-052-0/+58
* | Merge pull request #1409 from fjl/fix-tx-hashJeffrey Wilcke2015-07-062-8/+16
|\ \
| * | core/types, xeth: separate tx hash and tx signature hashFelix Lange2015-07-062-8/+16
| |/
* / Fix core error forwarding, unify OOG VM errGustav Simonsson2015-07-046-49/+10
|/
* core, miner, tests: renamed state methodsJeffrey Wilcke2015-07-045-8/+10
* core, core/state: only write necessary state. Skip intermediateJeffrey Wilcke2015-07-043-11/+21
* core, eth, miner, xeth: receipt storage fixJeffrey Wilcke2015-07-045-37/+68
* Merge pull request #1389 from obscuren/txpool-issuesJeffrey Wilcke2015-07-0310-81/+92
|\
| * core, miner: miner header validation, transaction & receipt writingJeffrey Wilcke2015-07-0310-81/+92
* | Prevent debug value from printing on consoleTaylor Gerring2015-07-031-2/+0
|/
* Merge branch 'develop' of github.com:ethereum/go-ethereum into developVitalik Buterin2015-07-021-6/+0
|\
| * Merge pull request #1378 from obscuren/issue1367Jeffrey Wilcke2015-07-021-6/+0
| |\
| | * core, xeth: core.AddressFromMessage removed => crypto.CreateAddressJeffrey Wilcke2015-07-021-6/+0
* | | Switched canary addressesVitalik Buterin2015-07-021-4/+4
|/ /
* / core, cmd/geth: improved recover functionalityJeffrey Wilcke2015-07-012-80/+104
|/
* Merge pull request #1370 from obscuren/force-checkpointJeffrey Wilcke2015-07-011-2/+10
|\
| * core, cmd/geth: recover by numberJeffrey Wilcke2015-07-011-2/+10
* | Use uint64 for block header timestampGustav Simonsson2015-06-308-15/+14
|/
* core: txpool listen for ChainHeadEvent instead of ChainEventJeffrey Wilcke2015-06-301-2/+2
* core: added checkpoint for last blockJeffrey Wilcke2015-06-302-58/+42
* core: reduce CPU load by reducing calls to checkQueueJeffrey Wilcke2015-06-302-26/+51
* core, miner: added queued write to WriteBlockJeffrey Wilcke2015-06-301-15/+18
* cmd/geth: decent error message if metrics are disabledPéter Szilágyi2015-06-301-1/+0
* cmd, core, eth, metrics, p2p: require enabling metricsPéter Szilágyi2015-06-301-1/+2
* core: replaced BlockCache with lru.CacheJeffrey Wilcke2015-06-302-20/+25
* Merge branch 'miner-broadcast' into core-optimisations-2Jeffrey Wilcke2015-06-302-43/+95
|\
| * core, miner: implemented canaryJeffrey Wilcke2015-06-291-0/+28
| * core, miner: added write block method & changed mining propagationJeffrey Wilcke2015-06-291-45/+67
* | core: fixed testsJeffrey Wilcke2015-06-303-2/+2
* | core: removed write's go routineJeffrey Wilcke2015-06-302-8/+3
* | core: renamed next to pending & fixed testsobscuren2015-06-302-17/+14
* | core: reduced cache limit to 256obscuren2015-06-301-1/+1
* | core: switched to proper LRUobscuren2015-06-301-9/+6
* | core: added LRU caching and added batch writing when LDB is usedobscuren2015-06-301-21/+81
* | core, eth, rpc: avoid unnecessary block header copyingFelix Lange2015-06-303-25/+27
* | core: remove superfluous big.Int allocationsFelix Lange2015-06-303-61/+32
* | core: generate benchmark keys only onceFelix Lange2015-06-301-9/+23
* | core: avoid duplicate calls to Transaction.DataFelix Lange2015-06-301-3/+3
* | core: optimize IntrinsicGasFelix Lange2015-06-301-5/+12
* | core/types: cache computed block valuesFelix Lange2015-06-301-3/+22
* | core/types: cache computed transaction valuesFelix Lange2015-06-301-5/+28
* | core: add InsertChain benchmarksFelix Lange2015-06-301-0/+149
* | core: add GenerateChain, GenesisBlockForTestingFelix Lange2015-06-305-80/+230
* | core/types: make blocks immutableFelix Lange2015-06-3011-459/+343
* | core/types: make transactions immutableFelix Lange2015-06-305-230/+177
|/
* core, eth, eth/fetcher, ethdb: polish metrics gathering a bitPéter Szilágyi2015-06-241-14/+0
* core, ethdb: instrument the block and state dbPéter Szilágyi2015-06-241-1/+14
* cmd/geth, core: impl. percentile reporting, instrument insertionsPéter Szilágyi2015-06-241-1/+4
* removed old rpc structure and added new inproc api clientBas van Kervel2015-06-221-1/+1
* Merge pull request #1304 from obscuren/state-renamesJeffrey Wilcke2015-06-224-31/+7
|\
| * core, miner, xeth: renamed gas methodsobscuren2015-06-214-31/+7
* | core, ethdb, trie: validate database errorsobscuren2015-06-211-3/+13
|/
* core/vm: clarified SSTOREobscuren2015-06-181-7/+5
* core: ValidatedHeader (method => function)obscuren2015-06-182-66/+68
* core, core/vm: state improvements and tx pool speed upobscuren2015-06-173-32/+25
* core: TMP testing codeobscuren2015-06-172-21/+23
* core/state: removed trie copyobscuren2015-06-171-1/+1
* core/state: removed state from state objectobscuren2015-06-173-31/+20
* core/state: fixed state testsobscuren2015-06-171-13/+10
* core/state: remove the need for common.Valueobscuren2015-06-171-2/+4
* core/state, core/vm: reworked storage get / set to use common.Hashobscuren2015-06-173-36/+36
* core/state, core/vm: cleanup refundsobscuren2015-06-173-21/+13
* Merge pull request #1260 from obscuren/tx-drop-low-txJeffrey Wilcke2015-06-162-14/+32
|\
| * core: moved check for max queue to checkQueueobscuren2015-06-152-26/+12
| * core: reduce max allowed queued txs per addressobscuren2015-06-151-0/+19
| * core, miner: tx pool drops txs below ask priceobscuren2015-06-151-3/+16
* | removed duplicate function after rebasezsfelfoldi2015-06-151-16/+2
* | fixed saving receiptszsfelfoldi2015-06-151-0/+22
|/
* Merge pull request #1255 from obscuren/chain-proc-interuptJeffrey Wilcke2015-06-121-1/+10
|\
| * core: changed interrupt strategyobscuren2015-06-121-102/+101
| * eth, core: interupt the chain processing on stopobscuren2015-06-121-94/+104
* | core/vm: Improved error reporting for trace loggingobscuren2015-06-124-46/+45
* | core/vm: fixed printable characters using unicode insteadobscuren2015-06-122-6/+2
|/
* Merge pull request #1228 from obscuren/vm-optimisationsJeffrey Wilcke2015-06-1112-154/+174
|\
| * core: retry block now also parellise nonce checksobscuren2015-06-111-2/+8
| * core/vm: added a comment regarding the uint64 vs *big.Intobscuren2015-06-111-1/+3
| * core/vm: reverse loop stackobscuren2015-06-111-2/+3
| * core/vm: fixed a bug where `Data` ignored the stack ptrobscuren2015-06-111-1/+1
| * core, core/vm: moved logger and added gas cost to struct loggingobscuren2015-06-114-10/+10
| * core/vm: unexported stack again. No longer requiredobscuren2015-06-103-16/+16
| * core/vm: documentation and name changesobscuren2015-06-102-18/+34
| * core: log tx count for each set of blocks we're importingobscuren2015-06-101-1/+4
| * core/vm, core/state: added storage to structured vm loggingobscuren2015-06-104-9/+39
| * core, core/vm: added structure loggingobscuren2015-06-108-147/+95
| * core/vm: added structured loggingobscuren2015-06-102-8/+22
| * core/vm: changed program counter to uint64obscuren2015-06-102-13/+13
* | core: fixed race condition for subscriptionsobscuren2015-06-101-2/+1
* | core: fixed testobscuren2015-06-101-4/+1
* | core: fixed race condition in the transaction poolobscuren2015-06-101-30/+30
|/
* core, xeth: moved nonce management burden from xeth to txpoolobscuren2015-06-103-22/+43
* core: fix a race condition accessing the gas limitPéter Szilágyi2015-06-101-3/+5
* core: fix a lock annoyance and potential deadlockPéter Szilágyi2015-06-101-4/+9
* core, eth: document that result of GetTransactions is modifiableFelix Lange2015-06-091-0/+1
* core/types: add Transaction.SizeFelix Lange2015-06-091-0/+7
* Merge pull request #1219 from Gustav-Simonsson/precompiled_ec_recover_paddingJeffrey Wilcke2015-06-091-8/+12
|\
| * Remove unneeded if check on EC recover paddingGustav Simonsson2015-06-091-3/+1
| * Pad precompiled EC recover input and add validationsGustav Simonsson2015-06-091-8/+14
* | Merge pull request #1216 from karalabe/fix-eth-dataracesJeffrey Wilcke2015-06-091-9/+8
|\ \ | |/ |/|
| * core: fix up a deadlock caused by double lockingPéter Szilágyi2015-06-091-8/+5
| * core: fix data race accessing ChainManager.currentBlockPéter Szilágyi2015-06-091-1/+4
| * core: fix data race in accessing ChainManager.tdPéter Szilágyi2015-06-091-9/+8
* | core: skip genesis block for reprocess. Closes #1202obscuren2015-06-091-5/+10
|/
* core: write accounts to statedb. Closes #1210obscuren2015-06-091-6/+7
* Merge pull request #1193 from tgerring/hotbackupJeffrey Wilcke2015-06-091-3/+14
|\
| * Export should start with block 0Taylor Gerring2015-06-061-1/+1
| * CleanupTaylor Gerring2015-06-061-2/+1
| * Allow exporting subset of chainTaylor Gerring2015-06-061-2/+14
* | core: added a test for missing noncesobscuren2015-06-092-1/+24
* | core: settable genesis nonceobscuren2015-06-095-26/+62
* | core: add bad block for the 'missing nonce check' forkFelix Lange2015-06-081-0/+1
* | core: fix the nonce check one more timeFelix Lange2015-06-083-3/+73
|/
* wipobscuren2015-06-051-2/+10
* core: added fork test & double nonce testobscuren2015-06-052-20/+75
* crypto: return common.Address rather than raw bytesobscuren2015-06-051-3/+3
* core: documented changes in tx poolobscuren2015-06-041-3/+30
* core: only change the nonce if the account nonce is lowerobscuren2015-06-041-1/+3
* core: renamed txs to pendingobscuren2015-06-042-24/+24
* core: test updatesobscuren2015-06-042-2/+1
* core, eth, miner: moved nonce management to tx pool.obscuren2015-06-043-67/+62
* core: don't remove transactions after block processingFelix Lange2015-06-044-11/+5
* core: update documentation comments for TxPoolFelix Lange2015-06-041-22/+25
* core: remove unused code from TxPoolFelix Lange2015-06-041-41/+13
* core: compute less transaction hashes in TxPoolFelix Lange2015-06-042-82/+82
* wipobscuren2015-06-042-8/+3
* types: block json unmarshal method addedobscuren2015-06-042-2/+26
* core/vm: cleanup and renamesobscuren2015-06-045-52/+0
* Merge pull request #1167 from Gustav-Simonsson/check_ec_recover_errJeffrey Wilcke2015-06-042-16/+21
|\
| * Add missing err checks on From() (skip RPC for now)Gustav Simonsson2015-06-022-16/+21