Comments (7)
Hmmm, you are right, it's not an easy thing to change this though. I didn't write the json lib, and frankly I wasn't aware of this. We had a similar issue a couple of years ago with parsing of the query part of an URL, and we did change. I'm not sure what is the proper way to handle this. Just changing, will break a lot of code. Boring.
from yaws.
Since we can't break existing code, I would think the only way to really fix this would be to leave the original module in place but copy it to a new module with a different name where the fix can be made. We could then put a big warning into the original module explaining the problem and advising users to switch to the new one.
from yaws.
Anyone interested in json might want to try this code:
https://github.com/davisp/jiffy
from yaws.
cool.
thanks for the link. it's nice. i'm doing some alternative prototyping on the subject, i'm going to put in my tuppence soon.
anyways, i wonder what would be the best course of action with this issue? is there any code in yaws itself using this library?
if you don't know just already, i can analyze the newest revisions
in case there's no use of this library in yaws itself i would vote just to add some strong depreciation in documentation (in repository and on the web site) and to close this issue
from yaws.
There are modules in yaws that use the json module, but I'm not sure how heavily those modules are used or whether the details of the json representation leak out of those modules. Seems like one good plan of action might be:
- either create a new json module from the existing one, fixing the problems with it, or grab another json module from somewhere else, like from the jiffy repo
- change existing modules in yaws that rely on the json module to use the new one
- put large warnings and deprecation notices in the existing json module
from yaws.
What makes this extra fun is that the json
module doesn't even currently pass its own internal tests.
from yaws.
OK, this is now fixed. I pushed a new module named json2
that avoids list_to_atom
and also passes all its tests.
from yaws.
Related Issues (20)
- JSON-RPC payloads don't need urldecode step HOT 1
- Failed to compile 2.1.1 with Erl22, but 2.1.0 worked HOT 1
- Error on launch application Yaws HOT 4
- Crash Yaws after running HOT 2
- when reconfiguring, no check for changed appmods is done HOT 3
- yaws in NixOS 22.05 for aarch64 gives error during system build HOT 2
- Fail when make install and deterministic build is enabled HOT 3
- build breaks with OTP 27 HOT 2
- Error on building Yaws on Manjaro Linux on Erlang OTP-27 HOT 1
- failed to install qt5
- Do not make fatal inaccessible log file HOT 9
- Can't start Yaws web server on Ubuntu 22 HOT 2
- yaws_config.erl:3563:20: file:pid2name/1 is deprecated and will be removed in OTP 27 HOT 2
- Check that Basic authentication user doesn't contain control characters HOT 1
- Add CI tests for OTP master and maint branches
- yaws_compile_SUITE compile_www_scripts case fails on OTP 27.0-rc1
- Create GitHub pages site for e.g. docs
- yaws is stucked and can not receive any new HTTP connection HOT 17
- remove `http://yaws.hyber.org` site refs
- rebar3 compile error in master branch, tag: 2.2.0, 2.1.1 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 yaws.