Skip to content

Commit 1bb7133

Browse files
committed
Revert "Multiple rhs (#25)"
This reverts commit a1d25ae.
1 parent a1d25ae commit 1bb7133

27 files changed

+2850
-3459
lines changed

CHANGELOG.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,5 @@
11
## master
22

3-
- pattern matching rewrite
4-
- add multiple defs and parameter pattern match to compiler
5-
- add filemodel::new_from_file, rework filemodel_open
6-
- reloading a toolkit now deletes all defs, then does load ... adding a new
7-
def to a func across a parse unit is now an error
8-
93
## 9.0.14 2025/10/25
104

115
- fix load cancel

TODO

Lines changed: 24 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,38 @@
1-
- nicholas's bug report
1+
- should allow vips_image ++ Image
22

3-
- lcomps leave stray unreffed symbols in "list unresolved"
4-
5-
Image_transform_item.Resize_item.Size_within_item.action.within ($SAVEDIR/start/Image.def:509) refers to undefined symbol h
6-
Image_transform_item.Resize_item.Size_within_item.action.within ($SAVEDIR/start/Image.def:509) refers to undefined symbol w
7-
8-
- rework pattern matching in lcomps
9-
10-
- what does the programming window do for multiple defs?
11-
12-
probably need to follow next_def and concatenate them all
13-
14-
- dir should hide $$vars
15-
16-
- programming window is showing generated syms, like $$pattern_lhs0?
17-
18-
- ban patterns in class parameters
19-
20-
or could we allow multiple class defs?
21-
22-
Fred (Image x) = class { ... };
23-
24-
probably only useful for trivial classes
25-
26-
- what about
27-
28-
fred (list x) = ...;
29-
fred (complex x) = ...;
30-
31-
ie. allow names of builtin types as well as class names
32-
33-
maybe:
3+
- remove remove prefs workspace stuff?
344

35-
fred (is_list x) = ...;
5+
things like max heap size should be settable ... maybe pres are useful?
366

37-
ie. a predicate before the arg, as well as a class name?
7+
- add multiple definitions, finish function argument destructuring
388

39-
- do we allow eg.
9+
sym has a field for "next definition", initially NULL
4010

41-
fred [a, b ..] = a + b;
11+
` add_defining looks for an existing sym with this name, if it finds
12+
one, add a new sym called "{name}-$$4" or whatever
4213

43-
equivalent to
14+
chase to the end of "next definition" on the existing sym, append our
15+
new sym
4416

45-
fred a:b:x = a + b;
17+
during compile, generate code like
4618

19+
fred a b c
20+
= destructured_fred, args_match
21+
= fred-$$1 a b c
22+
{
23+
destructured_fred = rhs of fred
24+
args_match = a_matches && b_matches && c_matches
25+
}
4726

27+
if a func has many RHS and the last RHS uses destrucuring, generate a
28+
final def with
4829

49-
- remove remove prefs workspace stuff?
30+
fred a b c
31+
= error "no def of fred matches args a b c";
5032

51-
things like max heap size should be settable ... maybe pres are useful?
33+
- error if more than one def of fred has no destructuring
34+
- error if defs don't all have the same number of args
35+
- error if a def with no destructuring isn't the last def
5236

5337
- try < > in the image titlebar
5438

meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
project('nip4', 'c',
22
# ie. a major after nip2 8.9 for workspace save file versioning
3-
version: '9.0.15',
3+
version: '9.0.14',
44
license: 'GPL',
55
meson_version: '>=0.64',
66
default_options: [

0 commit comments

Comments
 (0)