Refactor server initialization to separate connection from database loading
ulsp: improve error handling
Fix JSON-RPC null result handling and add socket validation
uni: move jsonrpc and logger to lib
Add simple write matrix to stdout
Typo fix for m_unaryop() code
ci: win 2025 images no longer include inno setup, stick with 2022
ci: add an install step
install: Sign installed executables if running macOS on Apple silicon
ulsp: rename run methods to a more accurate name (getResult)
ulsp: make sure we skip processing if we can't find the event context
ulsp: do path translation on Windows only
autoconf: fix obsolete macros
ci: replace Ubuntu 20.04 package workflow with 24.04
ci: add ubuntu24 and rocky linux 9, move arm to native only
uni: add missing file
tests: enable coexpr and lib tests
Add UTR for the Unicon Unit Testing Framework
Adding total time elapsed while running tests
Tests for TestSuite run() and failure tests
Introduce Unicon Unit Test Framework
runtime: don't change string in place
tests: skip pty_uni test on FreeBSD
use a variable instead of an explicit call to make
Add FreeBSD build instructions
ci: add freebsd coverage
config: update with new autoconf, fix freebsd timezone error
ci: add native ARM test
ci: disable iconc test on Windows until glob is fixed
runtime: fix null pointer deference on a window close
From my Windows 10 machine: glVersion: 4.6.0 NVIDIA 560.94 glvendor: NVIDIA Corporation glrenderer: NVIDIA GeForce GT 1030/PCIe/SSE2 dim: 3 eyepos: 0.00,0.00,0.00 eyedir: 0.00,0.00,-100.00
This is what I get on my Windows 10 machine. I also tested on Mac and got the same result.
What do you get when you run this: procedure main() w := open("3D", "gl", "size=400,400") Fg(w, "ambient pink") DrawCylinder(w, 0.0, 1.0, -5.0, 1.0, 0.5, 0.3) Fg(w, "specular navy") DrawDisk(w, -0.5, -0.5, -2.0, 0.5, 0.3) Fg(w, "emission green") DrawSphere(w, 0.5, 1.0, -3.0, 0.5) repeat { Refresh(w) delay(10) } end
I tested your program and it worked as is on my end. you should be able to see console output if you run the application from the.command line.
"canvas=hidden" will not create a drawable canvas for OpenGL to use. No buffer cause the swap buffer operation o fail. Try this only: w := open("3D", "gl", "size=400,400") BTW, you can use 3 "~" character to begin a block of code, and another 3 to end it. sourceforge will format/color it for you. Uniocn is supported.
OpenGL 3D works fine. That PR adds 2D graphics OpenGL-based implementation. Unicon already has 2D graphics implementation using X and MS Windows.
I have tried the same program on Raspberry 4B (Raspebian OS) and got the error similar by Steve: X Error of failed request: GLXBadDrawable ... When I commented lines with eyepos and eyedir attributes setting: glVersion: 3.1 Mesa 23.2.1-1~bpo12+rpt3 glvendor: Broadcom glrenderer: V3D 4.2 dim: 3 eyepos: 0.00,0.00,0.00 eyedir: 0.00,0.00,-100.00 By the way, I build Unicon from sources at https://github.com/uniconproject/unicon Sergey
I wonder if at least some of the problem is with utr9? Have you tried the 3d features as covered in utr22? Just glancing at it it's 4 years newer and there are definite differences.
For what it's worth I did get the example on pages 18+19 of utr9d to run and display - but the output did not match the pictures show in the doc (parts were missing from the displayed room and image was in grayscale, not color).
When I run this under Ubuntu Linux (22.04) I get an error message that you're not seeing under Windows: ->draw glVersion: 4.6 (Compatibility Profile) Mesa 24.0.3-1pop1~1711635559~22.04~7a9f319~dev glvendor: Intel glrenderer: Mesa Intel(R) UHD Graphics (CML GT2) dim: 3 eyepos: 0.00,0.00,0.00 eyedir: 0.00,0.00,-100.00 X Error of failed request: GLXBadDrawable Major opcode of failed request: 152 (GLX) Minor opcode of failed request: 11 (X_GLXSwapBuffers) Serial number of failed request: 43 Current serial...
Happy New Year! I've just getting to 3D features of Unicon. And I started with the basics (utr9 doc). Unfortunately, I have discovered that Unicon 13.2 is not working properly on my Windows 10 computer. There is a small program which I used: procedure main() w := open("3D", "gl", "size=400,400", "canvas=hidden") Fg(w, "ambient yellow") WAttrib(w, "dim=3") # WAttrib(w, "eyepos=0.0,0.0,5.0") # WAttrib(w, "eyedir=0.0,0.0,1.0") write("glVersion: ", WAttrib(w, "glversion")) write("glvendor: ", WAttrib(w,...
runtime: fix typo, drop unnecessary line and fix associated comment
tests: disable tester tests for now
Fix new mesa dependency on newer platforms
ci: install extra build deps for ubuntu 24.04, add riscv64
runtime: fix pthread coswitch
ci: enable build for Apple silicon
ulsp: add json-rpc test
ulsp: abstract jsonrpc
Open those files, and make edits in them and see if that allows LSP to be smarter. I think we do parse files in the current directory, but I'm not 100% sure. We are still working on adding features. I two have a couple of students working on this currenlty, so this is an ongoing effort. Since you already added things like code snippets in KDevelop, maybe you can help with LSP to add things like those to LSP ;-).
I was reading and it seems like Kate does LSP but KDevelop does not. Jos, would you be willing to share your KDevelop code? Perhaps we have a directory in the Unicon distribution where we are keeping config files for various IDE's where this would belong. Kudos! Clint
Syntax highlighting is provided by on or the three extensions if you installed all 3 Unicon extensions. It looks like it is working. Once you start adding more code/functions also add link/import statement to start using the class library then then you will get more relevant help. For example, try this import lang procedure main() a := Method() a. # <== type dot after the variable a, and # LSP should figure that this is an instance # of Method and gives you completion options end once you select...
Syntax highlighting is provided by on or the three extensions if you installed all 3 Unicon extensions. It looks like it is working. Once you start adding more code/functions also add link/import statement to start using the class library then then you will get more relevant help. For example, try this import lang procedure main() a := Method() a. # <== type dot after the variable a, and LSP should figure that this is an instance of Method and gives you completion options end once you select a method...
Syntax highlighting is provided by on or the three extensions if you installed all 3 Unicon extensions. It looks like it is working. Once you start adding more code/functions also add link/import statement to start using the class library then then you will get more relevant help. For example, try this import lang procedure main() a := Method() a. # <== type dot after the variable a, and LSP should figure that this is an instance of Method and gives you completion options end once you select a method...
The second one looks good. You should be able to get help from LSP at the point like auto-completion, hover, jump to definition and so on.
Not sure when was the last time you pulled new Unicon source updates from GitHub, but this has been fixed a few week ago. Well I was a bit reluctant to do that because it is a Micro$ thing Exactly, that is why I like the LSP idea. We all have our preferences. I shouldn't need to switch IDEs to write Unicon code, I'd rather bring Unicon support to the IDE I like. whats the servers name? What server? The IDE typically starts its own instances of LSP/DAP, so you as a user don't have to manage this....
Looks like there is support for LSP: https://kate-editor.org/posts/kate-language-server-protocol-client/ I got ulsp to work preliminary with emacs. It shouldn't be hard to get it to work woth new IDEs.
This is an old version compared to what I have Version: 1.93.1 (Universal) Commit: 38c31bc77e0dd6ae88a4e9cc93428cc27a56ba40 Date: 2024-09-11T17:20:05.685Z (4 wks ago) Electron: 30.4.0 ElectronBuildId: 10073054 Chromium: 124.0.6367.243 Node.js: 20.15.1 V8: 12.4.254.20-electron.0 OS: Darwin x64 23.5.0 In the screenshot you posted, it says there is an update, wanna try that?
You probably saw the reference to the extensions here at http://unicon.org/. Once you add those, you also need to build Uniocn form sources and add the bin directory in that directiory to your $PATH
We do have the Unicon IDE that comes with the sources called UI. In the last couplf of years we started adding support to LSP/DAP protocols so that Unicon can be used in any/your preffered IDE as long as it supports those protocols. We started with VS Code because it was relatively easy to add extensions and it has a very extensive library of other supporting extensions (eg, git, autotools, and much more). We do have three VS code Unicon extensions that work nicely on Linux/MacOS, and we are working...
very nice! which vscode version are you using and on what OS?
Makefile: use CP variable instead of cp where possible
ulsp: add method to logger to add log files, make singleton optional
ulsp: move the logger to a separate file
vscode: hide .exe files
Makedefs: use force copy
ulsp: fix crash due to &null result, better logging
ulsp: add a logger class
ulsp: unidoc chokes on 'parser', skip it for now
config: add ulsp to the install list
config: fix windows installer
ulsp: use unicon runtime paths
ulsp: fix crashes when running with emacs
We haven't had a release in a long time, long overdue at this point. so, yes, check the sources directly on github.
I haven't played with the networking facilities but does the information in the Unicon book (available via pdf from the Unicon website and starting on page 77 [I think...]) contain anything that helps?
The book should cover these as Steve suggested. The best latest use case of TCP is with the ULSP server, part of the unicon sources at : https://github.com/uniconproject/unicon/tree/master/uni/ulsp There are a few examples in the tst suite too, check under tests/posix tests/general/ssl.icn covers using ssl on both server/client sides.
$include "posix.icn" procedure main(args) (*args = 1) | stop("Usage: rdate host") host := args[1] s := getserv("daytime", "udp") f := open(host||":"||s.port, "nu") | stop("Open failed: ", &errortext) writes(f, " ") if *select(f, 5000) = 0 then stop("Connection timed out.") r := receive(f) write("Time on ", host, " is ", r.msg) end
See this thread: https://sourceforge.net/p/unicon/mailman/unicon-group/thread/CABvuv3jkSFbzghkFYvranDpYc9nFcHXQm4JnJCw9YVOurcgEYQ%40mail.gmail.com/#msg37259199
ci: drop CentOS 7 and Debian 10, both are EOL as of July 1st 2024
ci: update action
detect and use thread-safe time functions
uni: reuse top level definitions
fix gcc warnings by guarding clang pragma
runtime: fix buffer access, unify logic in other places for simplicity
uni: fix 3d viewer makefile
Partially revert RR #125 OpenGL2D"
runtime: avoid name collision with getrandom() from libc
config: keep global symbols on macos for dynamic loading
add settings for msys2 shells to vscode
ulsp: fix socket option on Windows and handle a few exceptions
runtime: fix CopyArea when used with 3D windows/textures
Cleanup hasMethod() code.
Fix invoke() by fixing genMethods.
Fix instanceof procedure and update tests.
ci: use macos-13 (x86), macos-latest switched to m1. Disable Windows binary build
config: improve debug options/reporting, strip, musl
runtime: fix buffer overflow with wildcard shell expansion in open()
ci: add alpine targets amd64, x86, armv7, and aarch64
ci: build windows installer pkg as part of the test
fix clan/windows warnings, enable werror