Commit Graph

137 Commits

Author SHA1 Message Date
Erik Arvidsson 1edbee5f34 Remove Set Subtract 2015-12-17 15:23:28 -05:00
Benjamin Kalman 9a3e73779d Make types.Ref implement the OrderedValue interface.
This fixes the bug where compoundSets/Maps of refs are ordered by their
type.Ref's Ref, rather than their type.Ref's TargetRef.
2015-12-14 11:28:38 -08:00
Erik Arvidsson 7c43a2b49d Merge pull request #751 from arv/encode-numbers-as-strings
Go: Encode numbers as strings
2015-12-14 09:49:34 -05:00
Chris Masone 6e316d9975 Move build scripts to python
Finding and running build scripts remains in Go
(tools/run_all_build.go and supporting libs), but the build scripts
themselves are in python now.  This is because Go doesn't have much
support for copying files and directories around, which is kind of the
primary focus of build and packaging scripts.

Towards issue 677
2015-12-11 14:46:16 -08:00
Erik Arvidsson 40d164fe47 Go: Encode numbers as strings
Because JSON encoders encode numbers differently we cannot just use
numbers in the output.

This still encodes the NomsKind as numbers.

Towards #749
2015-12-11 16:30:07 -05:00
Rafael Weinstein d198036618 Compound Map & Set 2015-12-08 16:25:02 -08:00
Dan Willhite 699cc2accc Fixes #687.
Make dataStoreCommon.doCommit() return an error instead of boolean.
2015-12-02 16:41:00 -08:00
Rafael Weinstein e0b368302d listLeaf & compoundList implement List interface 2015-12-02 13:54:25 -08:00
Erik Arvidsson 698c21bc67 NomDL: Change type syntax to use <> instead of ()
Fixes #678
2015-12-02 12:30:00 -05:00
Erik Arvidsson 61f14f8c9a Rename noms UInt* to Uint*
Fixes #673
2015-12-02 12:01:42 -05:00
Erik Arvidsson ff8924db09 NomDL codegen: Fix clobbering
If two files depend on the same file we ended up overwriting the
first written file which is problematic because the "internal" types
would not be written the second time.
2015-12-01 15:02:04 -05:00
Rafael Weinstein 7caa08bc5c Complex Types embed a ChunkStore 2015-12-01 10:40:47 -08:00
Rafael Weinstein e75f5097c7 Allow Map & Set to order by natural ordering of element type if available. 2015-11-16 14:30:30 -08:00
Erik Arvidsson a72ce41a1d Go: TypeRef -> Type
Remaining identifiers
2015-11-13 17:54:53 -05:00
Benjamin Kalman efa52fed84 Implement a generic sequence chunker, and use it to create blobs. 2015-11-13 14:21:26 -08:00
Chris Masone 4118de422f Small refactor in parse.go
pkg/parse.go has grown a bit unwieldy, so factor some functions out
into imports.go and move other code around so utility functions are
closer to the functions that use them.
2015-11-09 12:43:18 -08:00
Chris Masone f0f49c6010 Generated Code 2015-11-09 08:35:06 -08:00
Chris Masone eda9b92870 Rename types.TypeRef to types.Type
There are probably still a lot of variable names and comments to fix,
but this updates all the Go code.

Towards #441
2015-11-09 08:26:32 -08:00
Aaron Boodman 69a86f3036 Rewrite walk() to walk value tree instead of chunks
Also fix quad_tree to take advantage of that to be generic again.

Fixes #445, #497
2015-11-05 16:12:02 -08:00
Chris Masone b54fd91c82 Add Filter() to List
And update collection templates to be backed by the untyped
Filter() implementations.

Fixes #578
2015-11-05 15:15:46 -08:00
Chris Masone c40b57fc41 Generated code 2015-11-05 15:15:07 -08:00
cmasone-attic 7fad0856c3 Merge pull request #579 from cmasone-attic/issue564
IterAllP for typed Maps
2015-11-05 15:14:47 -08:00
Erik Arvidsson cc89fb2d90 Remove the channel from struct reader/builder
Instead use a slice of Value
2015-11-05 16:34:03 -05:00
Erik Arvidsson 329e13e0ae Generated code 2015-11-05 16:33:25 -05:00
Chris Masone 5bda67180d Run go generate ./... at top level to pick up codegen changes from rebase 2015-11-05 12:15:23 -08:00
Chris Masone 4e79367d1a IterAllP for typed Maps
Fixes #564
2015-11-05 12:06:10 -08:00
Erik Arvidsson 2fcd3ce3af Merge pull request #575 from arv/register-ref
Clean up registration of Ref values
2015-11-05 14:51:37 -05:00
Erik Arvidsson 0fa249e5ff Create README.md 2015-11-05 14:51:25 -05:00
Erik Arvidsson 460841e3ed Clean up registration of Ref values
Ref values use the TargetRef to get the internal implementation

