Comments (8)
You're right - I did miss the edit! Can you try this:
git clone https://github.com/mattwparas/steel.git &&
cd steel &&
mkdir -p .steel/cogs && mkdir -p .steel/native && # Creates this directory too
export STEEL_HOME="$(pwd)/.steel" &&
cargo build &&
cargo install --path crates/cargo-steel-lib &&
pushd cogs &&
cargo run -- install.scm &&
popd &&
cargo test --all
I had thought that I would create that additional directory automatically; but it seems like I don't!
from steel.
Okay so I'm realizing there might be more that needs to be done. In order to install dylibs we'll need the dylib installer which is installed separately as a cargo extension (eventually it doesn't need to be) - that is located under crates/cargo-steel-lib
. Can you first try to install that with cargo install --path crates/cargo-steel-lib
and then run the installer?
Apologies that this is all undocumented; this one slipped past me I think. There could be other things that I'm missing as well but that would be the first step to try debugging this
from steel.
Don't worry, as much is expected! So far, I enjoy steel very much. Looking forward to build helix plugins with it!
I'll keep you posted.
EDIT: I got is working! I think the issue stems from ~/.cargo/bin
not being in my path. Hence, installing cargo-steel-lib
went fine but it couldn't be found afterward. So in the end, this problem only exists for nix and on systems where ~/.cargo/bin
is not on the path.
If it is okay for you, I'll create a PR updating flake.nix
so that everything just works and close this issue then.
from steel.
Sorry I'm just seeing this! I don't develop on nix - but I'm guessing something with the flake.nix
file isn't including the libs directory
from steel.
You probably missed my last edit :)
I could reproduce this issue on a non nixos too!
from steel.
This seems to give me the same error as before:
Package is not currently installed.
=> Installing: '#hash((package-name . slack/websocket) (dependencies . ('#hash((#:path . "../libs/steel-websockets") (#:name . steel-websockets)) '#hash((#:name . steel-webrequests) (#:path . "../libs/steel-webrequests")))) (version . "0.1.0") (path . "/home/cgahr/coding/steel/tmp/steel/cogs/slack"))
=> Copied package over to: /home/cgahr/coding/steel/tmp/steel/.steel/cogs/slack/websocket
=> Installing: '#hash((dependencies . ()) (version . "0.1.0") (dylibs . ('#hash((#:name . "steel-websockets") (#:workspace-root . "../..") (#:subdir . "libs/steel-websockets")))) (path . "../libs/steel-websockets") (package-name . steel-websockets))
=> Copied package over to: /home/cgahr/coding/steel/tmp/steel/.steel/cogs/steel-websockets
Attempting to install: '#hash((#:name . "steel-websockets") (#:workspace-root . "../..") (#:subdir . "libs/steel-websockets"))
Running dylib build in: ../libs/steel-websockets/../../libs/steel-websockets
error[E03]: TypeMismatch
┌─ install.scm:11:1
│
11 │
│ Struct getter expected Ok, found Gc(UserDefinedStruct { fields: [Error: Io: No such file or directory (os error 2)], type_descriptor: StructTypeDescriptor(1) }), (Err Error: Io: No such file or directory (os error 2))
from steel.
That sounds great! Thank you for investigating, I really appreciate it.
In the future I will most likely remove the need for cargo-steel-lib
at all in the installation process and expose all of that behavior in steel itself to make things simpler, one less thing to need installed
from steel.
Okay so I'm realizing there might be more that needs to be done. In order to install dylibs we'll need the dylib installer which is installed separately as a cargo extension (eventually it doesn't need to be) - that is located under
crates/cargo-steel-lib
. Can you first try to install that withcargo install --path crates/cargo-steel-lib
and then run the installer?Apologies that this is all undocumented; this one slipped past me I think. There could be other things that I'm missing as well but that would be the first step to try debugging this
Thanks, had similar problem, but not using nix, just plain ubuntu, this fixed it.
from steel.
Related Issues (20)
- to-string adds extra space HOT 2
- Escaping backquotes HOT 2
- Successful redefinition of functions is inconsistent. HOT 3
- filter does not consider lists as true HOT 2
- [feature] self-contained steel program executables HOT 7
- Add `make-string` primitive HOT 5
- Issues building steel inside docker HOT 6
- Host documentation GitHub pages HOT 2
- WebAssembly HOT 3
- Steel REPL Cursor "Bug" HOT 11
- Installation error HOT 12
- REPL prompt is incorrectly fed a path name even though the loading has failed
- Deregister exeternal value HOT 11
- add steel-language-server to nix flake HOT 1
- (require "something") not working on windows HOT 13
- `panic!` when a rational number's denominator is exact 0 HOT 2
- Dependency `lasso` fails to compile on nightly toolchain HOT 4
- `register_value_with_doc` doesn't utilize the doc part HOT 2
- `integer?` behavior HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from steel.