MaximeBarniaudy
|
c2da606329
|
Migrate everything to peg vm
|
pirms 10 mēnešiem |
MaximeBarniaudy
|
06962d9a48
|
add do-while and f-string dynamic addition proofs of concepts
|
pirms 10 mēnešiem |
MaximeBarniaudy
|
168631e246
|
Add emitByteCode functions to support using the peg VM, add support for @ actions, automatically generate the minproto.grammar file from minproto.leg and use that in the parser generator. Fix issue with backslashes being stupid.
|
pirms 10 mēnešiem |
MaximeBarniaudy
|
c3125a863f
|
Move side effect of variable assignment in namespace out of grammar for logic and ease of use reasons
|
pirms 11 mēnešiem |
MaximeBarniaudy
|
959c34b7b2
|
Remove old unused code, and measure parsing speed
|
pirms 11 mēnešiem |
MaximeBarniaudy
|
3ef49024c5
|
Use newest primitives for character class and string matching
|
pirms 11 mēnešiem |
MaximeBarniaudy
|
b2e4198529
|
Build Grammar objects whose methods are expression representations of grammar rules
|
pirms 11 mēnešiem |
MaximeBarniaudy
|
d26d33bf3f
|
Fix errors after SetVar behavior change and let removal
|
pirms 11 mēnešiem |
MaximeBarniaudy
|
d840010b55
|
Delare Stream object in C code and add primitive for stream string matching. Also refactor the rollback mechanism in the grammar parser to give responsibility to the right object.
|
pirms 11 mēnešiem |
MaximeBarniaudy
|
090142c69c
|
Make grammar_parser.meta use the entire grammar from minproto.leg
|
pirms 11 mēnešiem |
MaximeBarniaudy
|
b23a65dbb0
|
Add optional base argument to String.asInteger
|
pirms 11 mēnešiem |
MaximeBarniaudy
|
1a7d31d66e
|
Fix error after single quote semantics change
|
pirms 11 mēnešiem |
MaximeBarniaudy
|
a5b9103da3
|
Add with and without functions for namespace manimulation, add namespace support to grammars, add test of parser circularity
|
pirms 1 gada |
MaximeBarniaudy
|
1ec2c7d8ef
|
parser circularity
|
pirms 1 gada |
MaximeBarniaudy
|
dfa680df47
|
dotdot got lost in merging
|
pirms 1 gada |
MaximeBarniaudy
|
9851f982cb
|
Add Invoke and GetProp
|
pirms 1 gada |
MaximeBarniaudy
|
4eeaa54367
|
Minimal grammar parsing
|
pirms 1 gada |
MaximeBarniaudy
|
d170f243ee
|
Add an intern primitive for symbol creation
|
pirms 1 gada |
WitherFlower
|
561c1dcb80
|
Merge range access and grammar parser changes
|
pirms 1 gada |
Ian Piumarta
|
1acd725af0
|
Default grammar is part of PEG VM frame. RULE2 and CALL2 change the default grammar for the duration of the rule being called.
|
pirms 10 mēnešiem |
Ian Piumarta
|
1bf9944ff1
|
String literals make fresh copies of themselves every time they are evaluated.
|
pirms 10 mēnešiem |
Ian Piumarta
|
4e63df351f
|
bench-sieve.txt repeates 200 times.
|
pirms 10 mēnešiem |
Ian Piumarta
|
4065107170
|
String_append(), _appendAll(), and _format() allocate new memory to allow raw pointers to old content to persist. Add PEG operations TEST (fail if function returns false) and RULE2 (call rule in other grammar). PEG instruction's second operand is object not integer. Initialise top level state.variables with empty object in vmRun(). PEG instruction FAIL removes all actions added by its rule.
|
pirms 10 mēnešiem |
Ian Piumarta
|
1fbcf8fd88
|
Turn off bogus compiler warnings about bounds errors when optimising.
|
pirms 10 mēnešiem |
Ian Piumarta
|
7e46198826
|
Fix double-eval bug in apply(). Grow buffers by more than 1 wherever performance matters.
|
pirms 11 mēnešiem |
Ian Piumarta
|
ea38861c4d
|
vmCompile() checks that all PC destinations are in range. STRING and CLASS opcodes read the argument length from their string, ignoring the explicit length given in the program.
|
pirms 11 mēnešiem |
Ian Piumarta
|
1ea2557f7e
|
Fix digitValue() and reading of numerical escaped characters in strings. Indexing a string always returns an unsigned char value. Add PEG VM and corresponding primitive __match__().
|
pirms 11 mēnešiem |
Ian Piumarta
|
c10c320d4e
|
Add profiling support when compiled with PROFILE=1 and command-line option -p to enable profiling. Add [from:to] syntax for array and string slices. Fix passing of environment between primitive and user-defined __eval__ methods.
|
pirms 11 mēnešiem |
Ian Piumarta
|
6ae2155b92
|
Remove let keyword in front of local definition.
|
pirms 11 mēnešiem |
Ian Piumarta
|
d6a9d2e88f
|
Remove let keyword in front of local definition.
|
pirms 11 mēnešiem |
Ian Piumarta
|
2e94543651
|
Enable profiling when poducing release binary.
|
pirms 11 mēnešiem |
Ian Piumarta
|
3d36581570
|
Include libffi in executable.
|
pirms 11 mēnešiem |
Ian Piumarta
|
4b75732a7e
|
Support super.id() to call method id in the delegate of the object in which the currently running method was found. Add __extern__ to support foreign function calls.
|
pirms 11 mēnešiem |
Ian Piumarta
|
f2e790cb26
|
Add String.bitSet, .bitClear, .bitInvert, bitTest, .charClass, .compareFrom.
|
pirms 11 mēnešiem |
Ian Piumarta
|
1fd5a0be12
|
New reference output.
|
pirms 11 mēnešiem |
Ian Piumarta
|
e57242eb5d
|
Prefix 'local' constrins variables to be in current scope. Variable references, inrement operator l-values, and function definitions can all be qualified 'local' or 'global'.
|
pirms 11 mēnešiem |
Ian Piumarta
|
4622db9d34
|
Simplify variable lookup and implicit variable declarations.
|
pirms 11 mēnešiem |
Ian Piumarta
|
2983237af0
|
Object.push(x) returns self, not x.
|
pirms 11 mēnešiem |
Ian Piumarta
|
2171f47dce
|
Fold constants during parsing if FOLDCONST=1.
|
pirms 11 mēnešiem |
Ian Piumarta
|
4d396d6170
|
Fix floating point comparison and assignment operators.
|
pirms 11 mēnešiem |
Ian Piumarta
|
883a9cf7c2
|
Remove let and ::. Add global keyword. Add Ref/Get/SetSym. Cast the 0 terminator in genericError to oop to ensure va_arg picks it up. Better error messages for broken statements in blocks and broken expressions in argument lists.
|
pirms 11 mēnešiem |
Ian Piumarta
|
ea60878c24
|
Add exception tests. New test.txt reference output.
|
pirms 11 mēnešiem |
Ian Piumarta
|
dcbef49750
|
Exceptions are supported with syntax "try {} catch (e) {}", "try {} ensure {}", and "raise e". Add catch to the list of words that can end an expression statement. Most runtime errors are reported using exceptions when EXCEPTIONS=1. Add String_repeat() supporting multiplying a string and an integer. Illegal escape sequence in a string is a warning not an error. Break and continue work properly in while(). ForFromTo evaluates its start and end arguments. Rename primitive fatal() to error().
|
pirms 11 mēnešiem |
Ian Piumarta
|
207ef22fb0
|
Upate test reference output.
|
pirms 11 mēnešiem |
Ian Piumarta
|
46c7ef6f32
|
Run the first non-option command line argument as the program. Set _argv__ to program name plus any following command-line arguments.
|
pirms 11 mēnešiem |
Ian Piumarta
|
2fcfaa962b
|
Primitives have a unique integer index to identify them. Add String_appendString(base, ext) with the obvious behaviour. Rename newStringEscaped -> newStringUnescaped to describe its operation not its input. Add String_escaped() to replace non-graphic characters. Add String_push() to append characters or strings. Add __primitives__ containing an array of all primitives. Add reverseString() that reverse a string in-place. Add reverseObject() that reverses an object in-place. Add reversed() that returns a reversed copy of an object or string. Fix Let_codeOn() to avoid the # in front of the variable name. Add /* ... */ syntax for multi-line, nesting comments. Add method String.new() to make a new, empty string. Add methods String.escaped(), String.unescaped(). Add method String.push() to append a character or another string. Add method String.pop() to remove and return the last character. Add methods String.asInteger(), String.asFloat(), String.asSymbol(). Provide an implementation of strnstr() for C libraries that lack it. Add method Object.includes() that searches indexable part of an object. Add method String.includes() that searches for characters or strings. Add String.sliced(start, stop) that returns a sub-string. Add method Symbol.asString(). Add method Object.findKey(). Add primitive reversed(). Add methods Symbol.getopt() and Symbol.setopt(). Add method Symbol.defined() that checks the global value, whereas the defined() primitive checks all visible bindings. Add method Symbol.define() to set the global value. Add method Symbol.value() to retrieve the global value. Add method Symbol.allInstances().
|
pirms 1 gada |
Ian Piumarta
|
cd992e141e
|
Include profile guided optimisation workload.
|
pirms 1 gada |
Ian Piumarta
|
f75c06ca3e
|
Target minproto-opt built with TYPECODES and DELOPT enabled. Target release profiles with -O to disable backtrace.
|
pirms 1 gada |
Ian Piumarta
|
09c41142f3
|
<type>.eval methods are installed in all built-in object types when TYPECODES=1. println() prints object properties in alphabetical order.
|
pirms 1 gada |
Ian Piumarta
|
c5c29bdbb0
|
Add release target that uses profile guided optimisation.
|
pirms 1 gada |