Repository navigation
Releases
RNL Viewer 0.5.3
RNL Viewer 0.5.3 asks which definition to enter when Auto Include found several, and shows the parameters of a subcircuit, with the values its instance gives and a dialog to change them. It is built from the same source as the web viewer, which has these as well, and carries the core of RNL core 0.5.5, which is released with it: the parameters in the Document that these changes read are that release's.
Choosing among the definitions
- An instance of a subcircuit that the Library defines more than once asks which to open. Auto Include still includes none of the definitions, so the instance used to be a dead end. Entering it now, by E or Enter, a double click in the drawing or the text, Edit › Open Subcircuit, or the open badge, opens one dialog in the middle of the window, titled Choose a definition of X, that lists each definition as
file:line. The arrow keys and Enter choose, Escape cancels, and Shift sends the choice to a new window. Selecting such an instance says in the status line that it has several definitions and that entering asks which. - The one chosen opens as a view of its own file, at its subcircuit, as a subcircuit defined in an included file does, with the parameters of the instance (below). The netlist shown is not changed, and the choice is not remembered, so entering asks again.
- The warning in Problems now reads "subcircuit X is defined 2 times in the Library (/a.inc:1, /b.inc:1); enter the instance to choose one, or add an explicit include".
- Going into another file no longer leaves the status line of the instance selected in the file before.
Parameters
- A bar of the parameters. A subcircuit that has parameters shows them in a row under the path:
name = valuefor each, and where the value comes from: from X1 (the instance it was entered through), default, changed, or?and not set when there is none. A value that cannot be evaluated stays as written, with a question mark. More than four parameters, or a row that wraps, fold into a summary, "11 parameters: 2 from X4, 9 default", which Show all unfolds. The drawing is unchanged:${w}stays as written, and the values are shown only in the bar and the dialog. The embedded viewer has no bar. - A dialog changes them. Edit Parameters... on the bar, or Edit › Subcircuit Parameters..., opens a dialog with a field for each parameter, its default and where its value comes from. Apply builds the Document again with the values bound to the subcircuit; the level, the view and the selection stay. An empty field is the default, and Restore the values of X1 puts the instance's back. The netlist is not changed.
- A subcircuit shown by itself asks for the values it lacks. Opened from the index or as a file of its own, a subcircuit with a parameter that has no default and no value asks for it before it is looked at, once for each document. One whose parameters all have values opens with its defaults, and the bar says so.
- Entering a subcircuit of another file takes the values of its instance. The view of a subcircuit defined in a Library or an included file is built with the parameters the instance writes: a plain number as written, an expression as the number it comes to where the instance is. The bar shows them as the instance's.
- The new texts are translated in every language of the interface.
Known trade-offs
- The values belong to the build that made them. Changing the parameters builds the document again with the values bound, and only that build shows them: Apply Changes, Reload and Solve show the instance's values again.
- A value written in the dialog that the core cannot evaluate is not refused: it is shown as written, with a question mark.
- A name the instance writes that is not a parameter of the subcircuit in another file is ignored with the core's warning, which is in the Problems of that view.
Downloads
| File | Use |
|---|---|
RNL-Viewer-0.5.3-windows-x64-setup.exe |
Windows installer for the current user, with a page for the public packages; no administrator rights required. |
RNL-Viewer-0.5.3-windows-x64.msi |
Windows installer for all users, with a "Public packages" feature; requires administrator rights. |
RNL-Viewer-0.5.3-windows-x64.exe |
Windows application as a single file, without installing and without the public packages. |
RNL-Viewer-0.5.3-with-packages-windows-x64.zip |
The same Windows file beside a public-packages folder; unpack it and run the file. |
RNL-Viewer-0.5.3-linux-x86_64.AppImage |
Linux application; make it executable and run it, or use --appimage-extract-and-run without FUSE. |
RNL-Viewer-0.5.3-with-packages-linux-x86_64.AppImage |
The same, with the public packages inside. |
RNL-Viewer-0.5.3-linux-x86_64.deb |
Debian/Ubuntu package of the viewer; install with sudo apt install ./RNL-Viewer-0.5.3-linux-x86_64.deb. |
RNL-Viewer-0.5.3-linux-public-packages.deb |
Debian/Ubuntu package of the public packages, for the viewer of the file above; install it the same way. |
RNL-Viewer-0.5.3-macos-arm64.dmg |
macOS 13 or newer on Apple Silicon. |
RNL-Viewer-0.5.3-macos-x86_64.dmg |
macOS 13 or newer on Intel. |
RNL-Viewer-0.5.3-with-packages-macos-arm64.dmg |
The same for Apple Silicon, with the public packages inside. |
RNL-Viewer-0.5.3-with-packages-macos-x86_64.dmg |
The same for Intel, with the public packages inside. |
SHA256SUMS.txt |
SHA-256 checksums for the twelve downloads. |
Windows requires 64-bit Windows 10 or 11 and Microsoft Edge WebView2. The installers download WebView2 when it is missing. Linux requires x86_64, WebKitGTK 4.1 and a glibc version compatible with Ubuntu 22.04 or newer.
The macOS app has an ad-hoc signature only, with no Developer ID and no Apple notarization. If macOS blocks the first start of a download you trust, choose Open Anyway in System Settings › Privacy & Security, or run xattr -dr com.apple.quarantine "/Applications/RNL Viewer.app".
The downloads are not code-signed with a publisher certificate. Windows may display a SmartScreen or unknown-publisher warning. Verify downloads against SHA256SUMS.txt, for example with shasum -a 256 on macOS.
RNL Viewer is released under the MIT License. Its embedded Noto Sans SC Regular and Bold fonts and font metrics are released under the SIL Open Font License 1.1. The installers include both licences in LICENSE.txt, and Help › About identifies the fonts. The public packages are under CC0-1.0, with the licences of rnl-packages beside them.
RNL Viewer 0.5.2
RNL Viewer 0.5.2 lists the usages of the selected object, shows groups as a kind of usage, sets nested frames out so that their titles show, and can carry the public packages for use offline. It is built from the same source as the web viewer, which already has what is here but the packages; this release brings it to the desktop viewer. The core's part of these changes (the usages of an object, groups, the RNL package format) reaches the rnl command and the npm package with the next core release.
Usages
- The usages of the selected object. When an instance, a net or a terminal is selected, the lower half of the Usage panel lists the usages it is a member of, a sentence a row, such as "in_p of usage %dp1 (definition $DIFFERENTIAL_PAIR)", each language in its own word order, with the usages those are members of in turn indented under it. A usage that is not in effect is grey, with its state. While the pointer is on a row, the usage's members are lit in the drawing; a click selects the usage. In the netlist text, the context menu of a reference such as
#M1has Show its usages, and View › Show Roles on Hover (off to begin with) adds the object's first usage to the box beside the pointer. - Groups (
@GROUP) are a kind of usage. The Usage panel lists them last, under@GROUP, folded to begin with like every kind, with a checkbox for each. The drawing frames a group, titled@GROUP: %core, and selecting one lights up its members. A group thatPRIORITYhas turned off is grey in the list, with "disabled", and its frame is drawn faint. The table of an object's usages says which groups it is a member of and which groups those are within, %amp is in turn within group %core. - Nested frames are set out. A frame that holds other frames, of usages and groups alike, goes one title's height outside the frames within it, and its title with it, so that an outer frame's title is no longer covered by an inner one's; a title that would lie on another's goes down a row. Only the outer three frames of a nest are set out, the frames below are drawn over one another, and only the frames shown are counted, so a few kinds shown at a time are set out among themselves. Export SVG and Export PNG set the frames out the same way.
- The kinds of usages start folded. When a file opens or the level changes, every kind in the Usage panel is folded; Expand All (and Collapse All) above the list opens or folds them all. A usage you select, on the drawing, in the text or in the table of an object's usages, opens its kind and comes into view.
Public packages
- The desktop viewer can carry the public packages, for use offline; it never downloads them. The Windows installer (
setup.exe) has a "Public packages" page, on by default (/PACKAGES=0leaves them out of a silent install), and the MSI a "Public packages" feature (PUBLICPACKAGES=0). The Debian package comes in two files, the viewer and, separately, the public packages. The portable builds come in two variants, without and with the packages: the single Windows file and a zip of it beside apublic-packagesfolder, the AppImage, and the disk images of macOS. - The packages are the latest versions in the catalog of rnl-packages when the release was built, each file checked against its SHA-256, under their licences (CC0-1.0). The Library lists them as a read-only group, "Public packages (bundled)", and a package that a netlist uses by name is found there. Help › Public Packages says what the packages are, which this build carries, where the other variant is, and how to add a folder of downloaded packages to the PATH.
Files
- A file that is no netlist is shown as plain text. A Verilog-A, Verilog or VHDL file gets no netlist or RNL highlighting, folds, tints or include links, and says so in the drawing's place; so does any file the core takes for text, or that you set to Text in the Library. A file you set to SPICE is a netlist again.
- A package file is known by its format, not its
.rnlsuffix. In the Library,.pkgand.rnlfiles show their format, and a.pkgthat has aPACKAGEheader is "Automatic (RNL package)"; either can be set to another format.
Interface
- The Problems panel's first column is as wide as the widest name of a severity, so that the longer words of Spanish, French and German no longer run into the message.
- On a phone, the Symbol view's preview takes two fingers to zoom and drag, one finger to drag and a double tap to fit it again, as the drawing does.
- The Japanese, Spanish and German of the usage table were corrected as a review found them; Traditional Chinese and German write "apply" (the edits) with a word of its own, apart from RNL's term; Simplified and Traditional Chinese write "Agent" in English, capitalized.
- Solve (desktop) tells supply, ground and port symbols by their drawing, not by their names in the standard 0.2, so that it places the grounds and ports of files of 0.3 as it should.
The web viewer
These are in the web viewer, which this release's changes come from; the desktop viewer reads its page from disk and has no use for most of them.
- It starts faster. The page asks for its scripts, the core and the files it reads at start all at once, reads only the catalog of the language it starts in, and, for Chinese and Japanese on a computer with no font of its own for them, takes the characters of its interface from one small font of about 100 KB in place of megabytes of slices. On a slow connection the first visit is usable about two seconds earlier, and a visit after the cache has expired, much sooner.
- An embedded viewer (
?embed=1) takesusagesandcurrentsin its address and in messages, and starts without the usage frames and with the current directions.
Downloads
| File | Use |
|---|---|
RNL-Viewer-0.5.2-windows-x64-setup.exe |
Windows installer for the current user, with a page for the public packages; no administrator rights required. |
RNL-Viewer-0.5.2-windows-x64.msi |
Windows installer for all users, with a "Public packages" feature; requires administrator rights. |
RNL-Viewer-0.5.2-windows-x64.exe |
Windows application as a single file, without installing and without the public packages. |
RNL-Viewer-0.5.2-with-packages-windows-x64.zip |
The same Windows file beside a public-packages folder; unpack it and run the file. |
RNL-Viewer-0.5.2-linux-x86_64.AppImage |
Linux application; make it executable and run it, or use --appimage-extract-and-run without FUSE. |
RNL-Viewer-0.5.2-with-packages-linux-x86_64.AppImage |
The same, with the public packages inside. |
RNL-Viewer-0.5.2-linux-x86_64.deb |
Debian/Ubuntu package of the viewer; install with sudo apt install ./RNL-Viewer-0.5.2-linux-x86_64.deb. |
RNL-Viewer-0.5.2-linux-public-packages.deb |
Debian/Ubuntu package of the public packages, for the viewer of the file above; install it the same way. |
RNL-Viewer-0.5.2-macos-arm64.dmg |
macOS 13 or newer on Apple Silicon. |
RNL-Viewer-0.5.2-macos-x86_64.dmg |
macOS 13 or newer on Intel. |
RNL-Viewer-0.5.2-with-packages-macos-arm64.dmg |
The same for Apple Silicon, with the public packages inside. |
RNL-Viewer-0.5.2-with-packages-macos-x86_64.dmg |
The same for Intel, with the public packages inside. |
SHA256SUMS.txt |
SHA-256 checksums for the twelve downloads. |
Windows requires 64-bit Windows 10 or 11 and Microsoft Edge WebView2. The installers download WebView2 when it is missing. Linux requires x86_64, WebKitGTK 4.1 and a glibc version compatible with Ubuntu 22.04 or newer.
The macOS app has an ad-hoc signature only, with no Developer ID and no Apple notarization. If macOS blocks the first start of a download you trust, choose Open Anyway in System Settings › Privacy & Security, or run xattr -dr com.apple.quarantine "/Applications/RNL Viewer.app".
The downloads are not code-signed with a publisher certificate. Windows may display a SmartScreen or unknown-publisher warning. Verify downloads against SHA256SUMS.txt, for example with shasum -a 256 on macOS.
RNL Viewer is released under the MIT License. Its embedded Noto Sans SC Regular and Bold fonts and font metrics are released under the SIL Open Font License 1.1. The installers include both licences in LICENSE.txt, and Help › About identifies the fonts. The public packages are under CC0-1.0, with the licences of rnl-packages beside them.
RNL core 0.5.5
RNL core 0.5.5
The rnl command and the npm package @rich-netlist/runtime 0.5.5, built from the same core.
RNL Viewer 0.5.3 is released with it; the language standard is unchanged at 0.3. The solver stays
at 0.1.
What is new
- The parameters of subcircuits are in the Document (#340).
A viewer can now show a subcircuit with the values its instance gives it, or with values typed
into a dialog. Nothing drawn changes:${w}still shows what is written (13.6), and the numbers
are for showing only.- A subcircuit level lists its formal parameters,
Level.params, each with its default as
written, the value it has, the number that comes to, and where the value comes from:"bound",
"default"or"unset"(no default and no value). - An instance lists the parameters it writes,
Child.params, evaluated in the level the
instance is in; also when the subcircuit is not defined. When it is defined,Child.effective
lists the subcircuit's parameters for this instance: those the instance writes
("instance") and the defaults of the others, evaluated with them. - A build can bind values to a subcircuit's parameters, for showing. They are text, such as
2u,1e-06or{2*l}, and only these lists change; nothing is remembered. A bound name that
is not a parameter of the subcircuit is a warning, with the closest name when there is one, as
is a subcircuit the netlist does not define; parameters whose defaults refer to each other
have no number and a hint says so. - The host adapters read the formal parameters of
.subckt(afterparams:, or without it as
HSPICE writes them, with+lines) and.paramstatements in SPICE, andparametersin
Spectre; they still evaluate nothing. The core evaluates numbers: scale factors (SPICE
without case, withmegandmil; Spectre with case,Mfor mega),+ - * / ^ **,
parentheses, unary signs, common functions, and{…}and'…'. Anything else has no number
and no diagnostic. A name is looked up in the bound or given values, then the subcircuit's
defaults and.params, then the subcircuits it is written in, then the files' values. rnl view --bind SUBCKT [--param NAME=VALUE]...builds the Document with those values.
No other command takes the options.
- A subcircuit level lists its formal parameters,
- An instance of a subcircuit that Auto Include found defined several times lists the
definitions (#338). Auto Include still
includes none of them, so the instance has no level, butChild.candidatesnow lists them, in
the Library index's order: the Library file that would be included, the file that defines it,
how that file is shown, and the line. Two definitions in one file are told apart by the line.
Every instance of that subcircuit has the list, by the dialect's rule for names (SPICE without
case, Spectre with it). A viewer can offer the choice.
The warning is reworded, and its severity is unchanged: it was
Auto Include: subcircuit X has conflicting definitions in a, b; add an explicit include to choose one
and is now
Auto Include: subcircuit X is defined 2 times in the Library (/a.inc:1, /b.inc:1); enter the instance to choose one, or add an explicit include.
It counts definitions, not files, so it holds when one file defines the subcircuit twice.
Additions to the npm package
Everything here is new; no field is removed or changed, and the snapshot (snapshot.d.ts) is
unchanged.
The Document (document.d.ts) gains, all left out of the JSON when empty, so the Document of a
netlist with no parameters and no several definitions is what it was:
Level.params?: SubcktParam[]: on every subcircuit level that has parameters, also one that
nothing calls;Child.params?: ParamValue[]: the parameters the instance writes;Child.effective?: SubcktParam[]: the parameters for this instance, when its subcircuit is
defined;Child.candidates?: AutoIncludeCandidate[]: the definitions Auto Include found, when there are
two or more and it included none;- the types
SubcktParam(name,default,value,number,from:"bound","instance",
"default"or"unset"),ParamValue(name,value,number) andAutoIncludeCandidate
(path,file,source,line).
The request (core.d.ts) gains bind?: { subckt: string; params?: Record<string, string> }.
For users of 0.5.4
- Netlists read and draw as before;
${…}and 13.6 are unchanged. - A tool that matched the text of the Auto Include warning,
has conflicting definitions, must
match the new text. The warning is still a warning. rnl viewtakes two more options; the other commands are as they were.
Files
| File | |
|---|---|
rnl-x86_64-pc-windows-msvc.zip |
Windows x64 |
rnl-x86_64-unknown-linux-musl.tar.gz |
Linux x86_64, statically linked |
rnl-aarch64-apple-darwin.tar.gz |
macOS on Apple Silicon |
rnl-x86_64-apple-darwin.tar.gz |
macOS on Intel |
SHA256SUMS.txt |
The SHA-256 sums of the archives: sha256sum --check --ignore-missing SHA256SUMS.txt, or Get-FileHash in PowerShell |
npm i @rich-netlist/runtime installs 0.5.5 under the dist-tag latest.
Linux on arm64 is not built yet; build the command from the source there.
Not signed
The executables have no code signature. Windows may show a SmartScreen warning. On macOS, a file
downloaded with a browser may need xattr -d com.apple.quarantine rnl after it is extracted
before it runs. Check each download against SHA256SUMS.txt first.
RNL core 0.5.4
RNL core 0.5.4
The rnl command and the npm package @rich-netlist/runtime 0.5.4, built from the same core.
RNL Viewer stays at 0.5.2; the language standard is unchanged at 0.3. The solver stays at 0.1.
What is new
-
The solver says it is a preview (#336).
Each timernl solveorrnl previewsolves, it prints one line on the standard error before
anything else:
note: the solver is a preview, and its layouts may be poor; for comparison, have the model write the exact RNL placement directly.
The standard output,preview's JSON among it, the files written and the exit codes do not
change. -
The usages each object is a member of, and
rnl explain(#317).
For every instance, net and usage, the Document now lists the usages it is a member of in its
level,Object.usages(MemberOf). Each entry gives:- the usage, its definition and the roles the object fills;
- the statement's file and line;
- where the usage comes from: written, a rule (with its package and place), the body of a
definition, or a record a solver wrote back; - whether it takes effect: in effect, failed (with the error), overridden (with the conflict) or
disabled.
An application that failed, and so made no usage, is listed too. The chain upward is the usage's
own entry. The new commandrnl explain FILE REF [--level TITLE] [--json]prints these lists:
one line for each usage, with the usages that contain it indented below. A REF that names
nothing is an error that lists up to five close names. -
Groups are listed with the usages (#331, #333).
A set marked with GROUP (11.5) is listed as a usage of kind"group":- in the usage table
Level.usages, after the usages, with one role,members, and a frame
titled@GROUP: %core, which the exported SVG now writes too; - in
Object.usagesof each member; - in
rnl explain, asmember of group %stage1.
A reference to a set is spread in a set (5.2), so a group is within another when all its members
are among the other's; a group lists the smallest groups it is within. Each row of the usage
table now says whether it takes effect,stateandreason. - in the usage table
-
A fourth format, RNL package (#313).
A file is a package file by its format,rnl, not by its.rnlsuffix. A file whose first
record starts a line and is a header record with@PACKAGEis claimed by its content.
--dialectand--formattakernl. A package file that a netlist includes is not read; the
include is an error, and USE-PACKAGE is the way to bring a package in (2.7, 16.2). -
A file of a hardware description language is text (#311).
.va,.vams,.v,.vh,.sv,.svh,.vhdand.vhdlfiles are of the formattext.
They are kept and not read, with one hint instead of SPICE's diagnostics, whether opened or
included. A format set for the file still wins. -
The solver tells supply, ground and port symbols by their drawing (#197).
It knew them only by the names of the series 0.2, so on a file of 0.3 grounds and ports were
placed as ordinary row elements and the current direction was not in force. It now reads them
off the symbols' pins and boxes. Files of the series 0.2 solve exactly as before. A file of 0.3
may now solve to another layout, with grounds below, supplies above and the rows from supply to
ground, often with less work.
Additions to the npm snapshot
The snapshot (snapshot.d.ts) only gains fields; none is removed or changed:
ObjectView.usages?: UsageOf[]andHostNet.usages?: UsageOf[]: the usages and groups the
object or net is a member of. Left out when empty.UsageOf:kind("usage"or"group"),id,definition,roles(RoleOf),file,
line,source,rule?(RuleAt),made_in?,state,reason?.LevelModel.groups?: GroupView[]: the groups of the level, withid,members,file,
line,source,rule?,made_in?,stateandusages?. Left out when the level has none.
The Document (document.d.ts) gains:
Object.usages: MemberOf[];Usage.kind,Usage.stateandUsage.reason;- the object kind
"group".
dialect and the formats may be "rnl" and "text".
For users of 0.5.3
- Netlists read and draw as before.
rnl solveandrnl previewprint one more line, on the standard error.- A tool that reads
Level.usagesorDocument.objectssees rows and objects of kind"group".
It should look atkindif it handles only usages. - A file of 0.3 may solve to a different layout (#197).
- A netlist that includes a package file now has an error, and
rnl checkexits 1. Before, it
read the package as SPICE with warnings. - A
.vafile and the like is no longer read as SPICE. Set a format for it to read it as before.
Files
| File | |
|---|---|
rnl-x86_64-pc-windows-msvc.zip |
Windows x64 |
rnl-x86_64-unknown-linux-musl.tar.gz |
Linux x86_64, statically linked |
rnl-aarch64-apple-darwin.tar.gz |
macOS on Apple Silicon |
rnl-x86_64-apple-darwin.tar.gz |
macOS on Intel |
SHA256SUMS.txt |
The SHA-256 sums of the archives: sha256sum --check --ignore-missing SHA256SUMS.txt, or Get-FileHash in PowerShell |
npm i @rich-netlist/runtime installs 0.5.4 under the dist-tag latest.
Linux on arm64 is not built yet; build the command from the source there.
Not signed
The executables have no code signature. Windows may show a SmartScreen warning. On macOS, a file
downloaded with a browser may need xattr -d com.apple.quarantine rnl after it is extracted
before it runs. Check each download against SHA256SUMS.txt first.
RNL core 0.5.3
RNL core 0.5.3
The rnl command and the npm package @rich-netlist/runtime 0.5.3, built from the same core.
RNL Viewer stays at 0.5.1; the language standard is unchanged at 0.3.
What is new
- A terminal's label stands for the nets of its pin (#292).
In the Document, a label attached to a terminal now stands for what that terminal's pin stands
for: its net, or its nets for a bus pin. A viewer that uses the Document's hits, such as RNL
Viewer, selects and highlights the net when the label is clicked, as when the pin is, and
selecting the net marks the terminal labels on it. Before, such a label stood for nothing
(rnl#102); use showed that was wrong.- A terminal without a net, or whose pin is not drawn, still stands for nothing.
- The Document's shape is unchanged: only the objects of terminal labels are filled. The
TypeScript declaration changes in its comments only.
Other changes
- The manifest module,
@rich-netlist/runtime/manifest, words two of its errors more clearly
(#286): a path that leaves the manifest or has an
empty segment "must be a relative path within the manifest without empty segments", and a file
without an address is reported asEntry … has no "url" field and the manifest has no "base" URL.They are still thrown asManifestErrornaming the same file.
For users of 0.5.2
- Netlists read and draw as before.
- A Document's terminal labels now name their pin's nets as their objects; a tool that treated a
terminal label as standing for nothing sees those objects. - A tool that matches the text of the two manifest errors above sees the new wording.
Files
| File | |
|---|---|
rnl-x86_64-pc-windows-msvc.zip |
Windows x64 |
rnl-x86_64-unknown-linux-musl.tar.gz |
Linux x86_64, statically linked |
rnl-aarch64-apple-darwin.tar.gz |
macOS on Apple Silicon |
rnl-x86_64-apple-darwin.tar.gz |
macOS on Intel |
SHA256SUMS.txt |
The SHA-256 sums of the archives: sha256sum --check --ignore-missing SHA256SUMS.txt, or Get-FileHash in PowerShell |
npm i @rich-netlist/runtime installs 0.5.3 under the dist-tag latest.
Linux on arm64 is not built yet; build the command from the source there.
Not signed
The executables have no code signature. Windows may show a SmartScreen warning. On macOS, a file
downloaded with a browser may need xattr -d com.apple.quarantine rnl after it is extracted
before it runs. Check each download against SHA256SUMS.txt first.
RNL Viewer 0.5.1
RNL Viewer 0.5.1 speaks eight languages, selects the net of a terminal from its label, and has clearer English texts. It is built from the same source as the web viewer, which already has what is here; this release brings it to the desktop viewer. The core's part of the change to the labels of terminals reaches the rnl command and the npm package with the next core release.
Languages
- View › Language lists English and seven languages, each by its name in its own writing: Deutsch, Español, Français, 日本語, 한국어, 简体中文 and 繁體中文. A text that is not translated yet shows in English.
- German, Spanish, French, Japanese and Korean are translated by AI and may contain errors; the English terms are the normative ones. Simplified Chinese was rewritten from the English and Traditional Chinese was added, both reviewed. The native menu of the desktop viewer lists the same languages.
- The first start follows the browser's or the system's list of languages. The viewer takes the first language of the list that it offers, as the project site does, and else English: a browser set to Italian and then German gets German. A language you choose is remembered, and comes first.
- A globe and the English word mark the Language menu. When the interface is not in English, View and its Language submenu show their translated names followed by the English word in parentheses, such as "Ansicht (View)" and "Sprache (Language)", and the web page's menu shows a globe before Language, so that the way back to English can be found in a language you cannot read. The languages' own names are as they were.
Labels of terminals
- A label attached to a terminal now stands for the nets of its pin, as a click on the pin does: a click on it selects the net and highlights it, and selecting a net marks the labels of the terminals on it. Before, such a label did nothing when clicked.
Clearer English
- Texts of dialogs, menus, tooltips and errors are reworded where they were unclear: the objectives of the solver are ranked in tiers, not levels; the empty drawing and the editor send you to File › Open File, as the menu names it; the Library is the Library, not a file pool; the errors of a manifest and of an export say what to do.
- Menu labels that open a dialog end in "...", such as Include Public Package..., and Open Subcircuit in New Window, which opens at once, does not. Spelling is American (color, canceled).
Downloads
| File | Use |
|---|---|
RNL-Viewer-0.5.1-windows-x64-setup.exe |
Windows installer for the current user; no administrator rights required. |
RNL-Viewer-0.5.1-windows-x64.msi |
Windows installer for all users; requires administrator rights. |
RNL-Viewer-0.5.1-windows-x64.exe |
Windows application as a single file, without installing. |
RNL-Viewer-0.5.1-linux-x86_64.AppImage |
Linux application; make it executable and run it, or use --appimage-extract-and-run without FUSE. |
RNL-Viewer-0.5.1-linux-x86_64.deb |
Debian/Ubuntu package; install with sudo apt install ./RNL-Viewer-0.5.1-linux-x86_64.deb. |
RNL-Viewer-0.5.1-macos-arm64.dmg |
macOS 13 or newer on Apple Silicon. |
RNL-Viewer-0.5.1-macos-x86_64.dmg |
macOS 13 or newer on Intel. |
SHA256SUMS.txt |
SHA-256 checksums for the seven downloads. |
Windows requires 64-bit Windows 10 or 11 and Microsoft Edge WebView2. The installers download WebView2 when it is missing. Linux requires x86_64, WebKitGTK 4.1 and a glibc version compatible with Ubuntu 22.04 or newer.
The macOS app has an ad-hoc signature only, with no Developer ID and no Apple notarization. If macOS blocks the first start of a download you trust, choose Open Anyway in System Settings › Privacy & Security, or run xattr -dr com.apple.quarantine "/Applications/RNL Viewer.app".
The downloads are not code-signed with a publisher certificate. Windows may display a SmartScreen or unknown-publisher warning. Verify downloads against SHA256SUMS.txt, for example with shasum -a 256 on macOS.
RNL Viewer is released under the MIT License. Its embedded Noto Sans SC Regular and Bold fonts and font metrics are released under the SIL Open Font License 1.1. The installers include both licences in LICENSE.txt, and Help › About identifies the fonts.
RNL core 0.5.2
RNL core 0.5.2
The rnl command and the npm package @rich-netlist/runtime 0.5.2, built from the same core.
RNL Viewer stays at 0.5.0; the language standard is unchanged at 0.3.
What is new
-
An object's style, written and read back (#274).
A tool can now write the style of an instance or a usage through the runtime, and read it back,
as Analog Canvas does with the colours of its parts and of symbols such as a red ground:-
The edit ops
setandadd-usagetakestyle, style properties (9.3), such as
{"linecolor": "#2275e2", "textcolor": "#2275e2"}. They are written the standard way, a style
that the object's statement gives it (11.3):* $style1 = @DEFINE-STYLE(linecolor="#2275e2", textcolor="#2275e2") {}; * #R1 @SET-STYLE $style1 => @PLACE(0, 0);Within a level, styles of the same properties and values are one definition, first in the
level's record. Each level that uses a style defines it itself, under a name of its own, so an
included file reads the same opened on its own and no definition hides one of a level above
(6.8). A property the language does not know is written as given and fails when the netlist is
read, as one written by hand does. Asetmay give only a style. -
The editor interface's snapshot (
rnl snapshot, andsnapshot()of the npm package) gives
each object the style properties the document's own records give it, asstyle: each property
as it wins in the style queue (8.3), merged, so the properties rather than the name of a style;
those a package gives, such as the standard package's defaults, are left out, as for the
styleof wires, texts and graphics. An object the document gives no style has nostyle. -
An object's style passes on to its labels as before (11.3): the name of an instance written in
a colour is drawn in that colour.
The TypeScript declarations have the new fields.
-
For users of 0.5.1
- Netlists read and draw as before; nothing is drawn differently.
- A snapshot's objects may have a new key,
style; a reader that ignores keys it does not know
sees no change. setandadd-usagewithoutstyleare written as before.
Files
| File | |
|---|---|
rnl-x86_64-pc-windows-msvc.zip |
Windows x64 |
rnl-x86_64-unknown-linux-musl.tar.gz |
Linux x86_64, statically linked |
rnl-aarch64-apple-darwin.tar.gz |
macOS on Apple Silicon |
rnl-x86_64-apple-darwin.tar.gz |
macOS on Intel |
SHA256SUMS.txt |
The SHA-256 sums of the archives: sha256sum --check --ignore-missing SHA256SUMS.txt, or Get-FileHash in PowerShell |
npm i @rich-netlist/runtime installs 0.5.2 under the dist-tag latest.
Linux on arm64 is not built yet; build the command from the source there.
Not signed
The executables have no code signature. Windows may show a SmartScreen warning. On macOS, a file
downloaded with a browser may need xattr -d com.apple.quarantine rnl after it is extracted
before it runs. Check each download against SHA256SUMS.txt first.
RNL Viewer 0.5.0
RNL Viewer 0.5.0 works on phones and tablets, applies the display settings a manifest proposes, and takes its languages from the project's list. It goes with RNL core 0.5.0, in which a role can take every kind of object of 9.4.
Phones and tablets
- Touch on the drawing. One finger drags the view; two zoom it around their middle as they spread or pinch, and drag it as their middle moves. A tap does what a click does, and a double tap what a double click does: it opens a subcircuit instance, or fits the drawing. Gestures on the drawing neither scroll nor zoom the page. The mouse, the wheel and the keys work as before, also on a laptop with a touch screen.
- A phone shows two pages, the schematic and the side panel, each the whole screen, upright or lying down; the bar at the bottom switches them, and each stays as it was left: the view, the level, the selection, the side panel's view and where its text is scrolled. With an object selected, View in Netlist in the status bar shows its line in the netlist, and View in Drawing brings it into the middle of the drawing. Opening a file, going into or out of a subcircuit, and picking a level in the hierarchy show the schematic. The netlist's options are behind an Options button. Lying down, the status bar and the switch bar share one row and the problems start folded.
- A tablet held upright has the side panel under the drawing, as wide as the screen; its handle drags it taller or lower, and the height is kept. Hide the Side Panel folds it to its tabs; a tap on a tab unfolds it. Lying down, the side panel is beside the drawing, as on a desktop.
- On a touch screen the menu titles, the tabs and the side panel's buttons are big enough for a finger, the tabs scroll sideways when they do not fit, menus stay on the screen, and nothing flashes when it is tapped. The status bar says a double tap opens a subcircuit instance.
- On a phone and in a tablet's bottom panel, the problems are as tall as what they list, so a few leave the netlist the rest of the room.
- A narrow browser or desktop window shows the two pages too, and one taller than it is wide the side panel under the drawing; other windows keep their layout.
Display settings from a manifest
- A manifest can propose display settings: the view of its level, the background, the colour scheme, whether usages and current directions are shown, and the grid. When an external manifest (
?manifest=), a project or a manifest of links proposes some, the viewer lists them and applies those you keep (Apply Selected, or Don't Apply). A setting the viewer does not know is named and left out. - The settings kept hold while a file of the manifest is shown: a file of another goes back to your own settings, and a file of the manifest again brings them back, unasked. They never replace your saved settings.
- Save Project, Download Project and Download Manifest ask whether to also write the current view, background, colour scheme, usages, current directions and grid into what they write.
Languages
- View › Language lists English and each language that the project offers for the viewers (
i18n/languages.json), by its name in itself: English and 简体中文, as before. A text not yet translated shows in English. - If the web viewer cannot load a language's translations, it starts without that language and says so in the status bar, in English; it tries again at the next start.
- Help › Desktop Viewer (web) opens the site's page of the tools in the first of the browser's languages that the project offers, else in English.
Other changes
- Netlists whose definitions give a role the kind
text,label,annotationorbundlenow apply and draw; they used to stop with an error (core 0.5.0).
Downloads
| File | Use |
|---|---|
RNL-Viewer-0.5.0-windows-x64-setup.exe |
Windows installer for the current user; no administrator rights required. |
RNL-Viewer-0.5.0-windows-x64.msi |
Windows installer for all users; requires administrator rights. |
RNL-Viewer-0.5.0-windows-x64.exe |
Windows application as a single file, without installing. |
RNL-Viewer-0.5.0-linux-x86_64.AppImage |
Linux application; make it executable and run it, or use --appimage-extract-and-run without FUSE. |
RNL-Viewer-0.5.0-linux-x86_64.deb |
Debian/Ubuntu package; install with sudo apt install ./RNL-Viewer-0.5.0-linux-x86_64.deb. |
RNL-Viewer-0.5.0-macos-arm64.dmg |
macOS 13 or newer on Apple Silicon. |
RNL-Viewer-0.5.0-macos-x86_64.dmg |
macOS 13 or newer on Intel. |
SHA256SUMS.txt |
SHA-256 checksums for the seven downloads. |
Windows requires 64-bit Windows 10 or 11 and Microsoft Edge WebView2. The installers download WebView2 when it is missing. Linux requires x86_64, WebKitGTK 4.1 and a glibc version compatible with Ubuntu 22.04 or newer.
The macOS app has an ad-hoc signature only, with no Developer ID and no Apple notarization. If macOS blocks the first start of a download you trust, choose Open Anyway in System Settings › Privacy & Security, or run xattr -dr com.apple.quarantine "/Applications/RNL Viewer.app".
The downloads are not code-signed with a publisher certificate. Windows may display a SmartScreen or unknown-publisher warning. Verify downloads against SHA256SUMS.txt, for example with shasum -a 256 on macOS.
RNL Viewer is released under the MIT License. Its embedded Noto Sans SC Regular and Bold fonts and font metrics are released under the SIL Open Font License 1.1. The installers include both licences in LICENSE.txt, and Help › About identifies the fonts.
RNL core 0.5.1
RNL core 0.5.1
The rnl command and the npm package @rich-netlist/runtime 0.5.1, built from the same core.
RNL Viewer stays at 0.5.0; the language standard is unchanged at 0.3.
What is new
-
add-usagewrites a usage's parameters (#245).
The edit opadd-usageof the write interface (rnl-edit, and the edit transactions of the npm
package) takesparams, the parameters the usage writes, so that a tool can write a
definition's parameters through the runtime, such as Analog Canvas's
$CANVAS_NAME @ATTACH(name="M1") #XM1(part)with analog-canvas-extensions 0.2:- they are written as
@ATTACH(k=v, …), in the order given; a name that is not an ASCII name is
written in quotes, the name itself, as a role is (16.5); - each value is a literal as the snapshot reads it back in
ObjectView.params(0.5.0): a string
in quotes, with a quote doubled; a number exactly, in the shortest form that reads back the
same;trueorfalse; a list in brackets, nested or empty. The snapshot gives numbers as
floats, so7reads back as7.0, one number to a reader of JSON; - a parameter the definition does not declare is written as given and fails when the netlist is
read, with the same error as the statement written by hand; - a string with a line break is refused, as the comment that carries the record would end there;
so is any other value, such asnullor an object.
The TypeScript declaration has
params?: Record<string, ParameterValue>, where a
ParameterValueis a string, a number, a boolean or a list of them. - they are written as
For users of 0.5.0
- Netlists read and draw as before; nothing else changed.
- An
add-usagewithoutparamsis written as before.
Files
| File | |
|---|---|
rnl-x86_64-pc-windows-msvc.zip |
Windows x64 |
rnl-x86_64-unknown-linux-musl.tar.gz |
Linux x86_64, statically linked |
rnl-aarch64-apple-darwin.tar.gz |
macOS on Apple Silicon |
rnl-x86_64-apple-darwin.tar.gz |
macOS on Intel |
SHA256SUMS.txt |
The SHA-256 sums of the archives: sha256sum --check --ignore-missing SHA256SUMS.txt, or Get-FileHash in PowerShell |
npm i @rich-netlist/runtime installs 0.5.1 under the dist-tag latest.
Linux on arm64 is not built yet; build the command from the source there.
Not signed
The executables have no code signature. Windows may show a SmartScreen warning. On macOS, a file
downloaded with a browser may need xattr -d com.apple.quarantine rnl after it is extracted
before it runs. Check each download against SHA256SUMS.txt first.
RNL core 0.5.0
RNL core 0.5.0
The rnl command and the npm package @rich-netlist/runtime 0.5.0, built from the same core.
RNL Viewer 0.5.0 is released alongside it under viewer-v0.5.0; the language standard is
unchanged at 0.3.
What is new
- A role takes every kind name of 9.4 (#223).
A definition's role can be declared with any of the ten kinds of the word list (5.3):
instance,terminal,net,point,wire,usage,bundle,text,annotationand
label. The core knew only the first six and failed the other four with "unknown kind name …
(9.4)", so every statement that applied such a definition failed too. What the new kinds take:text: every TEXT;label: a TEXT attached to an object, such as#R1::name;annotation: a TEXT attached to a point, and the graphics (5.1);bundle: a bundle. A role declaredbundleused to refuse bundles, as they were compared as
instance;instancestill takes bundles, andterminaltheir terminals (11.8).
- A usage's parameters in the snapshot (#221).
The editor interface's snapshot (rnl snapshot, andsnapshot()of the npm package) gives each
usage the parameters that the statement applying it writes (9.4), asparams:- only those written at the statement, in the order of the definition, without its defaults;
- each value of the type it is written in: a string as written, a number, a truth value, or a
list of them. Numbers are written as every number of the snapshot is, as floats:drop=2
gives2.0; - no
paramsfor a usage that writes none, or for an instance, so every other snapshot is
unchanged. The TypeScript declaration of the snapshot has the new field.
- Display settings in manifests (#220,
#224). The manifest module,
@rich-netlist/runtime/manifest, reads and writes a manifest'sdisplay: the view of its level
(fitted, or a centre and a scale), the background, colours by the viewer's names, whether usages
and current directions are shown, and the grid. A reader gives the settings it reads as
display, and names indisplayIgnoredthose a viewer will not apply: those of another shape,
left out, and those it does not know, kept as they are so that writing the manifest again loses
nothing. A colour is kept as the manifest writes it. RNL Viewer offers the settings and applies
only those the user keeps.
Other changes
- The diagnostic for an alias of a
$name gives an English example,
@ALIAS("$DP", "$DIFFERENTIAL_PAIR")(#232).
For users of 0.4.1
- Netlists read and draw as before. A definition whose role names
text,label,annotationor
bundleused to fail and now applies; nothing that passed before fails now. - A snapshot's usages may have a new key,
params; a reader that ignores keys it does not know
sees no change. - A manifest without
displayreads as before.
Files
| File | |
|---|---|
rnl-x86_64-pc-windows-msvc.zip |
Windows x64 |
rnl-x86_64-unknown-linux-musl.tar.gz |
Linux x86_64, statically linked |
rnl-aarch64-apple-darwin.tar.gz |
macOS on Apple Silicon |
rnl-x86_64-apple-darwin.tar.gz |
macOS on Intel |
SHA256SUMS.txt |
The SHA-256 sums of the archives: sha256sum --check --ignore-missing SHA256SUMS.txt, or Get-FileHash in PowerShell |
npm i @rich-netlist/runtime installs 0.5.0 under the dist-tag latest.
Linux on arm64 is not built yet; build the command from the source there.
Not signed
The executables have no code signature. Windows may show a SmartScreen warning. On macOS, a file
downloaded with a browser may need xattr -d com.apple.quarantine rnl after it is extracted
before it runs. Check each download against SHA256SUMS.txt first.