Skip to content

Commit

Permalink
Updated and pushed version 0.4.2
Browse files Browse the repository at this point in the history
  • Loading branch information
carljohnsen committed Sep 16, 2020
1 parent d071f75 commit 4785e18
Show file tree
Hide file tree
Showing 17 changed files with 369 additions and 319 deletions.
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2019 Kenneth Skovhede
Copyright ©2020 - The SME team

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
43 changes: 43 additions & 0 deletions RELEASE_NOTES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
New in version 0.4.2 since 0.4.1-beta

***********
* Changes *
***********
- Updated to .NET Core 3.1.102. Newer versions won't work with VHDL code
generation.
- Processes are now run concurrently. There is still some false dependency
between them, due to buses, which results in processes not always running in
parallel.
- Changed when an SME simulation stops. The new default is to stop when all of
the simulation processes have finished. Stopping a simulation can also be
triggered by invoking `Simulation.Current.RequestStop()`.
- Processes can now inherit from an abstract class.
- Updated RAM components to give a warning, instead of throwing an exception,
when doing both a read and a write on the same address.

*********
* Fixes *
*********
- Fixed error with arrays containing default values being expanded into huge
initializations instead of using `others => `.
- Updated unit tests to correctly do testing.
- Updated examples to reflect proper SME.
- All examples are now also run as unit tests, as in they now verify their
output is correct.
- Removed GHDL warning about redundant `others` case.
- Updated Travis for continoues integration of the updated SME on the Debug
build.
- Fixed VHDL simulation, where a `RDY` flag wasn't properly set.
- Fixed overflow error when generating bit strings
- Flipped how arrays are initialized in the RAM templates.
- Added intermediate signals for buses in VHDL, which are both input for
processes and top-level output.
- Fixed handling of non-continoues enums.
- Removed unused flag in state machines.
- Reworked state machine transformations so they are more stable.
- Fixed premature bus loading performed by the .NET debugger.
- Fixed triggering of processes in VHDL.
- Fixed error with generating too many type definitions in VHDL.
- Fixed redundant variable definition for loop invariants.
- Fixed error with inner exceptions silently being "handled".
- Fixed export of arrays in VHDL.
79 changes: 17 additions & 62 deletions src/Makefile
Original file line number Diff line number Diff line change
@@ -1,72 +1,27 @@
all: build

DEPENDS_CSPROJ=$(find . -type f -name "*.csproj" | xargs echo)
VERSION=$(shell cat SME/SME.csproj | grep "<PackageVersion>" | cut -f 2 -d ">" | cut -f 1 -d "<")
PKGS=SME SME.AST SME.Components SME.CPP SME.GraphViz SME.Tracer SME.VHDL
PKG_TARGETS=$(PKGS:%=nupkg/%.$(VERSION).nupkg)
API=$(shell cat ~/.config/nuget_api.txt)

PROJECT_NAME=SME
DEPENDS_CS=$(find . -type f -name "*.cs" | xargs echo)
DEPENDS_TT=$(find . -type f -name "*.tt" | xargs echo)
DEPENDS_CSPROJ=$(find . -type f -name "*.csproj" | xargs echo)
VERSION=$(shell cat SME/SME.nuspec | grep "<version>" | cut -f 2 -d ">" | cut -f 1 -d "<")
build: SME.sln
dotnet build -c Release SME.sln

build: SME.sln ${DEPENDS_CS} ${DEPENDS_TT} ${DEPENDS_CSPROJ}
dotnet build --configuration Release SME.sln

nupkg: build
nupkg_folder:
if [ -d nupkg ]; then rm -rf nupkg; fi
mkdir nupkg

nupkg/SME.nupkg: SME/SME.nuspec nupkg
cd SME; nuget pack SME.nuspec
pwd
mv SME/SME.$(VERSION).nupkg nupkg/SME.$(VERSION).nupkg

nupkg/SME.Tracer.nupkg: SME.Tracer/SME.Tracer.nuspec nupkg
cd SME.Tracer; nuget pack SME.Tracer.nuspec
mv SME.Tracer/SME.Tracer.$(VERSION).nupkg nupkg/SME.Tracer.$(VERSION).nupkg

