Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.prolog > #14008 > unrolled thread
| Started by | Mild Shock <janburse@fastmail.fm> |
|---|---|
| First post | 2024-03-07 18:09 +0100 |
| Last post | 2024-04-02 01:18 +0200 |
| Articles | 6 — 1 participant |
Back to article view | Back to comp.lang.prolog
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 19:06 +0100
Re: ANN: Dogelog Player 1.1.6 (HTTP Client) Mild Shock <janburse@fastmail.fm> - 2024-03-10 23:47 +0100
Re: ANN: Dogelog Player 1.1.6 (HTTP Client) Mild Shock <janburse@fastmail.fm> - 2024-03-13 02:02 +0100
Re: ANN: Dogelog Player 1.1.6 (HTTP Client) Mild Shock <janburse@fastmail.fm> - 2024-03-23 16:41 +0100
Re: ANN: Dogelog Player 1.1.6 (HTTP Client) Mild Shock <janburse@fastmail.fm> - 2024-04-02 01:18 +0200
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2024-03-07 18:09 +0100 |
| Subject | ANN: Dogelog Player 1.1.6 (HTTP Client) |
| Message-ID | <uscsc2$12mjt$1@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 19:06 +0100 |
| Message-ID | <usksr8$16bd7$1@solani.org> |
| In reply to | #14008 |
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] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2024-03-10 23:47 +0100 |
| Message-ID | <usldam$16jdm$1@solani.org> |
| In reply to | #14009 |
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] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2024-03-13 02:02 +0100 |
| Message-ID | <usqtvb$19i7n$1@solani.org> |
| In reply to | #14010 |
In 1997, Hong Kong judge Wayne Gould saw a partly completed puzzle in a Japanese bookshop. Over six years, he developed a computer program to produce unique puzzles rapidly. The program tries to keep one puzzle ahead of you, by generating the next puzzle while you are solving the present one. In the following we show a Prolog program, where the random generation of a Puzzle is performed in less than 2 seconds. The Prolog program was mainly developed for Dogelog Player. We could test the Prolog program also with Prolog systems such as SWI-Prolog, Scryer Prolog and Trealla Prolog. The smallest domain first variable ordering heuristic allowed us to solve some hard problems below a minute. Turning the heuristic into a static ordering before search gave us a further boost and the baseline for randomization. Measurement showed that solving blank Sudokus doesn't have a large time variation. See also: Birthday Paradox and Sudoku Generation https://twitter.com/dogelogch/status/1767714755827908991 Birthday Paradox and Sudoku Generation https://www.facebook.com/groups/dogelog
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2024-03-23 16:41 +0100 |
| Message-ID | <utmt7o$1nl0n$1@solani.org> |
| In reply to | #14008 |
Dogelog Player is a Prolog system that features a generational garbage collector scheme and a change_arg/3 primitive built-in. So far the two didn’t go together and we had to use a cludge. With the upcoming release we provide a proper solution based on marking write-barriers. Our remembered set on the variable binding trail has the benefit that it can reduce itself during backtracking. By adopting conductor variables, i.e. instantiated variables that are not trailed, from formerly Jekejeke Prolog, we could recreate a similar benefit for Dogelog Players change_arg/3. See also: Marking Write-Barriers for Dogelog Player https://twitter.com/dogelogch/status/1771559896741192186 Marking Write-Barriers for Dogelog Player https://www.facebook.com/groups/dogelog
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2024-04-02 01:18 +0200 |
| Message-ID | <uuffcs$13pd$2@solani.org> |
| In reply to | #14021 |
Starting with the Sudoku solver we have recently obtained we developed a Puzzle generator together with an interactive game play. The result can be run in a web page by means of Dogelog Player 1.2.0 for JavaScript. Both the Puzzle generator and the game play were written in 100% Prolog. Regin Filtering from SWI-Prolog CLP(FD) didn’t make a dent for generating unique puzzles, all we could do was provide 34 clues, and our solver takes in the average 1000 ms. We also implemented valid move checking by reusing the constraints and an undo move queue via dynamic facts. See also: Game Play of Spock Doku https://twitter.com/dogelogch/status/1774936304335159561 Game Play of Spock Doku https://www.facebook.com/groups/dogelog Mild Shock schrieb: > > Dogelog Player is a Prolog system that features > a generational garbage collector scheme and a > change_arg/3 primitive built-in. So far the two > didn’t go together and we had to use a cludge. > With the upcoming release we provide a proper > solution based on marking write-barriers. > > Our remembered set on the variable binding trail > has the benefit that it can reduce itself during > backtracking. By adopting conductor variables, i.e. > instantiated variables that are not trailed, from > formerly Jekejeke Prolog, we could recreate a > similar benefit for Dogelog Players change_arg/3. > > See also: > > Marking Write-Barriers for Dogelog Player > https://twitter.com/dogelogch/status/1771559896741192186 > > Marking Write-Barriers for Dogelog Player > https://www.facebook.com/groups/dogelog
[toc] | [prev] | [standalone]
Back to top | Article view | comp.lang.prolog
csiph-web