marat1961 / oz-sgl Goto Github PK
View Code? Open in Web Editor NEWStandard Generic Library (SGL) for Pascal using records with heap memory allocator and typed memory regions.
License: Apache License 2.0
Standard Generic Library (SGL) for Pascal using records with heap memory allocator and typed memory regions.
License: Apache License 2.0
What should be in the documentation.
Add three standard iterator implementations:
The metadata will be organized in a two-tier structure:
It should be possible to use for p in List do;
Add iterators to bypass tree elements:
Hello,
I'm glad to have found this interesting project! I'm trying make some changes to the repository so that it compiles under XE4. I've done several as you can see in the PR #7 , but not sure what to do for the compiler error as you can see in the attached screenshot :) Any help?
It should be possible to use for p in List do;
If we have access to the data element via a hashmap iterator via an address, then we can change the key or value, which means that the hashmap will be broken. Subsequent search may become incorrect.
Therefore the iterator should not allow to change the value.
Then we could assume that we have a typed region that contains an array of data described by some tuple.
An easy interface for accessing an array of values would be extremely useful.
var
meta: TsgTupleMeta;
rgn: PMemoryRegion;
tuple1, tuple2: TsgTuple;
ptr: Pointer;
pv: PVector;
ps: PChar;
pi: PInteger;
begin
meta.MakeTrio<TVector, string, Integer>(nil, True);
rgn := meta.MakeTupleRegion;
tuple1 := rgn[5];
tuple2 := rgn[7];
tuple1.Assign(rgn[7]);
ptr := tuple.tie(0);
pi := tuple.tie<TVector>(0);
ps := tuple.tie<string>(1);
pv := tuple.tie<Integer>(2);
end;
Managed data types have a lot of overhead.
This also applies to string type.
I am already coming to the idea that in some places it would be useful to use some kind of repository for strings.
Then we can use PChar instead of a string.
Storing strings in a dictionary is probably a good idea.
Finding a string in a hashmap can be done efficiently.
Most commonly used strings are immutable values.
Typically, strings are used to describe metadata, such as field names, class names, and enumeration values.
When designing a user interface, we deal with a lot of labels.
For example, when we pass data to json, most of this data is field names.
If we use Google protocol buffer, integer encoding without leading zeros is used to encode the fields.
Compression algorithms come with a lot of overhead.
Consider, for example, passing tabular data to display a report.
String data is column names, display styles, width, alignment method, and the values themselves,
which should be for each cell in the table.
It is possible to identify a repeated set of string data for a specific report type with each transmission.
So we can tell you the dataset for report # 9.
Some fields will have a very limited set of values based on the enumerated type.
The immutable part of the data, which may be in each transmission, must be declared as a part of a specific data format and transmitted to the client side once.
We pass the modified part as field values or in a separate part of the message.
It is also possible to combine this piece of data with the applicable data and national language encoding.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.