andy-hanson / crow Goto Github PK
View Code? Open in Web Editor NEWCrow programming language
Home Page: https://crow-lang.org
License: Other
Crow programming language
Home Page: https://crow-lang.org
License: Other
crow run demo/sdl//main.crow
should work the same as crow run demo/sdl/main.crow
. Since other tools like cat
ignore the double slash.
Add support for float literals like 3e2
(= 300).
Same interface as mut-priority-queue
, but using a heap instead. See if performance is better than mut-priority-queue
.
demo/db.crow
uses LMDB. That was easy to port to crow due to having a simple API, but it's not as popular as SQLite, so it would be nice to have an SQLite demo too.
The task would be to write a simple program like demo/db.crow
that uses SQLite instead of LMDB. This would involve:
/usr/include/sqlite3.h
to a new file in this repository, include/sqlite3.crow
.include/crow/db/sqlite3.crow
; compared to the underlying include/sqlite3.crow
, this should be safe, and use crow types like str
instead of C-like types like char*
.demo/sqlite.crow
to show off the library.Describe problem
Can't build the crow website. During build scope variable ``writer`` assigned to non-scope parameter ``writer`` calling util.writer.finishWriterToSafeCStr
error occurs in src/interpret/runBytecode.d(319)
file
Expected behavior
Website builds and serves
Actual behavior
Website fails to build
Steps to reproduce
readme.md
(ldc
,dmd
,hg
)make all
Additional info
System: Arch linux
Kernel: 5.16.15
rm -rf bin site temp
mkdir -p bin/d-imports
date --iso-8601 --utc > bin/d-imports/date.txt
mkdir -p bin/d-imports
git rev-parse --short HEAD > bin/d-imports/commit-hash.txt
hg clone https://dyncall.org/pub/dyncall/dyncall/
destination directory: dyncall
requesting all changes
adding changesets
adding manifests
adding file changes
added 468 changesets with 2242 changes to 724 files
new changesets 3e629dc19168:b47168dacba6
updating to branch default
582 files updated, 0 files merged, 0 files removed, 0 files unresolved
cd dyncall && ./configure
Configuration written to Makefile.config
cd dyncall && make
make[1]: Entering directory '/home/boris/Desktop/crow/dyncall'
cd dyncall && make all
make[2]: Entering directory '/home/boris/Desktop/crow/dyncall/dyncall'
cc -fPIC -c -o dyncall_vector.o dyncall_vector.c
cc -fPIC -c -o dyncall_api.o dyncall_api.c
cc -fPIC -c -o dyncall_callvm.o dyncall_callvm.c
cc -fPIC -c -o dyncall_callvm_base.o dyncall_callvm_base.c
cc -c -o dyncall_call.o dyncall_call.S
cc -fPIC -c -o dyncall_callf.o dyncall_callf.c
cc -fPIC -c -o dyncall_struct.o dyncall_struct.c
ar rv libdyncall_s.a dyncall_vector.o dyncall_api.o dyncall_callvm.o dyncall_callvm_base.o dyncall_call.o dyncall_callf.o dyncall_struct.o
ar: creating libdyncall_s.a
a - dyncall_vector.o
a - dyncall_api.o
a - dyncall_callvm.o
a - dyncall_callvm_base.o
a - dyncall_call.o
a - dyncall_callf.o
a - dyncall_struct.o
make[2]: Leaving directory '/home/boris/Desktop/crow/dyncall/dyncall'
cd dyncallback && make all
make[2]: Entering directory '/home/boris/Desktop/crow/dyncall/dyncallback'
cc -fPIC -I/home/boris/Desktop/crow/dyncall/./dyncallback/../dyncall -c -o dyncall_alloc_wx.o dyncall_alloc_wx.c
cc -fPIC -I/home/boris/Desktop/crow/dyncall/./dyncallback/../dyncall -c -o dyncall_args.o dyncall_args.c
cc -fPIC -I/home/boris/Desktop/crow/dyncall/./dyncallback/../dyncall -c -o dyncall_callback.o dyncall_callback.c
cc -c -o dyncall_callback_arch.o dyncall_callback_arch.S
cc -fPIC -I/home/boris/Desktop/crow/dyncall/./dyncallback/../dyncall -c -o dyncall_thunk.o dyncall_thunk.c
ar rv libdyncallback_s.a dyncall_alloc_wx.o dyncall_args.o dyncall_callback.o dyncall_callback_arch.o dyncall_thunk.o
ar: creating libdyncallback_s.a
a - dyncall_alloc_wx.o
a - dyncall_args.o
a - dyncall_callback.o
a - dyncall_callback_arch.o
a - dyncall_thunk.o
make[2]: Leaving directory '/home/boris/Desktop/crow/dyncall/dyncallback'
cd dynload && make all
make[2]: Entering directory '/home/boris/Desktop/crow/dyncall/dynload'
cc -fPIC -c -o dynload.o dynload.c
cc -fPIC -c -o dynload_syms.o dynload_syms.c
ar rv libdynload_s.a dynload.o dynload_syms.o
ar: creating libdynload_s.a
a - dynload.o
a - dynload_syms.o
make[2]: Leaving directory '/home/boris/Desktop/crow/dyncall/dynload'
make[1]: Leaving directory '/home/boris/Desktop/crow/dyncall'
dmd -ofbin/crow-debug -betterC -preview=dip25 -preview=dip1000 -J=bin/d-imports -check=on -boundscheck=on -debug -g -version=Debug -version=Test src/app.d src/concretize/*.d src/frontend/*.d src/frontend/*/*.d src/interpret/*.d src/lib/*.d src/lower/*.d src/model/*.d src/util/*.d src/util/*/*.d src/backend/*.d src/document/*.d src/test/*.d -L=-ldyncall_s -L=-L./dyncall/dyncall -L=-lgccjit
src/interpret/runBytecode.d(319): Error: scope variable `writer` assigned to non-scope parameter `writer` calling util.writer.finishWriterToSafeCStr
src/interpret/runBytecode.d(332): Error: scope variable `writer` assigned to non-scope parameter `writer` calling util.writer.finishWriterToSafeCStr
make: *** [Makefile:78: bin/crow-debug] Error 1
If comment out lines that result in error, another error occurs:
/usr/bin/ld: cannot find -lgccjit
collect2: error: ld returned 1 exit status
Error: linker exited with status 1
After lgccjit
installation another error occurs:
cannot find program `wasm-ld`
After wasm-ld
installation another error occurs ./readme.md line 1 is 164 columns long, should be <= 120
After installing missing dependencies and uncommenting commented lines the error scope variable ``writer`` assigned to non-scope parameter ``writer`` calling
is still present
After removing first line of readme.md
and commenting out src/interpret/runBytecode.d(332):
it finally starts.
There should be a compile error if \0
occurs in a string literal, as in "foo\0bar"
. (The reason: this has the same effect as just writing "foo"
.)
This should not apply to a character literal (which also looks like "\0"
).
Here's how I think this could be implemented:
Modify site-src/document-content.crow
to provide an ID for each function/type/spec, so that a link can refer to the particular function. E.g.: /doc/crow/compare.html#equal
.
Modify site-src/document.crow
walk over all-modules
and collect search terms.
module.crow
for the type definition of a module. Just walk over the tree that represents a module and collect search terms.script/lint.crow
already has a function for parsing words, so that could go in a module shared by both script/lint.crow
and the new code.Store the search terms in a file doc/search.json
(exact format can be whatever). Load that in the browser and use that to implement a search box.
An alternative would be to use the results of crow doc
directly. The script site-src/site.crow
starts by running a crow doc
command. This generates 539KB of data though; it includes things like parameter information that isn't relevant for search. I think if we parse out the search terms ahead of time we can get a smaller format.
At https://crow-lang.org/doc, the left navigation bar has a line for every module in the standard library. This makes the page too tall.
I think the solution is to have a collapsed section for each directory (probably using details).
I'm ambivalent about whethere there is recursive nesting where crow/io/net/
goes inside crow/io/
, or if it's just its own section.
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.