nupkg/SME.Components.nupkg: SME.Components/SME.Components.nuspec nupkg
cd SME.Components; nuget pack SME.Components.nuspec
mv SME.Components/SME.Components.$(VERSION).nupkg nupkg/SME.Components.$(VERSION).nupkg

nupkg/SME.GraphViz.nupkg: SME.GraphViz/SME.GraphViz.nuspec nupkg
cd SME.GraphViz; nuget pack SME.GraphViz.nuspec
mv SME.GraphViz/SME.GraphViz.$(VERSION).nupkg nupkg/SME.GraphViz.$(VERSION).nupkg

nupkg/SME.AST.nupkg: SME.AST/SME.AST.nuspec nupkg
cd SME.AST; nuget pack SME.AST.nuspec
mv SME.AST/SME.AST.$(VERSION).nupkg nupkg/SME.AST.$(VERSION).nupkg
nupkg/%.$(VERSION).nupkg: %
dotnet pack -c Release -o nupkg -p:PackageVersion=$(VERSION) $<

nupkg/SME.CPP.nupkg: SME.CPP/SME.CPP.nuspec nupkg
cd SME.CPP; nuget pack SME.CPP.nuspec
mv SME.CPP/SME.CPP.$(VERSION).nupkg nupkg/SME.CPP.$(VERSION).nupkg
pack: build nupkg_folder $(PKG_TARGETS)

nupkg/SME.VHDL.nupkg: SME.VHDL/SME.VHDL.nuspec nupkg
cd SME.VHDL; nuget pack SME.VHDL.nuspec
mv SME.VHDL/SME.VHDL.$(VERSION).nupkg nupkg/SME.VHDL.$(VERSION).nupkg

pack: nupkg nupkg/SME.nupkg nupkg/SME.Tracer.nupkg nupkg/SME.Components.nupkg nupkg/SME.GraphViz.nupkg nupkg/SME.AST.nupkg nupkg/SME.CPP.nupkg nupkg/SME.VHDL.nupkg


deploy:
cd nupkg; nuget push SME.$(VERSION).nupkg -src https://www.nuget.org
cd nupkg; nuget push SME.Components.$(VERSION).nupkg -src https://www.nuget.org
cd nupkg; nuget push SME.Tracer.$(VERSION).nupkg -src https://www.nuget.org
cd nupkg; nuget push SME.GraphViz.$(VERSION).nupkg -src https://www.nuget.org
cd nupkg; nuget push SME.AST.$(VERSION).nupkg -src https://www.nuget.org
cd nupkg; nuget push SME.CPP.$(VERSION).nupkg -src https://www.nuget.org
cd nupkg; nuget push SME.VHDL.$(VERSION).nupkg -src https://www.nuget.org
deploy: pack
dotnet nuget push "nupkg/*.nupkg" -s https://api.nuget.org/v3/index.json -k $(API)

all: build

clean:
msbuild /target:Clean SME.sln
find . -type d -name obj | xargs rm -r
find . -type d -name bin | xargs rm -r
if [ -f nupkg/SME.$(VERSION).nupkg ]; then rm nupkg/SME.$(VERSION).nupkg; fi
if [ -f nupkg/SME.Tracer.$(VERSION).nupkg ]; then rm nupkg/SME.Tracer.$(VERSION).nupkg; fi
if [ -f nupkg/SME.GraphViz.$(VERSION).nupkg ]; then rm nupkg/SME.GraphViz.$(VERSION).nupkg; fi
if [ -f nupkg/SME.AST.$(VERSION).nupkg ]; then rm nupkg/SME.AST.$(VERSION).nupkg; fi
if [ -f nupkg/SME.VHDL.$(VERSION).nupkg ]; then rm nupkg/SME.VHDL.$(VERSION).nupkg; fi



.PHONY: all build clean
dotnet clean
find . -type d -name obj | xargs rm -rf
find . -type d -name bin | xargs rm -rf
rm -rf nupkg
57 changes: 44 additions & 13 deletions src/SME.AST/SME.AST.csproj
Original file line number Diff line number Diff line change
@@ -1,19 +1,50 @@
<Project Sdk="Microsoft.NET.Sdk">

