Activity
From 04/15/2025 to 05/14/2025
05/14/2025
- 07:25 AM Bug #9886: Double slashes should produce a new line during preprocessing
- I have rebased and tested this with a customer application. The "deploy" step passed.
- 07:25 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- I tested this with the two customer applications. Both have passed with no issues during deploy.
- 01:46 AM Bug #6308: post string literal alternative coding quirk in 4GL preprocessor
- When preprocessing the following ...
05/13/2025
- 08:12 AM Bug #6308: post string literal alternative coding quirk in 4GL preprocessor
- > As a summary, in text.g I added this to now match @& @ and consume it since that's the behavior in 4GL.
Please s... - 06:38 AM Feature #5586 (Internal Test): move all conversion artifacts/outputs into the cvtdb or into a ded...
- Code Review Task Branch 5586a Revisions 15899 through 15901
The changes are good. - 06:33 AM Feature #7180 (Review): create a centralized manager for the conversion list and per-file/project...
- Greg, please review 7180a.
There might be an issue with the ScanDriver collections which were changes from synchr... - 05:42 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- *7180a/15909* contains the changes mentioned in #7180-148, including the compatibility changes for the trunk rebase. ...
- 04:10 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Eduard Soltan wrote:
> I have been trying the test with 7180a-15894.patch, the following test case:
>
> FooTest.c...
05/12/2025
- 09:39 AM Bug #6308: post string literal alternative coding quirk in 4GL preprocessor
- I reverted this change since it wasn't producing what I expected, but in return I added:...
05/09/2025
- 08:03 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Rebased *7180a* to latest *trunk/15894*, the branch is now at revision *15908*.
The patch helped a lot, I had to ... - 07:58 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- I have been trying the test with 7180a-15894.patch, the following test case:
FooTest.cls:... - 04:36 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- In order for the branch to be built, it's required to:...
- 03:48 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Constantin Asofiei wrote:
> Danut/Eduard: note that in trunk rev 15888.1.1 (commit 15889) there were some other fixe... - 02:43 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Danut/Eduard: note that in trunk rev 15888.1.1 (commit 15889) there were some other fixes related to #7255.
- 03:05 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- Greg, I will put this back into review, let me know if there's anything I need to change.
- 03:04 AM Feature #5586 (Review): move all conversion artifacts/outputs into the cvtdb or into a dedicated ...
- 03:03 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- I have converted the big customer application successfully.
I have created revno 15901 where:
* every @.ast@, @.ca...
05/08/2025
- 10:14 AM Bug #9918: tilde doesn't duplicate semicolon in alternative codings
- I have committed this to 9918a/15892.
- 09:23 AM Bug #9918: tilde doesn't duplicate semicolon in alternative codings
- To explain the current issue, only right now @&@,when we have the following code:...
- 10:11 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Dănuț Filimon wrote:
> *Eduard*, can you take the patch from #7180-139, patch it to trunk and test the scenarios you... - 06:16 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- *Eduard*, can you take the patch from #7180-139, patch it to trunk and test the scenarios you've created for #7255 (t...
- 06:04 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- I've made a patch for 7180a on top of trunk/15882, attaching it so that I don't lose it by mistake.
05/07/2025
- 11:51 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- Stefan Vieru wrote:
> Question about @.jast@ files: should they be moved aswell into artifact directory,
Yes. Be... - 11:47 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- Stefan Vieru wrote:
> Addressing this @.p2o@ issue, in the hopes that I understood correctly, my changes to @visitAs... - 08:52 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- Stefan Vieru wrote:
> Question about @.jast@ files: should they be moved aswell into artifact directory, or deleted ... - 07:40 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- Question about @.jast@ files: should they be moved aswell into artifact directory, or deleted afterwards if they're n...
- 04:59 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- Addressing this @.p2o@ issue, in the hopes that I understood correctly, my changes to @visitAst@ would be:...
05/06/2025
05/05/2025
- 08:19 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- > check if the current AST is a p2o AST and avoid calling loadTemporarySchema for it.
This would work, though:
... - 08:10 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- Greg Shah wrote:
> The @hotel.p2o@ is the persistent database and should not be loaded by @loadTemporarySchema()@ be... - 08:02 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- The @hotel.p2o@ is the persistent database and should not be loaded by @loadTemporarySchema()@ because that code is s...
- 07:28 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- > Eric/Ovidiu: How do we fix this latent bug?
To me it looks like the @P2OWorker@ is used from the rules at @Gener... - 06:57 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- > At @Generate Data Model Objects (database DMOs)@ step, inside @loadTemporarySchema@ when the filename is @./cvt/dat...
- 04:38 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- While debugging hotel_gui i have found that:
At @Generate Data Model Objects (database DMOs)@ step, inside @loadTemp... - 07:15 AM Support #9919: discuss and define the MVP for the first pass at IDE support
- Florin Eugen Rotaru wrote:
> I see. Probably you mean that we should offer support for modifying the Progress-side...
05/01/2025
- 04:17 PM Support #9919: discuss and define the MVP for the first pass at IDE support
- Greg Shah wrote:
> In OE, include files do not have to be named @.i@ and procedures do not have to be named @.p@. I...
04/30/2025
- 12:10 PM Support #9919: discuss and define the MVP for the first pass at IDE support
- > Indeed, PDS accepts any extension for include files, but only the @i@, @w@, @p@, @cls@ are subject to syntax checki...
- 10:04 AM Support #9919: discuss and define the MVP for the first pass at IDE support
- Greg Shah wrote:
> In OE, include files do not have to be named @.i@ and procedures do not have to be named @.p@. I... - 07:17 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- > getPersistenceFilename() existed before, but I removed it because I thought it wasn't used.
It is used as @persi... - 06:35 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- getPersistenceFilename() existed before, but I removed it because I thought it wasn't used. I do agree that I should ...
- 06:26 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- > Added getPersistenceFilename() - for conversion, I need to remove it. Maybe using an artifact method ~ getPersisten...
- 05:53 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- I've fixed the ETF project and managed to run the server (it wasn't just 7180a issues), currently running a test and ...
- 02:59 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Committed *7180a/15860*.
* Added getResourcePath() to artifacts - used to get the resource path for the MultiClass... - 04:00 AM Feature #5586 (WIP): move all conversion artifacts/outputs into the cvtdb or into a dedicated dir...
- 04:00 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- Seems that #5586-68 occurs even when the build is passing so this issue wasn't introduced with this branch.
04/29/2025
- 09:12 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- ...
- 04:20 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- After some changes I am now facing this issue:...
- 08:57 AM Bug #6308: post string literal alternative coding quirk in 4GL preprocessor
- Post this as a diff, please.
- 08:32 AM Support #9919: discuss and define the MVP for the first pass at IDE support
- In OE, include files do not have to be named @.i@ and procedures do not have to be named @.p@. In fact, it is common...
04/28/2025
- 09:59 AM Bug #6308: post string literal alternative coding quirk in 4GL preprocessor
- while working on this I saw that the @inString@ variable is not set correctly when reading the stream:
We have for e... - 09:57 AM Bug #9918: tilde doesn't duplicate semicolon in alternative codings
- while working on this I saw that the @inString@ variable is not set correctly when reading the stream:
We have for e... - 09:20 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Greg Shah wrote:
> Dănuț Filimon wrote:
> > I also have a question, where should fwd_sheet.war be built? It seems t... - 09:15 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Dănuț Filimon wrote:
> I also have a question, where should fwd_sheet.war be built? It seems that it's missing from ... - 09:14 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Greg Shah wrote:
> > This doesn't look right.
>
> Correct. We should not use the filesystem during import.
Xm... - 09:14 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- > This doesn't look right.
Correct. We should not use the filesystem during import. - 09:08 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- I also have a question, where should fwd_sheet.war be built? It seems that it's missing from the library in the hotel...
- 09:06 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Greg Shah wrote:
> At runtime, artifacts only should come from the application jar file. We should never be looking... - 08:31 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- At runtime, artifacts only should come from the application jar file. We should never be looking in the filesystem.
- 08:28 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Also, make sure we take into consideration that this location can be relative to the main project or to the conversio...
- 06:36 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- During the execution of ant import.db, the home will be /home/ddf/gcd/hotel_gui/, but when executing the server it wi...
- 04:51 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- The issue with the @SchemaConfig.getSchemaResource()@ is that the relative path of the artifact @./data/standard.dict...
- 03:16 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- ETF conversion passed, I've switched to runtime testing and already found issues.
* Wrong absolute path for standard...
04/25/2025
- 10:44 AM Bug #9918: tilde doesn't duplicate semicolon in alternative codings
- Created branch 9918a with revno 15876
I detailed in code the change, so as a summary:
* when we are placed inside a... - 10:41 AM Support #9919: discuss and define the MVP for the first pass at IDE support
- I've added some items to the list.
I've also added a new feature in the +OpenEdge IDE Features+ regarding the gen... - 06:57 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Noted, I will check those when I'm done with ETF.
ETF custom rules only required a small change, only for the prob... - 06:54 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- The ChUI regression tests also have these customer-specific rule-sets.
- 06:53 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- See [[p2j:Chapter_13_Other_Customization#Integrating-Custom-Conversion-Logic|Integrating Custom Conversion Logic]].
- 06:36 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- By the way, is there any documentation on how those rules can be set in the project?
- 06:35 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Greg Shah wrote:
> There shouldn't be any TRPL code generated on the fly. I don't think we do that anywhere.
>
>... - 06:32 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- There shouldn't be any TRPL code generated on the fly. I don't think we do that anywhere.
Are there customer-spec... - 12:47 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- ETF issue: ...
- 06:08 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- It seems that some @.rules@ files are using @%s.ast@ and that string parameter is the source file of the ast, meaning...
04/24/2025
- 09:16 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- ETF: There's a scenario where CommonAstSupport$Library.getPersistenceFilename() is still used (note: I removed since ...
- 07:39 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- *7180a/15859* contains a few changes to methods that needed to be renamed and a few small changes to parameter names....
- 06:11 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Dănuț Filimon wrote:
> Greg, I ended up modifying @rules/dbref/collect_refs.xml@ when removing @file@ usage. It look... - 03:41 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Committed *7180a/15858*. Removed @getFile()@ from CommonAstSupport.java, modified rules accordingly.
- 03:08 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Greg, I ended up modifying @rules/dbref/collect_refs.xml@ when removing @file@ usage. It looks like both @collect_ref...
- 08:49 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- I will also add this change:...
- 08:47 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- I have found the issue, inside SchemaWorker...
- 07:16 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- If this error only happens in 5586a then it is a real regression.
Adding the temp-table to the schema dictionary i... - 07:03 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- After some heavy debugging I've found that this temp table ("tt_kolom") is not found in @SchemaDictionary.scopeMap@. ...
04/23/2025
- 10:04 AM Support #9919: discuss and define the MVP for the first pass at IDE support
- We have used Xtext extensively before for DSL, it's a wrapper on top of ANTLR that comes with a bunch of boiler plate...
- 06:41 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Dănuț Filimon wrote:
> *7180a/15856* gets rid of the @getFilename()@ and @this.filename@ usage in TRPL for good. It ... - 05:59 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- *7180a/15856* gets rid of the @getFilename()@ and @this.filename@ usage in TRPL for good. It was easier to investigat...
- 03:43 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Let's make it a 40% :)
- 03:42 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Committed *7180a/15855*. Expanded artifact usage to TRPL (initial).
TRPL changes include:
* includeDictionary() w... - 06:36 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- While converting big customer application I have an error related to a temp-table, @unexpected token@ error.
04/22/2025
- 09:46 AM Support #9919: discuss and define the MVP for the first pass at IDE support
- In #6319 and #3883 we are implementing IDE support for two common Java IDE platforms. For the first pass, we need to...
- 09:37 AM Support #9919 (WIP): discuss and define the MVP for the first pass at IDE support
- 09:45 AM Bug #9918 (WIP): tilde doesn't duplicate semicolon in alternative codings
- 07:26 AM Bug #9918: tilde doesn't duplicate semicolon in alternative codings
- While developing some more tests i have found that:...
- 07:25 AM Bug #9918 (Internal Test): tilde doesn't duplicate semicolon in alternative codings
- 08:49 AM Bug #9905 (Internal Test): EOF file is not matched during preprocessing
- Code Review Task Branch 9905a Revision 15868
The changes look good. - 06:36 AM Bug #9905: EOF file is not matched during preprocessing
- The issue i addressed earlier about the random NL that appear:
When we have a .i file that we include, in OE if it h... - 06:05 AM Bug #9905 (Review): EOF file is not matched during preprocessing
- 06:05 AM Bug #9905: EOF file is not matched during preprocessing
- I have created 9905a with rev 15868 with my changes.
I have added the following change... - 11:13 PM Bug #9917: Fileset not ignoring case
- Filesets are not finding files when case-insensitivity is true and @-Z@ is used. This behaves in the same manner as @...
- 10:57 PM Bug #9917 (Closed): Fileset not ignoring case
- 10:56 PM Bug #9863: Fileset eXclude broken on native Windows
- Changed title to more focus on the issue
04/17/2025
- 10:16 AM Bug #9905: EOF file is not matched during preprocessing
- OK, the bottom line here: please keep going with the fixes. The FWD output should match OE output exactly.
- 07:15 AM Bug #9905: EOF file is not matched during preprocessing
- I will explain the issue better after some analysis:
When @sym.size() = = 2@ (sym being the "stack call" of the fil... - 07:03 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- I've went through the changes required to successfully convert the hotel gui project, the next step is to verify any ...
04/16/2025
- 12:46 PM Bug #9905: EOF file is not matched during preprocessing
- > This change fixes all the harness EOF errors, but only if we dont have a NL present at any of the files(also includ...
- 08:08 AM Bug #9905: EOF file is not matched during preprocessing
- I looked into this issue and what I've found is:
In ClearStream @mread@, at the end... - 08:53 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Greg Shah wrote:
> Dănuț Filimon wrote:
> > I our last meeting I mentioned that I modified Aast.getFilename() to Aa... - 08:49 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Dănuț Filimon wrote:
> I our last meeting I mentioned that I modified Aast.getFilename() to Aast.getArtifact(). file... - 08:22 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- I our last meeting I mentioned that I modified Aast.getFilename() to Aast.getArtifact(). filename is used a lot in th...
- 07:51 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- I discussed with Alex, #7180-101 is fixed by adding the worker in a file that includes the dmo_common.rules. I added ...
- 06:05 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- I made the following patch for a quick fix on a function:...
- 03:08 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- The rebase is too problematic, I have to refactor changes that are not related to the commit in order to ensure compa...
- 08:38 AM Support #9703 (Closed): explore and document the existing OE IDE feature set
- Nice!
- 02:55 AM Support #9703: explore and document the existing OE IDE feature set
- Greg Shah wrote:
> I've read the changes. They are quite good. Some followup questions/comments:
>
> 1. In the ...
04/15/2025
- 02:10 PM Support #9703: explore and document the existing OE IDE feature set
- I've read the changes. They are quite good. Some followup questions/comments:
1. In the "A Simple GUI/TTY Projec... - 04:39 AM Support #9703 (Review): explore and document the existing OE IDE feature set
- I finished writing "Configuring OpenEdge Projects":https://proj.goldencode.com/projects/p2j/wiki/Configuring_OpenEdge...
- 10:14 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Constantin Asofiei wrote:
> Dănuț Filimon wrote:
> > I am not sure how to solve this conflict, maybe @bzr remove sr... - 10:10 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Dănuț Filimon wrote:
> I am not sure how to solve this conflict, maybe @bzr remove src/com/goldencode/p2j/uast/ScanD... - 10:07 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Constantin Asofiei wrote:
> Dănuț Filimon wrote:
> > Constantin Asofiei wrote:
> > > Question, did you unbind the ... - 10:04 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Dănuț Filimon wrote:
> Constantin Asofiei wrote:
> > Question, did you unbind the branch first?
> Yes.
OK, then y... - 10:02 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Constantin Asofiei wrote:
> Question, did you unbind the branch first?
Yes. - 10:02 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Question, did you unbind the branch first?
- 10:00 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Greg Shah wrote:
> @file@ is a "global" variable that is provided by @CommonAstSupport@.
Indeed, there is a getFi... - 09:10 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- Current rebase issue....
- 09:05 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- @file@ is a "global" variable that is provided by @CommonAstSupport@.
- 07:36 AM Feature #7180: create a centralized manager for the conversion list and per-file/project status a...
- I have refactored the NsConfig to use an Artifact for the importFile and it worked out great, the only thing that nee...
- 09:59 AM Bug #9905 (WIP): EOF file is not matched during preprocessing
- 09:54 AM Bug #9905: EOF file is not matched during preprocessing
- With this file:...
- 09:39 AM Bug #9905: EOF file is not matched during preprocessing
- This is the output from OE
!oe_basic.png!
This is the output from FWD
!fwd_basic.png!
As we can see, at the e... - 09:39 AM Bug #9905: EOF file is not matched during preprocessing
- During preprocessing EOF is not matching the expected baseline.
For example:... - 09:32 AM Bug #9905 (Internal Test): EOF file is not matched during preprocessing
- 08:55 AM Bug #6308 (Internal Test): post string literal alternative coding quirk in 4GL preprocessor
- Code Review Task Branch 6308a Revision 15852
The change is good.
In rev 15853, I added comments and changed the... - 06:11 AM Bug #6308: post string literal alternative coding quirk in 4GL preprocessor
- I updated this, new rev is 15852.
- 03:41 AM Bug #6308: post string literal alternative coding quirk in 4GL preprocessor
- Greg Shah wrote:
> Code Review Task Branch 6308a Revision 15851
>
> My only concern is that this quirk will occur... - 07:14 AM Bug #9903: alternative codings with ' (quote) don't convert to ` (backtick)
- Base test:...
- 07:09 AM Bug #9903: alternative codings with ' (quote) don't convert to ` (backtick)
- In the Preprocessor wiki and in @com.goldencode.p2j.preproc.Preprocessor@ is stated that @;'@ should convert to @'@, ...
- 07:07 AM Bug #9903 (Internal Test): alternative codings with ' (quote) don't convert to ` (backtick)
- 06:58 AM Feature #5586: move all conversion artifacts/outputs into the cvtdb or into a dedicated directory...
- Greg Shah wrote:
> Code Review Task Branch 5586a Revisions 15809 through 15811
>
> The changes are good.
>
> M...
Also available in: Atom