Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #53719 > unrolled thread
| Started by | Mild Shock <janburse@fastmail.fm> |
|---|---|
| First post | 2024-03-07 18:09 +0100 |
| Last post | 2024-03-10 23:49 +0100 |
| Articles | 2 — 1 participant |
Back to article view | Back to comp.lang.java.programmer
ANN: Dogelog Player 1.1.6 (HTTP Client) Mild Shock <janburse@fastmail.fm> - 2024-03-07 18:09 +0100
Re: ANN: Dogelog Player 1.1.6 (HTTP Client) Mild Shock <janburse@fastmail.fm> - 2024-03-10 23:49 +0100
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2024-03-07 18:09 +0100 |
| Subject | ANN: Dogelog Player 1.1.6 (HTTP Client) |
| Message-ID | <uscsct$12mjt$2@solani.org> |
Dear All, We are happy to announce a new edition of the Dogelog player: - Enhanced '$YIELD'/1: Previously the '$YIELD'/1 instruction was hard coded to understand an integer for sleep/1 and an atom for native library loading. The implementation has been change to accept a Promise object, known from JavaScript. Emulations were made available for Java and Python. - Async I/O: Based on the new '$YIELD'/1 and a buffer fast path idea, the console reading, file property and file reading have been asyncified. There is no change in the Prolog API, files are still to be opened via the ISO core open/3 and accessed via ISO core get_code/2 respectively ISO core peek_code/2. But input can now be executed quasi-parallel by multiple tasks. - HTTP client: The ISO core open/4 has been moved to the library(spin). The support of the HTTP and HTTPS protocol in open/3 and open/4, has been extended from the JavaScript browser to the JavaScript command line (by means of new fetch in nodejs >21). Further supported targets are now Python and Java (by means of new HTTP client in JDK >21). Have Fun! Jan Burse, http://www.xlog.ch/ , 07.03.2024
[toc] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2024-03-10 23:49 +0100 |
| Message-ID | <uslddb$16jdm$2@solani.org> |
| In reply to | #53719 |
Small implementation node about the new HTTP client in Dogelog Player for JavaScript. I am using fetch() everywhere. No need to get help from libraries such as: > Axios is a promise-based HTTP Client for node.js > and the browser. It is isomorphic (= it can run in > the browser and nodejs with the same codebase). > On the server-side it uses the native node.js http > module, while on the client (browser) it uses XMLHttpRequests. https://axios-http.com/docs/intro First of all XMLHttpRequests is deprecated in the browser, use fetch() instead. And nodejs has fetch() since release 21.x.x as well. So they have become isomorphic making AXIOS obsolete: > Notable Changes - Oct 17, 2023 > The recent update to Node.js, version 21, includes > an important change to the fetch module as well as > WebStreams . Both modules were marked as stable > after a recent update. https://nodejs.org/en/blog/announcements/v21-release-announce Mild Shock schrieb: > > Dogelog Player is a Prolog system that is 100% written > in Prolog itself. It is avsailable for the JavaScript, > Python and Java platform. We show how the stable > ordering of Prolog variables in Dogelog Player allows > highly efficient constraint solving approaches. > > We convert the undirected graph into a directed graph > and create adjacency lists. This inequality graph doesn’t > have the same delayed evaluation overhead than > (#=)/2 and dif/2. We demonstrate map coloring and > sudoku solving. Further improvements in a > subsequent article. > > See also: > > Map Coloring and Sudoku Solving > https://twitter.com/dogelogch/status/1766885890712883276 > > Map Coloring and Sudoku Solving > https://www.facebook.com/groups/dogelog > > Mild Shock schrieb: >> Dear All, >> >> We are happy to announce a new edition >> of the Dogelog player: >> >> - Enhanced '$YIELD'/1: >> Previously the '$YIELD'/1 instruction was hard coded >> to understand an integer for sleep/1 and an atom for >> native library loading. The implementation has been >> change to accept a Promise object, known from >> JavaScript. Emulations were made available for >> Java and Python. >> >> - Async I/O: >> Based on the new '$YIELD'/1 and a buffer fast path >> idea, the console reading, file property and file >> reading have been asyncified. There is no change in >> the Prolog API, files are still to be opened via the >> ISO core open/3 and accessed via ISO core get_code/2 >> respectively ISO core peek_code/2. But input can now >> be executed quasi-parallel by multiple tasks. >> >> - HTTP client: >> The ISO core open/4 has been moved to the library(spin). >> The support of the HTTP and HTTPS protocol in open/3 >> and open/4, has been extended from the JavaScript >> browser to the JavaScript command line (by means of >> new fetch in nodejs >21). Further supported targets >> are now Python and Java (by means of new HTTP client >> in JDK >21). >> >> Have Fun! >> >> Jan Burse, http://www.xlog.ch/ , 07.03.2024 >
[toc] | [prev] | [standalone]
Back to top | Article view | comp.lang.java.programmer
csiph-web