<ItemGroup>
<ProjectReference Include="..\SME\SME.csproj" />
</ItemGroup>
<!-- Project dependencies -->
<ItemGroup>
<ProjectReference Include="..\SME\SME.csproj" />

<PackageReference Include="NewtonSoft.Json" Version="12.0.1" />
<PackageReference Include="ICSharpCode.Decompiler" Version="3.0.2.3465" />
<PackageReference Include="Mono.Cecil" Version="0.10.0" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="NewtonSoft.Json" Version="12.0.1" />
<PackageReference Include="ICSharpCode.Decompiler" Version="3.0.2.3465" />
<PackageReference Include="Mono.Cecil" Version="0.10.0-beta7" />
</ItemGroup>
<!-- Project output name and format -->
<PropertyGroup>
<OutputType>library</OutputType>
<TargetFramework>netstandard2.1</TargetFramework>
<RootNamespace>SME.AST</RootNamespace>
</PropertyGroup>

<PropertyGroup>
<OutputType>library</OutputType>
<TargetFramework>netstandard2.1</TargetFramework>
<RootNamespace>SME.AST</RootNamespace>
</PropertyGroup>
<!-- Nuget package metadata -->
<PropertyGroup>
<PackageId>SME.AST</PackageId>
<Title>Synchronous Message Exchange (SME)</Title>
<PackageVersion>0.4.2</PackageVersion>
<Authors>Kenneth Skovhede, Carl-Johannes Johnsen</Authors>
<Description>Abstract syntax tree builder for SME networks</Description>
<Copyright>Copyright ©2020 - The SME team</Copyright>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<DevelopmentDependency>false</DevelopmentDependency>
<PackageTags>SME;hardware simulation</PackageTags>
<RepositoryUrl>https://github.com/kenkendk/sme</RepositoryUrl>
<RepositoryBranch>master</RepositoryBranch>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
</PropertyGroup>

<!-- Adding the license file to the Nuget package -->
<ItemGroup>
<None Include="..\..\LICENSE" Pack="true" PackagePath="" />
</ItemGroup>

<!-- Adding release notes text file to the Nuget package -->
<Target Name="PrepareReleaseNotesFromFile" BeforeTargets="GenerateNuspec" >
<ReadLinesFromFile File="..\..\RELEASE_NOTES.txt" >
<Output TaskParameter="Lines" ItemName="ReleaseNoteLines" />
</ReadLinesFromFile>
<PropertyGroup>
<PackageReleaseNotes>@(ReleaseNoteLines, '%0a')</PackageReleaseNotes>
</PropertyGroup>
</Target>

</Project>
25 changes: 0 additions & 25 deletions src/SME.AST/SME.AST.nuspec

This file was deleted.

65 changes: 47 additions & 18 deletions src/SME.CPP/SME.CPP.csproj
Original file line number Diff line number Diff line change
@@ -1,25 +1,54 @@
<Project Sdk="Microsoft.NET.Sdk">

<ItemGroup>
<ProjectReference Include="..\SME\SME.csproj" />
<ProjectReference Include="..\SME.AST\SME.AST.csproj" />
</ItemGroup>
<!-- Project dependencies -->
<ItemGroup>
<ProjectReference Include="..\SME\SME.csproj" />
<ProjectReference Include="..\SME.AST\SME.AST.csproj" />

<PackageReference Include="ICSharpCode.Decompiler" Version="3.0.2.3465" />
<PackageReference Include="Mono.Cecil" Version="0.10.0" />
<PackageReference Include="System.CodeDom" Version="4.7.0" />

<ItemGroup>
<PackageReference Include="ICSharpCode.Decompiler" Version="3.0.2.3465" />
<PackageReference Include="Mono.Cecil" Version="0.10.0-beta7" />
<PackageReference Include="System.CodeDom" Version="*" />
</ItemGroup>
<EmbeddedResource Include="Templates/*.hpp" />
<EmbeddedResource Include="Templates/*.cpp" />
</ItemGroup>

<ItemGroup>
<EmbeddedResource Include="Templates/*.hpp" />
<EmbeddedResource Include="Templates/*.cpp" />
</ItemGroup>
<!-- Project output name and format -->
<PropertyGroup>
<OutputType>library</OutputType>
<TargetFramework>netstandard2.1</TargetFramework>
<RootNamespace>SME.CPP</RootNamespace>
</PropertyGroup>