RegisterFromValFunction and ToNomsValueFromTypeRef were only used by
ref values at this point so these were renamed and simplified to be
more specific for ref values
2015-11-05 14:32:45 -05:00
Chris Masone 7b55efa9b6 Generated Code 2015-11-05 08:42:22 -08:00
Chris Masone d66151b4c1 Add IterAllP() to all typed Lists and Sets
Also added IterAllP() to types.Set so it could be used by generated
set code.

Towards #564
2015-11-05 08:42:22 -08:00
Erik Arvidsson 9ba1c4a508 Remove InternalImplementation() from List, Map & Set
Instead register a function to extract the internal backing store.
2015-11-04 18:57:36 -05:00
Erik Arvidsson 8c98964fee Generated code 2015-11-04 18:57:27 -05:00
Erik Arvidsson 7d4e2df45d Add types.Enum
This is needed to be able to round trip enums.

If there is no codegen for an enum that is read from the datastore we
now return a types.Enum which can be serialized back to the same
sequence.
2015-11-04 16:40:07 -05:00
Erik Arvidsson 07414d0a9e Remove InternalImplementation from structs
By adding a reader to structs we can remove the function that exposes
the internal implementation details of a struct.
2015-11-04 14:57:52 -05:00
Erik Arvidsson 756b893e8f Remove FromVal functions
The generated objects are all type.Values now so FromVal is not needed
2015-11-04 12:13:55 -05:00
Erik Arvidsson 9aadd85004 Add types.Struct and improve typed structs
The generated code for typed structs now uses a Go struct which
implements Value directly. The fields in this struct uses the "user"
type. (The union value still uses types.Value though.)

When a typed struct is created by the decoder, it asks for a struct
builder which returns a channel that the values of the fields of the
struct are sent to.
2015-11-04 11:55:07 -05:00
Erik Arvidsson eeaac87d5f Make Chunks return all reachable Refs from the current Value
We now do a recursive call which bottoms out with a ref.Ref for RefKind
Values. This means that we traverse into nested structures consistently.

The effect of this is that we get all the refs that the current chunk
references.
2015-11-03 17:13:20 -05:00
Chris Masone d3162c9081 Fix botched handling of -in with -out-dir
The output file should always be emitted relative to -out-dir. I was
incorrectly appending the path to the input file onto that provided in
-out-dir to construct the path to the output file.
2015-11-02 14:14:43 -08:00
Chris Masone a64cee5aab Clean up codegen -out-dir flag handling
Get rid of -out and ensure that Go package names generated from -out-dir
are actually legal Go identifiers.

Fixes #476
2015-11-02 12:17:42 -08:00
Erik Arvidsson 62fad2d615 Merge pull request #536 from arv/equals-by-ref
Make Equals compare by Ref (after comparing TypeRef)
2015-10-30 18:35:08 -04:00
Aaron Boodman 894e615696 Merge pull request #535 from aboodman/blob-future
Convert NewBlob() away from using resolvedFutures
2015-10-30 15:05:09 -07:00
Erik Arvidsson 3c0ef5bcbb Make primitives reasonable 2015-10-30 17:33:47 -04:00
Erik Arvidsson 30cc7d518f Make Equals compare by Ref (after comparing TypeRef)
This changes equal to compare by ref. Since computing the ref can be
expensive we first check that the type refs are equal.

Fixes #532
2015-10-30 16:50:49 -04:00
Aaron Boodman c52bf0bbf5 Convert NewBlob() away from using resolvedFutures
Instead, use a backing MemoryStore. This is part of removing Futures.
2015-10-30 12:50:56 -07:00
Dan Willhite 80be862fda Regroup common code. 2015-10-30 10:36:34 -07:00
Dan Willhite 42bac09422 Make sfcrime/quad_tree apps work with new nomsdl types.
Change generated files to <base>.noms.go
2015-10-30 10:23:15 -07:00
Aaron Boodman a9bc416a2f Change Chunks() to return []ref.Ref 2015-10-30 09:24:58 -07:00
Rafael Weinstein 0e0be1c59b Remove trailing newline from json encoding in typed serialization 2015-10-28 17:07:34 -07:00
Dan Willhite 84b99fbc37 Check in generated files with new names and delete old ones. 2015-10-28 14:28:20 -07:00