<PropertyGroup>
<OutputType>library</OutputType>
<TargetFramework>netstandard2.1</TargetFramework>
<RootNamespace>SME.CPP</RootNamespace>
</PropertyGroup>
<!-- Nuget package metadata -->
<PropertyGroup>
<PackageId>SME.CPP</PackageId>
<Title>Synchronous Message Exchange (SME)</Title>
<PackageVersion>0.4.2</PackageVersion>
<Authors>Kenneth Skovhede, Carl-Johannes Johnsen</Authors>
<Description>C++ transpiler for SME networks</Description>
<Copyright>Copyright ©2020 - The SME team</Copyright>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<DevelopmentDependency>false</DevelopmentDependency>
<PackageTags>SME;hardware simulation</PackageTags>
<RepositoryUrl>https://github.com/kenkendk/sme</RepositoryUrl>
<RepositoryBranch>master</RepositoryBranch>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
</PropertyGroup>

<!-- Adding the license file to the Nuget package -->
<ItemGroup>
<None Include="..\..\LICENSE" Pack="true" PackagePath="" />
</ItemGroup>

<!-- Adding release notes text file to the Nuget package -->
<Target Name="PrepareReleaseNotesFromFile" BeforeTargets="GenerateNuspec" >
<ReadLinesFromFile File="..\..\RELEASE_NOTES.txt" >
<Output TaskParameter="Lines" ItemName="ReleaseNoteLines" />
</ReadLinesFromFile>
<PropertyGroup>
<PackageReleaseNotes>@(ReleaseNoteLines, '%0a')</PackageReleaseNotes>
</PropertyGroup>
</Target>

</Project>
27 changes: 0 additions & 27 deletions src/SME.CPP/SME.CPP.nuspec

This file was deleted.

51 changes: 42 additions & 9 deletions src/SME.Components/SME.Components.csproj
Original file line number Diff line number Diff line change
@@ -1,13 +1,46 @@
<Project Sdk="Microsoft.NET.Sdk">

<ItemGroup>
<ProjectReference Include="..\SME\SME.csproj" />
</ItemGroup>

<PropertyGroup>
<OutputType>library</OutputType>
<TargetFramework>netstandard2.1</TargetFramework>
<RootNamespace>SME.Components</RootNamespace>
</PropertyGroup>
<!-- Project dependencies -->
<ItemGroup>
<ProjectReference Include="..\SME\SME.csproj" />
</ItemGroup>

<!-- Project output name and format -->
<PropertyGroup>
<OutputType>library</OutputType>
<TargetFramework>netstandard2.1</TargetFramework>
<RootNamespace>SME.Components</RootNamespace>
</PropertyGroup>

<!-- Nuget package metadata -->
<PropertyGroup>
<PackageId>SME.Components</PackageId>
<Title>Synchronous Message Exchange (SME)</Title>
<PackageVersion>0.4.2</PackageVersion>
<Authors>Kenneth Skovhede, Carl-Johannes Johnsen</Authors>
<Description>Optional hardware components SME networks</Description>
<Copyright>Copyright ©2020 - The SME team</Copyright>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<DevelopmentDependency>false</DevelopmentDependency>
<PackageTags>SME;hardware simulation</PackageTags>
<RepositoryUrl>https://github.com/kenkendk/sme</RepositoryUrl>
<RepositoryBranch>master</RepositoryBranch>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
</PropertyGroup>

<!-- Adding the license file to the Nuget package -->
<ItemGroup>
<None Include="..\..\LICENSE" Pack="true" PackagePath="" />
</ItemGroup>

<!-- Adding release notes text file to the Nuget package -->
<Target Name="PrepareReleaseNotesFromFile" BeforeTargets="GenerateNuspec" >
<ReadLinesFromFile File="..\..\RELEASE_NOTES.txt" >
<Output TaskParameter="Lines" ItemName="ReleaseNoteLines" />
</ReadLinesFromFile>
<PropertyGroup>
<PackageReleaseNotes>@(ReleaseNoteLines, '%0a')</PackageReleaseNotes>
</PropertyGroup>
</Target>

</Project>
Loading

0 comments on commit 4785e18

Please sign in to comment.