diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..162e174 --- /dev/null +++ b/Makefile @@ -0,0 +1,112 @@ +GIT2LOG := $(shell if [ -x ./git2log ] ; then echo ./git2log --update ; else echo true ; fi) +GITDEPS := $(shell [ -d .git ] && echo .git/HEAD .git/refs/heads .git/refs/tags) +VERSION := $(shell $(GIT2LOG) --version VERSION ; cat VERSION) +BRANCH := $(shell git branch | perl -ne 'print $$_ if s/^\*\s*//') +PREFIX := gfxboot2-$(VERSION) + +ifdef 32BIT + OPT_32BIT = -m32 +endif + +CC = gcc +CFLAGS = -g -O2 $(OPT_32BIT) -I. -Wall -Wno-pointer-sign -Wsign-conversion -Wsign-compare +LDFLAGS = $(OPT_32BIT) + +GFXBOOT_LIB_SRC = gfxboot.c gfxboot_main.c \ + gfxboot_array.c gfxboot_canvas.c gfxboot_draw.c gfxboot_font.c gfxboot_hash.c gfxboot_context.c \ + gfxboot_lib.c gfxboot_malloc.c gfxboot_gstate.c gfxboot_jpeg.c \ + gfxboot_mem.c gfxboot_num.c gfxboot_obj.c gfxboot_olist.c gfxboot_prim.c gfxboot_debug.c +GFXBOOT_LIB_OBJ = $(GFXBOOT_LIB_SRC:.c=.o) + +GFXBOOT_BIN_SRC = gfxboot-compile.c gfxboot-x11.c +GFXBOOT_BIN_OBJ = $(GFXBOOT_BIN_SRC:.c=.o) + +GFXBOOT_HEADER = gfxboot.h vocabulary.h + +GRUB_MODULE_BIOS = $(shell . ./config_vars ; echo $$grub_module_bios) +GRUB_MODULE_EFI = $(shell . ./config_vars ; echo $$grub_module_efi) +GRUB_FILES = $(shell . ./config_vars ; echo $$grub_files) +GRUB_ISO = $(shell . ./config_vars ; echo $$grub_iso) + +ifneq "$(vm)" "" + VM = --$(vm) +endif + +.PHONY: all grub-bios grub-efi grub-iso test-bios test-efi test-x11 archive clean tests + +all: gfxboot-x11 gfxboot-compile gfxboot-font + +changelog: $(GITDEPS) + $(GIT2LOG) --changelog changelog + +doc: doc/reference.adoc + +doc/reference.adoc: vocabulary.def gfxboot_prim.c doc/reference_template + ./mk_reference vocabulary.def gfxboot_prim.c doc/reference_template $@ + +grub-bios: $(GRUB_MODULE_BIOS) + +grub-efi: $(GRUB_MODULE_EFI) + +grub-iso: $(GRUB_ISO) + +test-bios: grub-iso + vm --cdrom $(GRUB_ISO) $(VM) --serial + +test-efi: grub-iso + vm --cdrom $(GRUB_ISO) $(VM) --serial --efi + +test-x11: gfxboot-x11 gfxboot-compile + ./mk_x11_test + ./gfxboot-x11 x11 + +test-cons: gfxboot-x11 gfxboot-compile + ./mk_x11_test + ./gfxboot-x11 --no-x11 --file - x11 + +test-console: gfxboot-x11 gfxboot-compile + ./mk_x11_test + ./gfxboot-x11 --no-x11 --file - x11 + +vocabulary.h: vocabulary.def types.def + ./mk_vocabulary vocabulary.def types.def $@ + +$(GFXBOOT_LIB_OBJ): %.o: %.c $(GFXBOOT_HEADER) + $(CC) -c $(CFLAGS) -ffreestanding $< + +$(GFXBOOT_BIN_OBJ): %.o: %.c $(GFXBOOT_HEADER) + $(CC) -c $(CFLAGS) $< + +gfxboot-x11: gfxboot-x11.o $(GFXBOOT_LIB_OBJ) + $(CC) $< $(GFXBOOT_LIB_OBJ) $(LDFLAGS) -lX11 -o $@ + +gfxboot-compile: gfxboot-compile.o + $(CC) $< $(LDFLAGS) -o $@ + +gfxboot-font: gfxboot-font.c + $(CC) $(CFLAGS) -I /usr/include/freetype2 -lfreetype $< -o $@ + +$(GRUB_MODULE_BIOS): $(GRUB_FILES) + ./grub_build --bios + +$(GRUB_MODULE_EFI): $(GRUB_FILES) + ./grub_build --efi + +$(GRUB_ISO): $(GRUB_MODULE_BIOS) $(GRUB_MODULE_EFI) + ./mk_grub_test + +tests: gfxboot-x11 gfxboot-compile + @./run_tests + +archive: changelog + @if [ ! -d .git ] ; then echo no git repo ; false ; fi + mkdir -p package + git archive --prefix=$(PREFIX)/ $(BRANCH) > package/$(PREFIX).tar + tar -r -f package/$(PREFIX).tar --mode=0664 --owner=root --group=root --mtime="`git show -s --format=%ci`" --transform='s:^:$(PREFIX)/:' VERSION changelog + xz -f package/$(PREFIX).tar + +clean: + rm -f changelog VERSION vocabulary.h + rm -f $(GRUB_ISO) screenlog.0 *~ *.o gfxboot-{x11,font,compile} sample *.log files/*~ *.gc doc/*~ + rm -f tests/*~ tests/*/{*.log,*~,*.gc,gc.log.ref,opt*.log.ref} + rm -rf x11 grub package diff --git a/README.adoc b/README.adoc new file mode 100644 index 0000000..34400e0 --- /dev/null +++ b/README.adoc @@ -0,0 +1,91 @@ += gfxboot2 + +A graphical interface to bootloaders. + +__This is still in a very early stage.__ + +It's essentially a rework of https://github.com/openSUSE/gfxboot[gfxboot] +but written in C. + +The implemented scripting language is again a +https://en.wikipedia.org/wiki/Stack-oriented_programming[stack-based language] - similar +to what gfxboot uses but with integrated memory management and a hash data type. + +=== Status + +__The code is not yet ready to be used.__ + +The scripting language is basically implemented, including the graphics primitves. + +The connection to `grub` is still a bit awkward. The patches extend grub to +expose a link to the graphics framebuffer. + +This is not strictly needed. gfxboot does never read the video memory. +An`update` function that can update a rectangular screen area would suffice. + +AFAICS grub does not exactly have that. There is +`doublebuf_blit_update_screen` in +https://git.savannah.gnu.org/cgit/grub.git/tree/grub-core/video/fb/video_fb.c[grub-core/video/fb/video_fb.c], +though. But this updates continuous memory ranges, not rectangular areas. + +=== A first look + +.A cat +image::doc/screen_01.png[A cat] + +.The source code +[%collapsible] +==== +[source] +---- +/cfont getconsolegstate getfont def +/foo "foo.fnt" readfile newfont def +/bar "bar.fnt" readfile newfont def + +/text "ABC 12345 xyz # * % & § öäüß €" def + +/image gstate def +image "katze_800.jpg" readfile unpackimage setcanvas + +0 0 setpos +image getgstate exch blt +0x90000000 setcolor +image dim fillrect + +0xffff00 setcolor + +getgstate cfont setfont +50 50 setpos "Some font samples" show + +0x00ffffff setcolor + +getgstate cfont setfont +50 100 setpos text show + +getgstate bar setfont +50 130 setpos text show + +getgstate foo setfont +50 180 setpos text show +---- +==== + +The prompt in the lower part of the screen is the debug console. + +=== Next steps + +- get a basic boot menu working +- fine-tune language definition +- more systematic debug console +- add de-fragmentation to memory management +- work on documentation + +=== Some documentation + +For details check out the link:doc/reference.adoc#add[language reference]. + +To get started, read the link:doc/building.adoc#add[build instructions]. + +The code is covered by a link:doc/testing.adoc#add[test suite]. + +The link:doc/internals.adoc#add[binary format] is also documented. diff --git a/config_vars b/config_vars new file mode 100644 index 0000000..684f213 --- /dev/null +++ b/config_vars @@ -0,0 +1,18 @@ +# this config file is sourced in build and test scripts + +su="sw 0" + +grub_root=~/g +grub_build=b +grub_dir="$grub_root/$grub_build" + +grub_module=gfxboot +grub_files="gfxboot.c gfxboot.h gfxboot_*.c vocabulary.h" + +grub_module_bios=$grub_dir/build/grub-core/$grub_module.mod +grub_module_efi=$grub_dir/build-efi/grub-core/$grub_module.mod + +grub_iso_src=files/cd +grub_iso_dir=$PWD/grub +grub_iso=$PWD/grub.iso + diff --git a/doc/building.adoc b/doc/building.adoc new file mode 100644 index 0000000..e5989d1 --- /dev/null +++ b/doc/building.adoc @@ -0,0 +1,46 @@ +== Prepare grub builds + +=== check out grub2 package +osc co openSUSE:Factory/grub2 +cd openSUSE:Factory/grub2 + +=== build it locally +osc build --clean --download-api-only standard x86_64 + +=== prepare $HOME/g and $HOME/g/b symlinks pointing to grub2 build directory +ln -snf $OBS_BUILD_DIR/obs-openSUSE:Factory-standard-grub2 ~/g +cd ~g +ln -snf .build.packages/BUILD/grub-2.04 b + +=== apply gfxboot2 patches +cd ~g/b +patch -p1 < $GFXBOOT2_DIR/patches/grub-2.04.diff + +== required packages + +- mksusecd +- qemu +- vm (TBD) +- freetype2-devel +- libX11-devel + +== building 32bit binaries +- packages + - glibc-devel-32bit + - freetype2-devel-32bit + - libX11-devel-32bit + - gcc-32bit + +- run 'make 32BIT=1 ...' + +== make targets +- (default target): build gfxboot tools: gfxboot-compile, gfxboot-font, gfxboot-x11 +- tests: run test suite +- grub-bios: legacy grub +- grub-efi: efi grub +- grub-iso: build grub bootable iso +- test-x11: build & run x11 variant +- test-console: build & run text console variant (no gfx shown) +- test-bios: build & legacy boot iso with qemu +- test-efi: build & efi boot iso with qemu +- test-XXX builds use the files in the 'files' subdirectory - main.gs contains the main program diff --git a/doc/internals.adoc b/doc/internals.adoc new file mode 100644 index 0000000..63c2099 --- /dev/null +++ b/doc/internals.adoc @@ -0,0 +1,68 @@ +== Internal data structures + +=== Binary format + +The binary code is encoded as follows: + +1 opcode byte followed by 0 or more data bytes + +[source] +---- +opcode [data] ... +opcode [data] ... +... + +opcode bits 0..3: type +opcode bits 4..7: arg +---- + +There are 2 variants of opcodes: + +- the 1st decodes into type + signed/unsigned 64 bit value (arg1) +- the 2nd decodes into type + unsigned 32 bit value (arg1, the size of the + following byte array) + byte array (arg2) + +The 1st group is for number-like data, the 2nd group for string-like data. Note that strings are not +zero-terminated. + +[source] +---- +if type < 5 + # variant 1 + if arg < 8 + arg1 = arg + else # arg >= 8 + arg1 = decode_num(arg - 7) # 1..8 bytes + # arg1 will be decoded as signed if type is 1 (integer), else unsigned + # (if signed, bit 7 of the last byte is the sign bit) + endif +else # type >= 5 + # variant 2 + if arg < 12 + arg1 = arg + else # arg >= 12 + arg1 = decode_num(arg - 11) # 1..4 bytes + # arg1 will always be decoded as unsigned + endif + arg2 = the following arg1 bytes # arg1 may be 0 +endif + +decode_num(n): read next n bytes as little-endian number +---- + +For type codes see `types.def`. + +The file has to start with the magic byte sequence `0x75 0x51 0x12 0xa9 0x42 0x7a 0xad 0x60`. +(Which decodes as a 7 char long special comment.) + +Sample decoded byte sequences: + +[source] +---- +# hex [type] decoded value +00 [nil] nil +51 [int] 5 +81 ff [int] -1 +37 61 62 63 [str] "abc" +c7 0e 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e [str] "abcdefghijklmn" +---- diff --git a/doc/reference.adoc b/doc/reference.adoc new file mode 100644 index 0000000..be1c5a6 --- /dev/null +++ b/doc/reference.adoc @@ -0,0 +1,2226 @@ +## Language reference + +Comments start with '#' and extend to the end of the line. + +To include some other source file, use the special `include` comment (note the double-`#`, and no quotes around the file name): + +.Examples +``` +## include foo.gs +``` + +Numbers are 64 bit signed integers. Numerical and string constants are given in a C-like way. + +.Examples +``` +123 +-456 +0x4567 +"Hi there\n" +'\033' +'\x1b' +'\u20ac' +``` + +Strings are not zero-terminated and can contain any data (including zeros). Use `\xNN` to set arbitray binary values. +Use `\uNNNN` or `\UNNNNNNNN` to include UTF8-encoded Unicode characters. + +.Examples +``` +"1 Euro = 1 €\n" +"1 Euro = 1 \u20ac\n" +"1 Euro = 1 \xe2\x82\xac\n" +``` + +Logical operations return values of type bool. They are not identical with integers. + +.Examples +``` +true +false +``` + +There is a special value nil. It is not the same as 0. + +.Examples +``` +nil +``` + +### Primitive words + +* **+{+** - start code block [[code_start]] ++ +-- +** ( -- __code~1~__ ) +-- ++ +Put a reference to the following code block on the stack. The code block +starts after the opening `{` and extends to (and including) the matching +closing `}`. ++ +This special word is handled while converting the source code into binary code with `gfxboot-compile`. +For this reason, this is the only word that cannot be redefined. ++ +.Examples +``` + +{ "Hello!" show } +``` ++ +See also: xref:code_end[+}+], xref:hash_start[+(+], xref:hash_end[+)+], xref:array_start[+[+], xref:array_end[+]+], xref:getdict[+getdict+], xref:getparent[+getparent+], xref:setdict[+setdict+], xref:setparent[+setparent+] + +* **+}+** - finish code block [[code_end]] ++ +-- +** ( -- ) +-- ++ +This marks the end of a code block. When the code is executed, the +interpreter leaves the current execution context and returns to the +parent context. ++ +.Examples +``` + +/hello { "Hello!" show } def +hello # print "Hello!" +``` ++ +See also: xref:code_start[+{+], xref:hash_start[+(+], xref:hash_end[+)+], xref:array_start[+[+], xref:array_end[+]+], xref:getdict[+getdict+], xref:getparent[+getparent+], xref:setdict[+setdict+], xref:setparent[+setparent+] + +* **+(+** - start hash definition [[hash_start]] ++ +-- +** ( -- __mark~1~__ ) ++ +__mark~1~__: hash start marker +-- ++ +Put hash start marker on stack. Hash definition is completed with ). ++ +.Examples +``` + +( "foo" 10 "bar" 20 ) # hash with 2 keys "foo" and "bar" +``` ++ +See also: xref:code_start[+{+], xref:code_end[+}+], xref:hash_end[+)+], xref:array_start[+[+], xref:array_end[+]+], xref:getdict[+getdict+], xref:getparent[+getparent+], xref:setdict[+setdict+], xref:setparent[+setparent+] + +* **+)+** - finish hash definition [[hash_end]] ++ +-- +** ( __mark~1~__ __any~1~__ ... __any~n~__ -- __hash~1~__ ) ++ +__mark~1~__: array start marker ++ +__any~1~__ ... __any~n~__: some key - value pairs ++ +__hash~1~__: new hash +-- ++ +Search for __mark~1~__ on the stack and put everything between __mark~1~__ and TOS +into a hash. The elements are interpreted alternatingly as key and value. +If there's an odd number of elements on the stack, the last value is nil. ++ +.Examples +``` + +( "foo" 10 "bar" 20 ) # hash with 2 keys "foo" and "bar" +``` ++ +See also: xref:code_start[+{+], xref:code_end[+}+], xref:hash_start[+(+], xref:array_start[+[+], xref:array_end[+]+], xref:getdict[+getdict+], xref:getparent[+getparent+], xref:setdict[+setdict+], xref:setparent[+setparent+] + +* **+[+** - start array definition [[array_start]] ++ +-- +** ( -- __mark~1~__ ) ++ +__mark~1~__: array start marker +-- ++ +Put array start marker on stack. Array definition is completed with ]. ++ +.Examples +``` + +[ 1 2 3 ] # array with 3 elements +``` ++ +See also: xref:code_start[+{+], xref:code_end[+}+], xref:hash_start[+(+], xref:hash_end[+)+], xref:array_end[+]+], xref:getdict[+getdict+], xref:getparent[+getparent+], xref:setdict[+setdict+], xref:setparent[+setparent+] + +* **+]+** - finish array definition [[array_end]] ++ +-- +** ( __mark~1~__ __any~1~__ ... __any~n~__ -- __array~1~__ ) ++ +__mark~1~__: array start marker ++ +__any~1~__ ... __any~n~__: some elements ++ +__array~1~__: new array +-- ++ +Search for __mark~1~__ on the stack and put everything between __mark~1~__ and TOS +into an array. ++ +.Examples +``` + +[ 10 20 "some" "text" ] # array with 4 elements +``` ++ +See also: xref:code_start[+{+], xref:code_end[+}+], xref:hash_start[+(+], xref:hash_end[+)+], xref:array_start[+[+], xref:getdict[+getdict+], xref:getparent[+getparent+], xref:setdict[+setdict+], xref:setparent[+setparent+] + +* **+abs+** - absolute value [[abs]] ++ +-- +** ( __int~1~__ -- __int~2~__ ) ++ +__int~2~__: |__int~1~__| ++ +** ( __bool~1~__ -- __bool~2~__ ) ++ +__bool~2~__: __bool~1~__ +-- ++ +Absolute value of __int~1~__ (change sign if __int~1~__ is negative). ++ +.Examples +``` + +For boolean 1 bit arithmetic the value is unchanged. + +-20 abs # 20 +true abs # true +``` ++ +See also: xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+add+** - addition [[add]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: __int~1~__ + __int~2~__ ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ xor __bool~2~__ ++ +** ( __array~1~__ __array~2~__ -- __array~3~__ ) ++ +__array~3~__: __array~2~__ appended to __array~1~__ ++ +** ( __hash~1~__ __hash~2~__ -- __hash~3~__ ) ++ +__hash~3~__: joined __hash~1~__ and __hash~2~__ ++ +** ( __string~1~__ __string~2~__ -- __string~3~__ ) ++ +__string~3~__: __string~2~__ appended to __string~1~__ +-- ++ +Add two numbers, or concatenate two arrays, or join two hashes, or concatenate two strings. ++ +For boolean 1 bit arithmetic this is equivalent to 'xor'. ++ +.Examples +``` + +10 20 add # 30 +true true add # false +[ 10 20 ] [ 30 40 ] add # [ 10 20 30 40 ] +( "foo" 10 ) ( "bar" 20 ) add # ( "bar" 20 "foo" 10 ) +"abc" "def" add # "abcdef" +``` ++ +See also: xref:abs[+abs+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+and+** - and [[and]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: __int~1~__ and __int~2~__ ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ and __bool~2~__ ++ +-- ++ +.Examples +``` + +15 4 and # 4 +true false and # false +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+blt+** - copy rectangular region [[blt]] ++ +-- +** ( __gstate~1~__ __gstate~2~__ -- ) +-- ++ +Copy from the drawing region of __gstate~2~__ to the drawing region of __gstate~1~__, at the drawing pos of __gstate~1~__. ++ +.Examples +``` + +/cat_pic gstate def +cat_pic "cat.jpg" readfile unpackimage setcanvas +0 0 setpos getgstate cat_pic blt # show cat picture +``` ++ +See also: xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+canvas+** - create canvas [[canvas]] ++ +-- +** ( __int~1~__ __int~2~__ -- __canvas~1~__ ) ++ +__int~1~__: width ++ +__int~2~__: height +-- ++ +Create a new empty canvas of the specified size. ++ +.Examples +``` + +800 600 canvas +``` ++ +See also: xref:blt[+blt+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+cmp+** - compare [[cmp]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: __int~1~__ <=> __int~2~__ ++ +** ( __bool~1~__ __bool~2~__ -- __int~4~__ ) ++ +__int~4~__: __bool~1~__ <=> __bool~2~__ ++ +** ( __string~1~__ __string~2~__ -- __int~5~__ ) ++ +__int~5~__: __string~1~__ <=> __string~2~__ ++ +** ( __any~1~__ __any~2~__ -- __int~6~__ ) ++ +__int~6~__: __any~1~__ <=> __any~2~__ +-- ++ +For pairs of booleans, integers, and strings the values are compared. For +all other combinations the internal object id is compared. ++ +The result is -1, 1, 0 if the first argument is less than, greater than, +or equal to the second argument, respectively. ++ +.Examples +``` + +10 20 cmp # -1 +true false cmp # 1 +"abc" "abc" cmp # 0 +[ 10 20 ] [ 10 20 ] cmp # varies +0 false cmp # varies +0 nil cmp # varies +"abc" [ 10 ] cmp # varies + +/foo [ 10 20 ] def +/bar foo def +foo bar cmp # 0 +``` ++ +See also: xref:eq[+eq+], xref:ge[+ge+], xref:gt[+gt+], xref:le[+le+], xref:lt[+lt+], xref:ne[+ne+] + +* **+debug+** - start debug console [[debug]] ++ +-- +** ( -- ) +-- ++ +Stop code execution and start debug console. ++ +You can leave (and re-enter) the debug console with `^D` but note that this +doesn't resume program execution. Use the `run` (or `r`) console command for this. ++ +.Examples +``` + +/foo { debug 10 20 } def +foo # activate debug console when 'foo' is run +``` ++ +See also: xref:def[+def+], xref:gdef[+gdef+], xref:ldef[+ldef+] + +* **+def+** - define new word [[def]] ++ +-- +** ( __word~1~__ __any~1~__ -- ) +-- ++ +If __word~1~__ does not exist, define __word~1~__ in the current context. ++ +If __word~1~__ does already exist, redefine __word~1~__ in the context in which it is defined. ++ +.Examples +``` +/x 100 def # define x as 100 +/neg { -1 mul } def # define a function that negates its argument +``` ++ +See also: xref:debug[+debug+], xref:gdef[+gdef+], xref:ldef[+ldef+] + +* **+delete+** - delete an array, hash, or string element [[delete]] ++ +-- +** ( __array~1~__ __int~1~__ -- ) ++ +__array~1~__: array to modify ++ +__int~1~__: element index ++ +** ( __hash~1~__ __string~1~__ -- ) ++ +__hash~1~__: hash to modify ++ +__string~1~__: key ++ +** ( __string~2~__ __int~2~__ -- ) ++ +__string~2~__: string to modify ++ +__int~2~__: element index +-- ++ +Delete the respective element of __array~1~__, __hash~1~__, or __string~2~__. The length +of __array~1~__ andstring_2 will be reduced by 1. ++ +Note that string constants are read-only and cannot be modified. ++ +.Examples +``` + +/x [ 10 20 30 ] def +x 1 delete # x is now [ 10 30 ] + +/y ( "foo" 10 "bar" 20 ) def +y "foo" delete # y is now ( "bar" 20 ) + +/z "ABC" mem def # mem is needed to create a writable copy +z 1 delete # z is now "AC" +``` ++ +See also: xref:get[+get+], xref:length[+length+], xref:put[+put+] + +* **+dim+** - get graphics object dimension [[dim]] ++ +-- +** ( __canvas~1~__ -- __int~1~__ __int~2~__ ) +** ( __font~1~__ -- __int~1~__ __int~2~__ ) +** ( __gstate~1~__ -- __int~1~__ __int~2~__ ) ++ +__int~1~__: width ++ +__int~2~__: height +-- ++ +Get dimension of graphics object. For a canvas it is its size, for a +graphics state it is the size of the associated region, for a fixed size +font it is its glyph size, for proportional font the width is 0 and the +height is the font height. ++ +.Examples +``` + +getconsolegstate getcanvas dim # 800 600 +getconsolegstate dim # 640 480 +getconsolegstate getfont dim # 8 16 +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+div+** - division [[div]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: __int~1~__ / __int~2~__ ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ / __bool~2~__ +-- ++ +Divide __int~1~__ by __int~2~__. ++ +You can do a 1 bit division with boolean values. Note that this will run +into a division by zero exception if __bool~2~__ is false. ++ +.Examples +``` + +200 30 div # 6 +true true div # true +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+dup+** - duplicate TOS [[dup]] ++ +-- +** ( __any~1~__ -- __any~1~__ __any~1~__ ) +-- ++ +Duplicate the top-of-stack element. ++ +.Examples +``` + +10 dup # 10 10 +``` ++ +See also: xref:exch[+exch+], xref:index[+index+], xref:over[+over+], xref:pop[+pop+], xref:roll[+roll+], xref:rot[+rot+] + +* **+eq+** - equal [[eq]] ++ +-- +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ == __bool~2~__ ++ +** ( __int~1~__ __int~2~__ -- __bool~4~__ ) ++ +__bool~4~__: __int~1~__ == __int~2~__ ++ +** ( __string~1~__ __string~2~__ -- __bool~5~__ ) ++ +__bool~5~__: __string~1~__ == __string~2~__ ++ +** ( __any~1~__ __any~2~__ -- __bool~6~__ ) ++ +__bool~6~__: __any~1~__ == __any~2~__ +-- ++ +For pairs of booleans, integers, and strings the values are compared. For all +other combinations the internal object id is compared. ++ +.Examples +``` + +10 20 eq # false +true false eq # false +"abc" "abc" eq # true +[ 10 20 ] [ 10 20 ] eq # false +0 false eq # false +0 nil eq # false +"abc" [ 10 ] eq # false + +/foo [ 10 20 ] def +/bar foo def +foo bar eq # true +``` ++ +See also: xref:cmp[+cmp+], xref:ge[+ge+], xref:gt[+gt+], xref:le[+le+], xref:lt[+lt+], xref:ne[+ne+] + +* **+exch+** - swap upper two stack elements [[exch]] ++ +-- +** ( __any~1~__ __any~2~__ -- __any~2~__ __any~1~__ ) +-- ++ +Swap the two topmost stack elements. ++ +.Examples +``` + +10 20 exch # 20 10 +``` ++ +See also: xref:dup[+dup+], xref:index[+index+], xref:over[+over+], xref:pop[+pop+], xref:roll[+roll+], xref:rot[+rot+] + +* **+exec+** - execute object [[exec]] ++ +-- +** ( __ref~1~__ -- ) ++ +__ref~1~__: word reference ++ +** ( __code~1~__ -- ) ++ +__code~1~__: code block +-- ++ +Executes the given code block or looks up and executes the word reference. ++ +.Examples +``` + +{ 10 20 } exec # 10 20 + +/foo "abc" def +foo # "abc" +/foo exec # "abc" +``` ++ +See also: xref:exit[+exit+], xref:for[+for+], xref:forall[+forall+], xref:loop[+loop+], xref:repeat[+repeat+], xref:return[+return+], xref:run[+run+] + +* **+exit+** - leave loop/repeat/for/forall loop [[exit]] ++ +-- +** ( -- ) +-- ++ +Exit from current loop. ++ +.Examples +``` + +0 1 10 { dup 4 eq { exit } if } for # 0 1 2 3 4 +``` ++ +See also: xref:exec[+exec+], xref:for[+for+], xref:forall[+forall+], xref:if[+if+], xref:ifelse[+ifelse+], xref:loop[+loop+], xref:repeat[+repeat+], xref:return[+return+], xref:run[+run+] + +* **+fillrect+** - draw filled rectangle [[fillrect]] ++ +-- +** ( __int~1~__ __int~2~__ -- ) ++ +__int~1~__: width ++ +__int~2~__: height +-- ++ +Draw filled rectangle (using current color) at current position. The +rectangle is clipped at the current drawing region. ++ +.Examples +``` + +200 100 fillrect +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+for+** - run code block repeatedly, with counter [[for]] ++ +-- +** ( __int~1~__ __int~2~__ __int~3~__ __code~1~__ -- ) ++ +__int~1~__: start value ++ +__int~2~__: increment value ++ +__int~3~__: maximum value (inclusive) +-- ++ +Run __code~1~__ repeatedly and put the current counter value on the stack in every iteration. ++ +The counter starts with __int~1~__ and is incremented by __int~2~__ until it +reaches __int~3~__. The code block is executed with the start value and then +as long as the counter is less than or equal to the maximum value. ++ +The increment may be negative. In that case the loop is executed as long as the counter +is greater than or equal to the maximum value. ++ +If the increment is 0, the loop is not executed. ++ +.Examples +``` + +0 1 4 { } for # 0 1 2 3 4 +0 -2 -5 { } for # 0 -2 -4 +``` ++ +See also: xref:exec[+exec+], xref:exit[+exit+], xref:forall[+forall+], xref:if[+if+], xref:ifelse[+ifelse+], xref:loop[+loop+], xref:repeat[+repeat+], xref:return[+return+], xref:run[+run+] + +* **+forall+** - loop over all elements [[forall]] ++ +-- +** ( __array~1~__ __code~1~__ -- ) +** ( __hash~1~__ __code~1~__ -- ) +** ( __string~1~__ __code~1~__ -- ) +-- ++ +Run __code~1~__ for each element of __array~1~__, __hash~1~__, or __string~1~__. ++ +For __array~1~__ and __string~1~__, each element is put on the stack and __code~1~__ is run. ++ +For __hash~1~__, each key and value pair are put on the stack and __code~1~__ is run. +The hash keys are sorted. ++ +Note that __string~1~__ is interpreted as a sequence of bytes, not UTF8-encoded characters. ++ +.Examples +``` + +[ 10 20 30 ] { } forall # 10 20 30 +( "foo" 10 "bar" 20 ) { } forall # "bar" 20 "foo" 10 +"ABC" { } forall # 65 66 67 +``` ++ +See also: xref:exec[+exec+], xref:exit[+exit+], xref:for[+for+], xref:if[+if+], xref:ifelse[+ifelse+], xref:loop[+loop+], xref:repeat[+repeat+], xref:return[+return+], xref:run[+run+] + +* **+freeze+** - make object read-only [[freeze]] ++ +-- +** ( __any~1~__ -- __any~1~__ ) +-- ++ +Make any object read-only. A read-only object cannot be modified. ++ +Note that string constants are read-only by default. ++ +.Examples +``` + +[ 10 20 30 ] freeze # [ 10 20 30 ] +0 delete # raises 'readonly' exception +``` ++ +See also: xref:readfile[+readfile+], xref:string[+string+], xref:utf8decode[+utf8decode+], xref:utf8encode[+utf8encode+] + +* **+gdef+** - define new global word [[gdef]] ++ +-- +** ( __word~1~__ __any~1~__ -- ) +-- ++ +Define __word~1~__ in the global context. ++ +.Examples +``` +/foo 300 gdef # define global word foo as 300 +``` ++ +See also: xref:debug[+debug+], xref:def[+def+], xref:ldef[+ldef+] + +* **+ge+** - greater or equal [[ge]] ++ +-- +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ >= __bool~2~__ ++ +** ( __int~1~__ __int~2~__ -- __bool~4~__ ) ++ +__bool~4~__: __int~1~__ >= __int~2~__ ++ +** ( __string~1~__ __string~2~__ -- __bool~5~__ ) ++ +__bool~5~__: __string~1~__ >= __string~2~__ ++ +** ( __any~1~__ __any~2~__ -- __bool~6~__ ) ++ +__bool~6~__: __any~1~__ >= __any~2~__ +-- ++ +For pairs of booleans, integers, and strings the values are compared. For all +other combinations the internal object id is compared. ++ +.Examples +``` + +10 20 ge # false +true false ge # true +"abd" "abc" ge # true +[ 10 20 ] [ 10 20 ] ge # varies +0 false ge # varies +0 nil ge # varies +"abc" [ 10 ] ge # varies +``` ++ +See also: xref:cmp[+cmp+], xref:eq[+eq+], xref:gt[+gt+], xref:le[+le+], xref:lt[+lt+], xref:ne[+ne+] + +* **+get+** - get array, hash, or string element [[get]] ++ +-- +** ( __array~1~__ __int~1~__ -- ) ++ +__array~1~__: array to modify ++ +__int~1~__: element index ++ +** ( __hash~1~__ __string~1~__ -- ) ++ +__hash~1~__: hash to modify ++ +__string~1~__: key ++ +** ( __string~2~__ __int~2~__ -- ) ++ +__string~2~__: string to modify ++ +__int~2~__: element index +-- ++ +Read the respective element of __array~1~__, __hash~1~__, or __string~2~__. ++ +.Examples +``` + +[ 10 20 30 ] 2 get # 30 +( "foo" 10 "bar" 20 ) "foo" get # 10 +"ABC" 1 get # 66 +``` ++ +See also: xref:delete[+delete+], xref:length[+length+], xref:put[+put+] + +* **+getbgcolor+** - get background color [[getbgcolor]] ++ +-- +** ( -- __int~1~__ ) ++ +__int~1~__: color +-- ++ +Return current background color. ++ +A color is a RGB value with red in bits 16-23, green in bits 8-15 and +blue in bits 0-7. This is independent of what the graphics card is actually using. ++ +.Examples +``` + +getcolor # 0 (black) +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+getcanvas+** - get canvas [[getcanvas]] ++ +-- +** ( __gstate~1~__ -- __canvas~1~__ ) +** ( __gstate~1~__ -- __nil__ ) ++ +__gstate~1~__: graphics state ++ +__canvas~1~__: canvas object +-- ++ +Get canvas object from graphics state. A canvas is a memory area with +associated width and height. All drawing operations are done on canvas +objects. If no canvas is associated with the graphics state, return __nil__. ++ +.Examples +``` + +getgstate getcanvas dim # 800 600 +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+getcolor+** - get drawing color [[getcolor]] ++ +-- +** ( -- __int~1~__ ) ++ +__int~1~__: color +-- ++ +Return current drawing color. ++ +A color is a RGB value with red in bits 16-23, green in bits 8-15 and +blue in bits 0-7. This is independent of what the graphics card is actually using. ++ +.Examples +``` + +getcolor # 0xffffff (white) +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+getconsolegstate+** - get graphics state of the debug console [[getconsolegstate]] ++ +-- +** ( -- __gstate~1~__ ) +** ( -- __nil__ ) +-- ++ +Get graphics state of the debug console. If none has been set, return __nil__. ++ +.Examples +``` + +/saved_state getconsolegstate def # save current debug console state +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+getdict+** - get active dictionary [[getdict]] ++ +-- +** ( -- __hash~1~__ ) +** ( -- __nil__ ) ++ +__hash~1~__: dictionary +-- ++ +Return the currently active dictionary or __nil__, if the current context +does not (yet) have a dictionary. ++ +A dictionary will only be created on demand - that is, the first time a +word is defined in the current context. ++ +When a program is started the global context is created containing a +dictionary with all primitive words. ++ +.Examples +``` + +/foo { getdict } def +foo # nil + +/bar { /x 10 ldef getdict } def +bar # ( /x 10 ) +``` ++ +See also: xref:code_start[+{+], xref:code_end[+}+], xref:hash_start[+(+], xref:hash_end[+)+], xref:array_start[+[+], xref:array_end[+]+], xref:getparent[+getparent+], xref:setdict[+setdict+], xref:setparent[+setparent+] + +* **+getfont+** - get font [[getfont]] ++ +-- +** ( __gstate~1~__ -- __font~1~__ ) +** ( __gstate~1~__ -- __nil__ ) ++ +__gstate~1~__: graphics state ++ +__font~1~__: font +-- ++ +Get font from graphics state. ++ +.Examples +``` + +getgstate getfont # current font +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+getgstate+** - get graphics state [[getgstate]] ++ +-- +** ( -- __gstate~1~__ ) +** ( -- __nil__ ) +-- ++ +Get current graphics state. If none has been set, return __nil__. ++ +The graphics state consists of a canvas to draw into, a region describing +a rectangular drawing and clipping area in that canvas, a drawing +position (relative to the drawing region), drawing color, background +color (for text), and a text font. ++ +.Examples +``` + +/saved_state getgstate def # save current graphics state +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+getparent+** - get parent of context, font, or hash [[getparent]] ++ +-- +** ( __context~1~__ -- __context~2~__ ) ++ +__context~2~__: parent of __context~1~__ or nil ++ +** ( __font~1~__ -- __font~2~__ ) ++ +__font~2~__: parent of __font~1~__ or nil ++ +** ( __hash~1~__ -- __hash~2~__ ) ++ +__hash~2~__: parent of __hash~1~__ or nil +-- ++ +If a word lookup fails in a context, the lookup continues in the parent +context. ++ +If a glyph lookup fails in a font, the lookup continues in the parent +font. ++ +If a key cannot be found in a hash, the lookup continues in the parent +hash. ++ +.Examples +``` + +/x ( "foo" 10 "bar" 20 ) def +/y ( "zap" 30 ) def +x getparent # nil +x y setparent +x getparent # ( "zap" 30 ) +``` ++ +See also: xref:code_start[+{+], xref:code_end[+}+], xref:hash_start[+(+], xref:hash_end[+)+], xref:array_start[+[+], xref:array_end[+]+], xref:getdict[+getdict+], xref:setdict[+setdict+], xref:setparent[+setparent+] + +* **+getpixel+** - read pixel [[getpixel]] ++ +-- +** ( -- __int~1~__ ) +** ( -- __nil__ ) ++ +__int~1~__: color +-- ++ +Read pixel at drawing position from canvas in current graphics state. If +the position is outside the drawing region, return __nil__. ++ +.Examples +``` + +getpixel +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+getpos+** - get drawing position [[getpos]] ++ +-- +** ( -- __int~1~__ __int~2~__ ) ++ +__int~1~__: x ++ +__int~2~__: y +-- ++ +Return current drawing position. The position is relative to the drawing region in the graphics state. ++ +.Examples +``` + +getpos # 0 0 +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+getregion+** - get drawing region [[getregion]] ++ +-- +** ( __gstate~1~__ -- __int~1~__ __int~2~__ __int~3~__ __int~4~__ ) ++ +__gstate~1~__: graphics state ++ +__int~1~__: x ++ +__int~2~__: y ++ +__int~3~__: width ++ +__int~4~__: height +-- ++ +Get drawing region associated with graphics state. Any drawing operation +will be relative to this region. Graphics output will be clipped at the +region boundaries. ++ +.Examples +``` + +getgstate getregion # 0 0 800 600 +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+gstate+** - create graphics state [[gstate]] ++ +-- +** ( -- __gstate~1~__ ) +-- ++ +Create a new empty graphics state gate_1. ++ +.Examples +``` + +gstate +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+gt+** - greater than [[gt]] ++ +-- +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ > __bool~2~__ ++ +** ( __int~1~__ __int~2~__ -- __bool~4~__ ) ++ +__bool~4~__: __int~1~__ > __int~2~__ ++ +** ( __string~1~__ __string~2~__ -- __bool~5~__ ) ++ +__bool~5~__: __string~1~__ > __string~2~__ ++ +** ( __any~1~__ __any~2~__ -- __bool~6~__ ) ++ +__bool~6~__: __any~1~__ > __any~2~__ +-- ++ +For pairs of booleans, integers, and strings the values are compared. For all +other combinations the internal object id is compared. ++ +.Examples +``` + +10 20 gt # false +true false gt # true +"abd" "abc" gt # true +[ 10 20 ] [ 10 20 ] gt # varies +0 false gt # varies +0 nil gt # varies +"abc" [ 10 ] gt # varies +``` ++ +See also: xref:cmp[+cmp+], xref:eq[+eq+], xref:ge[+ge+], xref:le[+le+], xref:lt[+lt+], xref:ne[+ne+] + +* **+if+** - conditional execution [[if]] ++ +-- +** (__bool~1~__ __code~1~__ -- ) +** (__int~1~__ __code~1~__ -- ) +** (__nil__ __code~1~__ -- ) +** (__any~1~__ __code~1~__ -- ) ++ +__code~1~__: code block to run if condition evaluates to 'true' +-- ++ +The condition is false for: boolean false, integer 0, or __nil__. In all other cases it is true. ++ +.Examples +``` + +true { "ok" show } if # "ok" +50 { "ok" show } if # "ok" +nil { "ok" show } if # shows nothing +"" { "ok" show } if # "ok" +``` ++ +See also: xref:exit[+exit+], xref:for[+for+], xref:forall[+forall+], xref:ifelse[+ifelse+], xref:loop[+loop+], xref:repeat[+repeat+], xref:return[+return+] + +* **+ifelse+** - conditional execution [[ifelse]] ++ +-- +** (__bool~1~__ __code~1~__ __code~2~__ -- ) +** (__int~1~__ __code~1~__ __code~2~__ -- ) +** (__nil__ __code~1~__ __code~2~__ -- ) +** (__any~1~__ __code~1~__ __code~2~__ -- ) ++ +__code~1~__: code block to run if condition evaluates to 'true' ++ +__code~2~__: code block to run if condition evaluates to 'false' +-- ++ +The condition is false for: boolean false, integer 0, or __nil__. In all other cases it is true. ++ +.Examples +``` + +false { "ok" } { "bad" } ifelse show # "bad" +20 { "ok" } { "bad" } ifelse show # "ok" +nil { "ok" } { "bad" } ifelse sho # "bad" +"" { "ok" } { "bad" } ifelse show # "ok" +``` ++ +See also: xref:exit[+exit+], xref:for[+for+], xref:forall[+forall+], xref:if[+if+], xref:loop[+loop+], xref:repeat[+repeat+], xref:return[+return+] + +* **+index+** - copy stack element [[index]] ++ +-- +** ( __any~n~__ ... __any~0~__ __int~1~__ -- __any~n~__ ... __any~0~__ __any~n~__ ) ++ +__int~1~__: element position on stack (n is equal to __int~1~__) +-- ++ +Copy the __int~1~__-th-from-top element on the top-of-stack. ++ +.Examples +``` + +10 20 30 40 3 index # 10 20 30 40 10 + +/dup { 0 index } def # definition of 'dup' + +/over { 1 index } def # definition of 'over' +``` ++ +See also: xref:dup[+dup+], xref:exch[+exch+], xref:over[+over+], xref:pop[+pop+], xref:roll[+roll+], xref:rot[+rot+] + +* **+ldef+** - define new local word [[ldef]] ++ +-- +** ( __word~1~__ __any~1~__ -- ) +-- ++ +Define __word~1~__ in the current local context. ++ +.Examples +``` +/foo 200 ldef # define local word foo as 200 +``` ++ +See also: xref:debug[+debug+], xref:def[+def+], xref:gdef[+gdef+] + +* **+le+** - less or equal [[le]] ++ +-- +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ <= __bool~2~__ ++ +** ( __int~1~__ __int~2~__ -- __bool~4~__ ) ++ +__bool~4~__: __int~1~__ <= __int~2~__ ++ +** ( __string~1~__ __string~2~__ -- __bool~5~__ ) ++ +__bool~5~__: __string~1~__ <= __string~2~__ ++ +** ( __any~1~__ __any~2~__ -- __bool~6~__ ) ++ +__bool~6~__: __any~1~__ <= __any~2~__ +-- ++ +For pairs of booleans, integers, and strings the values are compared. For all +other combinations the internal object id is compared. ++ +.Examples +``` + +10 20 le # true +true false le # false +"abd" "abc" le # false +[ 10 20 ] [ 10 20 ] le # varies +0 false le # varies +0 nil le # varies +"abc" [ 10 ] le # varies +``` ++ +See also: xref:cmp[+cmp+], xref:eq[+eq+], xref:ge[+ge+], xref:gt[+gt+], xref:lt[+lt+], xref:ne[+ne+] + +* **+length+** - get size of array, hash, or string [[length]] ++ +-- +** ( __array~1~__ -- __int~1~__ ) ++ +__int~1~__: number of elements in __array~1~__ ++ +** ( __hash~1~__ -- __int~2~__ ) ++ +__int~2~__: number of key - value pairs in __hash~1~__ ++ +** ( __string~1~__ -- __int~3~__ ) ++ +__int~3~__: number of bytes in __string~1~__ +-- ++ +Put the length of __array~1~__, __hash~1~__, or __string~1~__ on the stack. ++ +.Examples +``` + +[ 10 20 30 ] length # 3 +( "foo" 10 "bar" 20 ) length # 2 +"ABC" length # 3 +``` ++ +See also: xref:delete[+delete+], xref:get[+get+], xref:put[+put+] + +* **+lineto+** - draw line [[lineto]] ++ +-- +** ( __int~1~__ __int~2~__ -- ) ++ +__int~1~__: x ++ +__int~2~__: y +-- ++ +Draw line from current position to the specified x and y coordinates +using the current color. The drawing position is updated to the end +position. Line segments outside the drawing region are not drawn. ++ +.Examples +``` + +100 200 lineto +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+loop+** - endless loop [[loop]] ++ +-- +** ( __code~1~__ -- ) +-- ++ +Repeat __code~1~__ forever until you exit the loop explicitly. ++ +.Examples +``` + +{ "Help!" show } loop +``` ++ +See also: xref:exec[+exec+], xref:exit[+exit+], xref:for[+for+], xref:forall[+forall+], xref:if[+if+], xref:ifelse[+ifelse+], xref:repeat[+repeat+], xref:return[+return+], xref:run[+run+] + +* **+lt+** - less than [[lt]] ++ +-- +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ < __bool~2~__ ++ +** ( __int~1~__ __int~2~__ -- __bool~4~__ ) ++ +__bool~4~__: __int~1~__ < __int~2~__ ++ +** ( __string~1~__ __string~2~__ -- __bool~5~__ ) ++ +__bool~5~__: __string~1~__ < __string~2~__ ++ +** ( __any~1~__ __any~2~__ -- __bool~6~__ ) ++ +__bool~6~__: __any~1~__ < __any~2~__ +-- ++ +For pairs of booleans, integers, and strings the values are compared. For all +other combinations the internal object id is compared. ++ +.Examples +``` + +10 20 lt # true +true false lt # false +"abd" "abc" lt # false +[ 10 20 ] [ 10 20 ] lt # varies +0 false lt # varies +0 nil lt # varies +"abc" [ 10 ] lt # varies +``` ++ +See also: xref:cmp[+cmp+], xref:eq[+eq+], xref:ge[+ge+], xref:gt[+gt+], xref:le[+le+], xref:ne[+ne+] + +* **+max+** - maximum [[max]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: maximum(__int~1~__, __int~2~__) ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ or __bool~2~__ ++ +__int~3~__ is the larger value of __int~1~__ and __int~2~__. +-- ++ +For boolean 1 bit arithmetic this is equivalent to 'or' ++ +.Examples +``` + +10 20 max # 20 +true false max # true +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+min+** - minimum [[min]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: minimum(__int~1~__, __int~2~__) ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ and __bool~2~__ ++ +__int~3~__ is the smaller value of __int~1~__ and __int~2~__. +-- ++ +For boolean 1 bit arithmetic this is equivalent to 'and' ++ +.Examples +``` + +10 20 min # 10 +true false min # false +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+mod+** - remainder [[mod]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: __int~1~__ % __int~2~__ ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ / __bool~2~__ ++ +__int~3~__ is the remainder dividing __int~1~__ by __int~2~__. +-- ++ +You can get the remainder from a 1 bit division with boolean values. Note +that this will run into a division by zero exception if __bool~2~__ is false. ++ +.Examples +``` + +200 30 mod # 20 +true true mod # false +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+mul+** - multiplication [[mul]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: __int~1~__ * __int~2~__ ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ and __bool~2~__ +-- ++ +Multiply __int~1~__ by __int~2~__. ++ +For boolean 1 bit arithmetic this is equivalent to 'and'. ++ +.Examples +``` + +20 30 mul # 600 +true false mul # false +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+ne+** - not equal [[ne]] ++ +-- +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ != __bool~2~__ ++ +** ( __int~1~__ __int~2~__ -- __bool~4~__ ) ++ +__bool~4~__: __int~1~__ != __int~2~__ ++ +** ( __string~1~__ __string~2~__ -- __bool~5~__ ) ++ +__bool~5~__: __string~1~__ != __string~2~__ ++ +** ( __any~1~__ __any~2~__ -- __bool~6~__ ) ++ +__bool~6~__: __any~1~__ != __any~2~__ +-- ++ +For pairs of booleans, integers, and strings the values are compared. For all +other combinations the internal object id is compared. ++ +.Examples +``` + +10 20 ne # true +true false ne # true +"abc" "abc" ne # false +[ 10 20 ] [ 10 20 ] ne # true +0 false ne # true +0 nil ne # true +"abc" [ 10 ] ne # true + +/foo [ 10 20 ] def +/bar foo def +foo bar ne # false +``` ++ +See also: xref:cmp[+cmp+], xref:eq[+eq+], xref:ge[+ge+], xref:gt[+gt+], xref:le[+le+], xref:lt[+lt+] + +* **+neg+** - negation [[neg]] ++ +-- +** ( __int~1~__ -- __int~2~__ ) ++ +__int~2~__: -__int~1~__ ++ +** ( __bool~1~__ -- __bool~2~__ ) ++ +__bool~2~__: -__bool~1~__ +-- ++ +Negate __int~1~__ (change sign). ++ +For boolean 1 bit arithmetic the value is unchanged (this is not a 'not' operation). ++ +.Examples +``` + +20 neg # -20 +true neg # true +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+newfont+** - create font object [[newfont]] ++ +-- +** ( __string~1~__ -- __font~1~__ ) +** ( __string~1~__ -- __nil__ ) ++ +__string~1~__: font data ++ +__font~1~__: font object +-- ++ +Parse font data in __string~1~__ and create font object. If __string~1~__ does not +contain valid font data, return __nil__. ++ +.Examples +``` + +/foo_font "foo.fnt" readfile newfont def # create font from file "foo.fnt" +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+not+** - not [[not]] ++ +-- +** ( __int~1~__ -- __int~2~__ ) ++ +__int~2~__: -__int~1~__ - 1 ++ +** ( __bool~1~__ -- __bool~2~__ ) ++ +__bool~2~__: !__bool~1~__ ++ +-- ++ +.Examples +``` + +20 not # -21 +true not # false +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+or+** - or [[or]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: __int~1~__ or __int~2~__ ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ or __bool~2~__ ++ +-- ++ +.Examples +``` + +15 4 or # 15 +true false or # true +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+over+** - copy TOS-1 to TOS [[over]] ++ +-- +** ( __any~1~__ __any~2~__ -- __any~1~__ __any~2~__ __any~1~__ ) +-- ++ +Put a copy of the second-from-top element on the top-of-stack. ++ +.Examples +``` + +10 20 over # 10 20 10 +``` ++ +See also: xref:dup[+dup+], xref:exch[+exch+], xref:index[+index+], xref:pop[+pop+], xref:roll[+roll+], xref:rot[+rot+] + +* **+pop+** - remove TOS [[pop]] ++ +-- +** ( __any~1~__ -- ) +-- ++ +Remove the top-of-stack element. ++ +.Examples +``` + +10 20 pop # 10 +``` ++ +See also: xref:dup[+dup+], xref:exch[+exch+], xref:index[+index+], xref:over[+over+], xref:roll[+roll+], xref:rot[+rot+] + +* **+put+** - set array, hash, or string element [[put]] ++ +-- +** ( __array~1~__ __int~1~__ __any~1~__ -- ) ++ +__array~1~__: array to modify ++ +__int~1~__: element index ++ +__any~1~__: new value ++ +** ( __hash~1~__ __string~1~__ __any~2~__ -- ) ++ +__hash~1~__: hash to modify ++ +__string~1~__: key ++ +__any~2~__: new value ++ +** ( __string~2~__ __int~2~__ __int~3~__ -- ) ++ +__string~2~__: string to modify ++ +__int~2~__: element index ++ +__int~3~__: new value +-- ++ +Set the respective element of __array~1~__, __hash~1~__, or __string~2~__. ++ +Note that string constants are read-only and cannot be modified. ++ +.Examples +``` + +/x [ 10 20 30 ] def +x 2 40 put # x is now [ 10 20 40 ] + +/y ( "foo" 10 "bar" 20 ) def +y "bar" 40 put # y is now ( "foo" 10 "bar" 40 ) + +/z "ABC" mem def # mem is needed to create a writable copy +z 1 68 put # z is now "ADC" +``` ++ +See also: xref:delete[+delete+], xref:get[+get+], xref:length[+length+] + +* **+putpixel+** - set pixel [[putpixel]] ++ +-- +** ( -- ) +-- ++ +Set pixel with current color at drawing position in canvas in current +graphics state. If the position is outside the drawing region, nothing is +drawn. ++ +.Examples +``` + +setpixel +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+readfile+** - read file [[readfile]] ++ +-- +** ( __string~1~__ -- __string~2~__ ) +** ( __string~1~__ -- __nil__ ) ++ +__string~1~__: file name ++ +__string~2~__: file content +-- ++ +Read entire file and return its content. If the file could not be read, return __nil__. ++ +.Examples +``` + +"foo" readfile +``` ++ +See also: xref:freeze[+freeze+], xref:string[+string+], xref:utf8decode[+utf8decode+], xref:utf8encode[+utf8encode+] + +* **+repeat+** - repeat code block [[repeat]] ++ +-- +** ( __int~1~__ __code~1~__ -- ) +-- ++ +Repeat __code~1~__ __int~1~__ times. If __int~1~__ is less or equal to 0, __code~1~__ is not run. ++ +.Examples +``` + +3 { "Help!" show } repeat # "Help!Help!Help!" +``` ++ +See also: xref:exec[+exec+], xref:exit[+exit+], xref:for[+for+], xref:forall[+forall+], xref:if[+if+], xref:ifelse[+ifelse+], xref:loop[+loop+], xref:return[+return+], xref:run[+run+] + +* **+return+** - leave current function [[return]] ++ +Exit from currently running function. ++ +.Examples +``` + +/foo { dup nil eq { return } if show } def +"abc" foo # shows "abc" +nil foo # does nothing +``` ++ +See also: xref:exec[+exec+], xref:exit[+exit+], xref:for[+for+], xref:forall[+forall+], xref:if[+if+], xref:ifelse[+ifelse+], xref:loop[+loop+], xref:repeat[+repeat+], xref:run[+run+] + +* **+roll+** - rotate stack elements [[roll]] ++ +-- +** ( __any~1~__ ... __any~n~__ __int~1~__ __int~2~__ -- __any~x~__ ... __any~y~__ ) ++ +__int~1~__: number of stack elements to rotate (equal to index n) ++ +__int~2~__: rotation amount +-- ++ +Rotate the n elements __any~1~__ ... __any~n~__. The new positions are calculated as follows: ++ +x = (1 - __int~2~__) mod __int~1~__ ++ +y = (n - __int~2~__) mod __int~1~__ ++ +This can be seen as rotating __int~1~__ elements up by __int~2~__ resp. down by -__int~2~__. ++ +.Examples +``` + +10 20 30 40 50 5 2 roll # 40 50 10 20 30 + +/rot { 3 -1 roll } def # definition of 'rot' +``` ++ +See also: xref:dup[+dup+], xref:exch[+exch+], xref:index[+index+], xref:over[+over+], xref:pop[+pop+], xref:rot[+rot+] + +* **+rot+** - rotate upper three stack elements [[rot]] ++ +-- +** ( __any~1~__ __any~2~__ __any~3~__ -- __any~2~__ __any~3~__ __any~1~__ ) +-- ++ +Rotate __any~1~__ to the top-of-stack. ++ +.Examples +``` + +10 20 30 rot # 20 30 10 +``` ++ +See also: xref:dup[+dup+], xref:exch[+exch+], xref:index[+index+], xref:over[+over+], xref:pop[+pop+], xref:roll[+roll+] + +* **+run+** - run code [[run]] ++ +-- +** ( __string~1~__ -- ) ++ +__string~1~__: binary code +-- ++ +Load binary code and run it. ++ +Note: unlike 'exec' this does not open a new context but replaces the +currently running code with the new one. ++ +.Examples +``` + +"new_program" readfile run +``` ++ +See also: xref:exec[+exec+], xref:exit[+exit+], xref:for[+for+], xref:forall[+forall+], xref:loop[+loop+], xref:repeat[+repeat+], xref:return[+return+] + +* **+setbgcolor+** - set background color [[setbgcolor]] ++ +-- +** ( __int~1~__ -- ) ++ +__int~1~__: color +-- ++ +Set current background color. ++ +A color is a RGB value with red in bits 16-23, green in bits 8-15 and +blue in bits 0-7. This is independent of what the graphics card is actually using. ++ +.Examples +``` + +0xff00 setcolor # green +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+setcanvas+** - set canvas [[setcanvas]] ++ +-- +** ( __gstate~1~__ __canvas~1~__ -- ) +** ( __gstate~1~__ __nil__ -- ) ++ +__gstate~1~__: graphics state ++ +__canvas~1~__: canvas object +-- ++ +Set canvas of graphics state. A canvas is a memory area with +associated width and height. All drawing operations are done on canvas +objects. If __nil__ is passed, the canvas is removed from the graphics state. ++ +The drawing region of __gstate~1~__ is adjusted to match the canvas size. The +drawing position is reset to x = 0, y = 0. ++ +.Examples +``` + +getgstate 800 600 canvas setcanvas +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+setcolor+** - set drawing color [[setcolor]] ++ +-- +** ( __int~1~__ -- ) ++ +__int~1~__: color +-- ++ +Set current drawing color. ++ +A color is a RGB value with red in bits 16-23, green in bits 8-15 and +blue in bits 0-7. This is independent of what the graphics card is actually using. ++ +.Examples +``` + +0xff0000 setcolor # red +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+setconsolegstate+** - set graphics state of the debug console [[setconsolegstate]] ++ +-- +** ( __gstate~1~__ -- ) +** ( __nil__ -- ) +-- ++ +Set graphics state of the debug console. If __nil__ is passed, the current state is removed. ++ +.Examples +``` + +/saved_state getconsolegstate def +... +saved_state setconsolegstate # restore saved debug console state +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+setdict+** - set active dictionary [[setdict]] ++ +-- +** ( __hash~1~__ -- ) +** ( __nil__ -- ) ++ +__hash~1~__: new active dictionary +-- ++ +Set the currently active dictionary. With __nil__, the dictionary is removed +from the current context. ++ +.Examples +``` + +/foo { /x 10 ldef x } def +foo # 10 + +/bar { ( /x 10 ) setdict x } def +bar # 10 +``` ++ +See also: xref:code_start[+{+], xref:code_end[+}+], xref:hash_start[+(+], xref:hash_end[+)+], xref:array_start[+[+], xref:array_end[+]+], xref:getdict[+getdict+], xref:getparent[+getparent+], xref:setparent[+setparent+] + +* **+setfont+** - set font [[setfont]] ++ +-- +** ( __gstate~1~__ __font~1~__ -- ) +** ( __gstate~1~__ __nil__ -- ) ++ +__gstate~1~__: graphics state ++ +__font~1~__: font +-- ++ +Set font in graphics state. If __nil__ is passed, any font is removed from the graphics state. ++ +.Examples +``` + +/foo_font "foo.fnt" readfile newfont def +getgstate foo_font setfont # use "foo.fnt" +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+setgstate+** - set graphics state [[setgstate]] ++ +-- +** ( __gstate~1~__ -- ) +** ( __nil__ -- ) +-- ++ +Set current graphics state. If __nil__ is passed, the current state is removed. ++ +The graphics state consists of a canvas to draw into, a region describing +a rectangular drawing and clipping area in that canvas, a drawing +position (relative to the drawing region), drawing color, background +color (for text), and a text font. ++ +.Examples +``` + +/saved_state getgstate def # save current graphics state +... +saved_state setgstate # restore saved graphics state +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+setparent+** - set parent of context, font, or hash [[setparent]] ++ +-- +** ( __context~1~__ __context~2~__ -- ) +** ( __context~1~__ __nil__ -- ) ++ +__context~2~__: new parent of __context~1~__ ++ +** ( __font~1~__ __font~2~__ -- ) +** ( __font~1~__ __nil__ -- ) ++ +__font~2~__: new parent of __font~1~__ ++ +** ( __hash~1~__ __hash~2~__ -- ) +** ( __hash~1~__ __nil__ -- ) ++ +__hash~2~__: new parent of __hash~1~__ +-- ++ +If __nil__ is used as second argument, any existing parent link is removed. ++ +If a word lookup fails in a context, the lookup continues in the parent +context. ++ +If a glyph lookup fails in a font, the lookup continues in the parent +font. ++ +If a key cannot be found in a hash, the lookup continues in the parent +hash. ++ +.Examples +``` + +/x ( "foo" 10 "bar" 20 ) def +/y ( "zap" 30 ) def +x "zap" get # nil +x y setparent +x "zap" get # 30 +x nil setparent +x "zap" get # nil +``` ++ +See also: xref:code_start[+{+], xref:code_end[+}+], xref:hash_start[+(+], xref:hash_end[+)+], xref:array_start[+[+], xref:array_end[+]+], xref:getdict[+getdict+], xref:getparent[+getparent+], xref:setdict[+setdict+] + +* **+setpos+** - set drawing position [[setpos]] ++ +-- +** ( __int~1~__ __int~2~__ -- ) ++ +__int~1~__: x ++ +__int~2~__: y +-- ++ +Set drawing position. The position is relative to the drawing region in the graphics state. ++ +.Examples +``` + +20 30 setpos +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setregion[+setregion+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+setregion+** - set drawing region [[setregion]] ++ +-- +** ( __gstate~1~__ __int~1~__ __int~2~__ __int~3~__ __int~4~__ -- ) ++ +__gstate~1~__: graphics state ++ +__int~1~__: x ++ +__int~2~__: y ++ +__int~3~__: width ++ +__int~4~__: height +-- ++ +Set drawing region associated with graphics state. Any drawing operation +will be relative to this region. Graphics output will be clipped at the +region boundaries. ++ +.Examples +``` + +getgstate 10 10 200 100 setregion +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:show[+show+], xref:unpackimage[+unpackimage+] + +* **+shl+** - shift left [[shl]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: __int~1~__ << __int~2~__ ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ and !__bool~2~__ ++ +-- ++ +.Examples +``` + +1 4 shl # 16 +true false shl # true +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shr[+shr+], xref:sub[+sub+], xref:xor[+xor+] + +* **+show+** - show [[show]] ++ +-- +** ( __string~1~__ -- ) +-- ++ +Print __string~1~__ at current cursor position in canvas associated with +current graphics state. ++ +The cursor position is advanced to point at the end of the printed text. +Newline ('\x0a') and carriage return ('\x0d') characters are interpreted +and the cursor position is adjusted relative to the starting position. ++ +.Examples +``` + +"Hello!" show # print "Hello!" +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:unpackimage[+unpackimage+] + +* **+shr+** - shift right [[shr]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: __int~1~__ >> __int~2~__ ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ and !__bool~2~__ ++ +-- ++ +.Examples +``` + +16 4 shr # 1 +true false shr # true +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:sub[+sub+], xref:xor[+xor+] + +* **+string+** - create or duplicate string [[string]] ++ +-- +** ( __int~1~__ -- __string~1~__ ) ++ +__int~1~__: length ++ +__string~1~__: new string with length __int~1~__ +** ( __string~2~__ -- __string~3~__ ) ++ +__string~2~__: string to duplicate ++ +__string~3~__: copy of __string~2~__ +-- ++ +There are two variants: given a number, a string of that length is +created and initialized with zeros; given a string, a copy of that string is created. ++ +__int~1~__ may be 0 to create a zero-length string. ++ +Note: duplication works for all string-like objects. For example for word references and even code blocks. ++ +.Examples +``` + +2 string # creates an empty string of length 2: "\x00\x00" +"abc" string # creates a copy of "abc" + +# even this works: +/abc mem # a copy of /abc +{ 10 20 } mem # a copy of the code block { 10 20 } +``` ++ +See also: xref:freeze[+freeze+], xref:readfile[+readfile+], xref:utf8decode[+utf8decode+], xref:utf8encode[+utf8encode+] + +* **+sub+** - subtraction [[sub]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: __int~1~__ - __int~2~__ ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ xor __bool~2~__ +-- ++ +Subtract __int~2~__ from __int~1~__. ++ +For boolean 1 bit arithmetic this is equivalent to 'xor'. ++ +.Examples +``` + +100 30 sub # 70 +false true sub # true +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:xor[+xor+] + +* **+unpackimage+** - unpack image [[unpackimage]] ++ +-- +** ( __string~1~__ -- __canvas~1~__ ) +** ( __string~1~__ -- __nil__ ) ++ +__string~1~__: image file data +-- ++ +Unpacks image and returns a canvas object with the image or __nil__ if the +data dos not contain image data. ++ +.Examples +``` + +"foo.jpg" readfile unpackimage +``` ++ +See also: xref:blt[+blt+], xref:canvas[+canvas+], xref:dim[+dim+], xref:fillrect[+fillrect+], xref:getbgcolor[+getbgcolor+], xref:getcanvas[+getcanvas+], xref:getcolor[+getcolor+], xref:getconsolegstate[+getconsolegstate+], xref:getfont[+getfont+], xref:getgstate[+getgstate+], xref:getpixel[+getpixel+], xref:getpos[+getpos+], xref:getregion[+getregion+], xref:gstate[+gstate+], xref:lineto[+lineto+], xref:newfont[+newfont+], xref:putpixel[+putpixel+], xref:setbgcolor[+setbgcolor+], xref:setcanvas[+setcanvas+], xref:setcolor[+setcolor+], xref:setconsolegstate[+setconsolegstate+], xref:setfont[+setfont+], xref:setgstate[+setgstate+], xref:setpos[+setpos+], xref:setregion[+setregion+], xref:show[+show+] + +* **+utf8decode+** - decode Unicode string [[utf8decode]] ++ +-- +** (__string~1~__ -- __array~1~__ ) ++ +__string~1~__: UTF8-encoded string ++ +__array~1~__: array with decoded chars +-- ++ +The array contains one element for each UTF8-encoded char. If __string~1~__ +contains non-UTF8-chars they are represented as the negated 8-bit value. ++ +.Examples +``` + +"ABC" utf8decode # [ 65 66 67 ] +"Ä €" utf8decode # [ 196 32 8364 ] +"A\xf0B" utf8decode # [ 65 -240 66 ] +``` ++ +See also: xref:freeze[+freeze+], xref:readfile[+readfile+], xref:string[+string+], xref:utf8encode[+utf8encode+] + +* **+utf8encode+** - encode Unicode string [[utf8encode]] ++ +-- +** (__array~1~__ -- __string~1~__ ) ++ +__array~1~__: array with decoded chars ++ +__string~1~__: UTF8-encoded string +-- ++ +The array contains one element for each UTF8-encoded char. If __string~1~__ +should contain non-UTF8-chars they are represented as the negated 8-bit +value in __array~1~__. ++ +.Examples +``` + +[ 65 66 67 ] utf8encode # "ABC" +[ 196 32 8364 ] utf8encode # "Ä €" +[ 65 -240 66 ] utf8encode # "A\xf0B" +``` ++ +See also: xref:freeze[+freeze+], xref:readfile[+readfile+], xref:string[+string+], xref:utf8decode[+utf8decode+] + +* **+xor+** - exclusive or [[xor]] ++ +-- +** ( __int~1~__ __int~2~__ -- __int~3~__ ) ++ +__int~3~__: __int~1~__ xor __int~2~__ ++ +** ( __bool~1~__ __bool~2~__ -- __bool~3~__ ) ++ +__bool~3~__: __bool~1~__ xor __bool~2~__ ++ +-- ++ +.Examples +``` + +15 4 xor # 11 +true false or # true +``` ++ +See also: xref:abs[+abs+], xref:add[+add+], xref:and[+and+], xref:div[+div+], xref:max[+max+], xref:min[+min+], xref:mod[+mod+], xref:mul[+mul+], xref:neg[+neg+], xref:not[+not+], xref:or[+or+], xref:shl[+shl+], xref:shr[+shr+], xref:sub[+sub+] + + diff --git a/doc/reference_template b/doc/reference_template new file mode 100644 index 0000000..fd747a1 --- /dev/null +++ b/doc/reference_template @@ -0,0 +1,52 @@ +## Language reference + +Comments start with '#' and extend to the end of the line. + +To include some other source file, use the special `include` comment (note the double-`#`, and no quotes around the file name): + +.Examples +``` +## include foo.gs +``` + +Numbers are 64 bit signed integers. Numerical and string constants are given in a C-like way. + +.Examples +``` +123 +-456 +0x4567 +"Hi there\n" +'\033' +'\x1b' +'\u20ac' +``` + +Strings are not zero-terminated and can contain any data (including zeros). Use `\xNN` to set arbitray binary values. +Use `\uNNNN` or `\UNNNNNNNN` to include UTF8-encoded Unicode characters. + +.Examples +``` +"1 Euro = 1 €\n" +"1 Euro = 1 \u20ac\n" +"1 Euro = 1 \xe2\x82\xac\n" +``` + +Logical operations return values of type bool. They are not identical with integers. + +.Examples +``` +true +false +``` + +There is a special value nil. It is not the same as 0. + +.Examples +``` +nil +``` + +### Primitive words + +PRIMITIVE_WORD_LIST diff --git a/doc/screen_01.png b/doc/screen_01.png new file mode 100644 index 0000000..852af0d Binary files /dev/null and b/doc/screen_01.png differ diff --git a/doc/testing.adoc b/doc/testing.adoc new file mode 100644 index 0000000..cde0880 --- /dev/null +++ b/doc/testing.adoc @@ -0,0 +1,74 @@ +== Tests + +Individual tests are subdirectories in the `tests` directory. Each test has +a code snippet `main.gs` that is run using the debug script +`tests/test_script` and leaves the result in `test.log`. That log is then additionally post-processed into +other `+*.log+` files. `+*.log.ref+` are corresponding reference results. + +Run tests with `./run_tests`. Re-generate reference output with `./run_tests -r`. + +Each test runs a sample code snippet and compares the result in several ways with a stored reference. + +=== Test details + +Test results should be stable but for core language changes. Tests compare +results in varying degrees of detail (e.g. 'mem' - 'trace' - 'basic') to +make it easier to decide whether a change is to be expected or not. + +Basically every core language change will invalidate 'mem' results but leave +'basic' intact. 'trace' changes but not that often. + +'code1' and 'code2' are the same as 'code' but with code optimizations enabled. + +'opt1' and 'opt2' are the same level of detail as 'trace' but with code optimizations enabled. + +==== 1. code + +Check the compiled binary code (no optimizations). + +==== 2. mem + +Check a full execution log including binary data content and memory layout. + +==== 3. trace + +Check a full execution log including variable values and internal object ids. + +==== 4. basic + +Check a simplified execution log including variable values but no internal object ids. + +==== 5. code1 + +Check the compiled binary code (optimization with -O1). + +==== 6. opt1 + +Check a full execution log including variable values and internal object ids (like +'trace' but optimization with -O1). + +==== 7. code2 + +Check the compiled binary code (optimization with -O2). + +==== 8. opt2 + +Check a full execution log including variable values and internal object ids (like +'trace' but optimization with -O2). + +==== 9. gc + +Check the garbage collector. This test is a bit different. It does not +compare against a stored reference. After releasing all object references, +the test verifies that the memory is in the initial state again. + +==== 10. screen + +Check the final screen (the drawing frame buffer). This includes a +simplified graphical representation as well as a checksum over the frame +buffer content. + +=== 64 bit vs. 32 bit code + +Tests will succeeed for both 64 bit and 32 bit compiled variants. Except for +the `mem` tests as these tests are data structure size dependent. diff --git a/files/bar.fnt b/files/bar.fnt new file mode 100644 index 0000000..d976cc0 Binary files /dev/null and b/files/bar.fnt differ diff --git a/files/cd/boot/x86_64/efi b/files/cd/boot/x86_64/efi new file mode 100644 index 0000000..14c9e5b Binary files /dev/null and b/files/cd/boot/x86_64/efi differ diff --git a/files/cd/boot/x86_64/loader/initrd b/files/cd/boot/x86_64/loader/initrd new file mode 100644 index 0000000..8c6b107 Binary files /dev/null and b/files/cd/boot/x86_64/loader/initrd differ diff --git a/files/cd/boot/x86_64/loader/linux b/files/cd/boot/x86_64/loader/linux new file mode 100644 index 0000000..e69de29 diff --git a/files/font1.psfu b/files/font1.psfu new file mode 100644 index 0000000..c0459dd Binary files /dev/null and b/files/font1.psfu differ diff --git a/files/font2.psfu b/files/font2.psfu new file mode 100644 index 0000000..8f8b665 Binary files /dev/null and b/files/font2.psfu differ diff --git a/files/foo.fnt b/files/foo.fnt new file mode 100644 index 0000000..b04d628 Binary files /dev/null and b/files/foo.fnt differ diff --git a/files/grub.cfg b/files/grub.cfg new file mode 100644 index 0000000..f1c3ab7 --- /dev/null +++ b/files/grub.cfg @@ -0,0 +1,54 @@ +with_gfx=1 + +gfxmode=auto +locale_dir=$prefix/locale +lang=en_US + +search --no-floppy --file /boot/x86_64/efi --set +prefix=($root)/boot/x86_64/grub2-efi + +insmod gzio +insmod gettext +insmod png +insmod jpeg + +color_normal=light-gray/black +color_highlight=white/light-gray + +gfxmode=800x600 +if [ "$with_gfx" = 1 ] ; then + insmod gfxterm + insmod gfxboot + + theme=$prefix/themes/openSUSE/theme.txt + export theme + + terminal_output gfxterm +fi + +timeout=10 + +menuentry 'Installation 0' --class opensuse --class gnu-linux --class gnu --class os { + set gfxpayload=keep + echo 'Loading kernel 0 ...' + linuxefi /boot/x86_64/loader/linux splash=silent + echo 'Loading initrd 0 ...' + initrdefi /boot/x86_64/loader/initrd +} + +menuentry 'Installation 1' --class opensuse --class gnu-linux --class gnu --class os { + set gfxpayload=keep + echo 'Loading kernel 1 ...' + linuxefi /boot/x86_64/loader/linux splash=silent + echo 'Loading initrd 1 ...' + initrdefi /boot/x86_64/loader/initrd +} + +menuentry 'Installation 2' --class opensuse --class gnu-linux --class gnu --class os { + set gfxpayload=keep + echo 'Loading kernel 2 ...' + linuxefi /boot/x86_64/loader/linux splash=silent + echo 'Loading initrd 2 ...' + initrdefi /boot/x86_64/loader/initrd +} + diff --git a/files/katze_1024.jpg b/files/katze_1024.jpg new file mode 100644 index 0000000..7c14d10 Binary files /dev/null and b/files/katze_1024.jpg differ diff --git a/files/katze_800.jpg b/files/katze_800.jpg new file mode 100644 index 0000000..06f0a94 Binary files /dev/null and b/files/katze_800.jpg differ diff --git a/files/main.gs b/files/main.gs new file mode 100644 index 0000000..2833fb2 --- /dev/null +++ b/files/main.gs @@ -0,0 +1,29 @@ +/cfont getconsolegstate getfont def +/foo "foo.fnt" readfile newfont def +/bar "bar.fnt" readfile newfont def + +/text "ABC 12345 xyz # * % & § öäüß €" def + +/image gstate def +image "katze_800.jpg" readfile unpackimage setcanvas + +0 0 setpos +image getgstate exch blt +0x90000000 setcolor +image dim fillrect + +0xffff00 setcolor + +getgstate cfont setfont +50 50 setpos "Some font samples" show + +0x00ffffff setcolor + +getgstate cfont setfont +50 100 setpos text show + +getgstate bar setfont +50 130 setpos text show + +getgstate foo setfont +50 180 setpos text show diff --git a/files/main_01.gs b/files/main_01.gs new file mode 100644 index 0000000..10f2ea6 --- /dev/null +++ b/files/main_01.gs @@ -0,0 +1,34 @@ +/font1 getconsolegstate getfont def +/font2 "font2.psfu" readfile newfont def +font2 font1 setparent +getgstate font1 setfont + +-50 -20 setpos + +getgstate 20 20 155 100 setregion + +"XXX adasdas X\nXX€\n" show +"--\x00\x00--\n" show +"Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software." show + +/istate2 newgstate def +istate2 "katze_800.jpg" readfile unpackimage setcanvas +istate2 200 100 300 200 setregion + +getgstate 0 0 1000 1000 setregion + +50 50 setpos getgstate istate2 blt + +getgstate 10 10 200 200 setregion + +0xc0ff0000 setcolor + +60 1 80 { + /y exch def + 50 1 100 { + y setpos putpixel getpixel pop + } for +} for \ No newline at end of file diff --git a/files/main_02.gs b/files/main_02.gs new file mode 100644 index 0000000..714ae2e --- /dev/null +++ b/files/main_02.gs @@ -0,0 +1,11 @@ +/foo_2 { + true { 30 return 40 } if +} def + +/foo_3 { + 3 { 7 debug } repeat +} def + +foo_2 + +foo_3 diff --git a/files/main_03.gs b/files/main_03.gs new file mode 100644 index 0000000..dd93a84 --- /dev/null +++ b/files/main_03.gs @@ -0,0 +1,62 @@ +/image "katze_800.jpg" readfile unpackimage def +/istate newgstate def +getgstate getcanvas setcanvas istate setgstate image setcanvas setgstate + +10 10 200 200 setregion +getgstate istate blt +0x00ff0000 setcolor + +/rlineto { + getpos + 4 1 roll add + 3 1 roll add exch + lineto +} def + +100 100 setpos 100 0 rlineto + +100 100 setpos 100 30 rlineto +100 100 setpos 100 50 rlineto +100 100 setpos 100 80 rlineto + +100 100 setpos 100 100 rlineto + +100 100 setpos 80 100 rlineto +100 100 setpos 50 100 rlineto +100 100 setpos 30 100 rlineto + +100 100 setpos 0 100 rlineto + +100 100 setpos -30 100 rlineto +100 100 setpos -50 100 rlineto +100 100 setpos -80 100 rlineto + +100 100 setpos -100 100 rlineto + +100 100 setpos -100 80 rlineto +100 100 setpos -100 50 rlineto +100 100 setpos -100 30 rlineto + +100 100 setpos -100 0 rlineto + +100 100 setpos -100 -30 rlineto +100 100 setpos -100 -50 rlineto +100 100 setpos -100 -80 rlineto + +100 100 setpos -100 -100 rlineto + +100 100 setpos -80 -100 rlineto +100 100 setpos -50 -100 rlineto +100 100 setpos -30 -100 rlineto + +100 100 setpos 0 -100 rlineto + +100 100 setpos 30 -100 rlineto +100 100 setpos 50 -100 rlineto +100 100 setpos 80 -100 rlineto + +100 100 setpos 100 -100 rlineto + +100 100 setpos 100 -80 rlineto +100 100 setpos 100 -50 rlineto +100 100 setpos 100 -30 rlineto diff --git a/files/main_04.gs b/files/main_04.gs new file mode 100644 index 0000000..68629ff --- /dev/null +++ b/files/main_04.gs @@ -0,0 +1,27 @@ +/cfont getconsolegstate getfont def +/foo "foo.fnt" readfile newfont def +/bar "bar.fnt" readfile newfont def + +/text "ABC 12345 xyz # * % & § öäüß €" def + +/image newgstate def +image "katze_800.jpg" readfile unpackimage setcanvas + +0 0 setpos image getgstate exch blt +0x90000000 setcolor +image dim fillrect + +0x00ffffff setcolor + +20 20 setpos +getgstate cfont setfont +text show + +20 60 setpos +getgstate bar setfont +text show + +20 100 setpos +getgstate foo setfont +text show + diff --git a/gfxboot b/gfxboot new file mode 120000 index 0000000..945c9b4 --- /dev/null +++ b/gfxboot @@ -0,0 +1 @@ +. \ No newline at end of file diff --git a/gfxboot-compile.c b/gfxboot-compile.c new file mode 100644 index 0000000..f5cb898 --- /dev/null +++ b/gfxboot-compile.c @@ -0,0 +1,1919 @@ +#define _GNU_SOURCE + +#include +#include +#include +#include +#include +#include +#include + +// initial vocabulary (note: "{" & "}" are special) +#define WITH_PRIM_NAMES 1 +#define WITH_TYPE_NAMES 1 +#include "vocabulary.h" + +#define COMMENT_CHAR '#' + +#define MAX_INCLUDE 16 + +typedef struct { + unsigned size; + unsigned char *data; + unsigned real_size; + unsigned char *ptr; + char *name; + int line; +} file_data_t; + +struct option options[] = { + { "create", 1, NULL, 'c' }, + { "show", 0, NULL, 's' }, + { "log", 1, NULL, 'l' }, + { "opt", 0, NULL, 'O' }, + { "lib", 1, NULL, 'L' }, + { "help", 0, NULL, 'h' }, + { } +}; + +typedef struct { + char *name; + type_t type; + int line; + int del, ref, ref_idx, ref_ind, def, def_idx, def_ind, ref0, ref0_idx; + struct { + unsigned char *p; + unsigned u; + unsigned p_len; + } value; +} dict_t; + +typedef struct { + char *name; + type_t type; + unsigned ofs; + unsigned size; + unsigned xref_to; + unsigned duplicate:1; + int line, incl_level; + struct { + unsigned char *p; + uint64_t u; + unsigned p_len; + } value; + unsigned char *enc; +} code_t; + +void help(void); +file_data_t read_file(char *name); +void fix_pal(unsigned char *pal, unsigned shade1, unsigned shade2, unsigned char *rgb); +int write_data(char *name); +void encode_number(unsigned char *enc, uint64_t val, unsigned len); +uint64_t decode_number(unsigned char *data, unsigned len); +void add_data(file_data_t *d, void *buffer, unsigned size); +code_t *new_code(void); +dict_t *new_dict(void); +int show_info(char *name); +int get_hex(char *s, unsigned len, unsigned *val); +char *utf8_encode(unsigned uc); +int utf8_decode(char **s); +char *utf8_quote(unsigned uc); +char *next_word(char **ptr, int *len); +void parse_comment(char *comment, file_data_t *incl); +int find_in_dict(char *name); +int translate(int pass); +int parse_config(char *name, char *log_file); +void optimize_dict(FILE *lf); +unsigned skip_code(unsigned pos); +unsigned next_code(unsigned pos); +int optimize_code(FILE *lf); +int optimize_code1(FILE *lf); +int optimize_code2(FILE *lf); +int optimize_code3(FILE *lf); +int optimize_code4(FILE *lf); +int optimize_code5(FILE *lf); +int optimize_code6(FILE *lf); +void log_code(FILE *lf, int style); +int decompile(unsigned char *data, unsigned size); + +int config_ok = 0; + +file_data_t pscode = {}; +file_data_t dict_file = {}; + +dict_t *dict = NULL; +unsigned dict_size = 0; +unsigned dict_max_size = 0; + +unsigned prim_words = sizeof prim_names / sizeof *prim_names; + +code_t *code = NULL; +unsigned code_size = 0; +unsigned code_max_size = 0; + +// current config line +int line = 1; + +struct { + unsigned verbose; + unsigned optimize; + unsigned show:1; + char *file; + char *log_file; + char *lib_path[2]; +} opt = { lib_path: { NULL, "/usr/share/gfxboot" } }; + +int main(int argc, char **argv) +{ + int i; + + opterr = 0; + + while((i = getopt_long(argc, argv, "c:sfhL:l:O:v", options, NULL)) != -1) { + switch(i) { + case 'c': + opt.file = optarg; + break; + + case 's': + opt.show = 1; + break; + + case 'l': + opt.log_file = optarg; + break; + + case 'L': + opt.lib_path[0] = optarg; + break; + + case 'O': + opt.optimize = strtoul(optarg, NULL, 0); + break; + + case 'v': + opt.verbose++; + break; + + default: + help(); + return 0; + } + } + + argc -= optind; argv += optind; + + if(opt.file && argc <= 1) { + if(parse_config(argc ? *argv : "-", opt.log_file)) return 1; + return write_data(opt.file); + } + + if(opt.show && argc <= 1) { + return show_info(argc ? *argv : "-"); + } + + help(); + + return 1; +} + + +void help() +{ + fprintf(stderr, "%s", + "Usage: gfxboot-compile [OPTIONS] SOURCE\n" + "Compile/decompile gfxboot2 script to byte code.\n" + "Options:\n" + " -c, --create FILE Compile SOURCE to FILE.\n" + " -l, --log LOGFILE Write compile log to LOGFILE.\n" + " -s, --show Decompile SOURCE.\n" + " -L, --lib PATH Set include file search path to PATH.\n" + " -O, --opt LEVEL Optimization level (0 - 3).\n" + " -v, --verbose Create more verbose log.\n" + " -h, --help Show this help text.\n" + ); +} + + +/* + * The returned buffer has an extra 0 appended to it for easier parsing... + */ +file_data_t read_file(char *name) +{ + file_data_t fd = { }; + FILE *f; + unsigned u; + char *s; + + if(!name) return fd; + + if(strcmp(name, "-")) { + f = fopen(name, "r"); + } + else { + f = stdin; + } + + if(!f) { + for(u = 0; u < sizeof opt.lib_path / sizeof *opt.lib_path; u++) { + if(opt.lib_path[u]) { + asprintf(&s, "%s/%s", opt.lib_path[u], name); + f = fopen(s, "r"); + if(f) { + fd.name = s; + break; + } + else { + free(s); + } + } + } + } + else { + fd.name = strdup(name); + } + + if(!f) { perror(name); return fd; } + + if(fseek(f, 0, SEEK_END)) { + perror(name); + exit(30); + } + + fd.size = fd.real_size = (unsigned) ftell(f); + + if(fseek(f, 0, SEEK_SET)) { + perror(name); + exit(30); + } + + fd.ptr = fd.data = calloc(1, fd.size + 1); + if(!fd.data) { + fprintf(stderr, "malloc failed\n"); + exit(30); + } + + if(fread(fd.data, 1, fd.size, f) != fd.size) { + perror(name); + exit(30); + } + + fclose(f); + + return fd; +} + + +int write_data(char *name) +{ + FILE *f; + file_data_t fd = {}; + + f = strcmp(name, "-") ? fopen(name, "w") : stdout; + + if(!f) { + perror(name); + return 1; + } + + add_data(&fd, pscode.data, pscode.size); + + if(fwrite(fd.data, fd.size, 1, f) != 1) { + perror(name); + return 1; + } + + fclose(f); + + return 0; +} + + +void encode_number(unsigned char *enc, uint64_t val, unsigned len) +{ + while(len--) { + *enc++ = val; + val >>= 8; + } +} + + +uint64_t decode_number(unsigned char *data, unsigned len) +{ + uint64_t val = 0; + + data += len; + + while(len--) { + val <<= 8; + val += *--data; + } + + return val; +} + + +void add_data(file_data_t *d, void *buffer, unsigned size) +{ + ssize_t ofs = 0; + + if(!size || !d || !buffer) return; + + if(d->ptr && d->data) ofs = d->ptr - d->data; + + if(d->size + size > d->real_size) { + d->real_size = d->size + size + 0x1000; + d->data = realloc(d->data, d->real_size); + if(!d->data) d->real_size = 0; + } + + if(d->size + size <= d->real_size) { + memcpy(d->data + d->size, buffer, size); + d->size += size; + } + else { + fprintf(stderr, "Oops, out of memory? Aborted.\n"); + exit(10); + } + + if(d->ptr && d->data) d->ptr = d->data + ofs; +} + + +code_t *new_code() +{ + if(code_size >= code_max_size) { + code_max_size += 10; + code = realloc(code, code_max_size * sizeof * code); + memset(code + code_size, 0, (code_max_size - code_size) * sizeof * code); + } + + return code + code_size++; +} + + + +dict_t *new_dict() +{ + if(dict_size >= dict_max_size) { + dict_max_size += 10; + dict = realloc(dict, dict_max_size * sizeof *dict); + memset(dict + dict_size, 0, (dict_max_size - dict_size) * sizeof *dict); + } + + return dict + dict_size++; +} + + +uint32_t read_uint32_le(file_data_t *fd, unsigned ofs) +{ + uint32_t word = 0; + unsigned u; + for (u = 0; u < 4; u++) { + word += (unsigned) fd->data[ofs + u] << (u * 8); + } + return word; +} + + +int show_info(char *name) +{ + file_data_t fd; + int err = 1; + + fd = read_file(name); + + err = decompile(fd.data, fd.size); + if(!err) { + log_code(stdout, 0); + } + + return err; +} + + +/* + * Convert hex number of excatly len bytes. + */ +int get_hex(char *s, unsigned len, unsigned *val) +{ + unsigned u; + char s2[len + 1]; + + if(!s || !len) return 0; + strncpy(s2, s, len); + s2[len] = 0; + + u = strtoul(s2, &s, 16); + if(!*s) { + if(val) *val = u; + return 1; + } + + return 0; +} + + +char *utf8_encode(unsigned uc) +{ + static char buf[7]; + char *s = buf; + + uc &= 0x7fffffff; + + if(uc < 0x80) { // 7 bits + *s++ = uc; + } + else { + if(uc < (1 << 11)) { // 11 (5 + 6) bits + *s++ = 0xc0 + (uc >> 6); + goto utf8_encode_2; + } + else if(uc < (1 << 16)) { // 16 (4 + 6 + 6) bits + *s++ = 0xe0 + (uc >> 12); + goto utf8_encode_3; + } + else if(uc < (1 << 21)) { // 21 (3 + 6 + 6 + 6) bits + *s++ = 0xf0 + (uc >> 18); + goto utf8_encode_4; + } + else if(uc < (1 << 26)) { // 26 (2 + 6 + 6 + 6 + 6) bits + *s++ = 0xf8 + (uc >> 24); + goto utf8_encode_5; + } + else { // 31 (1 + 6 + 6 + 6 + 6 + 6) bits + *s++ = 0xfc + (uc >> 30); + } + + *s++ = 0x80 + ((uc >> 24) & ((1 << 6) - 1)); + + utf8_encode_5: + *s++ = 0x80 + ((uc >> 18) & ((1 << 6) - 1)); + + utf8_encode_4: + *s++ = 0x80 + ((uc >> 12) & ((1 << 6) - 1)); + + utf8_encode_3: + *s++ = 0x80 + ((uc >> 6) & ((1 << 6) - 1)); + + utf8_encode_2: + *s++ = 0x80 + (uc & ((1 << 6) - 1)); + } + + *s = 0; + + return buf; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// Decode utf8 sequence. +// +// a) if s points to a valid utf8 sequence: +// - returns unicode char (a non-negative number) +// - s is updated to point past utf8 char +// +// b) if s does not point to a valid utf8 sequence +// - returns negated first byte +// - s is incremented by 1 +// +int utf8_decode(char **s) +{ + unsigned char *p; + int c; + unsigned u, l; + + if(!s || !*s) return 0; + + p = (uint8_t *) *s; + + u = *p++; + + if(u >= 0x80) { + if(u < 0xc0 || u >= 0xfe) { + *s = (char *) p; + return -(int) u; + } + l = 1; + if(u < 0xe0) { + c = u & 0x1f; + } + else if(u < 0xf0) { + c = u & 0x0f; + l = 2; + } + else if(u < 0xf8) { + c = u & 0x07; + l = 3; + } + else if(u < 0xfc) { + c = u & 0x03; + l = 4; + } + else if(u < 0xfe) { + c = u & 0x01; + l = 5; + } + while(l--) { + u = *p++; + if(u < 0x80 || u >= 0xc0) { + u = (uint8_t) **s; + (*s)++; + return -(int) u; + } + c = (c << 6) + (int) (u & 0x3f); + } + } + else { + c = (int) u; + } + + *s = (char *) p; + + return c; +} + + +char *utf8_quote(unsigned uc) +{ + static char buf[16]; + + if(uc == '\t') { + strcpy(buf, "\\t"); + } + else if(uc == '\n') { + strcpy(buf, "\\n"); + } + else if(uc == '\\') { + strcpy(buf, "\\\\"); + } + else if(uc == '\'') { + strcpy(buf, "\\'"); + } + else if(uc < ' ' || uc == 0x7f) { + sprintf(buf, "\\x%02x", uc); + } + else if(uc >= ' ' && uc < 0x7f) { + buf[0] = uc; + buf[1] = 0; + } + else if(uc < 0xffff) { + sprintf(buf, "\\u%04x", uc); + } + else { + sprintf(buf, "\\U%08x", uc); + } + + return buf; +} + + +char *next_word(char **ptr, int *len) +{ + char *s, *start, *utf8; + int is_str, is_comment; + static char word[0x1000]; + unsigned u, n = 0; + char qc = 0; + + s = *ptr; + + *word = 0; + + if(len) *len = (int) n; + + while(*s && isspace(*s)) if(*s++ == '\n') line++; + + if(!*s) { + *ptr = s; + return word; + } + + start = s; + + qc = *start; + is_str = qc == '"' || qc == '\'' ? 1 : 0; + is_comment = qc == COMMENT_CHAR ? 1 : 0; + + if(is_comment) { + while(*s && *s != '\n') s++; + } + else if(is_str) { + *word = *s++; + for(n = 1; n < sizeof word - 1; n++) { + if(!*s) break; + if(*s == qc) { s++; break; } + if(*s == '\\') { + s++; + switch(*s) { + case 0: + word[n++] = '\\'; + break; + + case 'n': + word[n] = '\n'; + break; + + case 't': + word[n] = '\t'; + break; + + case '0': + if( + s[0] >= '0' && s[0] <= '7' && + s[1] >= '0' && s[1] <= '7' && + s[2] >= '0' && s[2] <= '7' + ) { + word[n] = ((s[0] - '0') << 6) + ((s[1] - '0') << 3) + (s[2] - '0'); + s += 2; + } + else { + word[n] = *s; + } + break; + + case 'x': + if(get_hex(s + 1, 2, &u)) { + s += 2; + word[n] = u; + } + else { + word[n++] = '\\'; + word[n] = *s; + } + break; + + case 'u': + if(get_hex(s + 1, 4, &u)) { + s += 4; + utf8 = utf8_encode(u); + while(*utf8) word[n++] = *utf8++; + n--; + } + else { + word[n++] = '\\'; + word[n] = *s; + } + break; + + case 'U': + if(get_hex(s + 1, 8, &u)) { + s += 8; + utf8 = utf8_encode(u); + while(*utf8) word[n++] = *utf8++; + n--; + } + else { + word[n++] = '\\'; + word[n] = *s; + } + break; + + default: + word[n] = *s; + } + s++; + } + else { + word[n] = *s++; + } + } + word[n] = 0; + } + else { + while(*s && !isspace(*s)) s++; + } + + if(!is_str) { + n = (unsigned) (s - start); + if(n >= sizeof word) n = sizeof word - 1; + strncpy(word, start, n); + word[n] = 0; + } + + *ptr = s; + + if(len) *len = (int) n; + + return word; +} + + +void parse_comment(char *comment, file_data_t *incl) +{ + char t[5][100]; + int n; + + n = sscanf(comment, " %99s %99s %99s %99s %99s", t[0], t[1], t[2], t[3], t[4]); + + if(!n) return; + + if(n == 2 && !strcmp(t[0], "include")) { + *incl = read_file(t[1]); + if(!incl->data) exit(18); + add_data(incl, "", 1); + if(opt.verbose) fprintf(stderr, "including \"%s\"\n", incl->name); + return; + } +} + + +int find_in_dict(char *name) +{ + unsigned u; + + for(u = 0; u < dict_size; u++) { + if(dict[u].name && !strcmp(name, dict[u].name)) return (int) u; + } + + return -1; +} + + +unsigned usize(uint64_t val) +{ + unsigned len = 0; + + while(val) { + val >>= 8; + len++; + } + + return len; +} + + +unsigned isize(int64_t val) +{ + unsigned len = 1; + + if(val == 0) return 0; + + while((val >> 7) && (val >> 7) != -1L) { + val >>= 8; + len++; + }; + + return len; +} + + +int translate(int pass) +{ + int is_signed; + code_t *c; + unsigned u, ofs = 0, len, lenx; + int changed = 0; + + if(pass == 0) { + changed = 1; + for(u = 0; u < code_size; u++) { + c = code + u; + + c->ofs = ofs; + + is_signed = 0; + switch(c->type) { + case t_skip: + c->size = 0; + break; + + case t_int: + is_signed = 1; + + case t_nil: + case t_bool: + case t_prim: + case t_comment: + case t_string: + case t_word: + case t_ref: + case t_get: + case t_set: + if(c->value.p) { + if(!TYPE_EXPECTS_DATA(c->type)) { + fprintf(stderr, "Internal oops %d: type %d needs memory range\n", __LINE__, c->type); + exit(9); + } + lenx = c->value.p_len; + if(lenx < 12) { + c->size = lenx + 1; + c->enc = malloc(c->size); + memcpy(c->enc + 1, c->value.p, lenx); + c->enc[0] = c->type + (lenx << 4); + } + else { + // len is at least 1 since lenx is != 0 + len = usize(lenx); + if(len > 4) { + fprintf(stderr, "Internal oops %d: type %d memory range is too large\n", __LINE__, c->type); + exit(11); + } + c->size = lenx + len + 1; + c->enc = malloc(c->size); + c->enc[0] = c->type + ((len + 11) << 4); + encode_number(c->enc + 1, lenx, len); + memcpy(c->enc + 1 + len, c->value.p, lenx); + } + } + else { + if(TYPE_EXPECTS_DATA(c->type)) { + fprintf(stderr, "Internal oops %d: type %d misses memory range\n", __LINE__, c->type); + exit(10); + } + len = is_signed ? isize((int64_t) c->value.u) : usize(c->value.u); + if(c->value.u < 8) { + c->size = 1; + c->enc = malloc(c->size); + c->enc[0] = c->type + (c->value.u << 4); + } + else { + // len is at least 1 since c->value.u is != 0 + c->size = len + 1; + c->enc = malloc(c->size); + c->enc[0] = c->type + ((len - 1 + 8) << 4); + encode_number(c->enc + 1, c->value.u, len); + } + } + break; + + case t_code: + c->size = 2; + // dummy value + // really encoded in else branch below during later passes (pass != 0) + break; + + default: + fprintf(stderr, "Internal oops %d: type %d not allowed\n", __LINE__, c->type); + exit(8); + } + + ofs += c->size; + } + } + else { + for(u = 0; u < code_size; u++) { + c = code + u; + + if(c->ofs != ofs) changed = 1; + c->ofs = ofs; + + if(c->xref_to) { + unsigned dist = c->ofs - code[c->xref_to].ofs; + unsigned xlen = usize(dist); + if(dist < 8) { + if(1 < c->size || c->type == t_xref) { + c->size = 1; + c->enc = malloc(c->size); + c->enc[0] = t_xref + (dist << 4); + c->type = t_xref; + } + } + else { + if(xlen + 1 < c->size || c->type == t_xref) { + c->enc[0] = t_xref + ((xlen - 1 + 8) << 4); + encode_number(c->enc + 1, dist, xlen); + c->size = xlen + 1; + c->type = t_xref; + } + } + } + + if(c->type == t_code) { + lenx = c->value.u; + // we want to encode the length of the code blob, starting *after* + // the current instruction + if(lenx >= code_size || u >= code_size - 1 || code[lenx].ofs < c[1].ofs) { + fprintf(stderr, "Internal error %d\n", __LINE__); + exit(11); + } + lenx = code[lenx].ofs - c[1].ofs; + if(lenx < 12) { + c->size = 1; + c->enc = malloc(c->size); + c->enc[0] = c->type + (lenx << 4); + } + else { + len = usize(lenx); + if(c->size != len + 1) changed = 1; + c->size = len + 1; + if(c->enc) free(c->enc); + c->enc = malloc(c->size); + c->enc[0] = c->type + ((len + 11) << 4); + encode_number(c->enc + 1, lenx, len); + } + } + + ofs += c->size; + } + } + + return changed; +} + + +int parse_config(char *name, char *log_file) +{ + char *word; + file_data_t cfg[MAX_INCLUDE]; + file_data_t incl; + int i, j; + unsigned u, word_len; + dict_t *d; + code_t *c, *c1; + char *s; + FILE *lf = NULL; + int incl_level = 0; + + cfg[incl_level] = read_file(name); + add_data(&cfg[incl_level], "", 1); + + if(!cfg[incl_level].ptr) { + fprintf(stderr, "error: no source file\n"); + + return 1; + } + + if(log_file && *log_file) { + if(!strcmp(log_file, "-")) { + lf = fdopen(dup(fileno(stdout)), "a"); + } + else { + lf = fopen(log_file, "w"); + } + } + + // setup initial vocabulary + for(u = 0; u < prim_words; u++) { + d = new_dict(); + d->type = t_prim; + d->value.u = u; + d->name = (char *) prim_names[u]; + } + + c = new_code(); + c->type = t_comment; + c->value.p_len = 7; + c->value.p = calloc(1, 7); + encode_number(c->value.p, GFXBOOT_MAGIC, 7); + c->name = strdup("# gfxboot magic"); + + while(*cfg[incl_level].ptr || incl_level) { + if(!*cfg[incl_level].ptr) { + incl_level--; + line = cfg[incl_level].line; + } + word = next_word((char **) &cfg[incl_level].ptr, &word_len); // unsigned char ** + if(!word || !word_len) continue; + + if(word[0] == COMMENT_CHAR) { + if(word[1] == COMMENT_CHAR) { + incl.ptr = NULL; + parse_comment(word + 2, &incl); + if(incl.ptr) { + if(incl_level == MAX_INCLUDE - 1) { + fprintf(stderr, "error: include level exceeded\n"); + return 1; + } + else { + cfg[incl_level].line = line; + cfg[++incl_level] = incl; + line = 1; + } + } + } + continue; + } + + if(opt.verbose >= 2) printf(">%s< [%d] (line %d)\n", word, word_len, line); + + c = new_code(); + c->line = line; + c->incl_level = incl_level; + + if(*word == '"') { + c->type = t_string; + c->value.p = calloc(1, word_len); + c->value.p = memcpy(c->value.p, word + 1, word_len - 1); + c->value.p_len = word_len - 1; + } + else if(*word == '\'') { + char *s = word + 1; + int uc = utf8_decode(&s); + if(uc >= 0 && !*s) { + c->type = t_int; + c->value.u = (unsigned) uc; + asprintf(&c->name, "'%s'", utf8_quote((unsigned) uc)); + } + else { + fprintf(stderr, "syntax error: invalid char constant in line %d\n", line); + return 1; + } + } + else if(*word == '/') { + c->name = strdup(word + 1); + + c->type = t_ref; + + if((i = find_in_dict(word + 1)) == -1) { + d = new_dict(); + d->type = t_nil; + d->value.u = 1; // mark as defined + d->value.p = strdup(word + 1); + d->value.p_len = strlen(word + 1); + d->name = strdup(word + 1); + c->value.u = dict_size - 1; + } + else { + if(dict[i].type == t_nil && !dict[i].value.u) { + dict[i].value.u = 1; // mark as defined + } + c->value.u = (unsigned) i; + } + c->value.p = strdup(word + 1); + c->value.p_len = strlen(word + 1); + } + else if(*word == '.') { + c->name = strdup(word + 1); + c->type = t_get; + c->value.p = strdup(word + 1); + c->value.p_len = strlen(word + 1); + } + else if(*word == '=') { + c->name = strdup(word + 1); + c->type = t_set; + c->value.p = strdup(word + 1); + c->value.p_len = strlen(word + 1); + } + else if(!strcmp(word, prim_names[prim_idx_code_start])) { + c->type = t_code; + c->name = strdup(word); + } + else if(!strcmp(word, prim_names[prim_idx_code_end])) { + c->type = t_prim; + c->value.u = prim_idx_code_end; + c->name = strdup(word); + for(c1 = c; c1 >= code; c1--) { + if(c1->type == t_code && !c1->value.u) { + // point _after_ "}" + c1->value.u = (unsigned) (c - code) + 1; + break; + } + } + if(c1 < code) { + fprintf(stderr, "syntax error: no matching \"{\" for \"}\" in line %d\n", line); + return 1; + } + } + else { + c->name = strdup(word); + + i = find_in_dict(word); + + if(i == -1) { + uint64_t val = strtoull(word, &s, 0); + if(*s) { + if(!strcmp(s, "nil")) { + c->type = t_nil; + c->value.u = 0; + } + else if(!strcmp(s, "true")) { + c->type = t_bool; + c->value.u = 1; + } + else if(!strcmp(s, "false")) { + c->type = t_bool; + c->value.u = 0; + } + else { + d = new_dict(); + d->type = t_nil; + d->name = strdup(word); + c->type = t_word; + c->value.u = dict_size - 1; + c->value.p = strdup(word); + c->value.p_len = strlen(word); + } + } + else { + c->type = t_int; + c->value.u = val; + } + } + else { + c->type = t_word; + c->value.u = (unsigned) i; + c->value.p = strdup(word); + c->value.p_len = strlen(word); + } + } + } + + // check vocabulary + if(opt.verbose >= 2) { + for(i = j = 0; i < (int) dict_size; i++) { + if( + dict[i].type == t_nil && !dict[i].value.u + ) { + if(!j) fprintf(stderr, "Undefined words:"); + else fprintf(stderr, ","); + fprintf(stderr, " %s", dict[i].name); + j = 1; + } + } + if(j) { + fprintf(stderr, "\n"); + } + } + + if(opt.optimize) { + if(opt.verbose >= 2 && lf) fprintf(lf, "# searching for unused code:\n"); + for(i = 0; i < 64; i++) { + if(opt.verbose >= 2 && lf) fprintf(lf, "# pass %d\n", i + 1); + if(!optimize_code(lf)) break; + } + if(opt.verbose >= 2 && lf) fprintf(lf, "# %d optimization passes\n", i + 1); + if(i) { + if(opt.verbose >= 2 && lf) fprintf(lf, "# searching for unused dictionary entries:\n"); + optimize_dict(lf); + } + } + + // translate to byte code + for(i = 0; i < 100; i++) { + if(!translate(i)) break; + } + if(opt.verbose >= 2 && lf) fprintf(lf, "# %d encoding passes\n", i + 1); + if(i == 100) { + fprintf(stderr, "error: code translation does not converge\n"); + return 1; + } + + // store it + for(i = 0; i < (int) code_size; i++) { + if((!code[i].enc || !code[i].size) && code[i].type != t_skip) { + fprintf(stderr, "error: internal oops %d\n", __LINE__); + return 1; + } + add_data(&pscode, code[i].enc, code[i].size); + } + + if(lf) fputc('\n', lf); + log_code(lf, 1); + + if(lf) fclose(lf); + + return 0; +} + + +/* + * Remove deleted dictionary entries. + */ +void optimize_dict(FILE *lf) +{ + unsigned u, old_ofs, new_ofs; + + for(old_ofs = new_ofs = 0; old_ofs < dict_size; old_ofs++) { + if(dict[old_ofs].del) continue; + if(old_ofs != new_ofs) { + if(opt.verbose >= 2 && lf) fprintf(lf, "# rename %d -> %d\n", old_ofs, new_ofs); + dict[new_ofs] = dict[old_ofs]; + for(u = 0; u < code_size; u++) { + if( + ( + code[u].type == t_word || + code[u].type == t_ref + ) && + code[u].value.u == old_ofs + ) { + code[u].value.u = new_ofs; + } + } + } + new_ofs++; + } + if(opt.verbose >= 2 && lf && new_ofs != old_ofs) { + fprintf(lf, "# new dictionary size %d (%d - %d)\n", new_ofs, old_ofs, old_ofs - new_ofs); + } + + dict_size = new_ofs; +} + + +/* + * Skip deleted code. + */ +unsigned skip_code(unsigned pos) +{ + while(pos < code_size && code[pos].type == t_skip) pos++; + + return pos; +} + + +/* + * Return next instruction. + */ +unsigned next_code(unsigned pos) +{ + if((pos + 1) >= code_size) return pos; + + return skip_code(++pos); +} + + +int optimize_code(FILE *lf) +{ + unsigned u; + int changed = 0, ind = 0; + code_t *c; + + for(u = 0; u < dict_size; u++) { + dict[u].def = dict[u].def_idx = + dict[u].ref = dict[u].ref_idx = + dict[u].ref0 = dict[u].ref0_idx = 0; + } + + for(u = 0; u < code_size; u++) { + c = code + u; + + switch(c->type) { + case t_code: + ind++; + break; + + case t_prim: + if(c->value.u == prim_idx_code_end) { + if(!ind) { + fprintf(stderr, "Warning: nesting error at line %d\n", c->line); + } + ind--; + } + break; + + case t_word: + if(c->value.u < dict_size) { + dict[c->value.u].ref++; + dict[c->value.u].ref_idx = (int) u; + dict[c->value.u].ref_ind = ind; + if(ind == 0 && !dict[c->value.u].ref0) { + dict[c->value.u].ref0 = 1; + dict[c->value.u].ref0_idx = (int) u; + } + } + break; + + case t_ref: + if(c->value.u < dict_size) { + dict[c->value.u].def++; + dict[c->value.u].def_idx = (int) u; + dict[c->value.u].def_ind = ind; + } + break; + + default: + break; + } + } + + if(opt.optimize >= 2) changed |= optimize_code1(lf); + if(opt.optimize >= 3) changed |= optimize_code2(lf); + if(opt.optimize >= 3) changed |= optimize_code3(lf); + if(opt.optimize >= 3) changed |= optimize_code5(lf); + if(opt.optimize >= 2) changed |= optimize_code4(lf); + // must always be the last step + if(opt.optimize >= 1) changed |= optimize_code6(lf); + + return changed; +} + + +/* + * Find references to primitive words. + */ +int optimize_code1(FILE *lf) +{ + unsigned i, j; + int changed = 0; + code_t *c; + + for(i = 0; i < dict_size; i++) { + if( + i < prim_words && + !dict[i].del && + dict[i].def == 0 && + dict[i].ref && + dict[i].type == t_prim + ) { + if(opt.verbose >= 2 && lf) fprintf(lf, "# replacing %s\n", dict[i].name); + for(j = 0; j < code_size; j++) { + c = code + j; + if(c->type == t_word && c->value.u == i) { + c->type = dict[i].type; + c->value.u = dict[i].value.u; + c->value.p = NULL; + c->value.p_len = 0; + } + } + + changed = 1; + } + } + + return changed; +} + + +/* + * Remove things like + * + * /foo 123 def + * /foo "abc" def + * /foo /bar def + * + * if foo is unused. + */ +int optimize_code2(FILE *lf) +{ + unsigned i, j; + int changed = 0; + code_t *c0, *c1, *c2; + + for(i = 0; i < dict_size; i++) { + if( + i >= prim_words && + !dict[i].del && + !dict[i].ref && + dict[i].def == 1 && + dict[i].type == t_nil + ) { + c0 = code + (j = (unsigned) dict[i].def_idx); + c1 = code + (j = next_code(j)); + c2 = code + (j = next_code(j)); + + if( + c0->type == t_ref && + c0->value.u == i && + ( + c1->type == t_nil || + c1->type == t_int || + c1->type == t_bool || + c1->type == t_string || + c1->type == t_ref + ) && + c2->type == t_prim && + !strcmp(dict[c2->value.u].name, "def") + ) { + if(opt.verbose >= 2 && lf) fprintf(lf, "# defined but unused: %s (index %d)\n", dict[i].name, i); + if(opt.verbose >= 2 && lf) fprintf(lf, "# deleting code: %d - %d\n", dict[i].def_idx, j); + c0->type = c1->type = c2->type = t_skip; + dict[i].del = 1; + + changed = 1; + } + } + } + + return changed; +} + + +/* + * Remove things like + * + * /foo { ... } def + * + * if foo is unused. + */ +int optimize_code3(FILE *lf) +{ + unsigned i, j, k; + int changed = 0; + code_t *c0, *c1; + + for(i = 0; i < dict_size; i++) { + if( + i >= prim_words && + !dict[i].del && + !dict[i].ref && + dict[i].def == 1 && + dict[i].type == t_nil + ) { + c0 = code + (j = (unsigned) dict[i].def_idx); + c1 = code + next_code(j); + + if(c1 == c0) continue; + + if( + c0->type == t_ref && + c0->value.u == i && + c1->type == t_code && + code[j = skip_code(c1->value.u)].type == t_prim && + !strcmp(dict[code[j].value.u].name, "def") && + j > (unsigned) dict[i].def_idx + ) { + if(opt.verbose >= 2 && lf) fprintf(lf, "# defined but unused: %s (index %d)\n", dict[i].name, i); + if(opt.verbose >= 2 && lf) fprintf(lf, "# deleting code: %d - %d\n", dict[i].def_idx, j); + for(k = (unsigned) dict[i].def_idx; k <= j; k++) code[k].type = t_skip; + dict[i].del = 1; + + changed = 1; + } + } + } + + return changed; +} + + + +/* + * Find unused dictionary entries. + */ +int optimize_code4(FILE *lf) +{ + unsigned i; + int changed = 0; + + for(i = 0; i < dict_size; i++) { + if( + i >= prim_words && + !dict[i].del && + !dict[i].ref && + !dict[i].def + ) { + if(opt.verbose >= 2 && lf) fprintf(lf, "# unused: %s (index %d)\n", dict[i].name, i); + + dict[i].del = 1; + + changed = 1; + } + } + + return changed; +} + + +/* + * Replace references to constant global vars. + */ +int optimize_code5(FILE *lf) +{ + unsigned i, j, k; + int changed = 0; + code_t *c, *c0, *c1, *c2; + char *s; + + for(i = 0; i < dict_size; i++) { + if( + i >= prim_words && + !dict[i].del && + dict[i].def == 1 && + dict[i].def_ind == 0 && + ( + !dict[i].ref0 || + dict[i].ref0_idx > dict[i].def_idx + ) && + dict[i].type == t_nil + ) { + c0 = code + (j = (unsigned) dict[i].def_idx); + c1 = code + (j = next_code(j)); + c2 = code + (j = next_code(j)); + + if( + c0->type == t_ref && + c0->value.u == i && + ( + c1->type == t_nil || + c1->type == t_int || + c1->type == t_bool + ) && + c2->type == t_prim && + !strcmp(dict[c2->value.u].name, "def") + ) { + if(opt.verbose >= 2 && lf) fprintf(lf, "# global constant: %s (index %d)\n", dict[i].name, i); + if(opt.verbose >= 2 && lf) fprintf(lf, "# replacing %s with %s\n", dict[i].name, c1->name); + for(k = 0; k < code_size; k++) { + c = code + k; + if(c->type == t_word && c->value.u == i) { + c->type = c1->type; + c->value = c1->value; + if(c->type == t_int) { + asprintf(&s, "%s # %s", c1->name, c->name); + free(c->name); + c->name = s; + } + else if(c->type == t_bool) { + asprintf(&s, "%s # %s", c->value.u ? "true" : "false", c->name); + free(c->name); + c->name = s; + } + else if(c->type == t_nil) { + asprintf(&s, "nil # %s", c->name); + free(c->name); + c->name = s; + } + } + } + + dict[i].del = 1; + + if(opt.verbose >= 2 && lf) fprintf(lf, "# deleting code: %d - %d\n", dict[i].def_idx, j); + c0->type = c1->type = c2->type = t_skip; + + changed = 1; + } + } + } + + return changed; +} + + +/* + */ +int optimize_code6(FILE *lf) +{ + unsigned i, j; + int changed = 0; + code_t *c, *c_ref; + + if(opt.verbose >= 2 && lf) fprintf(lf, "# looking for cross references\n"); + + for(i = 0; i < code_size; i++) { + c_ref = code + i; + if(c_ref->xref_to) continue; + if( + c_ref->type == t_string || + c_ref->type == t_word || + c_ref->type == t_ref || + c_ref->type == t_get || + c_ref->type == t_set + ) { + for(j = i + 1; j < code_size; j++) { + c = code + j; + if( + c->type == c_ref->type && + c_ref->value.p && c->value.p && + c_ref->value.p_len == c->value.p_len && + !memcmp(c->value.p, c_ref->value.p, c->value.p_len) + ) { + c->xref_to = i; + if(opt.verbose >= 2 && lf) fprintf(lf, "xref: %d = %d name = >%s<\n", j, i, c->name); + changed = 1; + } + } + } + } + + return changed; +} + + +void log_code(FILE *lf, int style) +{ + int i, j, l, line = 0, incl_level = 0; + int ind = 0, diff = 0; + char *s; + + if(!lf) return; + + for(i = j = 0; i < (int) code_size; i++) { + if(code[i].type == t_skip) j++; + } + + fprintf(lf, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n"); + fprintf(lf, "# code: %d entries (%d - %d)\n", (int) code_size - j, code_size, j); + if(style || opt.verbose) { + fprintf(lf, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n"); + fprintf(lf, "# line i %soffset type hex word\n", opt.verbose ? "index " : ""); + } + fprintf(lf, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n"); + for(i = 0; i < (int) code_size; i++) { + if(code[i].duplicate) { + diff++; + } + if(code[i].type == t_skip && !opt.verbose) continue; + if(style || opt.verbose) { + if((line != code[i].line || incl_level != code[i].incl_level) && code[i].line) { + line = code[i].line; + incl_level = code[i].incl_level; + fprintf(lf, "%6d", line); + if(incl_level) { + fprintf(lf, " %d ", incl_level); + } + else { + fprintf(lf, " "); + } + } + else { + fprintf(lf, "%9s", ""); + } + if(opt.verbose) { + if(code[i].duplicate) { + fprintf(lf, "%5s ", ""); + } + else { + fprintf(lf, "%5d ", i - diff); + } + } + if(code[i].size && !code[i].duplicate) { + fprintf(lf, "0x%05x ", code[i].ofs); + } + else { + fprintf(lf, "%*s", 9, ""); + } + if(code[i].type < sizeof type_name / sizeof *type_name) { + fprintf(lf, "%-6s", type_name[code[i].type]); + } + else { + fprintf(lf, "<%4u>", code[i].type); + } + l = code[i].enc ? (int) code[i].size : 0; + if(l > 8) l = 8; + for(j = 0; j < l; j++) { + fprintf(lf, " %02x", code[i].enc[j]); + } + } + else { + l = 8; + } + + type_t type = code[i].type; + if(code[i].xref_to) type = code[code[i].xref_to].type; + + if( + ( + (type == t_word || type == t_prim) && + ( + !strcmp(code[i].name, prim_names[prim_idx_array_end]) || + !strcmp(code[i].name, prim_names[prim_idx_hash_end]) || + !strcmp(code[i].name, prim_names[prim_idx_code_end]) + ) + ) && + ind > 0 + ) ind -= 2; + fprintf(lf, "%*s", 3 * (8 - l) + ind + (style || opt.verbose ? 2 : 0), ""); + + if(type == t_skip) fprintf(lf, "# "); + + if( + type == t_code || + ( + (type == t_word || type == t_prim) && + ( + !strcmp(code[i].name, prim_names[prim_idx_array_start]) || + !strcmp(code[i].name, prim_names[prim_idx_hash_start]) || + !strcmp(code[i].name, prim_names[prim_idx_code_start]) + ) + ) + ) ind += 2; + + if( + type == t_string || + type == t_word || + type == t_ref || + type == t_get || + type == t_set + ) { + if(type == t_string) fprintf(lf, "\""); + if(type == t_ref) fprintf(lf, "/"); + if(type == t_get) fprintf(lf, "."); + if(type == t_set) fprintf(lf, "="); + s = code[i].value.p; + unsigned p_len = code[i].value.p_len; + while(p_len--) { + if(*s >= 0 && *s < 0x20) { + if(*s == '\n') { + fprintf(lf, "\\n"); + } + else if(*s == '\t') { + fprintf(lf, "\\t"); + } + else { + fprintf(lf, "\\x%02x", (unsigned char) *s); + } + } + else { + fprintf(lf, "%c", *s); + } + s++; + } + if(type == t_string) fprintf(lf, "\""); + } + else { + fprintf(lf, "%s", code[i].name ?: ""); + } + + if((style || opt.verbose) && code[i].enc && code[i].size > 8) { + for(j = 8; j < (int) code[i].size; j++) { + if(j & 7) { + fprintf(lf, " "); + } + else { + fprintf(lf, "\n%*s", 25 + (opt.verbose ? 7 : 0), ""); + } + fprintf(lf, "%02x", code[i].enc[j]); + } + } + fprintf(lf, "\n"); + } +} + + +unsigned decode_instr(unsigned char *data, type_t *type, int64_t *arg1, unsigned char **arg2) +{ + unsigned u, len; + type_t t; + unsigned inst_size = 1; + int64_t val; + + u = data[0] >> 4; + *type = t = data[0] & 0xf; + *arg2 = 0; + + if(TYPE_EXPECTS_DATA(t)) { + if(u >= 12) { + u -= 11; + len = decode_number(data + 1, u); + inst_size += u; + } + else { + len = u; + } + *arg1 = len; + // we want to decode the code blobs + if(t != t_code) { + *arg2 = data + inst_size; + inst_size += len; + } + } + else { + if(u >= 8) { + u -= 7; + val = (int64_t) decode_number(data + 1, u); + inst_size += u; + if(t == t_int) { + // expand sign bit + val <<= 8 * (8 - u); + val >>= 8 * (8 - u); + } + } + else { + val = u; + } + *arg1 = val; + } + + return inst_size; +} + + +int decompile(unsigned char *data, unsigned size) +{ + unsigned i, j, inst_size; + dict_t *d; + code_t *c; + type_t type; + int64_t arg1; + unsigned char *arg2; + + // setup initial vocabulary + for(i = 0; i < prim_words; i++) { + d = new_dict(); + d->type = t_prim; + d->value.u = i; + d->name = (char *) prim_names[i]; + } + + for(i = 0; i < size; i += inst_size) { + inst_size = decode_instr(data + i, &type, &arg1, &arg2); + + if(i + inst_size > size) { + if(i) { + fprintf(stderr, "error: instruction size bounds exceeded: %u > %u\n", i + inst_size, size); + } + else { + fprintf(stderr, "error: invalid file format\n"); + } + + return 1; + } + + c = new_code(); + c->type = type; + + if( + i == 0 && + !( + c->type == t_comment && + inst_size == 8 + ) + ) { + fprintf(stderr, "error: invalid file format\n"); + + return 1; + } + + c->ofs = i; + c->size = inst_size; + c->enc = malloc(inst_size); + memcpy(c->enc, data + i, inst_size); + + c->value.u = (uint64_t) arg1; + + if(arg2) { + c->value.p = arg2; + c->value.p_len = arg1; + } + + if(i == 0 && decode_number(c->value.p, c->value.p_len) != GFXBOOT_MAGIC) { + fprintf(stderr, "error: gfxboot magic not matching\n"); + + return 1; + } + + if(c->type == t_xref) { + c->value.u = (uint64_t) arg1; + for(j = 0; j < code_size - 1; j++) { + if(code[j].ofs == c->ofs - arg1) { + c->xref_to = j; + } + } + if(!c->xref_to) { + fprintf(stderr, "error: invalid cross reference: ofs 0x%x, %d\n", c->ofs, (unsigned) arg1); + return 2; + } + code_t *c_ref = code + c->xref_to; + unsigned old_ofs = c->ofs; + c->xref_to = 0; + asprintf(&c->name, "# -> offset 0x%05x", c_ref->ofs); + if(opt.verbose >= 2) { + c = new_code(); + *c = *c_ref; + c->duplicate = 1; + } + else { + *c = *c_ref; + } + c->ofs = old_ofs; + } + + switch(c->type) { + case t_code: + c->name = (char *) prim_names[prim_idx_code_start]; + break; + + case t_int: + asprintf(&c->name, "%lld", (long long) arg1); + break; + + case t_string: + case t_word: + case t_ref: + case t_get: + case t_set: + c->name = calloc(1, c->value.p_len + 1); + memcpy(c->name, c->value.p, c->value.p_len); + break; + + case t_prim: + if(arg1 < dict_size) { + c->name = dict[arg1].name; + } + else { + fprintf(stderr, "error: word %u not in dictionary\n", (unsigned) arg1); + return 1; + } + break; + + case t_bool: + asprintf(&c->name, "%s", arg1 ? "true" : "false"); + break; + + case t_nil: + c->name = strdup("nil"); + break; + + case t_comment: + if( + c->value.p && + c->value.p_len == 7 && + decode_number(c->value.p, 7) == GFXBOOT_MAGIC + ) { + if(!c->name) c->name = "# gfxboot magic"; + } + break; + + case t_xref: + break; + + default: + fprintf(stderr, "error: type %d not recognized\n", c->type); + return 2; + } + } + + return 0; +} diff --git a/gfxboot-font.c b/gfxboot-font.c new file mode 100644 index 0000000..159f062 --- /dev/null +++ b/gfxboot-font.c @@ -0,0 +1,1544 @@ +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +#pragma GCC diagnostic ignored "-Wsign-conversion" +#pragma GCC diagnostic ignored "-Wsign-compare" + +#define _GNU_SOURCE + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include FT_FREETYPE_H +#include FT_SYNTHESIS_H + + +#define MAGIC 0xa42a9123 + +// 4 bits seem to be enough +#define GRAY_BITS 4 +// 3 gave smallest file for about 16x16 pixel fonts, but it doesn't really matter much +#define GRAY_BIT_COUNT 3 +// maximal gray value (min is 0) +#define MAX_GRAY ((1 << GRAY_BITS) - 3) +// repeat background color (font pixel unset) +#define REP_BG (MAX_GRAY + 1) +// repeat foreground color (font pixel set) +#define REP_FG (MAX_GRAY + 2) +// color quantization method: choose 1 or 2 +#define COLOR_QUANT 1 + +struct option options[] = { + { "add", 1, NULL, 'a' }, + { "add-charset", 1, NULL, 'c' }, + { "font", 1, NULL, 'f' }, + { "line-height", 1, NULL, 'l' }, + { "font-height", 1, NULL, 'H' }, + { "font-path", 1, NULL, 'p' }, + { "show", 0, NULL, 's' }, + { "add-text", 1, NULL, 't' }, + { "verbose", 0, NULL, 'v' }, + { "test", 0, NULL, 999 }, + { } +}; + + +typedef struct list_any_s { + struct list_any_s *next; +} list_any_t; + +typedef struct { + void *start; + void *end; +} list_t; + +typedef struct n_set_s { + struct n_set_s *next; + int first, last; +} n_set_t; + +typedef struct { + unsigned size; + unsigned char *data; + unsigned real_size; +} file_data_t; + +typedef struct __attribute ((packed)) { + uint32_t magic; + uint8_t res1, res2, res3; + uint8_t max_bitmap_width; + uint8_t max_bitmap_height; + uint8_t height; + uint8_t line_height; + int8_t baseline; + uint32_t entries; +} font_header_t; + +typedef struct font_s { + struct font_s *next; + char *name; + char *file_name; + FT_Face face; + int size; + int prop; + int space_width; + int dy; + unsigned index; + int height; + int baseline; + list_t chars; /* n_set_t */ + unsigned used:1; /* font is actually used */ + unsigned ok:1; + unsigned bold:1; + unsigned nobitmap:1; + unsigned autohint:2; /* 0: auto, 1: off, 2: on */ + unsigned autosize:1; + unsigned autoshift:1; +} font_t; + +typedef struct char_data_s { + struct char_data_s* next; + unsigned ok:1; /* char exists */ + unsigned top:1; + unsigned bottom:1; + int c; /* char (utf32) */ + font_t *font; /* pointer to font */ + int x_advance; + int x_ofs; /* where to draw lower left bitmap corner */ + int y_ofs; + unsigned char *bitmap; /* char bitmap, width x height */ + int bitmap_width; + int bitmap_height; + unsigned char *data; + int data_len; +} char_data_t; + +list_t font_list; /* font_t */ +list_t char_list; /* char_data_t */ +list_t chars_missing; /* n_set_t */ +list_t chars_top; /* n_set_t */ +list_t chars_bottom; /* n_set_t */ + +int max_bitmap_width; +int max_bitmap_height; +int font_height; +int font_y_ofs; + +struct { + int verbose; + int test; + int line_height; + int max_font_height; + char *font_path; + list_t chars; /* n_set_t */ + char *file; + unsigned show:1; +} opt; + + +file_data_t *read_file(char *name); +void dump_char(char_data_t *cd); +void add_data(file_data_t *d, void *buffer, unsigned size); +void write_data(file_data_t *d, char *name); +int intersect(int first0, int last0, int first1, int last1); +void insert_int_list(list_t *list, int first, int last); +void *add_list(list_t *list, void *entry); +void *new_mem(size_t size); +char *new_str(char *str); +int parse_int_list(list_t *list, char *str); +char *search_font(char *font_path, char *name); +void render_char(char_data_t *cd); +int empty_row(char_data_t *cd, int row); +int empty_column(char_data_t *cd, int column); +void add_bbox(char_data_t *cd); +void make_prop(char_data_t *cd); +char *utf32_to_utf8(int u8); +void add_bits(unsigned char *buf, int *buf_ptr, int bits, unsigned data); +unsigned read_unsigned_bits(unsigned char *buf, int *buf_ptr, int bits); +int read_signed_bits(unsigned char *buf, int *buf_ptr, int bits); +int signed_bits(int num); +int unsigned_bits(unsigned num); +void encode_char(char_data_t *cd); +int show_font(char *name); +void get_font_height(font_t *font, int *height, int *y_ofs); + + +int main(int argc, char **argv) +{ + int i, j, k, err, ofs; + char *str, *str1, *t, *s, *s1, *font_spec; + iconv_t ic = (iconv_t) -1, ic2; + unsigned char obuf[4]; + char ibuf[6]; + char obuf2[4*0x100], ibuf2[0x100]; + char *obuf_ptr, *ibuf_ptr; + size_t obuf_left, ibuf_left; + FILE *f; + font_t *font; + n_set_t *n; + char_data_t *cd; + FT_Library ft_lib; + font_header_t fh; + file_data_t font_file = {}; + unsigned char char_ofs[5]; + + opt.font_path = "\ +/usr/share/fonts/truetype:\ +/usr/share/fonts/Type1:\ +/usr/share/fonts/misc:\ +/usr/X11R6/lib/X11/fonts/truetype:\ +/usr/X11R6/lib/X11/fonts/Type1:\ +/usr/X11R6/lib/X11/fonts/misc\ +"; + + opterr = 0; + + while((i = getopt_long(argc, argv, "Aa:c:f:H:l:p:st:v", options, NULL)) != -1) { + switch(i) { + case 'a': + err = parse_int_list(&opt.chars, optarg); + if(err) { + fprintf(stderr, "%s: invalid char range spec\n", optarg); + return 1; + } + break; + + case 'c': + ic2 = iconv_open("utf32le", optarg); + if(ic2 == (iconv_t) -1) { + fprintf(stderr, "don't know char set %s\ntry 'iconv --list'\n", optarg); + return 1; + } + ibuf_ptr = ibuf2; + ibuf_left = sizeof ibuf2; + obuf_ptr = obuf2; + obuf_left = sizeof obuf2; + for(j = 0; j < sizeof ibuf2; j++) ibuf2[j] = j; + iconv(ic2, &ibuf_ptr, &ibuf_left, &obuf_ptr, &obuf_left); + for(str = obuf2; str < obuf_ptr; str += 4) { + i = *(int *) str; + if(i >= 0x20 && (i < 0x7f || i > 0x9f)) insert_int_list(&opt.chars, i, i); + } + iconv_close(ic2); + break; + + case 'f': + font = add_list(&font_list, new_mem(sizeof *font)); + font_spec = new_str(optarg); + + if((s = strchr(font_spec, ':'))) { + font->name = new_mem(s - font_spec + 1); + memcpy(font->name, font_spec, s - font_spec); + t = s + 1; + err = 0; + while(!err && (str = strsep(&t, ":"))) { + if((s = strchr(str, '='))) { + *s++ = 0; + if(!strcmp(str, "size")) { + font->size = strtol(s, &s1, 0); + if(*s1) err = 1; + } + else if(!strcmp(str, "prop")) { + font->prop = strtol(s, &s1, 0); + if(*s1) err = 1; + } + else if(!strcmp(str, "space_width")) { + font->space_width = strtol(s, &s1, 0); + if(*s1) err = 1; + } + else if(!strcmp(str, "dy")) { + font->dy = strtol(s, &s1, 0); + if(*s1) err = 1; + } + else if(!strcmp(str, "bold")) { + font->bold = strtol(s, &s1, 0); + if(*s1) err = 1; + } + else if(!strcmp(str, "nobitmap")) { + font->nobitmap = strtol(s, &s1, 0); + if(*s1) err = 1; + } + else if(!strcmp(str, "autohint")) { + font->autohint = strtol(s, &s1, 0) + 1; + if(*s1) err = 1; + } + else if(!strcmp(str, "autosize")) { + font->autosize = strtol(s, &s1, 0); + if(*s1) err = 1; + } + else if(!strcmp(str, "autoshift")) { + font->autoshift = strtol(s, &s1, 0); + if(*s1) err = 1; + } + else if(!strcmp(str, "c")) { + err = parse_int_list(&font->chars, s); + } + else { + err = 1; + } + } + else { + if(*str) err = 1; + } + } + free(font_spec); + if(err) { + fprintf(stderr, "%s: invalid font spec\n", optarg); + return 1; + } + } + else { + font->name = font_spec; + } + break; + + case 'H': + str = optarg; + i = strtol(str, &str1, 0); + if(*str1 || i < 0) { + fprintf(stderr, "%s: invalid font height\n", str); + return 1; + } + opt.max_font_height = i; + break; + + case 'l': + str = optarg; + i = strtol(str, &str1, 0); + if(*str1 || i < 0) { + fprintf(stderr, "%s: invalid line height\n", str); + return 1; + } + opt.line_height = i; + break; + + case 'p': + opt.font_path = optarg; + break; + + case 's': + opt.show = 1; + break; + + case 't': + if(ic == (iconv_t) -1) { + ic = iconv_open("utf32le", "utf8"); + if(ic == (iconv_t) -1) { + fprintf(stderr, "can't convert utf8 data\n"); + return 1; + } + } + if((f = fopen(optarg, "r"))) { + int ok; + + ibuf_left = 0; + while((i = fread(ibuf + ibuf_left, 1, sizeof ibuf - ibuf_left, f)) > 0) { + // fprintf(stderr, "ibuf_left = %d, fread = %d\n", ibuf_left, i); + ibuf_ptr = ibuf; + ibuf_left += i; + do { + obuf_ptr = obuf; + obuf_left = sizeof obuf; + k = iconv(ic, &ibuf_ptr, &ibuf_left, &obuf_ptr, &obuf_left); + // fprintf(stderr, "k = %d, errno = %d, ibuf_left = %d, obuf_left = %d\n", k, k ? errno : 0, ibuf_left, obuf_left); + if(k >= 0 || (k == -1 && !obuf_left)) { + ok = 1; + if(!obuf_left) { + i = obuf[0] + (obuf[1] << 8) + (obuf[2] << 16) + (obuf[3] << 24); + if(i >= 0x20) { + insert_int_list(&opt.chars, i, i); + } + } + } + else { + ok = 0; + } + } + while(ok && ibuf_left); + if(k == -1 && errno == EILSEQ) { + perror("iconv"); + return 1; + } + if(ibuf_left) { + memcpy(ibuf, ibuf + sizeof ibuf - ibuf_left, ibuf_left); + } + } + fclose(f); + } + else { + perror(optarg); + return 1; + } + break; + + case 'v': + opt.verbose++; + break; + + case 999: + opt.test++; + break; + } + } + + if(ic != (iconv_t) -1) iconv_close(ic); + + // use default char list + if(!opt.chars.start) insert_int_list(&opt.chars, 0x20, 0x7f); + + argc -= optind; argv += optind; + + // FreeSans[size=16 prop=2 space_width=4 dy=16 c=0x1200,0x1000-0x2000] + if(argc != 1) { + fprintf(stderr, + "Usage: gfxboot-font [options] fontfile\n" + "Build font for boot loader.\n" + " -a, --add=first[-last]\n\tAdd chars from this range.\n" + " -c, --add-charset=charset\n\tAdd all chars from this charset.\n" + " -f, --font=font_spec\n\tUse this font. Spec format is fontname[option1 option2 ...]\n" + " -h, --help\n\tShow this help text.\n" + " -l, --line-height=n\n\tSet line height (default: font height).\n" + " -p, --font-path=font path\n\tFont path, elements separated by ':'.\n" + " -s, --show\n\tShow font info.\n" + " -t, --add-text=samplefile\n\tAdd all chars used in this file. File must be UTF-8 encoded.\n" + " -v, --verbose\n\tDump font info.\n" + ); + return 1; + } + + opt.file = argv[0]; + + if(opt.show) return show_font(opt.file); + + if((err = FT_Init_FreeType(&ft_lib))) { + fprintf(stderr, "FreeType init failed (err = %d)\n", err); + return 3; + } + + // open all fonts + for(i = 0, font = font_list.start; font; font = font->next) { + font->index = i++; + font->file_name = search_font(opt.font_path, font->name); + if(font->file_name) { + err = FT_New_Face(ft_lib, font->file_name, 0, &font->face); + if(!err) { + if(!font->size) { + if(font->face->num_fixed_sizes > 0) { + font->size = font->face->available_sizes[0].height; + } + } + if( + font->size && + !FT_Set_Pixel_Sizes(font->face, font->size, 0) + ) { + font->ok = 1; + } + } + } + } + + // build char list + for(n = opt.chars.start; n; n = n->next) { + for(i = n->first; i <= n->last; i++) { + cd = add_list(&char_list, new_mem(sizeof *cd)); + cd->c = i; + } + } + + // just check the list is really sorted + for(i = -1, cd = char_list.start; cd; cd = cd->next) { + if(cd->c <= i) { + fprintf(stderr, "internal error: char list not sorted\n"); + return 4; + } + i = cd->c; + } + + // render all chars + for(cd = char_list.start; cd; cd = cd->next) { + render_char(cd); + } + + // fix vertical glyph positions + for(cd = char_list.start; cd; cd = cd->next) { + if(cd->ok) cd->y_ofs += cd->font->dy; + } + + if(!opt.test) for(cd = char_list.start; cd; cd = cd->next) add_bbox(cd); + +// ############## + + // get font dimensions + get_font_height(NULL, &font_height, &font_y_ofs); + + for(font = font_list.start; font; font = font->next) { + if(!font->ok) continue; + get_font_height(font, &i, &j); + font->height = i; + font->baseline = -j; + } + +// ############## + + FT_Done_FreeType(ft_lib); + + // label largest chars + for(cd = char_list.start; cd; cd = cd->next) { + if(!cd->ok) continue; + if(cd->y_ofs - font_y_ofs + cd->bitmap_height >= font_height) cd->top = 1; + if(cd->y_ofs - font_y_ofs <= 0) cd->bottom = 1; + } + + for(cd = char_list.start; cd; cd = cd->next) make_prop(cd); + + for(cd = char_list.start; cd; cd = cd->next) { + if(!cd->ok) insert_int_list(&chars_missing, cd->c, cd->c); + } + + for(cd = char_list.start; cd; cd = cd->next) { + if(cd->ok && cd->top) insert_int_list(&chars_top, cd->c, cd->c); + } + + for(cd = char_list.start; cd; cd = cd->next) { + if(cd->ok && cd->bottom) insert_int_list(&chars_bottom, cd->c, cd->c); + } + + for(cd = char_list.start; cd; cd = cd->next) { + if(!cd->ok) continue; + if(cd->bitmap_width > max_bitmap_width) max_bitmap_width = cd->bitmap_width; + if(cd->bitmap_height > max_bitmap_height) max_bitmap_height = cd->bitmap_height; + } + + for(cd = char_list.start; cd; cd = cd->next) encode_char(cd); + + memset(&fh, 0, sizeof fh); + + fh.magic = MAGIC; + fh.max_bitmap_width = max_bitmap_width; + fh.max_bitmap_height = max_bitmap_height; + fh.height = font_height; + fh.line_height = opt.line_height ?: fh.height + 2; + fh.baseline = -font_y_ofs; + + for(cd = char_list.start; cd; cd = cd->next) if(cd->ok) fh.entries++; + + // print font info + if(opt.verbose) { + printf("Font List\n"); + for(font = font_list.start; font; font = font->next) { + printf(" #%d %s (%s)\n", font->index, font->name, font->ok ? "ok" : "not used"); + printf(" File %s\n", font->file_name); + printf(" Size %d", font->size); + if(font->dy) printf(", dY %d", font->dy); + if(font->prop) printf(", Prop %d", font->prop); + if(font->space_width) printf(", SpaceWidth %d", font->space_width); + printf("\n"); + printf(" Height %d, Baseline %d\n", font->height, font->baseline); + if(font->chars.start) { + for(n = font->chars.start; n; n = n->next) { + printf(" c 0x%04x", n->first); + if(n->last != n->first) printf("-0x%04x", n->last); + printf("\n"); + } + } + } + printf("\n"); + } + + if(opt.verbose >= 2) { + printf("Requested Char List\n"); + for(n = opt.chars.start; n; n = n->next) { + printf(" 0x%04x", n->first); + if(n->last != n->first) printf("-0x%04x", n->last); + printf("\n"); + } + printf("\n"); + } + + if(opt.verbose) { + if(chars_missing.start) { + printf("Missing Chars\n"); + for(n = chars_missing.start; n; n = n->next) { + printf(" 0x%04x", n->first); + if(n->last != n->first) printf("-0x%04x", n->last); + printf("\n"); + } + printf("\n"); + } + + if(chars_top.start) { + printf("Top Chars\n"); + for(n = chars_top.start; n; n = n->next) { + printf(" 0x%04x", n->first); + if(n->last != n->first) printf("-0x%04x", n->last); + printf("\n"); + } + printf("\n"); + } + + if(chars_bottom.start) { + printf("Bottom Chars\n"); + for(n = chars_bottom.start; n; n = n->next) { + printf(" 0x%04x", n->first); + if(n->last != n->first) printf("-0x%04x", n->last); + printf("\n"); + } + printf("\n"); + } + + printf( + "Font Size\n Height: %d\n Baseline: %d\n Line Height: %d\n Bitmap Max: %d x %d\n\n", + font_height, -font_y_ofs, fh.line_height, + fh.max_bitmap_width, fh.max_bitmap_height + ); + + for(cd = char_list.start; cd; cd = cd->next) dump_char(cd); + } + + add_data(&font_file, &fh, sizeof fh); + + ofs = font_file.size + fh.entries * sizeof char_ofs; + + for(cd = char_list.start; cd; cd = cd->next) { + if(!cd->ok) continue; + i = 0; + add_bits(char_ofs, &i, 21, cd->c); + add_bits(char_ofs, &i, 19, ofs); + add_data(&font_file, char_ofs, sizeof char_ofs); + ofs += cd->data_len; + } + + for(cd = char_list.start; cd; cd = cd->next) { + if(!cd->ok) continue; + add_data(&font_file, cd->data, cd->data_len); + } + + write_data(&font_file, opt.file); + + return 0; +} + + +file_data_t *read_file(char *name) +{ + file_data_t *fd; + FILE *f; + + fd = new_mem(sizeof *fd); + + if(!name) return fd; + + f = fopen(name, "r"); + + if(!f) { perror(name); return fd; } + + if(fseek(f, 0, SEEK_END)) { + perror(name); + exit(30); + } + + fd->size = fd->real_size = ftell(f); + + if(fseek(f, 0, SEEK_SET)) { + perror(name); + exit(30); + } + + if(fd->size) { + fd->data = new_mem(fd->size); + if(!fd->data) { + fprintf(stderr, "malloc failed\n"); + exit(30); + } + } + + if(fread(fd->data, 1, fd->size, f) != fd->size) { + perror(name); + exit(30); + } + + fclose(f); + + return fd; +} + + +void dump_char(char_data_t *cd) +{ + int i, j, y0, y1, y2, x0, x1, x2, width; + unsigned char *p; + char c; + + if(!cd || !cd->ok) return; + + printf("Char 0x%04x '%s'", cd->c, utf32_to_utf8(cd->c)); + if(cd->top) printf(" top"); + if(cd->bottom) printf(" bottom"); + printf("\n"); + + if(cd->font) printf(" Font: #%d %s (%d)\n", cd->font->index, cd->font->name, cd->font->size); + + printf( + " Bitmap: %d x %d\n Advance: %d\n Offset: %d x %d\n", + cd->bitmap_width, cd->bitmap_height, + cd->x_advance, cd->x_ofs, cd->y_ofs + ); + + if(opt.verbose >= 2 && cd->data) { + printf(" Data[%d]:", cd->data_len); + for(i = 0; i < cd->data_len; i++) { + if(!(i & 7)) { + printf("\n "); + } + printf(" %02x", cd->data[i]); + } + printf("\n"); + } + + if(cd->bitmap) { + p = cd->bitmap; + + y0 = font_height + font_y_ofs; + y1 = y0 - cd->bitmap_height - cd->y_ofs; + y2 = y1 + cd->bitmap_height; + + x1 = cd->bitmap_width + cd->x_ofs; + if(cd->x_advance > x1) x1 = cd->x_advance; + + if(cd->x_ofs < 0) { + width = x1 - cd->x_ofs; + x1 = 0; + x0 = -cd->x_ofs; + } + else { + width = x1; + x1 = cd->x_ofs; + x0 = 0; + } + + x2 = x1 + cd->bitmap_width; + + // printf("y0 = %d, y1 = %d, y2 = %d\n", y0, y1, y2); + // printf("x0 = %d, x1 = %d, x2 = %d, width = %d\n", x0, x1, x2, width); + + printf(" "); + c = ' '; + for(i = 0; i < cd->x_advance + x0; i++ ) { + if(i == x0) c = '_'; + printf("%c", c); + } + printf("\n"); + + for(j = 0; j < font_height; j++) { + printf(" %s", j == y0 - 1 ? "->|" : " |"); + if(j < y1 || j >= y2) { + for(i = 0; i < width; i++) printf("."); + } + else { + for(i = 0; i < width; i++) { + if(i < x1 || i >= x2) { + printf("."); + } + else { + c = p[(j - y1) * cd->bitmap_width + i - x1]; + if(c == 0) { + c = ' '; + } + else if(c >= MAX_GRAY) { + c = '#'; + } + else { + c += '0'; + if(c > '9') c += 'a' - '9' - 1; + } + printf("%c", c); + } + } + } + printf("|%s\n", j == y0 - 1 ? "<-" : ""); + } + + printf(" "); + c = ' '; + for(i = 0; i < cd->x_advance + x0; i++ ) { + if(i == x0) c = '-'; + printf("%c", c); + } + printf("\n"); + } + + printf("\n"); +} + + +void add_data(file_data_t *d, void *buffer, unsigned size) +{ + if(!size || !d || !buffer) return; + + if(d->size + size > d->real_size) { + d->real_size = d->size + size + 0x1000; + d->data = realloc(d->data, d->real_size); + if(!d->data) d->real_size = 0; + } + + if(d->size + size <= d->real_size) { + memcpy(d->data + d->size, buffer, size); + d->size += size; + } + else { + fprintf(stderr, "Oops, out of memory? Aborted.\n"); + exit(10); + } +} + + +void write_data(file_data_t *d, char *name) +{ + FILE *f; + + f = strcmp(name, "-") ? fopen(name, "w") : stdout; + + if(!f) { + perror(name); + return; + } + + if(fwrite(d->data, d->size, 1, f) != 1) { + perror(name); + exit(3); + } + + fclose(f); +} + + +int intersect(int first0, int last0, int first1, int last1) +{ + return + (first1 >= first0 && first1 <= last0 + 1) || + (last1 >= first0 - 1 && last1 <= last0) || + (first1 < first0 && last1 > last0); +} + + +void insert_int_list(list_t *list, int first, int last) +{ + n_set_t *n, *p, *next; + + for(n = list->start; n; n = n->next) { + if(intersect(n->first, n->last, first, last)) { + if(first < n->first) n->first = first; + if(last > n->last) n->last = last; + break; + } + } + + if(!n) { /* not joined */ + if(!(n = list->start) || first < n->first) { + list->start = p = new_mem(sizeof *p); + p->next = n; + p->first = first; + p->last = last; + } + else { + for(n = list->start; n; n = n->next) { + if(!n->next || first < n->next->first) { + p = new_mem(sizeof *p); + p->next = n->next; + p->first = first; + p->last = last; + n->next = p; + if(!p->next) list->end = p; + break; + } + } + } + } + + for(n = list->start; n; n = next) { + if(!(next = n->next)) break; + + if(intersect(n->first, n->last, next->first, next->last)) { + if(next->first < n->first) n->first = next->first; + if(next->last > n->last) n->last = next->last; + n->next = next->next; + if(!n->next) list->end = n; + free(next); + next = n; + } + } +} + + +void *add_list(list_t *list, void *entry) +{ + if(list->end) { + ((list_any_t *) list->end)->next = entry; + } + list->end = entry; + + if(!list->start) { + list->start = entry; + } + + return entry; +} + + +void *new_mem(size_t size) +{ + return calloc(size, 1); +} + + +char *new_str(char *str) +{ + return str ? strdup(str) : str; +} + + +int parse_int_list(list_t *list, char *str) +{ + int err = 0, i, j, k; + char *s, *s1, *t; + + if(!str) return 0; + + while(isspace(*str)) str++; + + if(!*str) return 0; + + t = str = new_str(str); + + while((s = strsep(&t, ","))) { + if(sscanf(s, "%i - %i%n", &i, &j, &k) == 2 && k == strlen(s)) { + insert_int_list(list, i, j); + } + else { + i = strtol(s, &s1, 0); + if(*s1) { + err = 1; + break; + } + insert_int_list(list, i, i); + } + } + + free(str); + + return err; +} + + +char *search_font(char *font_path, char *name) +{ + int i; + char *font_name = NULL; + char *cur_path, *sep; + struct stat sbuf; + static char *suffix[] = { "", ".otf", ".ttf", ".ttc", ".pfa", ".pfb", ".pcf.gz" }; + + if(!font_path || !name) return NULL; + + while(*font_path) { + cur_path = strdup(font_path); + + if((sep = strchr(cur_path, ':'))) *sep = 0; + + for(i = 0; i < sizeof suffix / sizeof *suffix; i++) { + asprintf(&font_name, "%s/%s%s", cur_path, name, suffix[i]); + if(!stat(font_name, &sbuf) && S_ISREG(sbuf.st_mode)) break; + free(font_name); + font_name = NULL; + } + + if(i < sizeof suffix / sizeof *suffix) { + free(cur_path); + break; + } + + if(sep) { + font_path += sep - cur_path + 1; + } + else { + font_path = ""; + } + + free(cur_path); + } + + return font_name; +} + + +void render_char(char_data_t *cd) +{ + n_set_t *n; + int err, glyph_index; + FT_GlyphSlot glyph; + int i, j; + unsigned char uc; + + if(cd->ok) { + glyph_index = FT_Get_Char_Index(cd->font->face, cd->c); + if(!glyph_index) return; + + err = FT_Load_Char( + cd->font->face, + cd->c, + FT_LOAD_RENDER | + (cd->font->nobitmap ? FT_LOAD_NO_BITMAP : 0) | + (cd->font->autohint ? cd->font->autohint == 1 ? FT_LOAD_NO_AUTOHINT : FT_LOAD_FORCE_AUTOHINT : 0) + ); + if(err) return; + } + else { + font_t *font; + + for(font = font_list.start; font; font = font->next) { + if(!font->ok) continue; + if(font->chars.start) { + for(n = font->chars.start; n; n = n->next) { + if(cd->c >= n->first && cd->c <= n->last) break; + } + if(!n) continue; + } + + glyph_index = FT_Get_Char_Index(font->face, cd->c); + if(!glyph_index) continue; + + err = FT_Load_Char( + font->face, + cd->c, + FT_LOAD_RENDER | + (font->nobitmap ? FT_LOAD_NO_BITMAP : 0) | + (font->autohint ? font->autohint == 1 ? FT_LOAD_NO_AUTOHINT : FT_LOAD_FORCE_AUTOHINT : 0) + ); + if(err) continue; + + cd->ok = 1; + cd->font = font; + + break; + } + } + + if(!cd->ok) return; + + glyph = cd->font->face->glyph; + if(cd->font->bold) FT_GlyphSlot_Embolden(glyph); + + cd->bitmap_width = glyph->bitmap.width; + cd->bitmap_height = glyph->bitmap.rows; + free(cd->bitmap); + cd->bitmap = new_mem(cd->bitmap_width * cd->bitmap_height); + + cd->x_advance = glyph->advance.x / 64.; + cd->x_ofs = glyph->bitmap_left; + cd->y_ofs = glyph->bitmap_top - glyph->bitmap.rows; + + for(j = 0; j < cd->bitmap_height; j++) { + for(i = 0; i < cd->bitmap_width; i++) { + switch(glyph->bitmap.pixel_mode) { + case FT_PIXEL_MODE_MONO: + uc = ((glyph->bitmap.buffer[i / 8 + j * glyph->bitmap.pitch] >> (7 - (i & 7))) & 1) * MAX_GRAY; + break; + + case FT_PIXEL_MODE_GRAY: +#if COLOR_QUANT == 1 + uc = (glyph->bitmap.buffer[i + j * glyph->bitmap.pitch] * (MAX_GRAY + 1)) / (255 + 1); +#else + uc = (glyph->bitmap.buffer[i + j * glyph->bitmap.pitch] * (2 * MAX_GRAY)) / (255 + 1); + uc = (uc + 1) / 2; +#endif + break; + + default: + uc = 0; + } + cd->bitmap[i + j * cd->bitmap_width] = uc; + } + } + +#if 0 + printf( + "bitmap: mode %d, %d x %d, + %d x %d, advance %f x %f\n", + glyph->bitmap.pixel_mode, + glyph->bitmap.width, + glyph->bitmap.rows, + glyph->bitmap_left, + glyph->bitmap_top, + glyph->advance.x / 64., + glyph->advance.y / 64. + ); + + printf( + "metrics:\n size %f x %f\n bearing %f x %f, advance %f\n", + glyph->metrics.width / 64., glyph->metrics.height / 64., + glyph->metrics.horiBearingX / 64., glyph->metrics.horiBearingY / 64., + glyph->metrics.horiAdvance / 64. + ); +#endif +} + + +int empty_row(char_data_t *cd, int row) +{ + unsigned char *p1, *p2; + + p2 = (p1 = cd->bitmap + row * cd->bitmap_width) + cd->bitmap_width; + while(p1 < p2) if(*p1++) return 0; + + return 1; +} + + +int empty_column(char_data_t *cd, int col) +{ + int i; + unsigned char *p; + + for(p = cd->bitmap + col, i = 0; i < cd->bitmap_height; i++, p += cd->bitmap_width) { + if(*p) return 0; + } + + return 1; +} + + +void add_bbox(char_data_t *cd) +{ + int i; + unsigned char *bitmap; + int width, height, dx, dy; + + if(!cd->ok) return; + + width = cd->bitmap_width; + height = cd->bitmap_height; + dx = dy = 0; + + while(height && empty_row(cd, height - 1)) height--; + while(width && empty_column(cd, width - 1)) width--; + + for(dx = 0; dx < width && empty_column(cd, dx); dx++); + for(dy = 0; dy < height && empty_row(cd, dy); dy++); + + width -= dx; + height -= dy; + + if(width != cd->bitmap_width || height != cd->bitmap_height) { + bitmap = new_mem(width * height); + + for(i = 0; i < height; i++) { + memcpy(bitmap + i * width, cd->bitmap + dx + (i + dy) * cd->bitmap_width, width); + } + + free(cd->bitmap); + cd->bitmap = bitmap; + + cd->x_ofs += dx; + cd->y_ofs += cd->bitmap_height - height - dy; + + cd->bitmap_width = width; + cd->bitmap_height = height; + } + + if(!cd->bitmap_width || !cd->bitmap_height) { + cd->x_ofs = cd->y_ofs = 0; + } +} + + +/* + * Fake proprtionally spaced font from fixed size font. + */ +void make_prop(char_data_t *cd) +{ + int width; + + if(!cd->ok || !cd->font->prop) return; + + width = cd->bitmap_width ? cd->bitmap_width + cd->font->prop : cd->font->space_width; + cd->x_ofs = cd->font->prop; + cd->x_advance = width; +} + + +char *utf32_to_utf8(int u8) +{ + static char buf[16]; + static iconv_t ic = (iconv_t) -1; + char *ibuf, *obuf; + size_t obuf_left, ibuf_left; + int i; + + *buf = 0; + + if(ic == (iconv_t) -1) { + ic = iconv_open("utf8", "utf32le"); + if(ic == (iconv_t) -1) { + fprintf(stderr, "Error: can't convert utf8 data.\n"); + exit(1); + } + } + + ibuf = (char *) &u8; + obuf = buf; + ibuf_left = 4; + obuf_left = sizeof buf - 1; + + i = iconv(ic, &ibuf, &ibuf_left, &obuf, &obuf_left); + + if(i >= 0) { + i = sizeof buf - 1 - obuf_left; + buf[i] = 0; + } + else { + fprintf(stderr, "Warning: failed to convert 0x%x to utf8.\n", u8); + } + + return buf; +} + + +void add_bits(unsigned char *buf, int *buf_ptr, int bits, unsigned data) +{ + int rem, ptr; + + while(bits > 0) { + ptr = *buf_ptr >> 3; + rem = 8 - (*buf_ptr & 7); + if(rem > bits) rem = bits; + buf[ptr] = (buf[ptr] & ((1 << (*buf_ptr & 7)) - 1)) + ((data & ((1 << rem) - 1)) << (*buf_ptr & 7)); + *buf_ptr += rem; + bits -= rem; + data >>= rem; + } +} + + +unsigned read_unsigned_bits(unsigned char *buf, int *buf_ptr, int bits) +{ + int rem, ptr; + unsigned data = 0, dptr = 0; + + while(bits > 0) { + ptr = *buf_ptr >> 3; + rem = 8 - (*buf_ptr & 7); + if(rem > bits) rem = bits; + data += ((buf[ptr] >> (*buf_ptr & 7)) & ((1 << rem) - 1)) << dptr; + dptr += rem; + *buf_ptr += rem; + bits -= rem; + } + + return data; +} + + +int read_signed_bits(unsigned char *buf, int *buf_ptr, int bits) +{ + int i; + + i = read_unsigned_bits(buf, buf_ptr, bits); + + if(bits == 0) return i; + + if((i & (1 << (bits - 1)))) { + i += -1 << bits; + } + + return i; +} + + +int signed_bits(int num) +{ + int bits = 32; + int val = num & (1 << 31); + + if(num == 0) return 0; + + while((num & (1 << 31)) == val) { + bits--; + num <<= 1; + } + + return bits + 1; +} + + +int unsigned_bits(unsigned num) +{ + int bits = 0; + + if(num == 0) return 0; + + while(num) { + num >>= 1; + bits++; + } + + return bits; +} + + +void encode_cnt(unsigned char *buf, int *buf_ptr, int lc, int lc_cnt) +{ + if((lc_cnt - 2) >= (1 << GRAY_BIT_COUNT)) { + fprintf(stderr, "cnt %d too large\n", lc_cnt); + exit(1); + } + + if(lc_cnt >= 2) { + *buf_ptr -= GRAY_BITS; + add_bits(buf, buf_ptr, GRAY_BITS, lc == 0 ? REP_BG : REP_FG); + // printf("(%d)", lc == 0 ? REP_BG : REP_FG); + add_bits(buf, buf_ptr, GRAY_BIT_COUNT, lc_cnt - 2); + // printf("(%d)", lc_cnt - 2); + } + else if(lc_cnt) { + add_bits(buf, buf_ptr, GRAY_BITS, lc); + // printf("[%d]", lc); + } +} + + +void encode_char(char_data_t *cd) +{ + int i, j, bits, lc_cnt; + unsigned char *buf; + int buf_ptr; + unsigned type; + unsigned char col[MAX_GRAY + 1]; + int lc; + + if(!cd->ok) return; + + // just large enough + buf = new_mem(cd->bitmap_width * cd->bitmap_height + 5 * 8 + 1); + buf_ptr = 0; + + memset(col, 0, sizeof col); + + for(i = 0; i < cd->bitmap_width * cd->bitmap_height; i++) { + if(cd->bitmap[i] <= MAX_GRAY) { + col[cd->bitmap[i]] = 1; + } + } + + type = 0; + for(i = 1; i < MAX_GRAY; i++) { + if(col[i]) { + type = 1; + break; + } + } + + // type 0: mono, 1: grays + + // always 1 + type = 1; + + add_bits(buf, &buf_ptr, 2, type); + + bits = unsigned_bits(cd->bitmap_width); + j = unsigned_bits(cd->bitmap_height); + if(j > bits) bits = j; + j = signed_bits(cd->x_advance); + if(j > bits) bits = j; + j = signed_bits(cd->x_ofs); + if(j > bits) bits = j; + j = signed_bits(cd->y_ofs); + if(j > bits) bits = j; + + if(!bits) bits = 1; + + if(bits > 8) { + free(buf); + cd->ok = 0; + + return; + } + + add_bits(buf, &buf_ptr, 3, bits - 1); + add_bits(buf, &buf_ptr, bits, cd->bitmap_width); + add_bits(buf, &buf_ptr, bits, cd->bitmap_height); + add_bits(buf, &buf_ptr, bits, cd->x_ofs); + add_bits(buf, &buf_ptr, bits, cd->y_ofs); + add_bits(buf, &buf_ptr, bits, cd->x_advance); + + switch(type) { + case 0: + for(i = 0; i < cd->bitmap_width * cd->bitmap_height; i++) { + add_bits(buf, &buf_ptr, 1, cd->bitmap[i] ? 1 : 0); + } + break; + + case 1: + lc = -1; + for(i = lc_cnt = 0; i < cd->bitmap_width * cd->bitmap_height; i++) { + if(cd->bitmap[i] == lc && (lc == 0 || lc == MAX_GRAY) && lc_cnt < ((1 << GRAY_BIT_COUNT) + 1)) { + lc_cnt++; + } + else { + if(lc_cnt) { + encode_cnt(buf, &buf_ptr, lc, lc_cnt); + lc_cnt = 0; + lc = -1; + } + add_bits(buf, &buf_ptr, GRAY_BITS, cd->bitmap[i]); + // printf("[%d]", cd->bitmap[i]); + } + lc = cd->bitmap[i]; + } + if(lc_cnt) { + encode_cnt(buf, &buf_ptr, lc, lc_cnt); + } + break; + } + + cd->data = new_mem(cd->data_len = ((buf_ptr + 7) >> 3)); + memcpy(cd->data, buf, cd->data_len); + + free(buf); +} + + +int show_font(char *name) +{ + int i, j, ofs, ofs2, bits, lc, lc_cnt, bitmap_len; + file_data_t *font_file; + font_header_t fh; + unsigned type; + char_data_t *cd; + + opt.verbose++; + + font_file = read_file(name); + + if(font_file->size < sizeof fh) return 0; + + memcpy(&fh, font_file->data, sizeof fh); + + if(fh.magic != MAGIC) { + fprintf(stderr, "%s: wrong file format\n", name); + return 1; + } + + if(font_file->size < sizeof fh + fh.entries * 5) { + fprintf(stderr, "%s: file too short\n", name); + return 2; + } + + font_height = fh.height; + font_y_ofs = -fh.baseline; + + for(i = 0; i < fh.entries; i++) { + cd = add_list(&char_list, new_mem(sizeof *cd)); + j = 0; + cd->c = read_unsigned_bits(font_file->data + sizeof fh + i * 5, &j, 21); + ofs = read_unsigned_bits(font_file->data + sizeof fh + i * 5, &j, 19); + + if(i != fh.entries - 1) { + j = 21; + ofs2 = read_unsigned_bits(font_file->data + sizeof fh + (i + 1) * 5, &j, 19); + } + else { + ofs2 = font_file->size; + } + + if(ofs2 < ofs || ofs2 > font_file->size) { + fprintf(stderr, "%s: invalid data for chhar 0x%04x\n", name, cd->c); + return 3; + } + + cd->data = new_mem(cd->data_len = ofs2 - ofs); + memcpy(cd->data, font_file->data + ofs, cd->data_len); + } + + for(cd = char_list.start; cd; cd = cd->next) { + j = 0; + type = read_unsigned_bits(cd->data, &j, 2); + bits = read_unsigned_bits(cd->data, &j, 3) + 1; + + if(type > 1) { + fprintf(stderr, "%s: unknown type %d for char 0x%04x\n", name, type, cd->c); + return 3; + } + + cd->bitmap_width = read_unsigned_bits(cd->data, &j, bits); + cd->bitmap_height = read_unsigned_bits(cd->data, &j, bits); + cd->x_ofs = read_signed_bits(cd->data, &j, bits); + cd->y_ofs = read_signed_bits(cd->data, &j, bits); + cd->x_advance = read_signed_bits(cd->data, &j, bits); + + cd->bitmap = new_mem(bitmap_len = cd->bitmap_width * cd->bitmap_height); + + switch(type) { + case 0: + for(i = 0; i < bitmap_len; i++) { + cd->bitmap[i] = read_unsigned_bits(cd->data, &j, 1) ? MAX_GRAY : 0; + } + break; + + case 1: + for(i = 0; i < bitmap_len;) { + lc = read_unsigned_bits(cd->data, &j, GRAY_BITS); + // printf("(%d)", lc); + if(lc <= MAX_GRAY) { + cd->bitmap[i++] = lc; + continue; + } + lc = lc == REP_BG ? 0 : MAX_GRAY; + lc_cnt = read_unsigned_bits(cd->data, &j, GRAY_BIT_COUNT) + 3; + // printf("(%d)", lc_cnt); + while(i < bitmap_len && lc_cnt--) cd->bitmap[i++] = lc; + } + break; + } + + cd->ok = 1; + } + + printf( + "Font Size\n Height: %d\n Baseline: %d\n Line Height: %d\n\n", + font_height, -font_y_ofs, fh.line_height + ); + + for(cd = char_list.start; cd; cd = cd->next) dump_char(cd); + + return 0; +} + + +void get_font_height(font_t *font, int *height, int *y_ofs) +{ + int h, dy, i; + char_data_t *cd; + + // get font dimensions + h = dy = 0; + for(cd = char_list.start; cd; cd = cd->next) { + if(!cd->ok) continue; + if(font && cd->font != font) continue; + if(cd->y_ofs < dy) dy = cd->y_ofs; + i = cd->bitmap_height + cd->y_ofs; + if(i > h) h = i; + } + + *height = h - dy; + *y_ofs = dy; +} + + diff --git a/gfxboot-x11.c b/gfxboot-x11.c new file mode 100644 index 0000000..cc10fac --- /dev/null +++ b/gfxboot-x11.c @@ -0,0 +1,687 @@ +#define _GNU_SOURCE + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#define FAKE_WIDTH 800 +#define FAKE_HEIGHT 600 + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +gfxboot_data_t *gfxboot_data; + +struct { + unsigned width, height; + Display *display; + Window window; + GC gc; + XIM xim; + XIC xic; + XImage *ximage; + Visual *visual; + int depth; + int timeout; +} config; + +XImage fake_ximage = { + .width = FAKE_WIDTH, .height = FAKE_HEIGHT, + .bitmap_pad = 32, .bytes_per_line = FAKE_WIDTH * 4, .bits_per_pixel = 32, + .red_mask = 0xff0000, .green_mask = 0xff00, .blue_mask = 0xff +}; + +struct { + unsigned verbose:1; + unsigned help:1; + unsigned x11:1; + FILE *debug_file; +} opt; + +struct option options[] = { + { "help", 0, NULL, 'h' }, + { "verbose", 0, NULL, 'v' }, + { "no-x11", 0, NULL, 'n' }, + { "file", 1, NULL, 1 }, + { } +}; + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void help(void); +void run_debug_commands(FILE *file); + +int NewXErrorHandler(Display *display, XErrorEvent *xev); +int NewXIOErrorHandler(Display *display); +color_bits_t mask_to_color_bits(unsigned mask); + +int x11_create_window(unsigned width, unsigned height); +int x11_close_window(void); +int x11_event_loop(void); + +int x11_gfxboot_init(void); +int x11_gfxboot_process_key(int *key); +void x11_gfxboot_print_timeout(int timeout, void *data); +void x11_gfxboot_clear_timeout(void *data); +void x11_gfxboot_data_free(void); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int main(int argc, char **argv) +{ + int i; + + opterr = 0; + + opt.x11 = 1; + + while((i = getopt_long(argc, argv, "hv", options, NULL)) != -1) { + switch(i) { + case 1: + if(!strcmp(optarg, "-")) { + opt.debug_file = stdin; + } + else { + opt.debug_file = fopen(optarg, "r"); + } + break; + + case 'v': + opt.verbose = 1; + break; + + case 'n': + opt.x11 = 0; + break; + + default: + help(); + return i == 'h' ? 0 : 1; + } + } + + if(argc == optind + 1) { + if(chdir(argv[optind])) { + perror(argv[optind]); + return 1; + } + } + else { + fprintf(stderr, "gfxboot-x11: directory missing\n"); + help(); + return 1; + } + + if(opt.x11) { + XSetErrorHandler(NewXErrorHandler); + XSetIOErrorHandler(NewXIOErrorHandler); + + if(x11_create_window(FAKE_WIDTH, FAKE_HEIGHT)) return 1; + } + else { + config.ximage = &fake_ximage; + config.ximage->data = calloc(1, (size_t) (config.ximage->bytes_per_line * config.ximage->height)); + config.width = (unsigned) config.ximage->width; + config.height = (unsigned) config.ximage->height; + config.depth = config.ximage->bits_per_pixel; + } + + config.timeout = opt.debug_file ? 0 : 10; + + if(x11_gfxboot_init()) return 2; + + run_debug_commands(opt.debug_file); + + if(opt.x11) { + x11_gfxboot_print_timeout(config.timeout, NULL); + x11_event_loop(); + x11_close_window(); + } + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// Display short usage message. +void help() +{ + printf( + "Usage: gfxboot-x11 [OPTIONS] DIR\n" + "\n" + "Run gfxboot file in DIR.\n" + "\n" + "Options:\n" + " --file FILE Run debug commands from FILE at startup.\n" + " -v, --verbose Show more detailed info.\n" + " -h, --help Show this text.\n" + "\n" + ); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void run_debug_commands(FILE *file) +{ + if(!file) return; + + char *buf = NULL; + size_t len = 0; + ssize_t line_len; + + while((line_len = getline(&buf, &len, file)) > 0) { + buf[line_len - 1] = 0; // strip newline + gfxboot_debug_command(buf); + } + + fclose(file); + + free(buf); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int NewXErrorHandler(Display *display, XErrorEvent *xev) +{ + gfxboot_log("X Error\n"); + + exit(1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int NewXIOErrorHandler(Display *display) +{ + // gfxboot_log("X IO Error\n"); + + exit(0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +color_bits_t mask_to_color_bits(unsigned mask) +{ + color_bits_t x = { 0, 0 }; + + if(mask) for(; !(mask & 1); mask >>= 1, x.pos++); + if(mask) for(; mask; mask >>= 1, x.size++); + + return x; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int x11_create_window(unsigned width, unsigned height) +{ + char *title = "gfxboot2"; + + config.width = width; + config.height = height; + + XSizeHints hints; + + hints.width_inc = 1; + hints.height_inc = 1; + + hints.min_width = hints.max_width = hints.width = (int) config.width; + hints.min_height = hints.max_height = hints.height = (int) config.height; + + hints.flags = PResizeInc | PSize | PMinSize | PMaxSize; + + if((config.display = XOpenDisplay(NULL)) == NULL) { + gfxboot_log("Error: failed to open display.\n"); + + return 1; + } + + config.window = XCreateSimpleWindow( + config.display, DefaultRootWindow(config.display), + 0, 0, + config.width, config.height, + 0, 0, 0 + ); + + gfxboot_log("window id: 0x%08x\n", (unsigned) config.window); + + if(!config.window) { + gfxboot_log("Error: X server does not co-operate\n"); + XCloseDisplay(config.display); + + return 2; + } + + config.xim = XOpenIM(config.display, NULL, NULL, NULL); + if(config.xim) { + config.xic = XCreateIC(config.xim, + XNInputStyle, XIMPreeditNothing | XIMStatusNothing, + XNClientWindow, config.window, + XNFocusWindow, config.window, + NULL + ); + } + + fprintf(stderr, "xim = %p, xic = %p\n", config.xim, config.xic); + + XSetWindowAttributes xswa; + + xswa.backing_store = Always; + xswa.backing_planes = 1; + xswa.save_under = True; + + XChangeWindowAttributes(config.display, config.window, CWBackingStore | CWBackingPlanes | CWSaveUnder, &xswa); + + XSelectInput(config.display, config.window, StructureNotifyMask); + XSetStandardProperties(config.display, config.window, title, title, None, NULL, 0, &hints); + + XMapWindow(config.display, config.window); + XSync(config.display, False); + + XSelectInput(config.display, config.window, NoEventMask); + + config.visual = DefaultVisual(config.display, DefaultScreen(config.display)); + config.depth = DefaultDepth(config.display, DefaultScreen(config.display)); + + if( + ( + config.visual->class != TrueColor && + config.visual->class != DirectColor + ) || + config.depth < 15 + ) { + return 3; + } + + config.gc = XCreateGC(config.display, config.window, 0, 0); + + config.ximage = XCreateImage( + config.display, + config.visual, + (unsigned) config.depth, + ZPixmap, + 0, + NULL, + config.width, + config.height, + 32, + 0 + ); + + if(!config.ximage) { + gfxboot_log("Error: failed to create XImage\n"); + XCloseDisplay(config.display); + + return 4; + } + + config.ximage->data = calloc(1, (size_t) (config.ximage->height * config.ximage->bytes_per_line)); + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int x11_close_window(void) +{ + XFreeGC(config.display, config.gc); + XDestroyImage(config.ximage); + XCloseDisplay(config.display); + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int x11_event_loop() +{ + int exit_event = 0; + + XSelectInput(config.display, config.window, KeyPressMask|ExposureMask|StructureNotifyMask|ButtonPressMask|PointerMotionMask); + + while(!exit_event) { + int action __attribute__ ((unused)) = 0; + XEvent xev; + KeySym ks; + // buf just needs to be large enough to hold a key code + char buf[16], *buf_ptr; + int buf_len, key_code; + char *key_name; + + while(XPending(config.display)) { + XNextEvent(config.display, &xev); + switch(xev.type) { + + case KeyPress: + if(config.xic) { + buf_len = Xutf8LookupString(config.xic, (XKeyEvent *) &xev, buf, sizeof buf - 1, &ks, NULL); + } + else { + buf_len = XLookupString((XKeyEvent *) &xev, buf, sizeof buf - 1, &ks, NULL); + } + if(buf_len >= 0) buf[buf_len + 1] = 0; + buf_ptr = buf; + key_code = gfx_utf8_dec(&buf_ptr, &buf_len); + if(key_code < 0) key_code = -key_code; + key_name = XKeysymToString(ks); + gfxboot_debug(2, 2, "x11_event_loop: key = 0x%02x '%s'\n", key_code, key_name); + // '^C' + if(key_code == 0x03) exit_event = 1; + action = x11_gfxboot_process_key(&key_code); + break; + + case Expose: + // gfxboot_log("XEvent.type == Expose(%d, %d, %d, %d)\n", xev.xexpose.x, xev.xexpose.y, xev.xexpose.width, xev.xexpose.height); + break; + + case ConfigureNotify: + // gfxboot_log("XEvent.type == ConfigureNotify\n"); + if(xev.xconfigure.width != (int) config.width || xev.xconfigure.height != (int) config.height) { + gfxboot_log("ConfigureNotify: oops\n"); + } + break; + + case ButtonPress: + gfxboot_log("XEvent.type == ButtonPress\n"); + break; + + default: + // gfxboot_log("XEvent.type == 0x%x\n", (int) xev.type); + break; + } + } + } + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int x11_gfxboot_init() +{ + x11_gfxboot_data_free(); + + gfxboot_data = calloc(1, sizeof *gfxboot_data); + if(!gfxboot_data) return 1; + + // don't log to console + gfxboot_data->vm.debug.log_level_console = -1; + + gfxboot_data->menu.entry = 0; + gfxboot_data->menu.nested = 0; + gfxboot_data->menu.timeout.max = config.timeout; + + gfxboot_data->screen.real.ptr = config.ximage->data; + gfxboot_data->screen.real.width = (int) config.width; + gfxboot_data->screen.real.height = (int) config.height; + + gfxboot_data->screen.real.bytes_per_line = config.ximage->bytes_per_line; + gfxboot_data->screen.real.bytes_per_pixel = config.ximage->bitmap_pad / 8; + gfxboot_data->screen.real.bits_per_pixel = config.ximage->bits_per_pixel; + + gfxboot_data->screen.real.red = mask_to_color_bits(config.ximage->red_mask); + gfxboot_data->screen.real.green = mask_to_color_bits(config.ximage->green_mask); + gfxboot_data->screen.real.blue = mask_to_color_bits(config.ximage->blue_mask); + + unsigned u = ~(config.ximage->red_mask | config.ximage->green_mask | config.ximage->blue_mask); + u &= ((uint64_t) 1 << (gfxboot_data->screen.real.bytes_per_pixel * 8)) - 1; + gfxboot_data->screen.real.res = mask_to_color_bits(u); + + // reserve 16 MiB for our VM + gfxboot_data->vm.mem.size = 16 * (1 << 20); + gfxboot_data->vm.mem.ptr = calloc(1, gfxboot_data->vm.mem.size); + if(!gfxboot_data->vm.mem.ptr) return 1; + + if(gfxboot_init()) return 1; + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int x11_gfxboot_process_key(int *key) +{ + int action; + + if(!gfxboot_data || !key) return 0; + + gfxboot_debug(2, 2, "x11_gfxboot_process_key: key = 0x%x '%s'\n", *key, *key >= ' ' ? gfx_utf8_enc((unsigned) *key) : ""); + + if(gfxboot_data->menu.timeout.current > 0) { + // grub_env_unset("timeout"); + // grub_env_unset("fallback"); + x11_gfxboot_clear_timeout(NULL); + } + + action = gfxboot_process_key((unsigned) *key); + + gfxboot_debug(1, 2, "x11_gfxboot_process_key: action = %d.%02x\n", action >> 8, action & 0xff); + + *key = 0; + + return action; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void x11_gfxboot_print_timeout(int timeout, void *data __attribute__ ((unused))) +{ + gfxboot_data->menu.timeout.current = timeout; + + gfxboot_timeout(); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void x11_gfxboot_clear_timeout(void *data __attribute__ ((unused))) +{ + gfxboot_data->menu.timeout.current = 0; + + gfxboot_timeout(); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// Print to serial line and/or console. +// +// dst - bitmask; bit 0: serial, bit 1: console +// +int gfxboot_printf(int dst, const char *format, ...) +{ + int len; + char *s; + int log_level_serial = (signed char) ((dst >> 8) & 0xff); + int log_level_console = (signed char) ((dst >> 16) & 0xff); + + if(!format) return 0; + + va_list args; + va_start(args, format); + len = vasprintf(&s, format, args); + va_end(args); + + if( + (dst & 1) && + (!gfxboot_data || log_level_serial <= gfxboot_data->vm.debug.log_level_serial) + ) { + fwrite(s, (size_t) len, 1, stdout); + fflush(stdout); + } + + if( + (dst & 2) && + gfxboot_data && + log_level_console <= gfxboot_data->vm.debug.log_level_console + ) { + char *t = s; + while(*t) { + if(*t == '\n') gfx_console_putc('\r', 1); + gfx_console_putc((unsigned char) *t++, 1); + } + } + + free(s); + + return len; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfxboot_asprintf(char **str, const char *format, ...) +{ + int len; + + va_list args; + va_start(args, format); + len = vasprintf(str, format, args); + va_end(args); + + return len; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfxboot_snprintf(char *str, unsigned size, const char *format, ...) +{ + int len; + + va_list args; + va_start(args, format); + len = vsnprintf(str, size, format, args); + va_end(args); + + return len; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfxboot_sys_free(void *ptr) +{ + if(ptr) free(ptr); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned long gfxboot_sys_strlen(const char *s) +{ + return strlen(s); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfxboot_sys_strcmp(const char *s1, const char *s2) +{ + return strcmp(s1, s2); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +long int gfxboot_sys_strtol(const char *nptr, char **endptr, int base) +{ + return strtol(nptr, endptr, base); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfxboot_sys_read_file(char *name, void **buf) +{ + int size = -1; + char *tmp = NULL; + struct stat sbuf; + int fd, len; + + *buf = NULL; + + if(!name) return size; + + fd = open(name, O_RDONLY); + + gfxboot_log("open(%s) = %d\n", name, fd); + + if(fd >= 0) { + if(!fstat(fd, &sbuf)) { + size = sbuf.st_size; + } + + if(size > 0) { + *buf = tmp = malloc((size_t) size); + while(size > 0) { + len = read(fd, tmp, (size_t) size); + if(len <= 0) break; + size -= len; + tmp += len; + } + } + + close(fd); + + if(size > 0) { + *buf = NULL; + free(tmp); + size = -1; + } + else { + size = sbuf.st_size; + } + } + + gfxboot_log("read(%s) = %d\n", name, size); + + return size; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfxboot_screen_update(area_t area) +{ + if(opt.x11) { + XPutImage( + config.display, config.window, config.gc, config.ximage, + area.x, area.y, area.x, area.y, (unsigned) area.width, (unsigned) area.height + ); +} +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfxboot_getkey() +{ + int key = 0; + struct termios tio_old, tio; + + tcgetattr(0, &tio); + tio_old = tio; + tio.c_lflag &= (unsigned) ~(ICANON | ECHO); + tcsetattr(0, TCSANOW, &tio); + + key = fgetc(stdin); + + tcsetattr(0, TCSANOW, &tio_old); + + if(key == EOF) key = 0; + + return key; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void x11_gfxboot_data_free() +{ + if(gfxboot_data) { + free(gfxboot_data->menu.entries); + free(gfxboot_data->vm.mem.ptr); + + free(gfxboot_data); + } + + gfxboot_data = NULL; +} diff --git a/gfxboot.c b/gfxboot.c new file mode 100644 index 0000000..7eb7a83 --- /dev/null +++ b/gfxboot.c @@ -0,0 +1,404 @@ +#include +#include + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// program functions + +static uint64_t gfx_decode_number(const void *data, unsigned len); +static unsigned decode_raw_instr(uint8_t *data, decoded_instr_t *instr); + +static inline uint64_t tsc(void) +{ +#if defined (__x86_64__) + uint32_t eax, edx; + + asm volatile ( + "rdtsc\n" + : "=a" (eax), "=d" (edx) + ); + + return ((uint64_t) edx << 32) + eax; +#elif defined (__i386__) + uint64_t tsc; + + asm volatile ( + "rdtsc" + : "=A" (tsc) + ); + + return tsc; +#else + #error "OOPS" + return 0; +#endif +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +uint64_t gfx_decode_number(const void *data, unsigned len) +{ + const uint8_t *p = data; + uint64_t val = 0; + + p += len; + + while(len--) { + val <<= 8; + val += *--p; + } + + return val; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_program_init(obj_id_t program) +{ + gfxboot_data->vm.error = (error_t ) { }; + + gfxboot_data->vm.debug.steps = 0; + gfxboot_data->vm.debug.log_prompt = 1; + + gfxboot_data->vm.program.steps = 0; + + gfx_obj_ref_dec(gfxboot_data->vm.program.pstack); + + gfx_obj_ref_dec(gfxboot_data->vm.program.context); + gfxboot_data->vm.program.context = 0; + + gfxboot_data->vm.program.pstack = gfx_obj_array_new(0); + + if(!gfxboot_data->vm.program.pstack) { + GFX_ERROR(err_no_memory); + return 0; + } + + if(!gfx_is_code(program)) { + GFX_ERROR(err_invalid_code); + return 0; + } + + obj_id_t ctx_id = gfx_obj_context_new(t_ctx_func); + context_t *ctx = gfx_obj_context_ptr(ctx_id); + if(!ctx) { + GFX_ERROR(err_no_memory); + return 0; + } + + ctx->dict_id = gfx_obj_ref_inc(gfxboot_data->vm.program.dict); + ctx->code_id = gfx_obj_ref_inc(program); + + data_t *code = gfx_obj_mem_ptr(ctx->code_id); + + gfxboot_log("program loaded %s (%u bytes)\n", gfx_obj_id2str(program), code->size); + + gfxboot_data->vm.program.context = ctx_id; + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned decode_raw_instr(uint8_t *data, decoded_instr_t *instr) +{ + unsigned inst_size = 1; + + unsigned type = data[0] & 0x0f; + + unsigned n = data[0] >> 4; + + instr->arg2 = 0; + instr->type = type; + + if(TYPE_EXPECTS_DATA(type)) { + unsigned len; + if(n >= 12) { + n -= 11; + len = gfx_decode_number(data + 1, n); + inst_size += n; + } + else { + len = n; + } + instr->arg1 = len; + instr->arg2 = data + inst_size; + inst_size += len; + } + else { + int64_t val; + if(n >= 8) { + n -= 7; + val = (int64_t) gfx_decode_number(data + 1, n); + inst_size += n; + // ints are signed, everything else is encoded as unsigned + if(type == t_int) { + // expand sign bit + val <<= 8 * (8 - n); + val >>= 8 * (8 - n); + } + } + else { + val = n; + } + instr->arg1 = val; + } + + return inst_size; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// decoded arguments are: +// +// int64_t arg1, uint8_t[arg1] arg2 +// +// arg2 is optional and may be 0; if arg2 is not 0, arg1 is its length +// +int gfx_decode_instr(decoded_instr_t *instr) +{ + *instr = (decoded_instr_t) { }; + + if(gfxboot_data->vm.program.stop || gfxboot_data->vm.error.id) return 0; + + gfxboot_data->vm.program.steps++; + + obj_id_t ctx_id = gfxboot_data->vm.program.context; + if(!ctx_id) return 0; + + instr->ctx = gfx_obj_context_ptr(ctx_id); + if(!instr->ctx) { + GFX_ERROR(err_internal); + return 0; + } + + instr->code_id = instr->ctx->code_id; + + unsigned ip = instr->ctx->ip; + instr->ctx->current_ip = ip; + + obj_t *code_ptr = gfx_obj_ptr(instr->code_id); + + if(!code_ptr || code_ptr->base_type != OTYPE_MEM) { + GFX_ERROR(err_invalid_code); + return 0; + } + + data_t *mem = OBJ_DATA_FROM_PTR(code_ptr); + + unsigned size = mem->size; + uint8_t *data = mem->ptr; + + // at code end, do nothing + if(ip == size) return 0; + + if(ip + 1 > size) { // encoded instructions are at least 1 bytes + GFX_ERROR(err_invalid_code); + return 0; + } + + unsigned inst_size = decode_raw_instr(data + ip, instr); + + // for a cross reference, look it up and do the same again + if(instr->type == t_xref) { + // xref_ip may intentionally get negative + int xref_ip = ip - instr->arg1; + +#if 0 + if(gfxboot_data->vm.debug.trace.ip) { + gfxboot_log("IP: xref ip 0x%x\n", xref_ip); + } +#endif + + decode_raw_instr(data + xref_ip, instr); + } + + if(gfxboot_data->vm.debug.trace.ip) { + gfxboot_log("IP: #%u:0x%x, type %d, ", OBJ_ID2IDX(instr->ctx->code_id), ip, instr->type); + if(instr->arg2) { + gfxboot_log("%d[%u]\n", (int) (instr->arg2 - data), (unsigned) instr->arg1); + } + else { + gfxboot_log("%lld (0x%llx)\n", (long long) instr->arg1, (long long) instr->arg1); + } + } + + unsigned next_ip = ip + inst_size; + + if(next_ip > size) { + GFX_ERROR(err_invalid_code); + return 0; + } + + instr->ctx->ip = next_ip; + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_program_run() +{ + uint64_t tsc_start = tsc(), tsc_last = tsc_start; + + gfxboot_data->vm.program.stop = 0; + + // gfxboot_log("running code\n"); + + decoded_instr_t instr; + + unsigned steps = gfxboot_data->vm.debug.steps; + unsigned steps_set = steps ? 1 : 0; + + for(; (!steps_set || steps) && gfx_decode_instr(&instr); steps--) { + switch(instr.type) { + case t_int: + case t_bool: + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(instr.arg1, instr.type), 0); + break; + + case t_nil: + gfx_obj_array_push(gfxboot_data->vm.program.pstack, 0, 0); + break; + + case t_string: + case t_ref: + case t_code: + gfx_obj_array_push( + gfxboot_data->vm.program.pstack, + gfx_obj_const_mem_nofree_new(instr.arg2, instr.arg1, instr.type, instr.code_id), + 0 + ); + break; + + case t_prim: + gfx_run_prim(instr.arg1); + break; + + case t_word: + { + data_t key = { .ptr = instr.arg2, .size = instr.arg1 }; + obj_id_pair_t pair = gfx_lookup_dict(&key); + if(!pair.id1) { + GFX_ERROR(err_invalid_code); + } + else { + gfx_exec_id(0, pair.id2, 0); + } + } + break; + + case t_get: + gfx_prim_get_x(& (data_t) { .ptr = instr.arg2, .size = instr.arg1 }); + break; + + case t_set: + { + obj_id_t key = gfx_obj_const_mem_nofree_new(instr.arg2, instr.arg1, t_ref, instr.code_id); + gfx_prim_put_x(key); + gfx_obj_ref_dec(key); + } + break; + + case t_comment: + // do nothing + break; + + default: + GFX_ERROR(err_invalid_code); + } + + gfx_debug_show_trace(); + + if(gfxboot_data->vm.debug.trace.time) { + uint64_t tmp = tsc(); + gfxboot_log("TIME: %llu\n", (unsigned long long) tmp - tsc_last); + tsc_last = tmp; + } + } + + gfxboot_data->vm.program.time += tsc() - tsc_start; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_pair_t gfx_lookup_dict(data_t *key) +{ + obj_id_pair_t pair = { }; + + context_t *context = gfx_obj_context_ptr(gfxboot_data->vm.program.context); + + while(context) { + if( + context && + context->dict_id && + (pair = gfx_obj_hash_get(context->dict_id, key)).id1 + ) { + return pair; + } + context = gfx_obj_context_ptr(context->parent_id); + } + + return gfx_obj_hash_get(gfxboot_data->vm.program.dict, key); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_is_code(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_MEM || !ptr->flags.ro) { + return 0; + } + + data_t *mem = OBJ_DATA_FROM_PTR(ptr); + + // either we know it's a code blob or we check for the magic + if( + ptr->sub_type == t_code || + (mem->size >= 8 && gfx_decode_number(mem->ptr, 8) == (GFXBOOT_MAGIC << 8) + 0x70 + t_comment) + ) { + return 1; + } + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +area_t gfx_font_dim(obj_id_t font_id) +{ + area_t area = { }; + font_t *font; + + for(; (font = gfx_obj_font_ptr(font_id)); font_id = font->parent_id) { + if(font->width > area.width) area.width = font->width; + if(font->height > area.height) area.height = font->line_height; + } + + return area; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_image_open(obj_id_t image_file) +{ + data_t *mem = gfx_obj_mem_ptr(image_file); + + if(!mem || !mem->size) return 0; + + unsigned u = gfx_jpeg_getsize(mem->ptr); + + int width = u & 0xffff; + int height = (int) (u >> 16); + + obj_id_t image_id = gfx_obj_canvas_new(width, height); + canvas_t *canvas = gfx_obj_canvas_ptr(image_id); + + if(gfx_jpeg_decode(mem->ptr, (uint8_t *) &canvas->ptr, 0, canvas->width, 0, canvas->height, 32)) { + gfx_obj_ref_dec(image_id); + image_id = 0; + } + + return image_id; +} diff --git a/gfxboot.h b/gfxboot.h new file mode 100644 index 0000000..69518f3 --- /dev/null +++ b/gfxboot.h @@ -0,0 +1,538 @@ +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +#pragma GCC diagnostic ignored "-Wpragmas" +#pragma GCC diagnostic ignored "-Wdiscarded-qualifiers" +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wimplicit-fallthrough" +#pragma GCC diagnostic ignored "-Wshift-negative-value" +#pragma GCC diagnostic ignored "-Wpointer-arith" +#pragma GCC diagnostic ignored "-Waddress-of-packed-member" + +// #define FULL_ERROR + +typedef __UINT8_TYPE__ uint8_t; +typedef __INT8_TYPE__ int8_t; +typedef __UINT16_TYPE__ uint16_t; +typedef __INT16_TYPE__ int16_t; +typedef __UINT32_TYPE__ uint32_t; +typedef __INT32_TYPE__ int32_t; +typedef __UINT64_TYPE__ uint64_t; +typedef __INT64_TYPE__ int64_t; + +#if __LONG_WIDTH__ == 32 +#define INCLUDE_DIV64 1 +#else +#define INCLUDE_DIV64 0 +#endif + +#define MIN(x, y) ((x) < (y) ? (x) : (y)) +#define MAX(x, y) ((x) > (y) ? (x) : (y)) + +#define gfx_memset __builtin_memset +#define gfx_memcpy __builtin_memmove +#define gfx_memcmp __builtin_memcmp +#define gfx_strlen gfxboot_sys_strlen +#define gfx_strcmp gfxboot_sys_strcmp +#define gfx_strtol gfxboot_sys_strtol + +typedef uint32_t color_t; +typedef uint32_t obj_id_t; + +#define COLOR_BYTES ((int) sizeof (color_t)) +#define ALPHA_POS 24 +#define ALPHA_BITS 8 +#define RED_POS 16 +#define RED_BITS 8 +#define GREEN_POS 8 +#define GREEN_BITS 8 +#define BLUE_POS 0 +#define BLUE_BITS 8 +#define COLOR(a, r, g, b) (((unsigned) (a) << ALPHA_POS) + ((r) << RED_POS) + ((g) << GREEN_POS) + ((b) << BLUE_POS)) + +#define OBJ_ID_GEN_BITS 8 +#define OBJ_ID_GEN_POS (32 - OBJ_ID_GEN_BITS) +#define OBJ_ID_GEN_MASK ~((1 << OBJ_ID_GEN_POS) - 1) + +#define OBJ_TYPE_MASK ((1 << 8) - 1) + +#define OBJ_ID(id, gen) ((unsigned) id + (((unsigned) gen) << OBJ_ID_GEN_POS)) +#define OBJ_ID2GEN(id) ((unsigned) id >> OBJ_ID_GEN_POS) +#define OBJ_ID2IDX(id) ((unsigned) id & ~OBJ_ID_GEN_MASK) +#define OBJ_ID_ASSIGN(a, b) do { obj_id_t tmp = a; a = gfx_obj_ref_inc(b); gfx_obj_ref_dec(tmp); } while(0) + +#define OTYPE_NONE 0 // should be 0 +#define OTYPE_MEM 1 +#define OTYPE_OLIST 2 +#define OTYPE_FONT 3 +#define OTYPE_CANVAS 4 +#define OTYPE_ARRAY 5 +#define OTYPE_HASH 6 +#define OTYPE_CONTEXT 7 +#define OTYPE_NUM 8 +#define OTYPE_GSTATE 9 +#define OTYPE_INVALID 10 +#define OTYPE_ANY 11 + +// internal memory size of object with size n +#define OBJ_OLIST_SIZE(n) (sizeof (olist_t) + (n) * sizeof (obj_t)) +#define OBJ_FONT_SIZE() (sizeof (font_t)) +#define OBJ_CANVAS_SIZE(w, h) (sizeof (canvas_t) + (unsigned) (w) * (unsigned) (h) * sizeof *((canvas_t) {0}).ptr) +#define OBJ_ARRAY_SIZE(n) (sizeof (array_t) + (n) * sizeof *((array_t) {0}).ptr) +#define OBJ_HASH_SIZE(n) (sizeof (hash_t) + (n) * sizeof *((hash_t) {0}).ptr) +#define OBJ_CONTEXT_SIZE() (sizeof (context_t)) +#define OBJ_GSTATE_SIZE() (sizeof (gstate_t)) + +#define OBJ_DATA_FROM_PTR(p) (&(p)->data) +#define OBJ_MEM_FROM_PTR(p) ((p)->data.ptr) +#define OBJ_OLIST_FROM_PTR(p) ((olist_t *) (p)->data.ptr) +#define OBJ_FONT_FROM_PTR(p) ((font_t *) (p)->data.ptr) +#define OBJ_CANVAS_FROM_PTR(p) ((canvas_t *) (p)->data.ptr) +#define OBJ_ARRAY_FROM_PTR(p) ((array_t *) (p)->data.ptr) +#define OBJ_HASH_FROM_PTR(p) ((hash_t *) (p)->data.ptr) +#define OBJ_CONTEXT_FROM_PTR(p) ((context_t *) (p)->data.ptr) +#define OBJ_GSTATE_FROM_PTR(p) ((gstate_t *) (p)->data.ptr) +#define OBJ_VALUE_FROM_PTR(p) ((p)->data.value) + +#define ADD_AREA(a, b) (a).x += (b).x, (a).y += (b).y, (a).width += (b).width, (a).height += (b).height + +#if 0 +pserr_ok equ 0 +pserr_nocode equ 1 +pserr_invalid_opcode equ 2 +pserr_pstack_underflow equ 3 +pserr_pstack_overflow equ 4 +pserr_invalid_dict equ 7 +pserr_wrong_arg_types equ 8 +pserr_div_by_zero equ 9 +pserr_invalid_range equ 0bh +pserr_invalid_exit equ 0ch +pserr_invalid_image_size equ 0dh +pserr_no_memory equ 0eh +pserr_invalid_data equ 0fh +pserr_nop equ 10h +pserr_invalid_function equ 11h +pserr_invalid_dict_entry equ 200h +pserr_invalid_prim equ 201h +#endif + +#ifdef FULL_ERROR +#define GFX_ERROR(a) gfxboot_data->vm.error = (error_t) { .id = (a), .src_file = __FILE__, .src_line = __LINE__ } +#else +#define GFX_ERROR(a) gfxboot_data->vm.error.id = (a) +#endif + +// see gfx_error_msg() +typedef enum { + err_ok = 0, err_invalid_code, err_invalid_instruction, + err_no_array_start, err_no_hash_start, err_no_memory, + err_invalid_hash_key, err_stack_underflow, err_internal, + err_no_loop_context, err_invalid_range, err_invalid_data, + err_readonly, err_invalid_arguments, err_div_by_zero +} error_id_t; + +typedef struct { + error_id_t id; +#ifdef FULL_ERROR + const char *src_file; + int src_line; +#endif +} error_t; + +typedef struct { + unsigned inspect:1; + unsigned dump:1; + unsigned ref:1; + unsigned no_nl:1; + unsigned no_head:1; + unsigned max; +} dump_style_t; + +typedef struct { + uint32_t next; // offset to next header + uint32_t id; // 0 = free, otherwise used +} malloc_header_t; + +typedef struct { + const char *title; +} gfxboot_menu_t; + +typedef struct { + int pos, size; +} color_bits_t; + +typedef struct { + void *ptr; + obj_id_t id; + int width, height; + int bytes_per_line; + int bytes_per_pixel; + int bits_per_pixel; + color_bits_t red; + color_bits_t green; + color_bits_t blue; + color_bits_t res; +} fb_t; + +typedef struct { + int x, y; + int width, height; +} area_t; + +typedef struct { + int max_width, max_height; + int width, height; + color_t ptr[]; +} canvas_t; // __attribute__ ((packed)) + +typedef union { + struct { + void *ptr; + unsigned size; + obj_id_t ref_id; // ptr points into this object + }; + int64_t value; +} data_t; + +typedef struct { + data_t data; // either pointer+size or int value, see flags.data_is_ptr + uint32_t ref_cnt; // reference count + uint8_t gen; // generation + uint8_t base_type; // base type + uint8_t sub_type; // more detailed type, if != 0 + struct { + uint8_t data_is_ptr:1; // type of data element + uint8_t ro:1; // object is read-only + uint8_t nofree:1; // data.ptr is unmanaged and must not be freed + uint8_t fixed:1; // do not relocate + uint8_t utf8:1; // data is utf8 encoded + } flags; +} obj_t; + +typedef struct { + unsigned next; + unsigned max; + obj_t ptr[]; +} __attribute__ ((packed)) olist_t; + +typedef struct { + unsigned type; + obj_id_t parent_id; + obj_id_t data_id; + obj_id_t glyph_id; + int width, height; + int line_height; + int baseline; + unsigned glyphs; + unsigned glyph_size; // bitmap size per glyph in bytes + struct { + unsigned offset; + unsigned size; + } bitmap, unimap; +} font_t; + +typedef struct { + unsigned size; + unsigned max; + obj_id_t ptr[]; +} __attribute__ ((packed)) array_t; + +typedef struct key_value_s { + obj_id_t key; + obj_id_t value; +} key_value_t; + +typedef struct { + unsigned size; + unsigned max; + obj_id_t parent_id; + key_value_t ptr[]; +} __attribute__ ((packed)) hash_t; + +typedef struct { + unsigned type; + unsigned ip, current_ip; + obj_id_t parent_id; + obj_id_t code_id; + obj_id_t dict_id; + obj_id_t iterate_id; + int64_t index; + int64_t max; + int64_t inc; +} context_t; + +typedef struct { + area_t region; // drawing area, relative to screen (in pixel) + area_t pos; // drawing position (in x, y) and font char size (in width, height) + color_t color; // drawing color + color_t bg_color; // background color + obj_id_t canvas_id; + obj_id_t font_id; +} gstate_t; + +typedef struct { + context_t *ctx; + int64_t arg1; + uint8_t *arg2; + unsigned type; + obj_id_t code_id; +} decoded_instr_t; + +typedef struct { + obj_id_t id1, id2; +} obj_id_pair_t; + +typedef struct { + struct { + fb_t real; + obj_id_t virt_id; + } screen; + + struct { + obj_id_t gstate_id; // debug console gstate + } console; + + obj_id_t gstate_id; // normal gstate + + struct { + int nested; + int entry; + int size; + gfxboot_menu_t *entries; + struct { + int max; + int current; + } timeout; + } menu; + + struct { + data_t mem; // memory pool + struct { + olist_t *ptr; // ptr to object list + obj_id_t id; // id of object list + } olist; + obj_id_t gc_list; // list of objects to garbage collect + struct { + obj_id_t pstack; // program data stack + obj_id_t dict; // global dictionary + obj_id_t context; // current program context + unsigned stop:1; + uint64_t time; + uint64_t steps; + } program; + error_t error; + struct { + struct { + char buf[256]; + unsigned buf_pos; + unsigned show:1; + } console; + int log_level_serial; + int log_level_console; + unsigned show_pointer:1; + unsigned log_prompt:1; + unsigned steps; + struct { + unsigned ip:1; + unsigned pstack:1; + unsigned context:1; + unsigned gc:1; + unsigned time:1; + } trace; + } debug; + } vm; + + struct { + unsigned port; + } serial; +} gfxboot_data_t; + +typedef int (* dump_function_t)(obj_t *ptr, dump_style_t style); +typedef unsigned (* gc_function_t)(obj_t *ptr); +typedef int (* contains_function_t)(obj_t *ptr, obj_id_t id); +typedef unsigned (* iterate_function_t)(obj_t *ptr, unsigned *idx, obj_id_t *id1, obj_id_t *id2); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +extern gfxboot_data_t *gfxboot_data; + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfxboot_sys_read_file(char *name, void **buf); +void gfxboot_sys_free(void *ptr); +unsigned long gfxboot_sys_strlen(const char *s); +int gfxboot_sys_strcmp(const char *s1, const char *s2); +long int gfxboot_sys_strtol(const char *nptr, char **endptr, int base); +void gfxboot_screen_update(area_t area); +int gfxboot_getkey(void); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +#define gfxboot_serial(ls, ...) gfxboot_printf((((ls) & 0xff) << 8) + 1, __VA_ARGS__) +#define gfxboot_console(lc, ...) gfxboot_printf((((lc) & 0xff) << 16) + 2, __VA_ARGS__) +#define gfxboot_log(...) gfxboot_printf(3, __VA_ARGS__) +#define gfxboot_debug(ls, lc, ...) gfxboot_printf((((lc) & 0xff) << 16) + (((ls) & 0xff) << 8) + 3, __VA_ARGS__) +int gfxboot_printf(int dst, const char *format, ...) __attribute__ ((format (printf, 2, 3))); +int gfxboot_asprintf(char **str, const char *format, ...) __attribute__ ((format (printf, 2, 3))); +int gfxboot_snprintf(char *str, unsigned size, const char *format, ...) __attribute__ ((format (printf, 3, 4))); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfxboot_init(void); +int gfxboot_process_key(unsigned key); +void gfxboot_timeout(void); +void gfxboot_debug_command(char *str); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +uint32_t gfx_read_le32(const void *p); +char *gfx_utf8_enc(unsigned uc); +int gfx_utf8_dec(char **s, unsigned *len); + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_screen_update(area_t area); +void gfx_console_putc(unsigned c, int update_pos); +void gfx_console_puts(char *s); +void gfx_putc(gstate_t *gstate, unsigned c, int update_pos); +void gfx_puts(gstate_t *gstate, char *s, unsigned len); +area_t gfx_clip(area_t *area1, area_t *area2); +void gfx_blt(int mode, obj_id_t dst_id, area_t dst_area, obj_id_t src_id, area_t src_area); +int gfx_getpixel(gstate_t *gstate, canvas_t *canvas, int x, int y, color_t *color); +void gfx_putpixel(gstate_t *gstate, canvas_t *canvas, int x, int y, color_t color); +void gfx_line(gstate_t *gstate, canvas_t *canvas, int x0, int y0, int x1, int y1, color_t color); +void gfx_rect(gstate_t *gstate, int x, int y, int width, int height, color_t c); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_malloc_init(void); +void gfx_malloc_dump(dump_style_t style); +void *gfx_malloc(uint32_t size, uint32_t id); +void gfx_free(void *ptr); + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_read_file(char *name); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_init(void); +void gfx_obj_dump(obj_id_t id, dump_style_t style); +char *gfx_obj_id2str(obj_id_t id); + +obj_id_t gfx_obj_new(unsigned type); +obj_id_t gfx_obj_alloc(unsigned type, uint32_t size); +obj_id_t gfx_obj_realloc(obj_id_t id, uint32_t size); + +obj_id_t gfx_obj_ref_inc(obj_id_t id); +void gfx_obj_ref_dec(obj_id_t id); +unsigned gfx_obj_ref_dec_delay_gc(obj_id_t id); +void gfx_obj_run_gc(void); +unsigned gfx_obj_iterate(obj_id_t id, unsigned *idx, obj_id_t *id1, obj_id_t *id2); + +obj_t *gfx_obj_ptr_nocheck(obj_id_t id); +obj_t *gfx_obj_ptr(obj_id_t id); +contains_function_t gfx_obj_contains_function(unsigned type); + +obj_id_t gfx_obj_mem_new(uint32_t size); +data_t *gfx_obj_mem_ptr(obj_id_t id); +data_t *gfx_obj_mem_subtype_ptr(obj_id_t id, uint8_t subtype); +int gfx_obj_mem_get(obj_id_t mem_id, int pos); +obj_id_t gfx_obj_mem_set(obj_id_t mem_id, uint8_t val, int pos); +int gfx_obj_mem_dump(obj_t *ptr, dump_style_t style); +unsigned gfx_obj_mem_iterate(obj_t *ptr, unsigned *idx, obj_id_t *id1, obj_id_t *id2); +obj_id_t gfx_obj_const_mem_nofree_new(const uint8_t *str, unsigned len, uint8_t subtype, obj_id_t ref_id); +obj_id_t gfx_obj_asciiz_new(const char *str); +obj_id_t gfx_obj_mem_dup(obj_id_t id, unsigned extra_bytes); +int gfx_obj_mem_cmp(data_t *mem1, data_t *mem2); +void gfx_obj_mem_del(obj_id_t mem_id, int pos); +unsigned gfx_obj_mem_gc(obj_t *ptr); +int gfx_obj_mem_contains(obj_t *ptr, obj_id_t id); + +obj_id_t gfx_obj_olist_new(unsigned max); +olist_t *gfx_obj_olist_ptr(obj_id_t id); +int gfx_obj_olist_dump(obj_t *ptr, dump_style_t style); + +obj_id_t gfx_obj_font_new(void); +font_t *gfx_obj_font_ptr(obj_id_t id); +int gfx_obj_font_dump(obj_t *ptr, dump_style_t style); +unsigned gfx_obj_font_gc(obj_t *ptr); +int gfx_obj_font_contains(obj_t *ptr, obj_id_t id); +obj_id_t gfx_obj_font_open(obj_id_t font_file); + +obj_id_t gfx_obj_canvas_new(int width, int height); +canvas_t *gfx_obj_canvas_ptr(obj_id_t id); +int gfx_obj_canvas_dump(obj_t *ptr, dump_style_t style); +int gfx_canvas_adjust_size(canvas_t *c, int width, int height); +int gfx_canvas_resize(obj_id_t canvas_id, int width, int height); + +obj_id_t gfx_obj_array_new(unsigned max); +array_t *gfx_obj_array_ptr(obj_id_t id); +unsigned gfx_obj_array_iterate(obj_t *ptr, unsigned *idx, obj_id_t *id1, obj_id_t *id2); +int gfx_obj_array_dump(obj_t *ptr, dump_style_t style); +obj_id_t gfx_obj_array_set(obj_id_t array_id, obj_id_t id, int pos, int do_ref_cnt); +obj_id_t gfx_obj_array_get(obj_id_t array_id, int pos); +obj_id_t gfx_obj_array_push(obj_id_t array_id, obj_id_t id, int do_ref_cnt); +obj_id_t gfx_obj_array_pop(obj_id_t array_id, int do_ref_cnt); +void gfx_obj_array_pop_n(unsigned n, obj_id_t array_id, int do_ref_cnt); +obj_id_t gfx_obj_array_add(obj_id_t array_id, obj_id_t id, int do_ref_cnt); +unsigned gfx_obj_array_gc(obj_t *ptr); +int gfx_obj_array_contains(obj_t *ptr, obj_id_t id); +void gfx_obj_array_del(obj_id_t array_id, int pos, int do_ref_cnt); + +obj_id_t gfx_obj_hash_new(unsigned max); +hash_t *gfx_obj_hash_ptr(obj_id_t id); +unsigned gfx_obj_hash_iterate(obj_t *ptr, unsigned *idx, obj_id_t *id1, obj_id_t *id2); +int gfx_obj_hash_dump(obj_t *ptr, dump_style_t style); +obj_id_t gfx_obj_hash_set(obj_id_t hash_id, obj_id_t key_id, obj_id_t value_id, int do_ref_cnt); +obj_id_pair_t gfx_obj_hash_get(obj_id_t hash_id, data_t *key); +void gfx_obj_hash_del(obj_id_t hash_id, obj_id_t key_id, int do_ref_cnt); +unsigned gfx_obj_hash_gc(obj_t *ptr); +int gfx_obj_hash_contains(obj_t *ptr, obj_id_t id); + +obj_id_t gfx_obj_context_new(uint8_t sub_type); +context_t *gfx_obj_context_ptr(obj_id_t id); +int gfx_obj_context_dump(obj_t *ptr, dump_style_t style); +unsigned gfx_obj_context_gc(obj_t *ptr); +int gfx_obj_context_contains(obj_t *ptr, obj_id_t id); + +obj_id_t gfx_obj_num_new(int64_t num, uint8_t subtype); +int64_t *gfx_obj_num_ptr(obj_id_t id); +int64_t *gfx_obj_num_subtype_ptr(obj_id_t id, uint8_t subtype); +int gfx_obj_num_dump(obj_t *ptr, dump_style_t style); + +obj_id_t gfx_obj_gstate_new(void); +gstate_t *gfx_obj_gstate_ptr(obj_id_t id); +int gfx_obj_gstate_dump(obj_t *ptr, dump_style_t style); +unsigned gfx_obj_gstate_gc(obj_t *ptr); +int gfx_obj_gstate_contains(obj_t *ptr, obj_id_t id); + +unsigned gfx_program_init(obj_id_t program); +int gfx_decode_instr(decoded_instr_t *code); +void gfx_program_run(void); +void gfx_program_debug(unsigned key); +void gfx_program_debug_on_off(unsigned state); +void gfx_program_process_key(unsigned key); +char *gfx_debug_get_ip(void); +void gfx_debug_cmd(char *str); +void gfx_debug_show_trace(void); +void gfx_vm_status_dump(void); +obj_id_pair_t gfx_lookup_dict(data_t *key); +int gfx_is_code(obj_id_t id); +area_t gfx_font_dim(obj_id_t font_id); +obj_id_t gfx_image_open(obj_id_t image_file); + +const char *gfx_error_msg(error_id_t id); +void gfx_show_error(void); + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// jpeg +int gfx_jpeg_decode(uint8_t *jpeg, uint8_t *img, int x_0, int x_1, int y_0, int y_1, int color_bits); +unsigned gfx_jpeg_getsize(uint8_t *buf); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// gfxboot_prim.c +// +int gfx_setup_dict(void); +error_id_t gfx_run_prim(unsigned prim); +void gfx_exec_id(obj_id_t dict, obj_id_t id, int on_stack); +void gfx_prim_get_x(data_t *key); +void gfx_prim_put_x(obj_id_t id); diff --git a/gfxboot_array.c b/gfxboot_array.c new file mode 100644 index 0000000..6d1cfbb --- /dev/null +++ b/gfxboot_array.c @@ -0,0 +1,266 @@ +#include + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// array + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_array_new(unsigned max) +{ + if(!max) max = 0x10; + + obj_id_t id = gfx_obj_alloc(OTYPE_ARRAY, OBJ_ARRAY_SIZE(max)); + array_t *a = gfx_obj_array_ptr(id); + + if(a) { + a->max = max; + a->size = 0; + } + + return id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +array_t *gfx_obj_array_ptr(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_ARRAY) return 0; + + return (array_t *) ptr->data.ptr; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_array_iterate(obj_t *ptr, unsigned *idx, obj_id_t *id1, obj_id_t *id2) +{ + array_t *a = ptr->data.ptr; + + if(ptr->data.size != OBJ_ARRAY_SIZE(a->max)) { + GFX_ERROR(err_internal); + return 0; + } + + if(*idx >= a->size) { + return 0; + } + + gfx_obj_ref_inc(*id1 = a->ptr[*idx]); + (*idx)++; + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_array_dump(obj_t *ptr, dump_style_t style) +{ + if(!ptr) return 1; + + array_t *a = ptr->data.ptr; + unsigned u; + obj_id_t id; + + if(ptr->data.size != OBJ_ARRAY_SIZE(a->max)) { + gfxboot_log("\n"); + + return 1; + } + + if(!style.ref) { + if(!style.inspect) return 0; + + gfxboot_log("size %u, max %u", a->size, a->max); + + return 1; + } + + for(u = 0; u < a->size && (!style.max || u < style.max); u++) { + id = a->ptr[u]; + if(style.dump) gfxboot_log(" "); + gfxboot_log("[%2u] ", u); + gfx_obj_dump(id, (dump_style_t) { .inspect = style.inspect, .no_nl = 1 }); + gfxboot_log("\n"); + } + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_array_set(obj_id_t array_id, obj_id_t id, int pos, int do_ref_cnt) +{ + array_t *a = gfx_obj_array_ptr(array_id); + + if(!a) return 0; + + if(pos < 0) pos = (int) a->size + pos; + + if(pos < 0) return 0; + + unsigned upos = (unsigned) pos; + + if(upos >= a->max) { + unsigned max = upos + (upos >> 3) + 0x10; + array_id = gfx_obj_realloc(array_id, OBJ_ARRAY_SIZE(max)); + if(!array_id) return 0; + a = gfx_obj_array_ptr(array_id); + if(!a) return 0; + a->max = max; + } + + if(upos >= a->size) { + unsigned u; + + // clear new entries + for(u = a->size; u <= upos; u++) a->ptr[u] = 0; + a->size = upos + 1; + } + + if(do_ref_cnt) { + gfx_obj_ref_inc(id); + gfx_obj_ref_dec(a->ptr[upos]); + } + a->ptr[upos] = id; + + return array_id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_array_get(obj_id_t array_id, int pos) +{ + array_t *a = gfx_obj_array_ptr(array_id); + + if(!a) return 0; + + if(pos < 0) pos = (int) a->size + pos; + + if(pos < 0 || pos >= (int) a->size) return 0; + + return a->ptr[pos]; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_obj_array_del(obj_id_t array_id, int pos, int do_ref_cnt) +{ + array_t *a = gfx_obj_array_ptr(array_id); + + if(!a) return; + + if(pos < 0) pos = (int) a->size + pos; + + if(pos < 0 || pos >= (int) a->size) return; + + if(do_ref_cnt) { + gfx_obj_ref_dec(a->ptr[pos]); + } + + a->size--; + + if(a->size > (unsigned) pos) { + gfx_memcpy(&a->ptr[pos], &a->ptr[pos + 1], (sizeof *a->ptr) * (a->size - (unsigned) pos)); + } + + gfx_memset(&a->ptr[a->size], 0, sizeof *a->ptr); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_array_push(obj_id_t array_id, obj_id_t id, int do_ref_cnt) +{ + array_t *a = gfx_obj_array_ptr(array_id); + + if(!a) return 0; + + return gfx_obj_array_set(array_id, id, (int) a->size, do_ref_cnt); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_array_pop(obj_id_t array_id, int do_ref_cnt) +{ + array_t *a = gfx_obj_array_ptr(array_id); + + if(!a) return 0; + + if(a->size > 0) { + a->size--; + obj_id_t id = a->ptr[a->size]; + // do not leave invalid values behind + a->ptr[a->size] = 0; + if(do_ref_cnt) gfx_obj_ref_dec(id); + return id; + } + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_obj_array_pop_n(unsigned n, obj_id_t array_id, int do_ref_cnt) +{ + unsigned u; + + for(u = 0; u < n; u++) { + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_array_add(obj_id_t array_id, obj_id_t id, int do_ref_cnt) +{ + array_t *a = gfx_obj_array_ptr(array_id); + + if(!a) return 0; + + unsigned idx; + + for(idx = 0; idx < a->size; idx++) { + if(a->ptr[idx] == id) return array_id; + } + + return gfx_obj_array_set(array_id, id, (int) a->size, do_ref_cnt); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_array_gc(obj_t *ptr) +{ + if(!ptr) return 0; + + array_t *array = ptr->data.ptr; + unsigned data_size = ptr->data.size; + unsigned idx, more_gc = 0; + + if(array && data_size == OBJ_ARRAY_SIZE(array->max)) { + for(idx = 0; idx < array->size; idx++) { + more_gc += gfx_obj_ref_dec_delay_gc(array->ptr[idx]); + } + } + + return more_gc; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_array_contains(obj_t *ptr, obj_id_t id) +{ + if(!ptr || !id) return 0; + + array_t *array = ptr->data.ptr; + unsigned data_size = ptr->data.size; + unsigned idx; + + if(array && data_size == OBJ_ARRAY_SIZE(array->max)) { + for(idx = 0; idx < array->size; idx++) { + if(id == array->ptr[idx]) return 1; + } + } + + return 0; +} diff --git a/gfxboot_canvas.c b/gfxboot_canvas.c new file mode 100644 index 0000000..9c69481 --- /dev/null +++ b/gfxboot_canvas.c @@ -0,0 +1,152 @@ +#include + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// canvas + +static char gfx_canvas_pixel2char(canvas_t *c, int x_blk, int y_blk, int x, int y); +static uint32_t gfx_canvas_chksum(canvas_t *c); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_canvas_new(int width, int height) +{ + obj_id_t id = gfx_obj_alloc(OTYPE_CANVAS, OBJ_CANVAS_SIZE(width, height)); + canvas_t *c = gfx_obj_canvas_ptr(id); + + if(c) { + c->max_width = c->width = width; + c->max_height = c->height = height; + } + + return id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +canvas_t *gfx_obj_canvas_ptr(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_CANVAS) return 0; + + return (canvas_t *) ptr->data.ptr; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_canvas_dump(obj_t *ptr, dump_style_t style) +{ + if(!ptr) return 1; + + canvas_t *c = ptr->data.ptr; + unsigned len = ptr->data.size; + int w, w_max, h, h_max, x_blk, y_blk; + + if(len < OBJ_CANVAS_SIZE(c->width, c->height)) { + gfxboot_log(" \n"); + + return 1; + } + + len -= sizeof (canvas_t); + + x_blk = (c->width + 79) / 80; + if(!x_blk) x_blk = 1; + w_max = c->width / x_blk; + + y_blk = (c->height + 19) / 20; + if(!y_blk) y_blk = 1; + h_max = c->height / y_blk; + + if(!style.ref) { + if(!style.inspect) return 0; + + gfxboot_log( + "size %dx%d, max %dx%d, unit %dx%d, chk 0x%08x", + c->width, c->height, c->max_width, c->max_height, x_blk, y_blk, gfx_canvas_chksum(c) + ); + + return 1; + } + + if(style.dump && len) { + for(h = 0; h < h_max; h++) { + gfxboot_log(" |"); + for(w = 0; w < w_max; w++) { + gfxboot_log("%c", gfx_canvas_pixel2char(c, x_blk, y_blk, w, h)); + } + gfxboot_log("|\n"); + } + } + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +char gfx_canvas_pixel2char(canvas_t *c, int x_blk, int y_blk, int x, int y) +{ + const char syms[] = " .,:+ox*%#O@"; // symbols for brightness + color_t col, *cp = (color_t *) ((uint8_t *) c + sizeof (canvas_t)); + int i, j; + unsigned val = 0; + + x *= x_blk; + y *= y_blk; + + cp += x + y * c->width; + + for(j = 0; j < y_blk; j++, cp += c->width) { + for(i = 0; i < x_blk; i++) { + col = cp[i]; + val += (col & 0xff) + ((col >> 8) & 0xff) + ((col >> 16) & 0xff); + } + } + + val /= (unsigned) (x_blk * y_blk * 3 * 255) / (sizeof syms); // yes, size + 1 !!! + if(val > sizeof syms - 2) val = sizeof syms - 2; + + return syms[val]; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_canvas_adjust_size(canvas_t *c, int width, int height) +{ + if(c->max_width * c->max_height < width * height) return 0; + + c->width = width; + c->height = height; + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_canvas_resize(obj_id_t canvas_id, int width, int height) +{ + canvas_t *c = gfx_obj_canvas_ptr(canvas_id); + + if(!c) return 0; + + if(c->width == width && c->height == height) return 1; + + return gfx_obj_realloc(canvas_id, OBJ_CANVAS_SIZE(width, height)) ? 1 : 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +uint32_t gfx_canvas_chksum(canvas_t *c) +{ + unsigned u, len = (unsigned) c->width * (unsigned) c->height; + uint32_t sum = 0, a = 0; + + for(u = 0; u < len; u++) { + a = a * 73 + 19; + sum += a ^ c->ptr[u]; + } + + return sum; +} diff --git a/gfxboot_context.c b/gfxboot_context.c new file mode 100644 index 0000000..bcb80a6 --- /dev/null +++ b/gfxboot_context.c @@ -0,0 +1,127 @@ +#include +#include + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// context + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_context_new(uint8_t sub_type) +{ + obj_id_t id = gfx_obj_alloc(OTYPE_CONTEXT, OBJ_CONTEXT_SIZE()); + obj_t *ptr = gfx_obj_ptr(id); + + if(ptr) { + ptr->sub_type = sub_type; + ((context_t *) ptr->data.ptr)->type = sub_type; + } + + return id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +context_t *gfx_obj_context_ptr(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_CONTEXT) return 0; + + return (context_t *) ptr->data.ptr; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_context_dump(obj_t *ptr, dump_style_t style) +{ + if(!ptr) return 1; + + context_t *context = ptr->data.ptr; + unsigned len = ptr->data.size; + if(len != OBJ_CONTEXT_SIZE()) { + gfxboot_log(" \n"); + + return 1; + } + + if(!style.ref) { + if(!style.inspect) return 0; + + gfxboot_log("code %s, ip 0x%x (0x%x)", gfx_obj_id2str(context->code_id), context->ip, context->current_ip); + + if(context->type == t_ctx_repeat) { + gfxboot_log(", index %lld", (long long) context->index); + } + else if(context->type == t_ctx_for) { + gfxboot_log( + ", index %lld, inc %lld, max %lld", + (long long) context->index, + (long long) context->inc, + (long long) context->max + ); + } + else if(context->type == t_ctx_forall) { + gfxboot_log( + ", index %lld, iterate %s", + (long long) context->index, + gfx_obj_id2str(context->iterate_id) + ); + } + + if(context->dict_id) gfxboot_log(", dict %s", gfx_obj_id2str(context->dict_id)); + + return 1; + } + + if(style.dump) { + gfxboot_log(" type %u, ip 0x%x (0x%x)\n", context->type, context->ip, context->current_ip); + gfxboot_log(" code %s\n", gfx_obj_id2str(context->code_id)); + gfxboot_log(" parent %s\n", gfx_obj_id2str(context->parent_id)); + gfxboot_log(" dict %s\n", gfx_obj_id2str(context->dict_id)); + gfxboot_log(" iterate %s\n", gfx_obj_id2str(context->iterate_id)); + } + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_context_gc(obj_t *ptr) +{ + if(!ptr) return 0; + + context_t *context = ptr->data.ptr; + unsigned data_size = ptr->data.size; + unsigned more_gc = 0; + + if(context && data_size == OBJ_CONTEXT_SIZE()) { + more_gc += gfx_obj_ref_dec_delay_gc(context->parent_id); + more_gc += gfx_obj_ref_dec_delay_gc(context->code_id); + more_gc += gfx_obj_ref_dec_delay_gc(context->dict_id); + more_gc += gfx_obj_ref_dec_delay_gc(context->iterate_id); + } + + return more_gc; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_context_contains(obj_t *ptr, obj_id_t id) +{ + if(!ptr || !id) return 0; + + context_t *context = ptr->data.ptr; + unsigned data_size = ptr->data.size; + + if(context && data_size == OBJ_CONTEXT_SIZE()) { + if( + id == context->parent_id || + id == context->code_id || + id == context->dict_id || + id == context->iterate_id + ) return 1; + } + + return 0; +} diff --git a/gfxboot_debug.c b/gfxboot_debug.c new file mode 100644 index 0000000..deab6df --- /dev/null +++ b/gfxboot_debug.c @@ -0,0 +1,820 @@ +#include +#include + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +static void gfx_program_debug_putc(unsigned c, unsigned cursor); +static void gfx_status_dump(void); +static void gfx_stack_dump(dump_style_t style); +static void gfx_bt_dump(dump_style_t style); + +static int is_num(char *str); + +static void debug_cmd_dump(int argc, char **argv); +static void debug_cmd_log(int argc, char **argv); +static void debug_cmd_hex(int argc, char **argv); +static void debug_cmd_find(int argc, char **argv); +static void debug_cmd_run(int argc, char **argv); +static void debug_cmd_set(int argc, char **argv); + +static char *skip_space(char *str); +static char *skip_nonspace(char *str); + +static struct { + char *name; + void (* function)(int argc, char **argv); +} debug_cmds[] = { + { "d", debug_cmd_dump }, + { "dump", debug_cmd_dump }, + { "find", debug_cmd_find }, + { "hex", debug_cmd_hex }, + { "i", debug_cmd_dump }, + { "inspect", debug_cmd_dump }, + { "log", debug_cmd_log }, + { "p", debug_cmd_dump }, + { "print", debug_cmd_dump }, + { "r", debug_cmd_run }, + { "run", debug_cmd_run }, + { "set", debug_cmd_set }, + { "t", debug_cmd_run }, + { "trace", debug_cmd_run }, +}; + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// debug functions + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +char *gfx_debug_get_ip() +{ + static char buf[64]; + unsigned code_id = 0; + unsigned ip = 0; + + context_t *code_ctx = gfx_obj_context_ptr(gfxboot_data->vm.program.context); + + if(code_ctx) { + code_id = OBJ_ID2IDX(code_ctx->code_id); + ip = gfxboot_data->vm.error.id ? code_ctx->current_ip : code_ctx->ip; + } + + gfxboot_snprintf(buf, sizeof buf, "#%u:0x%x", code_id, ip); + + return buf; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_debug_cmd(char *str) +{ + char *argv[16] = { }; + int i, argc = 0; + int err = 0; + + if(gfxboot_data->vm.debug.log_prompt) gfxboot_log("%s>%s\n", gfx_debug_get_ip(), str); + + // log comment + if(str[0] == '#' && str[1] == ' ') { + gfxboot_log("%s\n", str); + return; + } + + while(argc < (int) (sizeof argv / sizeof *argv) - 1) { + str = skip_space(str); + if(!*str) break; + argv[argc++] = str; + str = skip_nonspace(str); + if(*str) *str++ = 0; + } + + if(!argv[0]) return; + + for(i = 0; i < (int) (sizeof debug_cmds / sizeof *debug_cmds); i++) { + if(!gfx_strcmp(argv[0], debug_cmds[i].name)) { + debug_cmds[i].function(argc, argv); + break; + } + } + + if(i != sizeof debug_cmds / sizeof *debug_cmds) return; + + for(i = 0; i < argc; i++) { + char *s = 0; + char *arg = argv[i]; + unsigned arg_len = gfx_strlen(arg); + unsigned is_id = 0; + + if(arg[0] == '#') { + is_id = 1; + arg++; + } + + long val = gfx_strtol(arg, &s, 0); + + if(!gfx_strcmp(arg, "nil")) { + gfx_obj_array_push(gfxboot_data->vm.program.pstack, 0, 0); + } + else if(!gfx_strcmp(arg, "true")) { + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(1, t_bool), 0); + } + else if(!gfx_strcmp(arg, "false")) { + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(0, t_bool), 0); + } + else if(s && !*s) { + if(is_id) { + obj_id_t id = 0; + obj_t *ptr = gfx_obj_ptr_nocheck((unsigned) val); + if(ptr) { + id = OBJ_ID(OBJ_ID2IDX(val), ptr->gen); + } + gfx_obj_array_push(gfxboot_data->vm.program.pstack, id, 1); + } + else { + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(val, t_int), 0); + } + } + else if(*arg == '"') { + if(arg_len >= 2 && arg[arg_len - 1] == '"') arg[--arg_len] = 0; + arg++; + arg_len--; + obj_id_t id = gfx_obj_mem_new(arg_len); + obj_t *ptr = gfx_obj_ptr(id); + if(ptr) { + ptr->sub_type = t_string; + gfx_memcpy(OBJ_MEM_FROM_PTR(ptr), arg, arg_len); + gfx_obj_array_push(gfxboot_data->vm.program.pstack, id, 0); + } + } + else if(*argv[i] == '/') { + arg++; + arg_len--; + obj_id_t id = gfx_obj_mem_new(arg_len); + obj_t *ptr = gfx_obj_ptr(id); + if(ptr) { + ptr->sub_type = t_ref; + gfx_memcpy(OBJ_MEM_FROM_PTR(ptr), arg, arg_len); + gfx_obj_array_push(gfxboot_data->vm.program.pstack, id, 0); + } + } + else { + data_t key = { .ptr = arg, .size = arg_len }; + obj_id_t id = gfx_lookup_dict(&key).id2; + if(id) { + gfxboot_log("%s -> %s\n", arg, gfx_obj_id2str(id)); + gfx_exec_id(0, id, 0); + } + else { + gfxboot_log("unknown command: %s\n", arg); + err = 1; + } + } + } + + if(!err) { + gfx_debug_show_trace(); + gfx_show_error(); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_debug_show_trace() +{ + if(gfxboot_data->vm.debug.trace.context) { + gfx_bt_dump((dump_style_t) {}); + } + + if(gfxboot_data->vm.debug.trace.pstack) { + gfx_stack_dump((dump_style_t) {}); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_program_debug_on_off(unsigned state) +{ + if(gfxboot_data->vm.debug.console.show == state) return; + + gfxboot_data->vm.debug.console.show = state; + + if(gfxboot_data->vm.debug.console.show && state < 2) { + // turn on minimal logging + if(gfxboot_data->vm.debug.log_level_console < 0) { + gfxboot_data->vm.debug.log_level_console = 0; + } + } + + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->console.gstate_id); + + if(!gstate) return; + + gfx_rect( + gstate, + 0, + gstate->region.height - gstate->pos.height, + gstate->region.width, + gstate->pos.height, + gstate->bg_color + ); + + gfxboot_data->vm.debug.console.buf_pos = 0; + gfxboot_data->vm.debug.console.buf[0] = 0; + + gstate->pos.x = 0; + gstate->pos.y = gstate->region.height - gstate->pos.height; + + if(gfxboot_data->vm.debug.console.show) { + char buf[64]; + + gfxboot_snprintf(buf, sizeof buf, "%s>", gfx_debug_get_ip()); + + gfx_console_puts(buf); + + gfx_console_putc('_', 0); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_program_debug_putc(unsigned c, unsigned cursor) +{ + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->console.gstate_id); + + if(!gstate) return; + + if(c) gfx_console_putc(c, 1); + + if(cursor) gfx_console_putc(cursor, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_program_debug(unsigned key) +{ + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->console.gstate_id); + + unsigned pos = gfxboot_data->vm.debug.console.buf_pos; + + if(key == 0x04) { // ^D + gfx_program_debug_on_off(0); + return; + } + + if(key == 0x0d) { + gfx_program_debug_putc(' ', 0); + gfx_program_debug_putc(key, 0); + gfxboot_data->vm.debug.console.buf[pos] = 0; + gfx_debug_cmd(gfxboot_data->vm.debug.console.buf); + gfx_program_debug_on_off(3); + return; + } + + if(key == 0x08) { + if(!pos) return; + pos--; + gfx_program_debug_putc(key, 0); + key = 0; + } + + if(key && key < ' ') return; + + if( + !gstate || + pos >= sizeof gfxboot_data->vm.debug.console.buf - 1 || + gstate->pos.x >= gstate->region.width - gstate->pos.width + ) { + return; + } + + gfx_program_debug_putc(key, '_'); + + if(key) { + // FIXME: unicode chars! + gfxboot_data->vm.debug.console.buf[pos++] = key; + } + + gfxboot_data->vm.debug.console.buf_pos = pos; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_program_process_key(unsigned key) +{ + gfxboot_debug(2, 2, "gfx_program_process_key: 0x%x\n", key); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_vm_status_dump() +{ + int i; + + gfxboot_log("arch bits = %d, gfxboot_data = %p\n", (int) sizeof (void *) * 8, gfxboot_data); + + gfxboot_log( + "physical screen:\n fb = %p, size = %d x %d (+%d)\n pixel bytes = %d, bits = %d\n red = %d +%d, green = %d +%d, blue = %d +%d, reserved = %d +%d\n", + gfxboot_data->screen.real.ptr, + gfxboot_data->screen.real.width, + gfxboot_data->screen.real.height, + gfxboot_data->screen.real.bytes_per_line, + gfxboot_data->screen.real.bytes_per_pixel, + gfxboot_data->screen.real.bits_per_pixel, + gfxboot_data->screen.real.red.size, + gfxboot_data->screen.real.red.pos, + gfxboot_data->screen.real.green.size, + gfxboot_data->screen.real.green.pos, + gfxboot_data->screen.real.blue.size, + gfxboot_data->screen.real.blue.pos, + gfxboot_data->screen.real.res.size, + gfxboot_data->screen.real.res.pos + ); + + gfxboot_log("virtual screen:\n id = %s\n", gfx_obj_id2str(gfxboot_data->screen.virt_id)); + + canvas_t *c = gfx_obj_canvas_ptr(gfxboot_data->screen.virt_id); + + if(c) { + gfxboot_log( + " fb = %p, size = %d x %d (+%d)\n pixel bytes = %d, bits = %d\n red = %d +%d, green = %d +%d, blue = %d +%d, alpha = %d +%d\n", + c->ptr, c->width, c->height, c->width * COLOR_BYTES, + COLOR_BYTES, COLOR_BYTES * 8, + RED_BITS, RED_POS, + GREEN_BITS, GREEN_POS, + BLUE_BITS, BLUE_POS, + ALPHA_BITS, ALPHA_POS + ); + } + + gfxboot_log( + "menu\n default = %d, nested = %d\n size = %d\n", + gfxboot_data->menu.entry, + gfxboot_data->menu.nested, + gfxboot_data->menu.size + ); + + for(i = 0; i < gfxboot_data->menu.size; i++) { + gfxboot_log(" %d: title = \"%s\"\n", i, gfxboot_data->menu.entries[i].title); + } + + gfxboot_log( + "vm\n size = %d, ptr = %p\n", + gfxboot_data->vm.mem.size, + gfxboot_data->vm.mem.ptr + ); + + gfxboot_log( + "debug\n log console = %d, log serial = %d, pointer = %s, prompt = %s\n trace =%s%s%s%s%s\n", + gfxboot_data->vm.debug.log_level_console, + gfxboot_data->vm.debug.log_level_serial, + gfxboot_data->vm.debug.show_pointer ? "on" : "off", + gfxboot_data->vm.debug.log_prompt ? "on" : "off", + gfxboot_data->vm.debug.trace.ip ? " ip" : "", + gfxboot_data->vm.debug.trace.pstack ? " stack" : "", + gfxboot_data->vm.debug.trace.context ? " context" : "", + gfxboot_data->vm.debug.trace.gc ? " gc" : "", + gfxboot_data->vm.debug.trace.time ? " time" : "" + ); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_status_dump() +{ + gstate_t *console_gstate = gfx_obj_gstate_ptr(gfxboot_data->console.gstate_id); + gstate_t *gfx_gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + gfxboot_log("graphics screen:\n"); + if(gfx_gstate) { + gfxboot_log(" gstate = "); + gfx_obj_dump(gfxboot_data->gstate_id, (dump_style_t) { .inspect = 1 }); + gfxboot_log(" pos = %dx%d, color #%08x, bg_color #%08x\n", + gfx_gstate->pos.x, gfx_gstate->pos.y, + gfx_gstate->color, gfx_gstate->bg_color + ); + gfxboot_log(" font = "); + gfx_obj_dump(gfx_gstate->font_id, (dump_style_t) { .inspect = 1 }); + } + + gfxboot_log("text console:\n"); + if(console_gstate) { + gfxboot_log(" gstate = "); + gfx_obj_dump(gfxboot_data->console.gstate_id, (dump_style_t) { .inspect = 1 }); + gfxboot_log(" pos = %dx%d, color #%08x, bg_color #%08x\n", + console_gstate->pos.x, console_gstate->pos.y, + console_gstate->color, console_gstate->bg_color + ); + gfxboot_log(" font = "); + gfx_obj_dump(console_gstate->font_id, (dump_style_t) { .inspect = 1 }); + } + + gfxboot_log("garbage collector:\n"); + gfxboot_log(" list = "); + gfx_obj_dump(gfxboot_data->vm.gc_list, (dump_style_t) { .inspect = 1 }); + + gfxboot_log("program:\n"); + gfxboot_log( + " ip = %s\n", + gfx_debug_get_ip() + ); + gfxboot_log(" global dict = "); + gfx_obj_dump(gfxboot_data->vm.program.dict, (dump_style_t) { .inspect = 1 }); + gfxboot_log(" stack = "); + gfx_obj_dump(gfxboot_data->vm.program.pstack, (dump_style_t) { .inspect = 1 }); + gfxboot_log(" context = "); + gfx_obj_dump(gfxboot_data->vm.program.context, (dump_style_t) { .inspect = 1 }); +#ifdef FULL_ERROR + gfxboot_log( + " error %d (%s), src = %s:%d\n", + gfxboot_data->vm.error.id, + gfx_error_msg(gfxboot_data->vm.error.id), + gfxboot_data->vm.error.src_file, + gfxboot_data->vm.error.src_line + ); +#else + gfxboot_log( + " error %d (%s)\n", + gfxboot_data->vm.error.id, + gfx_error_msg(gfxboot_data->vm.error.id) + ); +#endif + + uint64_t avg = gfxboot_data->vm.program.steps ? gfxboot_data->vm.program.time / gfxboot_data->vm.program.steps : 0; + gfxboot_log( + " time = %llu, steps = %llu, avg = %llu/step\n", + (unsigned long long) gfxboot_data->vm.program.time, + (unsigned long long) gfxboot_data->vm.program.steps, + (unsigned long long) avg + ); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_stack_dump(dump_style_t style) +{ + unsigned u; + obj_id_t stack_id = gfxboot_data->vm.program.pstack; + + gfxboot_log("== stack (%s) ==\n", gfx_obj_id2str(stack_id)); + + array_t *stack = gfx_obj_array_ptr(stack_id); + + if(!stack) return; + + for(u = 0; u < stack->size && (!style.max || u < style.max); u++) { + gfxboot_log(" [%u] ", u); + gfx_obj_dump(stack->ptr[stack->size - u - 1], (dump_style_t) { .inspect = 1 }); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_bt_dump(dump_style_t style) +{ + unsigned u = 0; + obj_id_t context_id = gfxboot_data->vm.program.context; + context_t *context; + + gfxboot_log("== backtrace ==\n"); + + while((!style.max || u < style.max) && (context = gfx_obj_context_ptr(context_id))) { + gfxboot_log(" [%u] ", u); + gfx_obj_dump(context_id, (dump_style_t) { .inspect = 1 }); + u++; + context_id = context->parent_id; + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void debug_cmd_dump(int argc, char **argv) +{ + dump_style_t style = { }; + + if(!argv[1]) return; + + if(!gfx_strcmp(argv[0], "i")) style.inspect =1; + if(!gfx_strcmp(argv[0], "d")) style.dump = 1; + + if(*argv[1] == '*') { + style.ref = 1; + argv[1]++; + } + + if(*argv[1] == '#') argv[1]++; + + if(argv[2]) { + style.max = (unsigned) gfx_strtol(argv[2], 0, 0); + } + + if(!gfx_strcmp(argv[1], "st")) { + gfx_status_dump(); + } + else if(!gfx_strcmp(argv[1], "vm")) { + gfx_vm_status_dump(); + } + else if(!gfx_strcmp(argv[1], "mem")) { + gfx_malloc_dump(style); + } + else if(!gfx_strcmp(argv[1], "stack")) { + gfx_stack_dump(style); + } + else if(!gfx_strcmp(argv[1], "bt")) { + gfx_bt_dump(style); + } + else { + obj_id_t id = 0; + int show_id = 1; + char *s = 0; + + if(!gfx_strcmp(argv[1], "stack")) { + id = gfxboot_data->vm.program.pstack; + } + else if(!gfx_strcmp(argv[1], "context")) { + id = gfxboot_data->vm.program.context; + } + else if(!gfx_strcmp(argv[1], "dict")) { + id = gfxboot_data->vm.program.dict; + } + else if(!gfx_strcmp(argv[1], "gc")) { + id = gfxboot_data->vm.gc_list; + } + else if(!gfx_strcmp(argv[1], "screen")) { + id = gfxboot_data->screen.virt_id; + } + else if(!gfx_strcmp(argv[1], "gstate")) { + id = gfxboot_data->gstate_id; + } + else if(!gfx_strcmp(argv[1], "consolegstate")) { + id = gfxboot_data->console.gstate_id; + } + else if(!gfx_strcmp(argv[1], "ip")) { + gfxboot_log("ip = %s\n", gfx_debug_get_ip()); + show_id = 0; + } + else if(!gfx_strcmp(argv[1], "err")) { + gfx_show_error(); + show_id = 0; + } + else { + unsigned idx = (unsigned) gfx_strtol(argv[1], &s, 0); + if(*s) return; + obj_t *ptr = gfx_obj_ptr_nocheck(idx); + if(ptr) { + id = OBJ_ID(OBJ_ID2IDX(idx), ptr->gen); + } + else { + show_id = 0; + } + } + + if(show_id) gfx_obj_dump(id, style); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void debug_cmd_hex(int argc, char **argv) +{ + dump_style_t style = { .dump = 1 }; + int x = 0; + unsigned len = 0; + obj_t tmp = { }; + + if(!argv[1]) return; + + if(*argv[1] == '*') { + x = 1; + argv[1]++; + } + + if(*argv[1] == '#') argv[1]++; + + if(argv[2]) { + len = (unsigned) gfx_strtol(argv[2], 0, 0); + } + + char *s = 0; + obj_id_t idx = (obj_id_t) gfx_strtol(argv[1], &s, 0); + + if(!s || !*s) { + obj_t *ptr = gfx_obj_ptr_nocheck(idx); + if(ptr) { + if(x) { + tmp.data.ptr = ptr; + tmp.data.size = sizeof *ptr; + } + else { + if(ptr->flags.data_is_ptr) { + tmp.data.ptr = ptr->data.ptr; + tmp.data.size = ptr->data.size; + } + else { + tmp.data.ptr = &ptr->data.value; + tmp.data.size = 8; + } + } + if(len) tmp.data.size = len; + gfx_obj_mem_dump(&tmp, style); + } + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int is_num(char *str) +{ + return str && *str >= '0' && *str <= '9'; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void debug_cmd_log(int argc, char **argv) +{ + argc--; + argv++; + + while(*argv) { + if(!gfx_strcmp(*argv, "serial")) { + gfxboot_data->vm.debug.log_level_serial = is_num(argv[1]) ? gfx_strtol(*++argv, 0, 0) : 0; + } + else if(!gfx_strcmp(*argv, "console")) { + gfxboot_data->vm.debug.log_level_console = is_num(argv[1]) ? gfx_strtol(*++argv, 0, 0) : 0; + } + else if(!gfx_strcmp(*argv, "pointer")) { + gfxboot_data->vm.debug.show_pointer = is_num(argv[1]) ? gfx_strtol(*++argv, 0, 0) : 1; + } + else if(!gfx_strcmp(*argv, "prompt")) { + gfxboot_data->vm.debug.log_prompt = is_num(argv[1]) ? gfx_strtol(*++argv, 0, 0) : 1; + } + else if(!gfx_strcmp(*argv, "ip")) { + gfxboot_data->vm.debug.trace.ip = is_num(argv[1]) ? gfx_strtol(*++argv, 0, 0) : 1; + } + else if(!gfx_strcmp(*argv, "stack")) { + gfxboot_data->vm.debug.trace.pstack = is_num(argv[1]) ? gfx_strtol(*++argv, 0, 0) : 1; + } + else if(!gfx_strcmp(*argv, "context")) { + gfxboot_data->vm.debug.trace.context = is_num(argv[1]) ? gfx_strtol(*++argv, 0, 0) : 1; + } + else if(!gfx_strcmp(*argv, "gc")) { + gfxboot_data->vm.debug.trace.gc = is_num(argv[1]) ? gfx_strtol(*++argv, 0, 0) : 1; + } + else if(!gfx_strcmp(*argv, "time")) { + gfxboot_data->vm.debug.trace.time = is_num(argv[1]) ? gfx_strtol(*++argv, 0, 0) : 1; + } + else if(!gfx_strcmp(*argv, "all")) { + gfxboot_data->vm.debug.trace.pstack = + gfxboot_data->vm.debug.trace.context = + gfxboot_data->vm.debug.trace.ip = + gfxboot_data->vm.debug.trace.gc = + gfxboot_data->vm.debug.trace.time = + gfxboot_data->vm.debug.log_prompt = + is_num(argv[1]) ? gfx_strtol(*++argv, 0, 0) : 1; + } + + argv++; + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void debug_cmd_run(int argc, char **argv) +{ + unsigned steps = 0; + + if(*argv[0] == 't') steps = 1; + + if(argv[1]) steps = (unsigned) gfx_strtol(argv[1], 0, 0); + + gfxboot_data->vm.debug.steps = steps; + + gfx_program_run(); + + gfx_show_error(); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void debug_cmd_find(int argc, char **argv) +{ + if(argc < 2) return; + + uint32_t idx = (uint32_t) gfx_strtol(argv[1], 0, 0); + if(!idx) return; + + obj_t *ptr = gfx_obj_ptr_nocheck(idx); + if(!ptr) return; + + obj_id_t id = OBJ_ID(idx, ptr->gen); + + ptr = gfx_obj_ptr(OBJ_ID(0, 1)); + if(!ptr) return; + + olist_t *olist = ptr->data.ptr; + if(ptr->data.size != OBJ_OLIST_SIZE(olist->max)) { + return; + } + + unsigned u; + + for(u = 0; u < olist->max; u++) { + ptr = olist->ptr + u; + if(gfx_obj_contains_function(ptr->base_type)(ptr, id)) { + gfxboot_log("%s\n", gfx_obj_id2str(OBJ_ID(u, ptr->gen))); + } + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void debug_cmd_set(int argc, char **argv) +{ + if(argc < 3) return; + + argc--; + argv++; + + char *s = 0; + unsigned val = (unsigned) gfx_strtol(argv[1], &s, 0); + + if(*s) return; + + obj_id_t id = 0; + + if(val) { + obj_t *ptr = gfx_obj_ptr_nocheck(val); + if(ptr) { + id = OBJ_ID(OBJ_ID2IDX(val), ptr->gen); + } + } + + if(!gfx_strcmp(argv[0], "stack")) { + obj_id_t old = gfxboot_data->vm.program.pstack; + gfxboot_data->vm.program.pstack = gfx_obj_ref_inc(id); + gfx_obj_ref_dec(old); + } + else if(!gfx_strcmp(argv[0], "context")) { + obj_id_t old = gfxboot_data->vm.program.context; + gfxboot_data->vm.program.context = gfx_obj_ref_inc(id); + gfx_obj_ref_dec(old); + } + else if(!gfx_strcmp(argv[0], "dict")) { + obj_id_t old = gfxboot_data->vm.program.dict; + gfxboot_data->vm.program.dict = gfx_obj_ref_inc(id); + gfx_obj_ref_dec(old); + } + else if(!gfx_strcmp(argv[0], "gc")) { + obj_id_t old = gfxboot_data->vm.gc_list; + gfxboot_data->vm.gc_list = gfx_obj_ref_inc(id); + gfx_obj_ref_dec(old); + } + else if(!gfx_strcmp(argv[0], "screen")) { + obj_id_t old = gfxboot_data->screen.virt_id; + gfxboot_data->screen.virt_id = gfx_obj_ref_inc(id); + gfx_obj_ref_dec(old); + } + else if(!gfx_strcmp(argv[0], "gstate")) { + obj_id_t old = gfxboot_data->gstate_id; + gfxboot_data->gstate_id = gfx_obj_ref_inc(id); + gfx_obj_ref_dec(old); + } + else if(!gfx_strcmp(argv[0], "consolegstate")) { + obj_id_t old = gfxboot_data->console.gstate_id; + gfxboot_data->console.gstate_id = gfx_obj_ref_inc(id); + gfx_obj_ref_dec(old); + } + else if(!gfx_strcmp(argv[0], "ip")) { + context_t *code_ctx = gfx_obj_context_ptr(gfxboot_data->vm.program.context); + if(code_ctx) { + code_ctx->ip = val; + } + gfxboot_log("ip = %s\n", gfx_debug_get_ip()); + } + else if(!gfx_strcmp(argv[0], "err")) { + gfxboot_data->vm.error.id = val; + gfx_show_error(); + } +} + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +char *skip_space(char *str) +{ + while(*str == ' ' || *str == '\t' || *str == '\r' || *str == '\n') str++; + + return str; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +char *skip_nonspace(char *str) +{ + if(str[0] == '"') { + str++; + while(*str != 0 && *str != '"') str++; + if(*str == '"') str++; + } + else { + while(*str && !(*str == ' ' || *str == '\t' || *str == '\r' || *str == '\n')) str++; + } + + return str; +} diff --git a/gfxboot_draw.c b/gfxboot_draw.c new file mode 100644 index 0000000..3925ed9 --- /dev/null +++ b/gfxboot_draw.c @@ -0,0 +1,766 @@ +#include + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// drawing functions +// +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +static obj_id_t gfx_font_render_glyph(gstate_t *gstate, area_t *geo, unsigned c); +static obj_id_t gfx_font_render_font1_glyph(gstate_t *gstate, font_t *font, area_t *geo, unsigned c); +static obj_id_t gfx_font_render_font2_glyph(gstate_t *gstate, font_t *font, area_t *geo, unsigned c); +static unsigned read_unsigned_bits(uint8_t *buf, unsigned *bit_ofs, unsigned bits); +static int read_signed_bits(uint8_t *buf, unsigned *bit_ofs, unsigned bits); + +static color_t gfx_color_merge(color_t dst, color_t src); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_screen_update(area_t area) +{ + int i, j; + uint8_t *r8, *rc8; + color_t c; + uint32_t rc; + uint32_t rm, gm, bm; + int rs, gs, bs; + int rp, gp, bp; + int rsize; + + canvas_t *virt_fb = gfx_obj_canvas_ptr(gfxboot_data->screen.virt_id); + if(!virt_fb) return; + + color_t *pixel = virt_fb->ptr; + + rm = (1u << gfxboot_data->screen.real.red.size) - 1; + gm = (1u << gfxboot_data->screen.real.green.size) - 1; + bm = (1u << gfxboot_data->screen.real.blue.size) - 1; + + rs = 24 - gfxboot_data->screen.real.red.size; + gs = 16 - gfxboot_data->screen.real.green.size; + bs = 8 - gfxboot_data->screen.real.blue.size; + + rp = gfxboot_data->screen.real.red.pos; + gp = gfxboot_data->screen.real.green.pos; + bp = gfxboot_data->screen.real.blue.pos; + + rsize = gfxboot_data->screen.real.bytes_per_pixel; + +#if 0 + gfxboot_log( + "rm = 0x%02x, gm = 0x%02x, bm = 0x%02x, rs = %d, gs = %d, bs = %d, rp = %d, gp = %d, bp = %d\n", + rm, gm, bm, rs, gs, bs, rp, gp, bp + ); +#endif + + r8 = (uint8_t *) gfxboot_data->screen.real.ptr + + area.y * gfxboot_data->screen.real.bytes_per_line + + area.x * gfxboot_data->screen.real.bytes_per_pixel; + + pixel += area.y * virt_fb->width + area.x; + + for(j = 0; j < area.height; j++, r8 += gfxboot_data->screen.real.bytes_per_line, pixel += virt_fb->width) { + for(rc8 = r8, i = 0; i < area.width; i++) { + c = pixel[i]; + rc = (((c >> rs) & rm) << rp) + (((c >> gs) & gm) << gp) + (((c >> bs) & bm) << bp); + switch(rsize) { + case 4: + *rc8++ = rc; + rc >>= 8; + case 3: + *rc8++ = rc; + rc >>= 8; + case 2: + *rc8++ = rc; + rc >>= 8; + case 1: + *rc8++ = rc; + rc >>= 8; + } + } + } + + gfxboot_screen_update(area); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_font_render_glyph(gstate_t *gstate, area_t *geo, unsigned c) +{ + font_t *font; + obj_id_t font_id, glyph_id = 0; + + while(1) { + for(font_id = gstate->font_id; (font = gfx_obj_font_ptr(font_id)); font_id = font->parent_id) { + switch(font->type) { + case 1: + glyph_id = gfx_font_render_font1_glyph(gstate, font, geo, c); + break; + + case 2: + glyph_id = gfx_font_render_font2_glyph(gstate, font, geo, c); + break; + } + if(glyph_id) return glyph_id; + } + + if(c == 0xfffd) return 0; + + c = 0xfffd; + } + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_font_render_font1_glyph(gstate_t *gstate, font_t *font, area_t *geo, unsigned c) +{ + data_t *data = gfx_obj_mem_ptr(font->data_id); + if(!data) return 0; + + char *uni = data->ptr + font->unimap.offset; + char *uni_end = uni + font->unimap.size; + + int i, j; + uint8_t *bitmap = 0; + unsigned uni_len = font->unimap.size; + unsigned idx; + + for(idx = 0; uni < uni_end; ) { + i = gfx_utf8_dec(&uni, &uni_len); + if(i == -0xff) { + idx++; + continue; + } + if(i == (int) c) { + if(idx < font->glyphs) { + bitmap = data->ptr + font->bitmap.offset + idx * font->glyph_size; + } + break; + } + } + + if(!bitmap) return 0; + + *geo = (area_t) { .x = 0, .y = 0, .width = font->width, .height = 0 }; + + canvas_t *glyph = gfx_obj_canvas_ptr(font->glyph_id); + + if( + !glyph || + !gfx_canvas_adjust_size(glyph, font->width, font->height) + ) { + return 0; + } + + // gfxboot_log("char 0x%04x, idx %u, bitmap %p\n", c, idx, bitmap); + + // got bitmap, now go for it + + color_t fg = gstate->color; + color_t bg = gstate->bg_color; + + color_t *col = glyph->ptr; + uint8_t cb; + + for(j = 0; j < font->height; j++) { + for(i = 0, cb = *bitmap++; i < font->width; i++) { + *col++ = (cb & 0x80) ? fg : bg; + cb <<= 1; + } + } + + return font->glyph_id; +} + + +#define GRAY_BITS 4 +#define GRAY_BIT_COUNT 3 +#define MAX_GRAY ((1 << GRAY_BITS) - 3) +#define REP_BG (MAX_GRAY + 1) +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_font_render_font2_glyph(gstate_t *gstate, font_t *font, area_t *geo, unsigned c) +{ + data_t *data = gfx_obj_mem_ptr(font->data_id); + if(!data) return 0; + + uint8_t *ofs_table = data->ptr + font->unimap.offset; + unsigned u, ofs = 0; + + for(u = 0; u < font->glyphs; u++) { + unsigned g = gfx_read_le32(ofs_table + 5 * u) & ((1 << 21) - 1); + if(g == c) { + ofs = gfx_read_le32(ofs_table + 5 * u + 1); + ofs >>= 21 - 8; + break; + } + } + + // gfxboot_serial(0, "font2: char %u, ofs %u\n", c, ofs); + + if( + u == font->glyphs || ofs < font->bitmap.offset || ofs >= data->size + ) { + return 0; + } + + uint8_t *glyph_data = data->ptr + ofs; + unsigned bit_ofs = 0; + + unsigned type = read_unsigned_bits(glyph_data, &bit_ofs, 2); + + if(type != 1) return 0; + + unsigned bits = read_unsigned_bits(glyph_data, &bit_ofs, 3) + 1; + + int bitmap_width = (int) read_unsigned_bits(glyph_data, &bit_ofs, bits); + int bitmap_height = (int) read_unsigned_bits(glyph_data, &bit_ofs, bits); + int x_ofs = read_signed_bits(glyph_data, &bit_ofs, bits); + int y_ofs = read_signed_bits(glyph_data, &bit_ofs, bits); + int x_advance = read_signed_bits(glyph_data, &bit_ofs, bits); + +#if 0 + gfxboot_serial(0, "font2: bits %u, bitmap %dx%d, ofs %dx%d, advance %d\n", + bits, bitmap_width, bitmap_height, x_ofs, y_ofs, x_advance + ); +#endif + + canvas_t *glyph = gfx_obj_canvas_ptr(font->glyph_id); + + if( + !glyph || + !gfx_canvas_adjust_size(glyph, bitmap_width, bitmap_height) + ) { + return 0; + } + + // recalculate offset relative to top of glyph + int d_y = font->height - font->baseline - y_ofs - bitmap_height; + + *geo = (area_t) { .x = x_ofs, .y = d_y, .width = x_advance, .height = 0 }; + + unsigned len = (unsigned) (bitmap_height * bitmap_width); + + static color_t last_fg = COLOR(0, 0, 0, 0); + static color_t color_map[MAX_GRAY + 1] = { }; + static int first_time_ever = 1; + + union { + color_t c; + struct { + uint8_t b, g, r, a; + } __attribute__ ((packed)); + } __attribute__ ((packed)) fg, tmp; + + fg.c = gstate->color; + + // if drawing color changed, recalculate color mapping table + if(fg.c != last_fg || first_time_ever) { + first_time_ever = 0; + last_fg = fg.c; + + for(int i = 0; i <= MAX_GRAY; i++) { + tmp.c = fg.c; + tmp.a = 255 - i * (255 - fg.a) / MAX_GRAY; + color_map[i] = tmp.c; + } + } + + for(u = 0; u < len;) { + unsigned lc = read_unsigned_bits(glyph_data, &bit_ofs, GRAY_BITS); + // gfxboot_serial(0, "(%u)", lc); + if(lc <= MAX_GRAY) { + glyph->ptr[u++] = color_map[lc]; + continue; + } + lc = lc == REP_BG ? 0 : MAX_GRAY; + unsigned lc_cnt = read_unsigned_bits(glyph_data, &bit_ofs, GRAY_BIT_COUNT) + 3; + // gfxboot_serial(0, "(%u)", lc_cnt); + while(u < len && lc_cnt--) glyph->ptr[u++] = color_map[lc]; + } + + return font->glyph_id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_console_putc(unsigned c, int update_pos) +{ + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->console.gstate_id); + + if(!gstate) return; + + switch(c) { + case 0x08: + if(update_pos) { + gfx_putc(gstate, ' ', 0); + if(gstate->pos.x >= gstate->pos.width) { + gstate->pos.x -= gstate->pos.width; + } + else { + gstate->pos.x = 0; + } + } + break; + + case 0x0a: + if(update_pos) { + gstate->pos.x = 0; + gstate->pos.y += gstate->pos.height; + } + + area_t src_area = gstate->region; + area_t dst_area = gstate->region; + + dst_area.height = src_area.height -= gstate->pos.height; + src_area.y += gstate->pos.height; + + if(gstate->pos.y + gstate->pos.height > gstate->region.height) { + gstate->pos.y -= gstate->pos.height; + + // scroll up + gfx_blt(0, gstate->canvas_id, dst_area, gstate->canvas_id, src_area); + + gfx_rect( + gstate, + 0, + gstate->region.height - gstate->pos.height, + gstate->region.width, + gstate->pos.height, + gstate->bg_color + ); + } + break; + + case 0x0d: + if(update_pos) { + gstate->pos.x = 0; + } + break; + + default: + gfx_putc(gstate, c, update_pos); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_console_puts(char *s) +{ + int c; + + while((c = gfx_utf8_dec(&s, 0))) { + gfx_console_putc((unsigned) c, 1); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_putc(gstate_t *gstate, unsigned c, int update_pos) +{ + obj_id_t glyph_id; + area_t geo; + + if((glyph_id = gfx_font_render_glyph(gstate, &geo, c))) { + canvas_t *glyph = gfx_obj_canvas_ptr(glyph_id); + if(!glyph) return; + + area_t area = { + .x = gstate->region.x + gstate->pos.x + geo.x, + .y = gstate->region.y + gstate->pos.y + geo.y, + .width = glyph->width, + .height = glyph->height + }; + + area_t glyph_area = { + .x = 0, + .y = 0, + .width = glyph->width, + .height = glyph->height + }; + + area_t diff = gfx_clip(&area, &gstate->region); + + ADD_AREA(glyph_area, diff); + + gfx_blt(1, gstate->canvas_id, area, glyph_id, glyph_area); + + if(update_pos) gstate->pos.x += geo.width; + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_puts(gstate_t *gstate, char *s, unsigned len) +{ + int c; + int start = gstate->pos.x; + + while(len) { + c = gfx_utf8_dec(&s, &len); + if(c < 0) c = 0xfffd; + + switch(c) { + case 0x0a: + gstate->pos.y += gstate->pos.height; + + case 0x0d: + gstate->pos.x = start; + break; + + default: + gfx_putc(gstate, (unsigned) c, 1); + } + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// clip area1 to difference of area1 and area2 +// +// return difference (diff = area1_clipped - area1_unclipped) +// +area_t gfx_clip(area_t *area1, area_t *area2) +{ + area_t diff = {}; + int d; + + d = area1->x - area2->x; + + if(d < 0) { + diff.x = -d; + diff.width = d; + } + + d = area1->y - area2->y; + + if(d < 0) { + diff.y = -d; + diff.height = d; + } + + d = area2->x + area2->width - (area1->x + area1->width); + + if(d < 0) diff.width += d; + + d = area2->y + area2->height - (area1->y + area1->height); + + if(d < 0) diff.height += d; + + area1->x += diff.x; + area1->y += diff.y; + area1->width += diff.width; + area1->height += diff.height; + + if(area1->width < 0) { + diff.width = -area1->width; + area1->width = 0; + } + + if(area1->height < 0) { + diff.height = -area1->height; + area1->height = 0; + } + + return diff; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_blt(int mode, obj_id_t dst_id, area_t dst_area, obj_id_t src_id, area_t src_area) +{ + canvas_t *dst_c = gfx_obj_canvas_ptr(dst_id); + canvas_t *src_c = gfx_obj_canvas_ptr(src_id); + + gfxboot_serial(4, "dst #%d (%dx%d_%dx%d), src #%d (%dx%d_%dx%d)\n", + OBJ_ID2IDX(dst_id), + dst_area.x, dst_area.y, dst_area.width, dst_area.height, + OBJ_ID2IDX(src_id), + src_area.x, src_area.y, src_area.width, src_area.height + ); + + if(!dst_c || !src_c) return; + + dst_area.width = MIN(src_area.width, dst_area.width); + dst_area.height = MIN(src_area.height, dst_area.height); + +#if 0 + // additional clipping needed? + area_t tmp_area, diff; + + tmp_area = (area_t) { .width = dst_c->width, .height = dst_c->height }; + + diff = gfx_clip(&dst_area, &tmp_area); + + ADD_AREA(src_area, diff); + + tmp_area = (area_t) { .width = src_c->width, .height = src_c->height }; + + diff = gfx_clip(&src_area, &tmp_area); + + ADD_AREA(dst_area, diff); +#endif + + if(dst_area.width <= 0 || dst_area.height <= 0) return; + + color_t *dst_pixel = dst_c->ptr; + color_t *src_pixel = src_c->ptr; + + dst_pixel += dst_area.y * dst_c->width + dst_area.x; + src_pixel += src_area.y * src_c->width + src_area.x; + + if(mode == 0) { + int i; + for(i = 0; i < dst_area.height; i++, dst_pixel += dst_c->width, src_pixel += src_c->width) { + gfx_memcpy(dst_pixel, src_pixel, (unsigned) dst_area.width * COLOR_BYTES); + } + } + else if(mode == 1) { + int i, j; + for(j = 0; j < dst_area.height; j++, dst_pixel += dst_c->width, src_pixel += src_c->width) { + for(i = 0; i < dst_area.width; i++) { + dst_pixel[i] = gfx_color_merge(dst_pixel[i], src_pixel[i]); + } + } + } + + if(dst_id == gfxboot_data->screen.virt_id) { + gfx_screen_update(dst_area); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +color_t gfx_color_merge(color_t dst, color_t src) +{ + union { + color_t c; + struct { + uint8_t b, g, r, a; + } __attribute__ ((packed)); + } __attribute__ ((packed)) d, s; + + d.c = dst; + s.c = src; + + if(s.a == 0xff) return d.c; + if(s.a == 0) { + s.a = d.a; + return s.c; + } + + s.b += (((int) d.b - s.b + 1) * s.a) >> 8; + s.g += (((int) d.g - s.g + 1) * s.a) >> 8; + s.r += (((int) d.r - s.r + 1) * s.a) >> 8; + +#if 0 + // slightly more correct would be + s.b += (((int) d.b - s.b + (d.b > s.b ? 1 : 0)) * s.a) >> 8; + s.g += (((int) d.g - s.g + (d.g > s.g ? 1 : 0)) * s.a) >> 8; + s.r += (((int) d.r - s.r + (d.r > s.r ? 1 : 0)) * s.a) >> 8; +#endif + + s.a = d.a; + + return s.c; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_getpixel(gstate_t *gstate, canvas_t *canvas, int x, int y, color_t *color) +{ + int ok = 0; + + if(x >= 0 && y >= 0 && x < gstate->region.width && y < gstate->region.height) { + x += gstate->region.x; + y += gstate->region.y; + if(x >= 0 && y >= 0 && x < canvas->width && y < canvas->height) { + *color = canvas->ptr[x + y * canvas->width]; + ok = 1; + } + } + + return ok; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_putpixel(gstate_t *gstate, canvas_t *canvas, int x, int y, color_t color) +{ + // gfxboot_serial(0, "X putpixel %dx%d\n", x, y); + + if(x >= 0 && y >= 0 && x < gstate->region.width && y < gstate->region.height) { + x += gstate->region.x; + y += gstate->region.y; + if(x >= 0 && y >= 0 && x < canvas->width && y < canvas->height) { + int ofs = x + y * canvas->width; + canvas->ptr[ofs] = gfx_color_merge(canvas->ptr[ofs], color); + if(gstate->canvas_id == gfxboot_data->screen.virt_id) { + gfx_screen_update((area_t) { .x = x, .y = y, .width = 1, .height = 1 }); + } + } + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_line(gstate_t *gstate, canvas_t *canvas, int x0, int y0, int x1, int y1, color_t color) +{ + if(x1 < x0) { + int tmp; + tmp = x0; x0 = x1; x1 = tmp; + tmp = y0; y0 = y1; y1 = tmp; + } + + int dx = x1 - x0; + int dy = y1 - y0; + int acc; + + // shortcut for horizontal and vertical lines + if(dy == 0 || dx == 0) { + if(dy < 0) { + int tmp = y0; y0 = y1; y1 = tmp; + dy = -dy; + } + if(dx) { + gfx_rect(gstate, x0, y0, dx + 1, 1, color); + } + else if(dy) { + gfx_rect(gstate, x0, y0, 1, dy + 1, color); + } + + return; + } + + if(dy >= 0) { + if(dy <= dx) { + for(acc = -(dx / 2); x0 <= x1; x0++) { + gfx_putpixel(gstate, canvas, x0, y0, color); + acc += dy; + if(acc >= 0) { + acc -= dx; + y0++; + } + } + } + else { + for(acc = -(dy / 2); y0 <= y1; y0++) { + gfx_putpixel(gstate, canvas, x0, y0, color); + acc += dx; + if(acc >= 0) { + acc -= dy; + x0++; + } + } + } + } + else { + dy = -dy; + if(dy <= dx) { + for(acc = -(dx / 2); x0 <= x1; x0++) { + gfx_putpixel(gstate, canvas, x0, y0, color); + acc += dy; + if(acc >= 0) { + acc -= dx; + y0--; + } + } + } + else { + for(acc = -(dy / 2); y0 >= y1; y0--) { + gfx_putpixel(gstate, canvas, x0, y0, color); + acc += dx; + if(acc >= 0) { + acc -= dy; + x0++; + } + } + } + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_rect(gstate_t *gstate, int x, int y, int width, int height, color_t c) +{ + canvas_t *canvas = gfx_obj_canvas_ptr(gstate->canvas_id); + + if(!canvas) return; + + area_t area = { + .x = gstate->region.x + x, + .y = gstate->region.y + y, + .width = width, + .height = height + }; + +#if 0 + gfxboot_serial(0, "rect before: %dx%d_%dx%d / %dx%d_%dx%d\n", + area.x, area.y, area.width, area.height, + gstate->region.x, gstate->region.y, gstate->region.width, gstate->region.height + ); +#endif + + gfx_clip(&area, &gstate->region); + +#if 0 + gfxboot_serial(0, "rect after: %dx%d_%dx%d\n", + area.x, area.y, area.width, area.height + ); +#endif + + color_t *pixel = canvas->ptr; + + pixel += area.y * canvas->width + area.x; + + int i, j; + + for(j = 0; j < area.height; j++, pixel += canvas->width) { + for(i = 0; i < area.width; i++) { + pixel[i] = gfx_color_merge(pixel[i], c); + } + } + + if(gstate->canvas_id == gfxboot_data->screen.virt_id) { + gfx_screen_update(area); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned read_unsigned_bits(uint8_t *buf, unsigned *bit_ofs, unsigned bits) +{ + unsigned rem, ptr; + unsigned data = 0, dptr = 0; + + while(bits > 0) { + ptr = *bit_ofs >> 3; + rem = 8 - (*bit_ofs & 7); + if(rem > bits) rem = bits; + data += (((unsigned) buf[ptr] >> (*bit_ofs & 7)) & ((1u << rem) - 1)) << dptr; + dptr += rem; + *bit_ofs += rem; + bits -= rem; + } + + return data; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int read_signed_bits(uint8_t *buf, unsigned *bit_ofs, unsigned bits) +{ + int i; + + i = (int) read_unsigned_bits(buf, bit_ofs, bits); + + if(bits == 0) return i; + + if((i & (1 << (bits - 1)))) { + i += -1 << bits; + } + + return i; +} diff --git a/gfxboot_font.c b/gfxboot_font.c new file mode 100644 index 0000000..8213c82 --- /dev/null +++ b/gfxboot_font.c @@ -0,0 +1,199 @@ +#include + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// font + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_font_new() +{ + return gfx_obj_alloc(OTYPE_FONT, OBJ_FONT_SIZE()); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +font_t *gfx_obj_font_ptr(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_FONT) return 0; + + return (font_t *) ptr->data.ptr; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_font_dump(obj_t *ptr, dump_style_t style) +{ + if(!ptr) return 1; + + font_t *f = ptr->data.ptr; + unsigned len = ptr->data.size; + if(len != OBJ_FONT_SIZE()) { + gfxboot_log(" \n"); + + return 1; + } + + if(!style.ref) { + if(!style.inspect) return 0; + + if(f->type == 1) { + gfxboot_log("glyphs %d, size %dx%d, line height %d", f->glyphs, f->width, f->height, f->line_height); + } + else if(f->type == 2) { + gfxboot_log("glyphs %d, height %d, line height %d, base %d", f->glyphs, f->height, f->line_height, f->baseline); + } + if(f->parent_id) gfxboot_log(", parent %s", gfx_obj_id2str(f->parent_id)); + + return 1; + } + + if(style.dump) { + canvas_t *glyph = gfx_obj_canvas_ptr(f->glyph_id); + gfxboot_log(" type %u, glyphs %d\n", f->type, f->glyphs); + gfxboot_log(" font size %dx%d, line height %d, baseline %d\n", f->width, f->height, f->line_height, f->baseline); + if(glyph) { + gfxboot_log(" bitmap size %dx%d\n", glyph->max_width, glyph->max_height); + } + gfxboot_log(" bitmap table: offset %u, size %u\n", f->bitmap.offset, f->bitmap.size); + gfxboot_log(" char index: offset %u, size %u\n", f->unimap.offset, f->unimap.size); + gfxboot_log(" data_id %s\n", gfx_obj_id2str(f->data_id)); + gfxboot_log(" glyph_id %s\n", gfx_obj_id2str(f->glyph_id)); + } + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_font_gc(obj_t *ptr) +{ + if(!ptr) return 0; + + font_t *font = ptr->data.ptr; + unsigned data_size = ptr->data.size; + unsigned more_gc = 0; + + if(font && data_size == OBJ_FONT_SIZE()) { + more_gc += gfx_obj_ref_dec_delay_gc(font->parent_id); + more_gc += gfx_obj_ref_dec_delay_gc(font->data_id); + more_gc += gfx_obj_ref_dec_delay_gc(font->glyph_id); + } + + return more_gc; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_font_contains(obj_t *ptr, obj_id_t id) +{ + if(!ptr || !id) return 0; + + font_t *font = ptr->data.ptr; + unsigned data_size = ptr->data.size; + + if(font && data_size == OBJ_FONT_SIZE()) { + if(id == font->parent_id || id == font->data_id || id == font->glyph_id) return 1; + } + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_font_open(obj_id_t font_file) +{ + data_t *mem = gfx_obj_mem_ptr(font_file); + unsigned ok = 0; + + if(!mem) return 0; + + obj_id_t font_id = gfx_obj_font_new(); + + font_t *font = gfx_obj_font_ptr(font_id); + + if(!font) return 0; + + font->data_id = font_file; + + uint8_t *ptr = mem->ptr; + unsigned size = mem->size; + + int max_bitmap_width = 0; + int max_bitmap_height = 0; + + if( + size >= 0x20 && + gfx_read_le32(ptr) == 0x864ab572 + ) { + unsigned header_size = gfx_read_le32(ptr + 8); + + font->glyphs = gfx_read_le32(ptr + 16); + font->glyph_size = gfx_read_le32(ptr + 20); + font->height = (int) gfx_read_le32(ptr + 24); + font->width = (int) gfx_read_le32(ptr + 28); + font->line_height = font->height; + + font->bitmap.offset = header_size; + font->bitmap.size = font->glyphs * font->glyph_size; + + font->unimap.offset = font->bitmap.offset + font->bitmap.size; + font->unimap.size = size - font->unimap.offset; + + max_bitmap_width = font->width; + max_bitmap_height = font->height; + + if( + font->height == (int) font->glyph_size && + font->width <= 8 && + font->unimap.size > 0 + ) { + font->type = 1; + ok = 1; + } + } + else if( + size >= 0x10 && + gfx_read_le32(ptr) == 0xa42a9123 + ) { + unsigned header_size = 0x10; + + font->glyphs = gfx_read_le32(ptr + 12); + max_bitmap_width = ptr[7]; + max_bitmap_height = ptr[8]; + font->height = ptr[9]; + font->line_height = ptr[10]; + font->baseline = (int8_t) ptr[11]; + font->glyphs = gfx_read_le32(ptr + 12); + + font->unimap.offset = header_size; + font->unimap.size = 5 * font->glyphs; + + font->bitmap.offset = font->unimap.offset + font->unimap.size; + font->bitmap.size = size - font->bitmap.offset; + + if(font->bitmap.size > 0) { + font->type = 2; + ok = 1; + } + } + + if(ok) { + font->glyph_id = gfx_obj_canvas_new(max_bitmap_width, max_bitmap_height); + if(!font->glyph_id) ok = 0; + } + + if(ok) { + gfx_obj_ref_inc(font->data_id); + } + else { + gfx_obj_ref_dec(font->glyph_id); + gfx_obj_ref_dec(font_id); + font_id = 0; + } + + return font_id; +} diff --git a/gfxboot_grub.c b/gfxboot_grub.c new file mode 100644 index 0000000..31fcbd0 --- /dev/null +++ b/gfxboot_grub.c @@ -0,0 +1,511 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +GRUB_MOD_LICENSE ("GPLv3+"); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +gfxboot_data_t *gfxboot_data; + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +static void serial_init(void); +static void serial_putc(int key); + +static void grub_gfxboot_page_0(void); +static grub_err_t grub_gfxboot_init(int entry, grub_menu_t menu, int nested); +static int grub_gfxboot_process_key(int *key); +static void grub_gfxboot_set_chosen_entry(int entry, void *data); +static void grub_gfxboot_print_timeout(int timeout, void *data); +static void grub_gfxboot_clear_timeout(void *data); +static void grub_gfxboot_data_free(void); +static void grub_gfxboot_fini(void *data); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void serial_init() +{ + int x; + unsigned port = 0x3f8; + + gfxboot_data->serial.port = port; + + // DLAB = 1 + grub_outb(0x83, port + 3); + + // set to 115200 baud + grub_outb(1, port + 0); + grub_outb(0, port + 1); + + // DLAB = 0, 8 bits, no parity + grub_outb(0x03, port + 3); + + x = grub_inb(port + 3); + + // gfxboot_log("x = 0x%02x\n", x); + + if(x == 0xff) { + gfxboot_data->serial.port = 0; + return; + } + + // IRQ disable + grub_outb(0x00, port + 1); + + // FIFO enable + grub_outb(0x01, port + 2); + + // set terminal colors to normal, looks better + gfxboot_log("\033[00m"); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void serial_putc(int key) +{ + unsigned cnt = 1 << 20; + + if(!gfxboot_data || !gfxboot_data->serial.port) return; + + // wait until ready, but not indefinitely... + while(!(grub_inb(gfxboot_data->serial.port + 5) & 0x20) && cnt--); + + grub_outb(key, gfxboot_data->serial.port); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// Print to serial line and/or console. +// +// dst - bitmask; bit 0: serial, bit 1: console +// +int gfxboot_printf(int dst, const char *format, ...) +{ + char *s; + int log_level_serial = (signed char) ((dst >> 8) & 0xff); + int log_level_console = (signed char) ((dst >> 16) & 0xff); + + if(!format) return 0; + + va_list args; + va_start(args, format); + s = grub_xvasprintf(format, args); + va_end(args); + + if( + (dst & 1) && + gfxboot_data && + log_level_serial <= gfxboot_data->vm.debug.log_level_serial + ) { + char *t = s; + while(*t) { + if(*t == '\n') serial_putc('\r'); + serial_putc(*t++); + } + } + + if( + (dst & 2) && + gfxboot_data && + log_level_console <= gfxboot_data->vm.debug.log_level_console + ) { + char *t = s; + while(*t) { + if(*t == '\n') gfx_console_putc('\r', 1); + gfx_console_putc(*t++, 1); + } + } + + grub_free(s); + + return grub_strlen(s); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// Print to buffer. +// +int gfxboot_asprintf(char **str, const char *format, ...) +{ + char *s; + + va_list args; + va_start(args, format); + *str = s = grub_xvasprintf(format, args); + va_end(args); + + return s ? (int) grub_strlen(s) : -1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// Print to static buffer. +// +int gfxboot_snprintf(char *str, unsigned size, const char *format, ...) +{ + int len; + + va_list args; + va_start(args, format); + len = grub_vsnprintf(str, size, format, args); + va_end(args); + + return len; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void grub_gfxboot_page_0() +{ + void *fb; + + grub_video_get_raw_info(NULL, &fb); + + if(fb != gfxboot_data->screen.real.ptr) grub_video_swap_buffers(); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +grub_err_t grub_gfxboot_init(int entry, grub_menu_t menu, int nested) +{ + struct grub_video_mode_info mode_info; + struct grub_menu_viewer *instance; + grub_err_t err = GRUB_ERR_NONE; + void *fb0 = NULL, *fb1 = NULL; + + int i; + + grub_gfxboot_data_free(); + + gfxboot_data = grub_zalloc(sizeof *gfxboot_data); + if(!gfxboot_data) return grub_errno; + + instance = grub_zalloc(sizeof *instance); + if(!instance) return grub_errno; + + // don't log to console + gfxboot_data->vm.debug.log_level_console = -1; + + gfxboot_data->menu.entry = entry; + gfxboot_data->menu.nested = nested; + gfxboot_data->menu.timeout.max = grub_menu_get_timeout(); + + if(menu->size > 0) { + grub_menu_entry_t me; + + gfxboot_data->menu.size = menu->size; + gfxboot_data->menu.entries = grub_zalloc(menu->size * sizeof *gfxboot_data->menu.entries); + if(!gfxboot_data->menu.entries) return grub_errno; + + for(i = 0, me = menu->entry_list; me && i < menu->size; me = me->next, i++) { + gfxboot_data->menu.entries[i].title = me->title; + } + } + + err = grub_video_get_raw_info(&mode_info, &fb0); + + if(err) return err; + + grub_video_swap_buffers(); + + grub_video_get_raw_info(NULL, &fb1); + + if(fb1 == NULL || fb0 <= fb1) { + grub_video_swap_buffers(); + gfxboot_data->screen.real.ptr = fb0; + } + else { + gfxboot_data->screen.real.ptr = fb1; + } + + if(!gfxboot_data->screen.real.ptr) return GRUB_ERR_BAD_DEVICE; + + gfxboot_data->screen.real.width = mode_info.width; + gfxboot_data->screen.real.height = mode_info.height; + gfxboot_data->screen.real.bytes_per_line = mode_info.pitch; + gfxboot_data->screen.real.bytes_per_pixel = mode_info.bytes_per_pixel; + gfxboot_data->screen.real.bits_per_pixel = mode_info.bpp; + + gfxboot_data->screen.real.red.pos = mode_info.red_field_pos; + gfxboot_data->screen.real.red.size = mode_info.red_mask_size; + gfxboot_data->screen.real.green.pos = mode_info.green_field_pos; + gfxboot_data->screen.real.green.size = mode_info.green_mask_size; + gfxboot_data->screen.real.blue.pos = mode_info.blue_field_pos; + gfxboot_data->screen.real.blue.size = mode_info.blue_mask_size; + gfxboot_data->screen.real.res.pos = mode_info.reserved_field_pos; + gfxboot_data->screen.real.res.size = mode_info.reserved_mask_size; + + grub_video_set_viewport(0, 0, gfxboot_data->screen.real.width, gfxboot_data->screen.real.height); + +#if 0 + // setup a commandline terminal window + // cf. gfxmenu/init_terminal() + grub_gfxterm_set_window( + GRUB_VIDEO_RENDER_TARGET_DISPLAY, + 100, 100, + 300, 200, + 0, + grub_font_get(""), + 0 + ); +#endif + + instance->data = NULL; + instance->set_chosen_entry = grub_gfxboot_set_chosen_entry; + instance->print_timeout = grub_gfxboot_print_timeout; + instance->clear_timeout = grub_gfxboot_clear_timeout; + instance->process_key = grub_gfxboot_process_key; + instance->fini = grub_gfxboot_fini; + + serial_init(); + + // reserve 16 MiB for our VM + gfxboot_data->vm.mem.size = 16 * (1 << 20); + gfxboot_data->vm.mem.ptr = grub_zalloc(gfxboot_data->vm.mem.size); + if(!gfxboot_data->vm.mem.ptr) return grub_errno; + + if(grub_video_adapter_active) { + gfxboot_log("adapter name: %s\n", grub_video_adapter_active->name); + } + + gfxboot_log( + "video mode info:\n type = 0x%x\n fb0 = %p, fb1 = %p\n", + mode_info.mode_type, fb0, fb1 + ); + + if(gfxboot_init()) { + err = GRUB_ERR_MENU; + } + else { + grub_menu_register_viewer(instance); + } + + return err; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int grub_gfxboot_process_key(int *key) +{ + int action; + int key2; + + grub_gfxboot_page_0(); + + if(!gfxboot_data || !key) return 0; + + key2 = *key; + + if((key2 & GRUB_TERM_CTRL)) { + key2 &= 0x1f; + } + + gfxboot_debug(2, 2, "grub_gfxboot_process_key: key = 0x%x '%c'\n", key2, key2 >= ' ' ? key2 : ' '); + + if(gfxboot_data->menu.timeout.current > 0) { + grub_env_unset("timeout"); + grub_env_unset("fallback"); + grub_gfxboot_clear_timeout(NULL); + } + + action = gfxboot_process_key(key2); + + gfxboot_debug(1, 2, "grub_gfxboot_process_key: action = %d.0x%02x\n", action >> 8, action & 0xff); + + *key = 0; + + return action; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void grub_gfxboot_set_chosen_entry(int entry, void *data __attribute__ ((unused))) +{ + gfxboot_data->menu.entry = entry; + + gfxboot_log("set_chosen_entry: %d\n", entry); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void grub_gfxboot_print_timeout(int timeout, void *data __attribute__ ((unused))) +{ + gfxboot_data->menu.timeout.current = timeout; + + gfxboot_timeout(); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void grub_gfxboot_clear_timeout(void *data __attribute__ ((unused))) +{ + gfxboot_data->menu.timeout.current = 0; + + gfxboot_timeout(); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfxboot_sys_read_file(char *name, void **buf) +{ + int size = -1; + char *tmp = NULL; + + *buf = NULL; + + grub_errno = 0; + + if(!name) return size; + + if(*name != '/' && *name != '(') { + const char *prefix = grub_env_get("prefix"); + if(!prefix) prefix = ""; + + int prefix_len = grub_strlen(prefix); + int name_len = grub_strlen(name); + + tmp = grub_zalloc(prefix_len + name_len + 2); + + if(!tmp) return size; + + gfx_memcpy(tmp, prefix, prefix_len); + gfx_memcpy(tmp + prefix_len, "/", 1); + gfx_memcpy(tmp + prefix_len + 1, name, name_len); + + name = tmp; + } + + grub_file_t file = grub_file_open(name, GRUB_FILE_TYPE_NONE); + + gfxboot_log("open(%s) = %p\n", name, file); + + if(file) { + if(file->size == 0) { + size = 0; + } + else if(file->size > 0) { + *buf = grub_zalloc(file->size); + if(*buf) { + size = grub_file_read(file, *buf, file->size); + if(size != (int) file->size) { + grub_free(*buf); + *buf = NULL; + size = -1; + } + } + } + + grub_file_close(file); + } + + gfxboot_log("read(%s) = %d\n", name, size); + + grub_free(tmp); + + return size; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfxboot_sys_free(void *ptr) +{ + if(ptr) grub_free(ptr); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned long gfxboot_sys_strlen(const char *s) +{ + return grub_strlen(s); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfxboot_sys_strcmp(const char *s1, const char *s2) +{ + return grub_strcmp(s1, s2); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +long int gfxboot_sys_strtol(const char *nptr, char **endptr, int base) +{ + return grub_strtol(nptr, endptr, base); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfxboot_screen_update(area_t area __attribute__ ((unused))) +{ +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfxboot_getkey() +{ + return grub_getkey(); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void grub_gfxboot_data_free() +{ + if(gfxboot_data) { + grub_free(gfxboot_data->menu.entries); + grub_free(gfxboot_data->vm.mem.ptr); + + grub_free(gfxboot_data); + } + + gfxboot_data = NULL; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void grub_gfxboot_fini(void *data __attribute__ ((unused))) +{ + gfxboot_log("grub_gfxboot_fini %p\n", gfxboot_data); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +GRUB_MOD_INIT(gfxboot) +{ + struct grub_term_output *term; + + FOR_ACTIVE_TERM_OUTPUTS(term) { + if(grub_gfxmenu_try_hook && term->fullscreen) { + term->fullscreen(); + break; + } + } + + grub_gfxmenu_try_hook = grub_gfxboot_init; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +GRUB_MOD_FINI(gfxboot) +{ + gfxboot_log("gfxboot fini %p\n", gfxboot_data); + + grub_gfxboot_data_free(); + + grub_gfxmenu_try_hook = NULL; +} + diff --git a/gfxboot_gstate.c b/gfxboot_gstate.c new file mode 100644 index 0000000..1764c89 --- /dev/null +++ b/gfxboot_gstate.c @@ -0,0 +1,102 @@ +#include + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// gstate + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_gstate_new() +{ + return gfx_obj_alloc(OTYPE_GSTATE, OBJ_GSTATE_SIZE()); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +gstate_t *gfx_obj_gstate_ptr(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_GSTATE) return 0; + + return (gstate_t *) ptr->data.ptr; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_gstate_dump(obj_t *ptr, dump_style_t style) +{ + if(!ptr) return 1; + + gstate_t *gstate = ptr->data.ptr; + unsigned len = ptr->data.size; + if(len != OBJ_GSTATE_SIZE()) { + gfxboot_log(" \n"); + + return 1; + } + + if(!style.ref) { + if(!style.inspect) return 0; + + gfxboot_log("region %dx%d_%dx%d", gstate->region.x, gstate->region.y, gstate->region.width, gstate->region.height); + + return 1; + } + + if(style.dump) { + int width = 0; + int height = 0; + canvas_t *canvas = gfx_obj_canvas_ptr(gstate->canvas_id); + + if(canvas) { + width = canvas->width; + height = canvas->height; + } + + gfxboot_log(" pos %dx%d", gstate->pos.x, gstate->pos.y); + if(gstate->pos.width || gstate->pos.height) { + gfxboot_log(", char size %dx%d", gstate->pos.width, gstate->pos.height); + } + gfxboot_log("\n color #%08x, bg_color #%08x\n", gstate->color, gstate->bg_color); + gfxboot_log(" canvas %s (%dx%d)\n", gfx_obj_id2str(gstate->canvas_id), width, height); + gfxboot_log(" font %s\n", gfx_obj_id2str(gstate->font_id)); + } + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_gstate_gc(obj_t *ptr) +{ + if(!ptr) return 0; + + gstate_t *gstate = ptr->data.ptr; + unsigned data_size = ptr->data.size; + unsigned more_gc = 0; + + if(gstate && data_size == OBJ_GSTATE_SIZE()) { + more_gc += gfx_obj_ref_dec_delay_gc(gstate->canvas_id); + more_gc += gfx_obj_ref_dec_delay_gc(gstate->font_id); + } + + return more_gc; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_gstate_contains(obj_t *ptr, obj_id_t id) +{ + if(!ptr || !id) return 0; + + gstate_t *gstate = ptr->data.ptr; + unsigned data_size = ptr->data.size; + + if(gstate && data_size == OBJ_GSTATE_SIZE()) { + if(id == gstate->canvas_id || id == gstate->font_id) return 1; + } + + return 0; +} diff --git a/gfxboot_hash.c b/gfxboot_hash.c new file mode 100644 index 0000000..ca37e1f --- /dev/null +++ b/gfxboot_hash.c @@ -0,0 +1,334 @@ +#include + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// hash + +static unsigned find_key(hash_t *hash, data_t *key, int *match); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_hash_new(unsigned max) +{ + if(!max) max = 0x10; + + obj_id_t id = gfx_obj_alloc(OTYPE_HASH, OBJ_HASH_SIZE(max)); + hash_t *h = gfx_obj_hash_ptr(id); + + if(h) { + h->max = max; + } + + return id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +hash_t *gfx_obj_hash_ptr(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_HASH) return 0; + + return (hash_t *) ptr->data.ptr; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_hash_iterate(obj_t *ptr, unsigned *idx, obj_id_t *id1, obj_id_t *id2) +{ + hash_t *h = ptr->data.ptr; + + if(ptr->data.size != OBJ_HASH_SIZE(h->max)) { + GFX_ERROR(err_internal); + return *idx = 0; + } + + if(*idx >= h->size) { + return 0; + } + + gfx_obj_ref_inc(*id1 = h->ptr[*idx].key); + gfx_obj_ref_inc(*id2 = h->ptr[*idx].value); + (*idx)++; + + return 2; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_hash_dump(obj_t *ptr, dump_style_t style) +{ + if(!ptr) return 1; + + hash_t *h = ptr->data.ptr; + unsigned u; + obj_id_t key, value; + + if(ptr->data.size != OBJ_HASH_SIZE(h->max)) { + gfxboot_log(" \n"); + + return 1; + } + + if(!style.ref) { + if(!style.inspect) return 0; + + gfxboot_log("size %u, max %u", h->size, h->max); + if(h->parent_id) gfxboot_log(", parent %s", gfx_obj_id2str(h->parent_id)); + + return 1; + } + + for(u = 0; u < h->size && (!style.max || u < style.max); u++) { + key = h->ptr[u].key; + if(!key) continue; + value = h->ptr[u].value; + if(style.dump) gfxboot_log(" "); + gfx_obj_dump(key, (dump_style_t) { .inspect = style.inspect, .no_nl = 1 }); + gfxboot_log(" => "); + gfx_obj_dump(value, (dump_style_t) { .inspect = style.inspect, .no_nl = 1 }); + gfxboot_log("\n"); + } + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_hash_set(obj_id_t hash_id, obj_id_t key_id, obj_id_t value_id, int do_ref_cnt) +{ + unsigned u; + int match; + + hash_t *hash = gfx_obj_hash_ptr(hash_id); + if(!hash) return 0; + + data_t *key = gfx_obj_mem_ptr(key_id); + if(!key) return 0; + + u = find_key(hash, key, &match); + // gfxboot_log("XXX set: key %s, u %d, match %d\n", (char *) key->ptr, (int) u, match); + + if(!match) { + hash->size++; + if(hash->size > hash->max) { + unsigned max = hash->max + (hash->max >> 3) + 0x10; + hash_id = gfx_obj_realloc(hash_id, OBJ_HASH_SIZE(max)); + if(!hash_id) return 0; + hash = gfx_obj_hash_ptr(hash_id); + if(!hash) return 0; + hash->max = max; + } + if(u + 1 < hash->size) { + // gfxboot_log("XXX set: move %d -> %d [%d]\n", (int) u, (int) u + 1, (int) (hash->size - u - 1)); + gfx_memcpy(hash->ptr + u + 1, hash->ptr + u, (sizeof *hash->ptr) * (hash->size - u - 1)); + hash->ptr[u].key = 0; + hash->ptr[u].value = 0; + } + } + + obj_id_t orig_key_id = 0; + + // if key is writable string, make a copy + obj_t *key_obj = gfx_obj_ptr(key_id); + if(key_obj && !key_obj->flags.ro) { + orig_key_id = key_id; + key_id = gfx_obj_mem_dup(key_id, 0); + } + + if(do_ref_cnt) { + if(!orig_key_id) gfx_obj_ref_inc(key_id); + gfx_obj_ref_inc(value_id); + gfx_obj_ref_dec(hash->ptr[u].key); + gfx_obj_ref_dec(hash->ptr[u].value); + } + + // this is a bit tricky: release orig_key_id regardless of do_ref_cnt + if(orig_key_id) gfx_obj_ref_dec(orig_key_id); + + hash->ptr[u].key = key_id; + hash->ptr[u].value = value_id; + + return hash_id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_pair_t gfx_obj_hash_get(obj_id_t hash_id, data_t *key) +{ + obj_id_t orig_hash_id = hash_id; + unsigned u, level = 0; + int match; + hash_t *hash; + + do { + // Return hash_id for hash where search started - or hash where key was found in? + // With next line it's the second. Remove that line for first variant. + orig_hash_id = hash_id; + + hash = gfx_obj_hash_ptr(hash_id); + + if(!hash) return (obj_id_pair_t) {}; + + u = find_key(hash, key, &match); + // gfxboot_log("XXX get key %s, u %d, match %d\n", (char *) key->ptr, (int) u, match); + + hash_id = hash->parent_id; + } + while(!match && hash_id && level++ < 100); + + if(!match) return (obj_id_pair_t) {}; + + return (obj_id_pair_t) { .id1 = orig_hash_id, .id2 = hash->ptr[u].value }; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_obj_hash_del(obj_id_t hash_id, obj_id_t key_id, int do_ref_cnt) +{ + unsigned u; + int match; + + hash_t *hash = gfx_obj_hash_ptr(hash_id); + if(!hash) return; + + data_t *key = gfx_obj_mem_ptr(key_id); + if(!key) return; + + u = find_key(hash, key, &match); + // gfxboot_log("XXX del key %s, u %d, match %d\n", (char *) key->ptr, (int) u, match); + + if(match) { + if(do_ref_cnt) { + gfx_obj_ref_dec(hash->ptr[u].key); + gfx_obj_ref_dec(hash->ptr[u].value); + } + + hash->size--; + + if(u < hash->size) { + // gfxboot_log("XXX del: move %d -> %d [%d]\n", (int) u + 1, (int) u, (int) (hash->size - u)); + gfx_memcpy(hash->ptr + u, hash->ptr + u + 1, (sizeof *hash->ptr) * (hash->size - u)); + } + + hash->ptr[hash->size].key = 0; + hash->ptr[hash->size].value = 0; + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_hash_gc(obj_t *ptr) +{ + if(!ptr) return 0; + + hash_t *hash = ptr->data.ptr; + unsigned data_size = ptr->data.size; + unsigned idx, more_gc = 0; + + if(hash && data_size == OBJ_HASH_SIZE(hash->max)) { + more_gc += gfx_obj_ref_dec_delay_gc(hash->parent_id); + for(idx = 0; idx < hash->size; idx++) { + more_gc += gfx_obj_ref_dec_delay_gc(hash->ptr[idx].key); + more_gc += gfx_obj_ref_dec_delay_gc(hash->ptr[idx].value); + } + } + + return more_gc; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_hash_contains(obj_t *ptr, obj_id_t id) +{ + if(!ptr || !id) return 0; + + hash_t *hash = ptr->data.ptr; + unsigned data_size = ptr->data.size; + unsigned idx; + + if(hash && data_size == OBJ_HASH_SIZE(hash->max)) { + if(hash->parent_id == id) return 1; + for(idx = 0; idx < hash->size; idx++) { + if( + id == hash->ptr[idx].key || + id == hash->ptr[idx].value + ) return 1; + } + } + + return 0; +} + +#if 0 + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// linear search +unsigned find_key(hash_t *hash, data_t *key, int *match) +{ + unsigned u; + data_t *hash_key; + + *match = 0; + + for(u = 0; u < hash->size; u++) { + hash_key = gfx_obj_mem_ptr(hash->ptr[u].key); + if(!hash_key) continue; + int i = gfx_obj_mem_cmp(key, hash_key); + if(i > 0) continue; + if(i == 0) *match = 1; + break; + } + + return u; +} + +#else + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// binary search +unsigned find_key(hash_t *hash, data_t *key, int *match) +{ + unsigned u_start, u_end, u; + data_t *hash_key; + + *match = 0; + + u_start = u = 0; + u_end = hash->size; + + while(u_end > u_start) { + u = (u_end + u_start) / 2; + + hash_key = gfx_obj_mem_ptr(hash->ptr[u].key); + if(!hash_key) return 0; + + int i = gfx_obj_mem_cmp(key, hash_key); + + if(i == 0) { + *match = 1; + break; + } + + if(u_end == u_start + 1) { + if(i > 0) u++; + break; + } + + if(i > 0) { + if(u_end == u + 1) { + if(i > 0) u++; + break; + } + u_start = u; + } + else { + u_end = u; + } + } + + return u; +} +#endif diff --git a/gfxboot_jpeg.c b/gfxboot_jpeg.c new file mode 100644 index 0000000..b5b3665 --- /dev/null +++ b/gfxboot_jpeg.c @@ -0,0 +1,950 @@ +#pragma GCC diagnostic ignored "-Wsign-conversion" +#pragma GCC diagnostic ignored "-Wshadow" + +#include "gfxboot.h" + +#define ERR_NO_SOI 1 +#define ERR_NOT_8BIT 2 +#define ERR_HEIGHT_MISMATCH 3 +#define ERR_WIDTH_MISMATCH 4 +#define ERR_BAD_WIDTH_OR_HEIGHT 5 +#define ERR_TOO_MANY_COMPPS 6 +#define ERR_ILLEGAL_HV 7 +#define ERR_QUANT_TABLE_SELECTOR 8 +#define ERR_NOT_YCBCR_221111 9 +#define ERR_UNKNOWN_CID_IN_SCAN 10 +#define ERR_NOT_SEQUENTIAL_DCT 11 +#define ERR_WRONG_MARKER 12 +#define ERR_NO_EOI 13 +#define ERR_BAD_TABLES 14 +#define ERR_DEPTH_MISMATCH 15 + +#define ISHIFT 11 + +#define IFIX(a) ((int)((a) * (1 << ISHIFT) + .5)) +#define IMULT(a, b) (((a) * (b)) >> ISHIFT) +#define ITOINT(a) ((a) >> ISHIFT) + +#ifndef __P +# define __P(x) x +#endif + +/* special markers */ +#define M_BADHUFF -1 +#define M_EOF 0x80 + +struct in { + unsigned int bits; + int left; + int marker; + void *data; +}; + +/*********************************/ +struct dec_hufftbl; +struct enc_hufftbl; + +union hufftblp { + struct dec_hufftbl *dhuff; + struct enc_hufftbl *ehuff; +}; + +struct scan { + int dc; /* old dc value */ + + union hufftblp hudc; + union hufftblp huac; + int next; /* when to switch to next scan */ + + int cid; /* component id */ + int hv; /* horiz/vert, copied from comp */ + int tq; /* quant tbl, copied from comp */ +}; + +/*********************************/ + +#define DECBITS 8 /* seems to be the optimum */ + +struct dec_hufftbl { + int maxcode[17]; + int valptr[16]; + unsigned char vals[256]; + unsigned int llvals[1 << DECBITS]; +}; + +struct jpeg_decdata { + int dcts[6 * 64 + 16]; + int out[64 * 6]; + int dquant[3][64]; +}; + +static void decode_mcus __P((struct in *, int *, int, struct scan *, int *)); +static void dec_makehuff __P((struct dec_hufftbl *, int *, unsigned char *)); + +static void setinput __P((struct in *)); +/*********************************/ + +#undef PREC +#define PREC int + +static void idctqtab __P((unsigned char *, PREC *)); +static void idct __P((int *, int *, PREC *, PREC, int)); +static void scaleidctqtab __P((PREC *, PREC)); + +/*********************************/ + +static void initcol __P((PREC[][64])); + +static void col221111(int *out, unsigned char *pic, int width, int bits); +static unsigned char tmp_img[16*16*4]; /* 16 x 16, 32 bit color */ + +/*********************************/ + +#define M_SOI 0xd8 +#define M_APP0 0xe0 +#define M_DQT 0xdb +#define M_SOF0 0xc0 +#define M_DHT 0xc4 +#define M_DRI 0xdd +#define M_SOS 0xda +#define M_RST0 0xd0 +#define M_EOI 0xd9 +#define M_COM 0xfe + +static unsigned char *datap; +static struct jpeg_decdata decdata; + +static void memset(void *p, int c, int n) +{ + unsigned char *x = p; + + while(n--) *x++ = c; +} + + +static int getbyte(void) +{ + return *datap++; +} + +static int getword(void) +{ + int c1, c2; + c1 = *datap; + c2 = datap[1]; + datap += 2; + return c1 << 8 | c2; +} + +struct comp { + int cid; + int hv; + int tq; +}; + +#define MAXCOMP 4 +struct jpginfo { + int nc; /* number of components */ + int ns; /* number of scans */ + int dri; /* restart interval */ +}; + +static struct jpginfo info; +static struct comp comps[MAXCOMP]; + +static struct scan dscans[MAXCOMP]; + +static unsigned char quant[4][64]; + +static struct dec_hufftbl dhuff[4]; + +#define dec_huffdc (dhuff + 0) +#define dec_huffac (dhuff + 2) + +static struct in in; + +static int readtables(int till) +{ + int m, l, i, j, lq, pq, tq; + int tc, th, tt; + + for (;;) { + if (getbyte() != 0xff) + return -1; + if ((m = getbyte()) == till) + break; + + switch (m) { + case 0xc2: + return 0; + + case M_DQT: + lq = getword(); + while (lq > 2) { + pq = getbyte(); + tq = pq & 15; + if (tq > 3) + return -1; + pq >>= 4; + if (pq != 0) + return -1; + for (i = 0; i < 64; i++) + quant[tq][i] = getbyte(); + lq -= 64 + 1; + } + break; + + case M_DHT: + l = getword(); + while (l > 2) { + int hufflen[16], k; + unsigned char huffvals[256]; + + tc = getbyte(); + th = tc & 15; + tc >>= 4; + tt = tc * 2 + th; + if (tc > 1 || th > 1) + return -1; + for (i = 0; i < 16; i++) + hufflen[i] = getbyte(); + l -= 1 + 16; + k = 0; + for (i = 0; i < 16; i++) { + for (j = 0; j < hufflen[i]; j++) + huffvals[k++] = getbyte(); + l -= hufflen[i]; + } + dec_makehuff(dhuff + tt, hufflen, + huffvals); + } + break; + + case M_DRI: + l = getword(); + info.dri = getword(); + break; + + default: + l = getword(); + while (l-- > 2) + getbyte(); + break; + } + } + return 0; +} + +static void dec_initscans(void) +{ + int i; + + for (i = 0; i < info.ns; i++) + dscans[i].dc = 0; +} + +int gfx_jpeg_decode(uint8_t *buf, uint8_t *pic, int x0, int x1, int y0, int y1, int color_bits) +{ + int i, j, m, tac, tdc; + int mcusx, mcusy, mx, my; + int max[6]; + int width, height; + int mx0, mx1, my0, my1; + + datap = buf; + if (getbyte() != 0xff) + return ERR_NO_SOI; + if (getbyte() != M_SOI) + return ERR_NO_SOI; + if (readtables(M_SOF0)) + return ERR_BAD_TABLES; + if(info.dri) return ERR_WRONG_MARKER; + + getword(); + i = getbyte(); + if (i != 8) + return ERR_NOT_8BIT; + + height = getword(); + width = getword(); + + info.nc = getbyte(); + if (info.nc > MAXCOMP) + return ERR_TOO_MANY_COMPPS; + for (i = 0; i < info.nc; i++) { + int h, v; + comps[i].cid = getbyte(); + comps[i].hv = getbyte(); + v = comps[i].hv & 15; + h = comps[i].hv >> 4; + comps[i].tq = getbyte(); + if (h > 3 || v > 3) + return ERR_ILLEGAL_HV; + if (comps[i].tq > 3) + return ERR_QUANT_TABLE_SELECTOR; + } + if (readtables(M_SOS)) + return ERR_BAD_TABLES; + getword(); + info.ns = getbyte(); + if (info.ns != 3) + return ERR_NOT_YCBCR_221111; + for (i = 0; i < 3; i++) { + dscans[i].cid = getbyte(); + tdc = getbyte(); + tac = tdc & 15; + tdc >>= 4; + if (tdc > 1 || tac > 1) + return ERR_QUANT_TABLE_SELECTOR; + for (j = 0; j < info.nc; j++) + if (comps[j].cid == dscans[i].cid) + break; + if (j == info.nc) + return ERR_UNKNOWN_CID_IN_SCAN; + dscans[i].hv = comps[j].hv; + dscans[i].tq = comps[j].tq; + dscans[i].hudc.dhuff = dec_huffdc + tdc; + dscans[i].huac.dhuff = dec_huffac + tac; + } + + i = getbyte(); + j = getbyte(); + m = getbyte(); + + if (i != 0 || j != 63 || m != 0) + return ERR_NOT_SEQUENTIAL_DCT; + + if (dscans[0].cid != 1 || dscans[1].cid != 2 || dscans[2].cid != 3) + return ERR_NOT_YCBCR_221111; + + if (dscans[0].hv != 0x22 || dscans[1].hv != 0x11 || dscans[2].hv != 0x11) + return ERR_NOT_YCBCR_221111; + + mcusx = (width + 15) >> 4; + mcusy = (height + 15) >> 4; + + mx0 = x0 >> 4; + my0 = y0 >> 4; + + /* inclusive! */ + mx1 = ((x1 + 15) >> 4) - 1; + my1 = ((y1 + 15) >> 4) - 1; + + if(my1 < mcusy) mcusy = my1 + 1; + + idctqtab(quant[dscans[0].tq], decdata.dquant[0]); + idctqtab(quant[dscans[1].tq], decdata.dquant[1]); + idctqtab(quant[dscans[2].tq], decdata.dquant[2]); + initcol(decdata.dquant); + setinput(&in); + + dec_initscans(); + + dscans[0].next = 6 - 4; + dscans[1].next = 6 - 4 - 1; + dscans[2].next = 6 - 4 - 1 - 1; /* 411 encoding */ + for (my = 0; my < mcusy; my++) { + for (mx = 0; mx < mcusx; mx++) { + decode_mcus(&in, decdata.dcts, 6, dscans, max); + + if( + my >= my0 && my <= my1 && + mx >= mx0 && mx <= mx1 + ) { + int i0, i1, j0, j1, yofs; + + idct(decdata.dcts, decdata.out, decdata.dquant[0], IFIX(128.5), max[0]); + idct(decdata.dcts + 64, decdata.out + 64, decdata.dquant[0], IFIX(128.5), max[1]); + idct(decdata.dcts + 128, decdata.out + 128, decdata.dquant[0], IFIX(128.5), max[2]); + idct(decdata.dcts + 192, decdata.out + 192, decdata.dquant[0], IFIX(128.5), max[3]); + idct(decdata.dcts + 256, decdata.out + 256, decdata.dquant[1], IFIX(0.5), max[4]); + idct(decdata.dcts + 320, decdata.out + 320, decdata.dquant[2], IFIX(0.5), max[5]); + + // color_bits * 2: actually 16 * (color_bits / 8) + col221111(decdata.out, tmp_img, color_bits * 2, color_bits); + + j0 = my == my0 ? y0 - 16 * my : 0; + j1 = my == my1 ? y1 - 16 * my : 16; + for(j = j0; j < j1; j++) { + yofs = (16 * my - y0 + j) * (x1 - x0); + i0 = mx == mx0 ? x0 - 16 * mx : 0; + i1 = mx == mx1 ? x1 - 16 * mx : 16; + + switch(color_bits) { + case 8: + for(i = i0; i < i1; i++) { + *((unsigned char *) pic + 16 * mx - x0 + i + yofs) = + *((unsigned char *) tmp_img + 16 * j + i); + } + break; + + case 16: + for(i = i0; i < i1; i++) { + *((unsigned short *) pic + 16 * mx - x0 + i + yofs) = + *((unsigned short *) tmp_img + 16 * j + i); + } + break; + + case 32: + for(i = i0; i < i1; i++) { + *((unsigned *) pic + 16 * mx - x0 + i + yofs) = + *((unsigned *) tmp_img + 16 * j + i); + } + break; + } + } + } + } + } + + return 0; +} + +/****************************************************************/ +/************** huffman decoder ***************/ +/****************************************************************/ + +static int fillbits __P((struct in *, int, unsigned int)); +static int dec_rec2 +__P((struct in *, struct dec_hufftbl *, int *, int, int)); + +static void setinput(in) +struct in *in; +{ + in->left = 0; + in->bits = 0; + in->marker = 0; +} + +static int fillbits(in, le, bi) +struct in *in; +int le; +unsigned int bi; +{ + int b, m; + + if (in->marker) { + if (le <= 16) + in->bits = bi << 16, le += 16; + return le; + } + while (le <= 24) { + b = getbyte(); + if (b == 0xff && (m = getbyte()) != 0) { + in->marker = m; + if (le <= 16) + bi = bi << 16, le += 16; + break; + } + bi = bi << 8 | b; + le += 8; + } + in->bits = bi; /* tmp... 2 return values needed */ + return le; +} + +#define LEBI_DCL int le, bi +#define LEBI_GET(in) (le = in->left, bi = in->bits) +#define LEBI_PUT(in) (in->left = le, in->bits = bi) + +#define GETBITS(in, n) ( \ + (le < (n) ? le = fillbits(in, le, bi), bi = in->bits : 0), \ + (le -= (n)), \ + bi >> le & ((1 << (n)) - 1) \ +) + +#define UNGETBITS(in, n) ( \ + le += (n) \ +) + + +static int dec_rec2(in, hu, runp, c, i) +struct in *in; +struct dec_hufftbl *hu; +int *runp; +int c, i; +{ + LEBI_DCL; + + LEBI_GET(in); + if (i) { + UNGETBITS(in, i & 127); + *runp = i >> 8 & 15; + i >>= 16; + } else { + for (i = DECBITS; (c = ((c << 1) | GETBITS(in, 1))) >= (hu->maxcode[i]); i++); + if (i >= 16) { + in->marker = M_BADHUFF; + return 0; + } + i = hu->vals[hu->valptr[i] + c - hu->maxcode[i - 1] * 2]; + *runp = i >> 4; + i &= 15; + } + if (i == 0) { /* sigh, 0xf0 is 11 bit */ + LEBI_PUT(in); + return 0; + } + /* receive part */ + c = GETBITS(in, i); + if (c < (1 << (i - 1))) + c += (-1 << i) + 1; + LEBI_PUT(in); + return c; +} + +#define DEC_REC(in, hu, r, i) ( \ + r = GETBITS(in, DECBITS), \ + i = hu->llvals[r], \ + i & 128 ? \ + ( \ + UNGETBITS(in, i & 127), \ + r = i >> 8 & 15, \ + i >> 16 \ + ) \ + : \ + ( \ + LEBI_PUT(in), \ + i = dec_rec2(in, hu, &r, r, i), \ + LEBI_GET(in), \ + i \ + ) \ +) + +static void decode_mcus(in, dct, n, sc, maxp) +struct in *in; +int *dct; +int n; +struct scan *sc; +int *maxp; +{ + struct dec_hufftbl *hu; + int i, r, t; + LEBI_DCL; + + memset(dct, 0, n * 64 * sizeof(*dct)); + LEBI_GET(in); + while (n-- > 0) { + hu = sc->hudc.dhuff; + *dct++ = (sc->dc += DEC_REC(in, hu, r, t)); + + hu = sc->huac.dhuff; + i = 63; + while (i > 0) { + t = DEC_REC(in, hu, r, t); + if (t == 0 && r == 0) { + dct += i; + break; + } + dct += r; + *dct++ = t; + i -= r + 1; + } + *maxp++ = 64 - i; + if (n == sc->next) + sc++; + } + LEBI_PUT(in); +} + +static void dec_makehuff(hu, hufflen, huffvals) +struct dec_hufftbl *hu; +int *hufflen; +unsigned char *huffvals; +{ + int code, k, i, j, d, x, c, v; + for (i = 0; i < (1 << DECBITS); i++) + hu->llvals[i] = 0; + +/* + * llvals layout: + * + * value v already known, run r, backup u bits: + * vvvvvvvvvvvvvvvv 0000 rrrr 1 uuuuuuu + * value unknown, size b bits, run r, backup u bits: + * 000000000000bbbb 0000 rrrr 0 uuuuuuu + * value and size unknown: + * 0000000000000000 0000 0000 0 0000000 + */ + code = 0; + k = 0; + for (i = 0; i < 16; i++, code <<= 1) { /* sizes */ + hu->valptr[i] = k; + for (j = 0; j < hufflen[i]; j++) { + hu->vals[k] = *huffvals++; + if (i < DECBITS) { + c = code << (DECBITS - 1 - i); + v = hu->vals[k] & 0x0f; /* size */ + for (d = 1 << (DECBITS - 1 - i); --d >= 0;) { + if (v + i < DECBITS) { /* both fit in table */ + x = d >> (DECBITS - 1 - v - + i); + if (v && x < (1 << (v - 1))) + x += (-1 << v) + 1; + x = x << 16 | (hu-> vals[k] & 0xf0) << 4 | + (DECBITS - (i + 1 + v)) | 128; + } else + x = v << 16 | (hu-> vals[k] & 0xf0) << 4 | + (DECBITS - (i + 1)); + hu->llvals[c | d] = x; + } + } + code++; + k++; + } + hu->maxcode[i] = code; + } + hu->maxcode[16] = 0x20000; /* always terminate decode */ +} + +/****************************************************************/ +/************** idct ***************/ +/****************************************************************/ + +#define ONE ((PREC)IFIX(1.)) +#define S2 ((PREC)IFIX(0.382683432)) +#define C2 ((PREC)IFIX(0.923879532)) +#define C4 ((PREC)IFIX(0.707106781)) + +#define S22 ((PREC)IFIX(2 * 0.382683432)) +#define C22 ((PREC)IFIX(2 * 0.923879532)) +#define IC4 ((PREC)IFIX(1 / 0.707106781)) + +#define C3IC1 ((PREC)IFIX(0.847759065)) /* c3/c1 */ +#define C5IC1 ((PREC)IFIX(0.566454497)) /* c5/c1 */ +#define C7IC1 ((PREC)IFIX(0.198912367)) /* c7/c1 */ + +#define XPP(a,b) (t = a + b, b = a - b, a = t) +#define XMP(a,b) (t = a - b, b = a + b, a = t) +#define XPM(a,b) (t = a + b, b = b - a, a = t) + +#define ROT(a,b,s,c) ( t = IMULT(a + b, s), \ + a = IMULT(a, c - s) + t, \ + b = IMULT(b, c + s) - t) + +#define IDCT \ +( \ + XPP(t0, t1), \ + XMP(t2, t3), \ + t2 = IMULT(t2, IC4) - t3, \ + XPP(t0, t3), \ + XPP(t1, t2), \ + XMP(t4, t7), \ + XPP(t5, t6), \ + XMP(t5, t7), \ + t5 = IMULT(t5, IC4), \ + ROT(t4, t6, S22, C22),\ + t6 -= t7, \ + t5 -= t6, \ + t4 -= t5, \ + XPP(t0, t7), \ + XPP(t1, t6), \ + XPP(t2, t5), \ + XPP(t3, t4) \ +) + +static unsigned char zig2[64] = { + 0, 2, 3, 9, 10, 20, 21, 35, + 14, 16, 25, 31, 39, 46, 50, 57, + 5, 7, 12, 18, 23, 33, 37, 48, + 27, 29, 41, 44, 52, 55, 59, 62, + 15, 26, 30, 40, 45, 51, 56, 58, + 1, 4, 8, 11, 19, 22, 34, 36, + 28, 42, 43, 53, 54, 60, 61, 63, + 6, 13, 17, 24, 32, 38, 47, 49 +}; + +void idct(in, out, quant, off, max) +int *in; +int *out; +PREC *quant; +PREC off; +int max; +{ + PREC t0, t1, t2, t3, t4, t5, t6, t7, t; + PREC tmp[64], *tmpp; + int i, j; + unsigned char *zig2p; + + t0 = off; + if (max == 1) { + t0 += in[0] * quant[0]; + for (i = 0; i < 64; i++) + out[i] = ITOINT(t0); + return; + } + zig2p = zig2; + tmpp = tmp; + for (i = 0; i < 8; i++) { + j = *zig2p++; + t0 += in[j] * quant[j]; + j = *zig2p++; + t5 = in[j] * quant[j]; + j = *zig2p++; + t2 = in[j] * quant[j]; + j = *zig2p++; + t7 = in[j] * quant[j]; + j = *zig2p++; + t1 = in[j] * quant[j]; + j = *zig2p++; + t4 = in[j] * quant[j]; + j = *zig2p++; + t3 = in[j] * quant[j]; + j = *zig2p++; + t6 = in[j] * quant[j]; + IDCT; + tmpp[0 * 8] = t0; + tmpp[1 * 8] = t1; + tmpp[2 * 8] = t2; + tmpp[3 * 8] = t3; + tmpp[4 * 8] = t4; + tmpp[5 * 8] = t5; + tmpp[6 * 8] = t6; + tmpp[7 * 8] = t7; + tmpp++; + t0 = 0; + } + for (i = 0; i < 8; i++) { + t0 = tmp[8 * i + 0]; + t1 = tmp[8 * i + 1]; + t2 = tmp[8 * i + 2]; + t3 = tmp[8 * i + 3]; + t4 = tmp[8 * i + 4]; + t5 = tmp[8 * i + 5]; + t6 = tmp[8 * i + 6]; + t7 = tmp[8 * i + 7]; + IDCT; + out[8 * i + 0] = ITOINT(t0); + out[8 * i + 1] = ITOINT(t1); + out[8 * i + 2] = ITOINT(t2); + out[8 * i + 3] = ITOINT(t3); + out[8 * i + 4] = ITOINT(t4); + out[8 * i + 5] = ITOINT(t5); + out[8 * i + 6] = ITOINT(t6); + out[8 * i + 7] = ITOINT(t7); + } +} + +static unsigned char zig[64] = { + 0, 1, 5, 6, 14, 15, 27, 28, + 2, 4, 7, 13, 16, 26, 29, 42, + 3, 8, 12, 17, 25, 30, 41, 43, + 9, 11, 18, 24, 31, 40, 44, 53, + 10, 19, 23, 32, 39, 45, 52, 54, + 20, 22, 33, 38, 46, 51, 55, 60, + 21, 34, 37, 47, 50, 56, 59, 61, + 35, 36, 48, 49, 57, 58, 62, 63 +}; + +static PREC aaidct[8] = { + IFIX(0.3535533906), IFIX(0.4903926402), + IFIX(0.4619397663), IFIX(0.4157348062), + IFIX(0.3535533906), IFIX(0.2777851165), + IFIX(0.1913417162), IFIX(0.0975451610) +}; + + +static void idctqtab(qin, qout) +unsigned char *qin; +PREC *qout; +{ + int i, j; + + for (i = 0; i < 8; i++) + for (j = 0; j < 8; j++) + qout[zig[i * 8 + j]] = qin[zig[i * 8 + j]] * + IMULT(aaidct[i], aaidct[j]); +} + +static void scaleidctqtab(q, sc) +PREC *q; +PREC sc; +{ + int i; + + for (i = 0; i < 64; i++) + q[i] = IMULT(q[i], sc); +} + +/****************************************************************/ +/************** color decoder ***************/ +/****************************************************************/ + +/* + * YCbCr Color transformation: + * + * y:0..255 Cb:-128..127 Cr:-128..127 + * + * R = Y + 1.40200 * Cr + * G = Y - 0.34414 * Cb - 0.71414 * Cr + * B = Y + 1.77200 * Cb + * + * => + * Cr *= 1.40200; + * Cb *= 1.77200; + * Cg = 0.19421 * Cb + .50937 * Cr; + * R = Y + Cr; + * G = Y - Cg; + * B = Y + Cb; + * + * => + * Cg = (50 * Cb + 130 * Cr + 128) >> 8; + */ + +static void initcol(q) +PREC q[][64]; +{ + scaleidctqtab(q[1], IFIX(1.77200)); + scaleidctqtab(q[2], IFIX(1.40200)); +} + +/* This is optimized for the stupid sun SUNWspro compiler. */ +#define STORECLAMP(a,x) \ +( \ + (a) = (x), \ + (unsigned int)(x) >= 256 ? \ + ((a) = (x) < 0 ? 0 : 255) \ + : \ + 0 \ +) + +#define CLAMP(x) ((unsigned int)(x) >= 256 ? ((x) < 0 ? 0 : 255) : (x)) + +#define CBCRCG(xin) \ +( \ + cb = outc[0 + xin], \ + cr = outc[64 + xin], \ + cg = (50 * cb + 130 * cr + 128) >> 8 \ +) + +#define PIC(yin, xin, p, xout) \ +( \ + y = outy[(yin) * 8 + xin], \ + STORECLAMP(p[(xout) * 4 + 0], y + cb), \ + STORECLAMP(p[(xout) * 4 + 1], y - cg), \ + STORECLAMP(p[(xout) * 4 + 2], y + cr) \ +) + +#define PIC221111x(xin, xin_4, xin_3) \ +( \ + CBCRCG(xin), \ + PIC(xin_4 + 0, xin_3 + 0, pic0, xin * 2 + 0), \ + PIC(xin_4 + 0, xin_3 + 1, pic0, xin * 2 + 1), \ + PIC(xin_4 + 1, xin_3 + 0, pic1, xin * 2 + 0), \ + PIC(xin_4 + 1, xin_3 + 1, pic1, xin * 2 + 1) \ +) + +#define PIC_16(yin, xin, p, xout, add) \ +( \ + y = outy[(yin) * 8 + xin], \ + *(unsigned short *) (p + (xout) * 2) = store_16(CLAMP(y + cr), CLAMP(y - cg), CLAMP(y + cb), add) \ +) + +#define PIC221111_16x(xin, xin_4, xin_3) \ +( \ + CBCRCG(xin), \ + PIC_16(xin_4 + 0, xin_3 + 0, pic0, xin * 2 + 0, 3 * 0x55), \ + PIC_16(xin_4 + 0, xin_3 + 1, pic0, xin * 2 + 1, 0 * 0x55), \ + PIC_16(xin_4 + 1, xin_3 + 0, pic1, xin * 2 + 0, 1 * 0x55), \ + PIC_16(xin_4 + 1, xin_3 + 1, pic1, xin * 2 + 1, 2 * 0x55) \ +) + +#define PIC_8(yin, xin, p, xout, add) \ +( \ + y = outy[(yin) * 8 + xin], \ + p[(xout)] = store_8(CLAMP(y + cr), CLAMP(y - cg), CLAMP(y + cb), add) \ +) + +#define PIC221111_8x(xin, xin_4, xin_3) \ +( \ + CBCRCG(xin), \ + PIC_8(xin_4 + 0, xin_3 + 0, pic0, xin * 2 + 0, 3 * 0x55), \ + PIC_8(xin_4 + 0, xin_3 + 1, pic0, xin * 2 + 1, 0 * 0x55), \ + PIC_8(xin_4 + 1, xin_3 + 0, pic1, xin * 2 + 0, 1 * 0x55), \ + PIC_8(xin_4 + 1, xin_3 + 1, pic1, xin * 2 + 1, 2 * 0x55) \ +) + + +static unsigned store_16(unsigned r, unsigned g, unsigned b, unsigned add) +{ + unsigned rgb; + + rgb = (((r << 5) - r + add) >> 8) << 11; + rgb += (((g << 6) - g + add) >> 8) << 5; + rgb += ((b << 5) - b + add) >> 8; + + return rgb; +} + +static unsigned store_8(unsigned r, unsigned g, unsigned b, unsigned add) +{ + unsigned rgb; + +#if 0 + r = ((r << 2) - r + add) >> 8; + g = ((g << 3) - g + add) >> 8; + b = ((b << 3) - b + add) >> 8; + + rgb = (r << 6) + (g << 3) + b; +#endif + + rgb = (((r << 2) - r + add) >> 8) << 6; + rgb += (((g << 3) - g + add) >> 8) << 3; + rgb += ((b << 3) - b + add) >> 8; + + return rgb; +} + +static void col221111(int *out, unsigned char *pic, int width, int bits) +{ + int i, j, k, k_4, k_3; + unsigned char *pic0, *pic1; + int *outy, *outc; + int cr, cg, cb, y; + + pic0 = pic; + pic1 = pic + width; + outy = out; + outc = out + 64 * 4; + for(i = 2; i > 0; i--) { + for(j = 4; j > 0; j--) { + for(k = 0; k < 8; k++) { + k_4 = (k >> 2) << 3; + k_3 = (k & 3) << 1; + switch(bits) { + case 8: + PIC221111_8x(k, k_4, k_3); + break; + case 16: + PIC221111_16x(k, k_4, k_3); + break; + case 32: + PIC221111x(k, k_4, k_3); + break; + } + } + outc += 8; + outy += 16; + pic0 += 2 * width; + pic1 += 2 * width; + } + outy += 64 * 2 - 16 * 4; + } +} + + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +unsigned gfx_jpeg_getsize(uint8_t *buf) +{ + unsigned u; + + datap = buf; + getbyte(); getbyte(); + if(readtables(M_SOF0)) return 0; + getword(); getbyte(); + + u = getword() << 16; + u += getword(); + + return u; +} diff --git a/gfxboot_lib.c b/gfxboot_lib.c new file mode 100644 index 0000000..0490169 --- /dev/null +++ b/gfxboot_lib.c @@ -0,0 +1,316 @@ +#include + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// lib functions +// + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_show_error() +{ + if(gfxboot_data->vm.error.id) { +#ifdef FULL_ERROR + gfxboot_log( + "error %d (%s), ip = %s, src = %s:%d\n", + gfxboot_data->vm.error.id, + gfx_error_msg(gfxboot_data->vm.error.id), + gfx_debug_get_ip(), + gfxboot_data->vm.error.src_file, + gfxboot_data->vm.error.src_line + ); +#else + gfxboot_log( + "error %d (%s), ip = %s\n", + gfxboot_data->vm.error.id, + gfx_error_msg(gfxboot_data->vm.error.id), + gfx_debug_get_ip() + ); +#endif + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +const char *gfx_error_msg(error_id_t id) +{ + static const char *error_names[] = { + [err_ok] = "ok", + [err_invalid_code] = "invalid code", + [err_invalid_instruction] = "invalid instruction", + [err_no_array_start] = "no array start", + [err_no_hash_start] = "no hash start", + [err_no_memory] = "no memory", + [err_invalid_hash_key] = "invalid hash key", + [err_stack_underflow] = "stack underflow", + [err_internal] = "internal", + [err_no_loop_context] = "no loop context", + [err_invalid_range] = "invalid range", + [err_invalid_data] = "invalid data", + [err_readonly] = "readonly", + [err_invalid_arguments] = "invalid arguments", + [err_div_by_zero] = "div by zero", + }; + + if(id < sizeof error_names/sizeof *error_names) { + return error_names[id]; + } + else { + return "weird error"; + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +uint32_t gfx_read_le32(const void *p) +{ + const uint8_t *s = p; + + return (uint32_t) s[0] + ((uint32_t) s[1] << 8) + ((uint32_t) s[2] << 16) + ((uint32_t) s[3] << 24); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +char *gfx_utf8_enc(unsigned uc) +{ + static char buf[7]; + char *s = buf; + + uc &= 0x7fffffff; + + if(uc < 0x80) { // 7 bits + *s++ = uc; + } + else { + if(uc < (1 << 11)) { // 11 (5 + 6) bits + *s++ = 0xc0 + (uc >> 6); + goto utf8_encode_2; + } + else if(uc < (1 << 16)) { // 16 (4 + 6 + 6) bits + *s++ = 0xe0 + (uc >> 12); + goto utf8_encode_3; + } + else if(uc < (1 << 21)) { // 21 (3 + 6 + 6 + 6) bits + *s++ = 0xf0 + (uc >> 18); + goto utf8_encode_4; + } + else if(uc < (1 << 26)) { // 26 (2 + 6 + 6 + 6 + 6) bits + *s++ = 0xf8 + (uc >> 24); + goto utf8_encode_5; + } + else { // 31 (1 + 6 + 6 + 6 + 6 + 6) bits + *s++ = 0xfc + (uc >> 30); + } + + *s++ = 0x80 + ((uc >> 24) & ((1 << 6) - 1)); + + utf8_encode_5: + *s++ = 0x80 + ((uc >> 18) & ((1 << 6) - 1)); + + utf8_encode_4: + *s++ = 0x80 + ((uc >> 12) & ((1 << 6) - 1)); + + utf8_encode_3: + *s++ = 0x80 + ((uc >> 6) & ((1 << 6) - 1)); + + utf8_encode_2: + *s++ = 0x80 + (uc & ((1 << 6) - 1)); + } + + *s = 0; + + return buf; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// Decode utf8 sequence. +// +// a) if s points to a valid utf8 sequence: +// - returns unicode char (a non-negative number) +// - s is updated to point past utf8 char +// +// b) if s does not point to a valid utf8 sequence +// - returns negated first byte +// - s is incremented by 1 +// +int gfx_utf8_dec(char **s, unsigned *len) +{ + unsigned char *p; + int c; + unsigned u, l, l0; + + if(!s || (!*s && !*len)) return 0; + + p = (uint8_t *) *s; + + u = *p++; + if(len) (*len)--; + + if(u >= 0x80) { + if(u < 0xc0 || u >= 0xfe) { + *s = (char *) p; + return -(int) u; + } + l = 1; + if(u < 0xe0) { + c = u & 0x1f; + } + else if(u < 0xf0) { + c = u & 0x0f; + l = 2; + } + else if(u < 0xf8) { + c = u & 0x07; + l = 3; + } + else if(u < 0xfc) { + c = u & 0x03; + l = 4; + } + else if(u < 0xfe) { + c = u & 0x01; + l = 5; + } + if(len && l > *len) { + *s = (char *) p; + return -(int) u; + } + l0 = l; + while(l--) { + u = *p++; + if(u < 0x80 || u >= 0xc0) { + u = (uint8_t) **s; + (*s)++; + if(len) (*len)--; + return -(int) u; + } + c = (c << 6) + ((int) u & 0x3f); + } + if(len) *len -= l0; + } + else { + c = (int) u; + } + + *s = (char *) p; + + return c; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_read_file(char *name) +{ + obj_id_t id = 0; + void *buf = 0; + + int size = gfxboot_sys_read_file(name, &buf); + + if(size >= 0 && buf) { + id = gfx_obj_mem_new((unsigned) size); + + if(size) { + data_t *mem = gfx_obj_mem_ptr(id); + + if(mem) gfx_memcpy(mem->ptr, buf, (unsigned) size); + + gfxboot_sys_free(buf); + } + } + + gfxboot_log("read(%s): id = #%08x\n", name, id); + + return id; +} + + +#if INCLUDE_DIV64 +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +static uint64_t __udivmoddi4(uint64_t num, uint64_t den, int mod) __attribute__((noinline)); +uint64_t __udivdi3 (uint64_t a, uint64_t b); +uint64_t __umoddi3 (uint64_t a, uint64_t b); +int64_t __divdi3 (int64_t a, int64_t b); +int64_t __moddi3 (int64_t a, int64_t b); + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +uint64_t __udivmoddi4(uint64_t num, uint64_t den, int mod) +{ + if(num < (1llu << 32) && den < (1llu << 32)) { + return mod ? ((uint32_t) num % (uint32_t) den) : ((uint32_t) num / (uint32_t) den); + } + + uint64_t bit = 1, res = 0; + + while(den < num && bit && (den & (1llu << 63)) == 0) { + den <<= 1; + bit <<= 1; + } + + while(bit) { + if(num >= den) { + num -= den; + res |= bit; + } + bit >>= 1; + den >>= 1; + } + + return mod ? num : res; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +uint64_t __udivdi3(uint64_t a, uint64_t b) +{ + return __udivmoddi4(a, b, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +uint64_t __umoddi3 (uint64_t a, uint64_t b) +{ + return __udivmoddi4(a, b, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int64_t __divdi3(int64_t a, int64_t b) +{ + unsigned sign = 0; + + if(a < 0) { + a = -a; + sign = 1; + } + + if(b < 0) { + b = -b; + sign ^= 1; + } + + int64_t r = (int64_t) __udivmoddi4((uint64_t) a, (uint64_t) b, 0); + + return sign ? -r : r; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int64_t __moddi3(int64_t a, int64_t b) +{ + int64_t r; + + if(b < 0) b = -b; + + if(a < 0) { + r = - (int64_t) __udivmoddi4((uint64_t) (-a), (uint64_t) b, 1); + } + else { + r = (int64_t) __udivmoddi4((uint64_t) a, (uint64_t) b, 1); + } + + return r; +} +#endif diff --git a/gfxboot_main.c b/gfxboot_main.c new file mode 100644 index 0000000..5cc4ce4 --- /dev/null +++ b/gfxboot_main.c @@ -0,0 +1,507 @@ +#include + +static uint8_t _console_font[4947]; + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfxboot_init() +{ + gfxboot_log("gfxboot_init\n"); + + gfxboot_log("data_t = %d, obj_t = %d\n", (int) sizeof (data_t), (int) sizeof (obj_t)); + + if(gfx_malloc_init()) return 1; + + if(gfx_obj_init()) return 1; + + // setup virtual fb as canvas object + gfxboot_data->screen.virt_id = gfx_obj_canvas_new(gfxboot_data->screen.real.width, gfxboot_data->screen.real.height); + if(!gfxboot_data->screen.virt_id) return 1; + + gfx_vm_status_dump(); + + canvas_t *canvas = gfx_obj_canvas_ptr(gfxboot_data->screen.virt_id); + + gfxboot_data->gstate_id = gfx_obj_gstate_new(); + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + if(gstate) { + gstate->canvas_id = gfx_obj_ref_inc(gfxboot_data->screen.virt_id); + gstate->region = (area_t) { .width = canvas->width, .height = canvas->height }; + gstate->pos = (area_t) {0, 0, 0, 0}; + gstate->color = COLOR(0x00, 0xff, 0xff, 0xff); + gstate->bg_color = COLOR(0xff, 0x00, 0x00, 0x00); + } + + gfxboot_data->console.gstate_id = gfx_obj_gstate_new(); + gstate_t *console_gstate = gfx_obj_gstate_ptr(gfxboot_data->console.gstate_id); + + if(console_gstate) { + console_gstate->canvas_id = gfx_obj_ref_inc(gfxboot_data->screen.virt_id); + console_gstate->region = (area_t) { .width = canvas->width, .height = canvas->height }; + console_gstate->pos = (area_t) {0, 0, 0, 0}; + console_gstate->color = COLOR(0x00, 0xff, 0xff, 0xff); + console_gstate->bg_color = COLOR(0x00, 0x24, 0x16, 0x32); + } + + if(!gfx_setup_dict()) return 1; + + // setup compiled-in console font + obj_id_t console_font_data_id = gfx_obj_const_mem_nofree_new(_console_font, sizeof _console_font, 0, 0); + console_gstate->font_id = gfx_obj_font_open(console_font_data_id); + + // font structure itself holds ref to data + gfx_obj_ref_dec(console_font_data_id); + + area_t area = gfx_font_dim(console_gstate->font_id); + console_gstate->pos.width = area.width; + console_gstate->pos.height = area.height; + + int t_width = console_gstate->pos.width * 80; + int t_height = console_gstate->pos.height * 25; + if( + console_gstate->region.width >= t_width && + console_gstate->region.height >= t_height + ) { + console_gstate->region.x = (console_gstate->region.width - t_width) / 2; + console_gstate->region.y = (console_gstate->region.height - t_height) / 2; + console_gstate->region.width = t_width; + console_gstate->region.height = t_height; + console_gstate->pos.y = t_height - console_gstate->pos.height; + } + + // load main program + obj_id_t pfile_id = gfx_read_file("main.gc"); + obj_t *pfile_ptr = gfx_obj_ptr(pfile_id); + + if(pfile_ptr) { + pfile_ptr->flags.ro = 1; + } + else { + gfxboot_log("no program to run - aborting\n"); + return 1; + } + + if(!gfx_program_init(pfile_id)) { + gfxboot_log("failed to setup prgram\n"); + return 1; + } + + gfx_obj_ref_dec(pfile_id); + +#if 0 + gfx_console_putc_xy(200, 100, L'€'); +#endif + + // gfx_obj_asciiz_new("Foo Bar"); + + // gfxboot_data->vm.debug.trace_ip = 1; + // gfx_program_run(); + gfx_show_error(); + + // gfx_obj_dump(OBJ_ID(0, 1), (dump_style_t) { .dump = 1 }); + + return 0; + + // return gfxboot_data->vm.error.id ? 1 : 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfxboot_debug_command(char *str) +{ + if(str) gfx_debug_cmd(str); +} + + +/* + if ((action & 0x01)) menu_fini (); + if ((action & 0x02)) *auto_boot = 1; + if ((action & 0x04)) grub_cmdline_run (1); + if ((action & 0x08)) goto refresh; + if ((action & 0x10)) return action >> 8; +*/ +int gfxboot_process_key(unsigned key) +{ + static int x = 0, y = 0; + int action = 0; + + gfxboot_debug(2, 2, "gfxboot_process_key: key = 0x%08x\n", key); + + if(gfxboot_data->vm.debug.console.show) { + gfx_program_debug(key); + + return action; + } + else { + if(key == 0x04) { // '^D' + gfx_program_debug_on_off(1); + return action; + } + + gfx_program_process_key(key); + } + + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + if(gstate) gfx_rect(gstate, x, y, 100, 20, (40 + y) * 0x7834242296 * (x + 1)); + + y += 20; + + if(y >= gfxboot_data->screen.real.height) { + y = 0; + x += 120; + x = x % gfxboot_data->screen.real.width; + } + + switch(key) { + case '0'...'9': + gfxboot_data->menu.entry = (int) key - '0'; + gfxboot_log("menu.entry = %d\n", gfxboot_data->menu.entry); + break; + + case 'b': + action = (gfxboot_data->menu.entry << 8) + 0x11; + gfxboot_log("booting entry %d\n", gfxboot_data->menu.entry); + break; + + case 'c': + gfxboot_log("running cmdline\n"); + action = 0x04; + break; + + case 'x': + action = (-1 << 8) + 0x10 + 1; + break; + } + + return action; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfxboot_timeout() +{ + gfxboot_log( + "gfxboot_timeout: max = %d, current = %d\n", + gfxboot_data->menu.timeout.max, + gfxboot_data->menu.timeout.current + ); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// lat9v-16.psfu +// +static uint8_t _console_font[4947] = { + 0x72, 0xb5, 0x4a, 0x86, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7e, 0xc3, 0x99, 0x99, 0xf3, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0x7e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0x00, 0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x6e, 0xf8, 0xd8, 0xd8, 0xdc, 0xd8, 0xd8, 0xd8, 0xf8, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6e, 0xdb, 0xdb, 0xdf, 0xd8, 0xdb, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x7c, 0xfe, 0x7c, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x88, 0x88, 0xf8, 0x88, 0x88, 0x00, 0x3e, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x80, 0xe0, 0x80, 0x80, 0x00, 0x3e, 0x20, 0x38, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x88, 0x80, 0x88, 0x70, 0x00, 0x3c, 0x22, 0x3c, 0x24, 0x22, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x80, 0x80, 0x80, 0xf8, 0x00, 0x3e, 0x20, 0x38, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, + 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, + 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + 0x00, 0x88, 0xc8, 0xa8, 0x98, 0x88, 0x00, 0x20, 0x20, 0x20, 0x20, 0x3e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x88, 0x88, 0x50, 0x50, 0x20, 0x00, 0x3e, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x38, 0xe0, 0x38, 0x0e, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x38, 0x0e, 0x38, 0xe0, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x06, 0x0c, 0xfe, 0x18, 0x30, 0xfe, 0x60, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x06, 0x1e, 0x7e, 0xfe, 0x7e, 0x1e, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xfc, 0xfe, 0xfc, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0c, 0xfe, 0x0c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x60, 0xfe, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, 0xfe, 0x6c, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x06, 0x36, 0x66, 0xfe, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x3c, 0x3c, 0x3c, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x66, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x6c, 0x6c, 0xfe, 0x6c, 0x6c, 0x6c, 0xfe, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x10, 0x7c, 0xd6, 0xd0, 0xd0, 0x7c, 0x16, 0x16, 0xd6, 0x7c, 0x10, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc2, 0xc6, 0x0c, 0x18, 0x30, 0x60, 0xc6, 0x86, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x6c, 0x6c, 0x38, 0x76, 0xdc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xd6, 0xd6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x38, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0xc6, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0xc6, 0x06, 0x06, 0x3c, 0x06, 0x06, 0x06, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x1c, 0x3c, 0x6c, 0xcc, 0xfe, 0x0c, 0x0c, 0x0c, 0x1e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xc0, 0xc0, 0xc0, 0xfc, 0x06, 0x06, 0x06, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x60, 0xc0, 0xc0, 0xfc, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xc6, 0x06, 0x06, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x06, 0x06, 0x0c, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0x0c, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xde, 0xde, 0xde, 0xdc, 0xc0, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x66, 0x66, 0xfc, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xc0, 0xc0, 0xc2, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6c, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68, 0x60, 0x62, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xde, 0xc6, 0xc6, 0x66, 0x3a, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xcc, 0xcc, 0xcc, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe6, 0x66, 0x66, 0x6c, 0x78, 0x78, 0x6c, 0x66, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x62, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc6, 0xee, 0xfe, 0xfe, 0xd6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc6, 0xe6, 0xf6, 0xfe, 0xde, 0xce, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xde, 0x7c, 0x0c, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x6c, 0x66, 0x66, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0x64, 0x38, 0x0c, 0x06, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7e, 0x7e, 0x5a, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xd6, 0xd6, 0xfe, 0xee, 0x6c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc6, 0xc6, 0x6c, 0x7c, 0x38, 0x38, 0x7c, 0x6c, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xc6, 0x86, 0x0c, 0x18, 0x30, 0x60, 0xc2, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x38, 0x6c, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, + 0x00, 0x30, 0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x60, 0x60, 0x78, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x0c, 0x0c, 0x3c, 0x6c, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x6c, 0x64, 0x60, 0xf0, 0x60, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x7c, 0x0c, 0xcc, 0x78, 0x00, + 0x00, 0x00, 0xe0, 0x60, 0x60, 0x6c, 0x76, 0x66, 0x66, 0x66, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x06, 0x00, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x66, 0x66, 0x3c, 0x00, + 0x00, 0x00, 0xe0, 0x60, 0x60, 0x66, 0x6c, 0x78, 0x78, 0x6c, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0xfe, 0xd6, 0xd6, 0xd6, 0xd6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xf0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x7c, 0x0c, 0x0c, 0x1e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x76, 0x66, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0x60, 0x38, 0x0c, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x30, 0x30, 0xfc, 0x30, 0x30, 0x30, 0x30, 0x36, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xd6, 0xd6, 0xd6, 0xfe, 0x6c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x6c, 0x38, 0x38, 0x38, 0x6c, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0xf8, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xcc, 0x18, 0x30, 0x60, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0e, 0x18, 0x18, 0x18, 0x70, 0x18, 0x18, 0x18, 0x18, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x18, 0x18, 0x18, 0x0e, 0x18, 0x18, 0x18, 0x18, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x60, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6f, 0x60, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, + 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x60, 0x6f, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, + 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6f, 0x60, 0x6f, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0c, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0xec, 0x0c, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0xef, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0c, 0xec, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, + 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0xec, 0x0c, 0xec, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xef, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, + 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0xef, 0x00, 0xef, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x3c, 0x3c, 0x3c, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x7c, 0xd6, 0xd0, 0xd0, 0xd0, 0xd6, 0x7c, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x6c, 0x60, 0x60, 0xf0, 0x60, 0x60, 0x66, 0xf6, 0x6c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x32, 0x60, 0x60, 0xfc, 0x60, 0xfc, 0x60, 0x60, 0x32, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x3c, 0x18, 0x7e, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x6c, 0x38, 0x00, 0x7c, 0xc6, 0xc6, 0x60, 0x38, 0x0c, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7c, 0xc6, 0x60, 0x38, 0x6c, 0xc6, 0xc6, 0x6c, 0x38, 0x0c, 0xc6, 0x7c, 0x00, 0x00, 0x00, + 0x00, 0x6c, 0x38, 0x00, 0x00, 0x7c, 0xc6, 0x60, 0x38, 0x0c, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x42, 0x99, 0xa5, 0xa1, 0xa5, 0x99, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x6c, 0x6c, 0x3e, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x6c, 0xd8, 0x6c, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x42, 0xb9, 0xa5, 0xb9, 0xa5, 0xa5, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x6c, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, + 0x38, 0x6c, 0x18, 0x30, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x38, 0x6c, 0x18, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6c, 0x38, 0x00, 0xfe, 0xc6, 0x8c, 0x18, 0x30, 0x60, 0xc2, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xf6, 0xc0, 0xc0, 0xc0, 0x00, + 0x00, 0x00, 0x7f, 0xd6, 0xd6, 0x76, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x6c, 0x38, 0x00, 0xfe, 0xcc, 0x18, 0x30, 0x60, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x30, 0x70, 0x30, 0x30, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x6c, 0x6c, 0x38, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x6c, 0x36, 0x6c, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x77, 0xcc, 0xcc, 0xcc, 0xcf, 0xcf, 0xcc, 0xcc, 0xcc, 0x77, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6e, 0xdb, 0xdb, 0xdf, 0xd8, 0xdb, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x30, 0x30, 0x60, 0xc6, 0xc6, 0x7c, 0x00, 0x00, + 0x60, 0x30, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x18, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x38, 0x6c, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x76, 0xdc, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x6c, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x38, 0x6c, 0x38, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3e, 0x78, 0xd8, 0xd8, 0xfc, 0xd8, 0xd8, 0xd8, 0xd8, 0xde, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xc0, 0xc0, 0xc2, 0x66, 0x3c, 0x0c, 0x66, 0x3c, 0x00, + 0x60, 0x30, 0x00, 0xfe, 0x66, 0x60, 0x60, 0x7c, 0x60, 0x60, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x18, 0x00, 0xfe, 0x66, 0x60, 0x60, 0x7c, 0x60, 0x60, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x38, 0x6c, 0x00, 0xfe, 0x66, 0x60, 0x7c, 0x60, 0x60, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x6c, 0x00, 0xfe, 0x66, 0x60, 0x60, 0x7c, 0x60, 0x60, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x30, 0x00, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x0c, 0x00, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x3c, 0x66, 0x00, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x66, 0x00, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x6c, 0x66, 0x66, 0xf6, 0x66, 0x66, 0x66, 0x6c, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0x76, 0xdc, 0x00, 0xc6, 0xe6, 0xf6, 0xfe, 0xde, 0xce, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x30, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x18, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x38, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x76, 0xdc, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7e, 0xc6, 0xce, 0xce, 0xde, 0xf6, 0xe6, 0xe6, 0xc6, 0xfc, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x30, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x18, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x38, 0x6c, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x6c, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x0c, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xcc, 0xc6, 0xc6, 0xc6, 0xd6, 0xdc, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x30, 0x18, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x30, 0x60, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x6c, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x76, 0xdc, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x6c, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x6c, 0x38, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xdb, 0x1b, 0x7f, 0xd8, 0xdb, 0x7e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xc0, 0xc6, 0x7c, 0x18, 0x6c, 0x38, 0x00, + 0x00, 0x60, 0x30, 0x18, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0c, 0x18, 0x30, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x6c, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x6c, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x30, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0c, 0x18, 0x30, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x3c, 0x66, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x6c, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x78, 0x30, 0x78, 0x0c, 0x7e, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x76, 0xdc, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x30, 0x18, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0c, 0x18, 0x30, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x76, 0xdc, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x7e, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xce, 0xde, 0xfe, 0xf6, 0xe6, 0xfc, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x30, 0x18, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x30, 0x60, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x30, 0x78, 0xcc, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xcc, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0c, 0x18, 0x30, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0xf8, 0x00, + 0x00, 0x00, 0xf0, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x6c, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0xf8, 0x00, + 0xef, 0xbf, 0xbd, 0xff, 0xe2, 0x89, 0x88, 0xff, 0xc5, 0x92, 0xff, 0xc5, 0x93, 0xff, 0xe2, 0x97, + 0x86, 0xff, 0xe2, 0x90, 0x89, 0xff, 0xe2, 0x90, 0x8c, 0xff, 0xe2, 0x90, 0x8d, 0xff, 0xe2, 0x90, + 0x8a, 0xff, 0xe2, 0x96, 0x91, 0xff, 0xe2, 0x96, 0x92, 0xff, 0xe2, 0x96, 0x93, 0xff, 0xe2, 0x96, + 0x88, 0xff, 0xe2, 0x96, 0x84, 0xff, 0xe2, 0x96, 0x80, 0xff, 0xe2, 0x96, 0x8c, 0xff, 0xe2, 0x96, + 0x90, 0xff, 0xe2, 0x90, 0xa4, 0xff, 0xe2, 0x90, 0x8b, 0xff, 0xe2, 0x89, 0xa4, 0xff, 0xe2, 0x89, + 0xa5, 0xff, 0xe2, 0x89, 0xa0, 0xff, 0xe2, 0x97, 0x80, 0xff, 0xe2, 0x96, 0xb6, 0xff, 0xe2, 0x86, + 0x91, 0xff, 0xe2, 0x86, 0x93, 0xff, 0xe2, 0x86, 0x92, 0xff, 0xe2, 0x86, 0x90, 0xff, 0xe2, 0x86, + 0x95, 0xff, 0xe2, 0x86, 0x94, 0xff, 0xe2, 0x86, 0xb5, 0xff, 0xcf, 0x80, 0xff, 0x20, 0xc2, 0xa0, + 0xe2, 0x80, 0x80, 0xe2, 0x80, 0x81, 0xe2, 0x80, 0x82, 0xe2, 0x80, 0x83, 0xe2, 0x80, 0x84, 0xe2, + 0x80, 0x85, 0xe2, 0x80, 0x86, 0xe2, 0x80, 0x87, 0xe2, 0x80, 0x88, 0xe2, 0x80, 0x89, 0xe2, 0x80, + 0x8a, 0xe2, 0x80, 0xaf, 0xff, 0x21, 0xff, 0x22, 0xff, 0x23, 0xff, 0x24, 0xff, 0x25, 0xff, 0x26, + 0xff, 0x27, 0xff, 0x28, 0xff, 0x29, 0xff, 0x2a, 0xff, 0x2b, 0xff, 0x2c, 0xff, 0x2d, 0xff, 0x2e, + 0xff, 0x2f, 0xff, 0x30, 0xff, 0x31, 0xff, 0x32, 0xff, 0x33, 0xff, 0x34, 0xff, 0x35, 0xff, 0x36, + 0xff, 0x37, 0xff, 0x38, 0xff, 0x39, 0xff, 0x3a, 0xff, 0x3b, 0xff, 0x3c, 0xff, 0x3d, 0xff, 0x3e, + 0xff, 0x3f, 0xff, 0x40, 0xff, 0x41, 0xff, 0x42, 0xff, 0x43, 0xff, 0x44, 0xff, 0x45, 0xff, 0x46, + 0xff, 0x47, 0xff, 0x48, 0xff, 0x49, 0xff, 0x4a, 0xff, 0x4b, 0xe2, 0x84, 0xaa, 0xff, 0x4c, 0xff, + 0x4d, 0xff, 0x4e, 0xff, 0x4f, 0xff, 0x50, 0xff, 0x51, 0xff, 0x52, 0xff, 0x53, 0xff, 0x54, 0xff, + 0x55, 0xff, 0x56, 0xff, 0x57, 0xff, 0x58, 0xff, 0x59, 0xff, 0x5a, 0xff, 0x5b, 0xff, 0x5c, 0xff, + 0x5d, 0xff, 0x5e, 0xff, 0x5f, 0xef, 0xa0, 0x84, 0xff, 0x60, 0xff, 0x61, 0xff, 0x62, 0xff, 0x63, + 0xff, 0x64, 0xff, 0x65, 0xff, 0x66, 0xff, 0x67, 0xff, 0x68, 0xff, 0x69, 0xff, 0x6a, 0xff, 0x6b, + 0xff, 0x6c, 0xff, 0x6d, 0xff, 0x6e, 0xff, 0x6f, 0xff, 0x70, 0xff, 0x71, 0xff, 0x72, 0xff, 0x73, + 0xff, 0x74, 0xff, 0x75, 0xff, 0x76, 0xff, 0x77, 0xff, 0x78, 0xff, 0x79, 0xff, 0x7a, 0xff, 0x7b, + 0xff, 0x7c, 0xff, 0x7d, 0xff, 0x7e, 0xff, 0xc5, 0xb8, 0xff, 0xef, 0xa0, 0x81, 0xff, 0xe2, 0x95, + 0xb5, 0xff, 0xe2, 0x95, 0xb6, 0xff, 0xe2, 0x94, 0x94, 0xff, 0xe2, 0x95, 0xb7, 0xff, 0xe2, 0x94, + 0x82, 0xff, 0xe2, 0x94, 0x8c, 0xff, 0xe2, 0x94, 0x9c, 0xff, 0xe2, 0x95, 0xb4, 0xff, 0xe2, 0x94, + 0x98, 0xff, 0xe2, 0x94, 0x80, 0xff, 0xe2, 0x94, 0xb4, 0xff, 0xe2, 0x94, 0x90, 0xff, 0xe2, 0x94, + 0xa4, 0xff, 0xe2, 0x94, 0xac, 0xff, 0xe2, 0x94, 0xbc, 0xff, 0xef, 0xa0, 0x83, 0xff, 0xe2, 0x95, + 0xb9, 0xff, 0xe2, 0x95, 0xba, 0xff, 0xe2, 0x94, 0x97, 0xe2, 0x95, 0x9a, 0xff, 0xe2, 0x95, 0xbb, + 0xff, 0xe2, 0x94, 0x83, 0xe2, 0x95, 0x91, 0xff, 0xe2, 0x94, 0x8f, 0xe2, 0x95, 0x94, 0xff, 0xe2, + 0x94, 0xa3, 0xe2, 0x95, 0xa0, 0xff, 0xe2, 0x95, 0xb8, 0xff, 0xe2, 0x94, 0x9b, 0xe2, 0x95, 0x9d, + 0xff, 0xe2, 0x94, 0x81, 0xe2, 0x95, 0x90, 0xff, 0xe2, 0x94, 0xbb, 0xe2, 0x95, 0xa9, 0xff, 0xe2, + 0x94, 0x93, 0xe2, 0x95, 0x97, 0xff, 0xe2, 0x95, 0xa3, 0xe2, 0x94, 0xab, 0xff, 0xe2, 0x94, 0xb3, + 0xe2, 0x95, 0xa6, 0xff, 0xe2, 0x95, 0x8b, 0xe2, 0x95, 0xac, 0xff, 0xe2, 0x90, 0xa3, 0xff, 0xc2, + 0xa1, 0xff, 0xc2, 0xa2, 0xff, 0xc2, 0xa3, 0xff, 0xe2, 0x82, 0xac, 0xff, 0xc2, 0xa5, 0xff, 0xc5, + 0xa0, 0xff, 0xc2, 0xa7, 0xff, 0xc5, 0xa1, 0xff, 0xc2, 0xa9, 0xff, 0xc2, 0xaa, 0xff, 0xc2, 0xab, + 0xff, 0xc2, 0xac, 0xff, 0xc2, 0xad, 0xff, 0xc2, 0xae, 0xff, 0xc2, 0xaf, 0xef, 0xa0, 0x80, 0xff, + 0xc2, 0xb0, 0xff, 0xc2, 0xb1, 0xff, 0xc2, 0xb2, 0xff, 0xc2, 0xb3, 0xff, 0xc5, 0xbd, 0xff, 0xc2, + 0xb5, 0xff, 0xc2, 0xb6, 0xff, 0xc2, 0xb7, 0xff, 0xc5, 0xbe, 0xff, 0xc2, 0xb9, 0xff, 0xc2, 0xba, + 0xff, 0xc2, 0xbb, 0xff, 0xc5, 0x92, 0xff, 0xc5, 0x93, 0xff, 0xc5, 0xb8, 0xff, 0xc2, 0xbf, 0xff, + 0xc3, 0x80, 0xff, 0xc3, 0x81, 0xff, 0xc3, 0x82, 0xff, 0xc3, 0x83, 0xff, 0xc3, 0x84, 0xff, 0xc3, + 0x85, 0xe2, 0x84, 0xab, 0xff, 0xc3, 0x86, 0xff, 0xc3, 0x87, 0xff, 0xc3, 0x88, 0xff, 0xc3, 0x89, + 0xff, 0xc3, 0x8a, 0xff, 0xc3, 0x8b, 0xff, 0xc3, 0x8c, 0xff, 0xc3, 0x8d, 0xff, 0xc3, 0x8e, 0xff, + 0xc3, 0x8f, 0xff, 0xc3, 0x90, 0xff, 0xc3, 0x91, 0xff, 0xc3, 0x92, 0xff, 0xc3, 0x93, 0xff, 0xc3, + 0x94, 0xff, 0xc3, 0x95, 0xff, 0xc3, 0x96, 0xff, 0xc3, 0x97, 0xff, 0xc3, 0x98, 0xff, 0xc3, 0x99, + 0xff, 0xc3, 0x9a, 0xff, 0xc3, 0x9b, 0xff, 0xc3, 0x9c, 0xff, 0xc3, 0x9d, 0xff, 0xc3, 0x9e, 0xff, + 0xc3, 0x9f, 0xff, 0xc3, 0xa0, 0xff, 0xc3, 0xa1, 0xff, 0xc3, 0xa2, 0xff, 0xc3, 0xa3, 0xff, 0xc3, + 0xa4, 0xff, 0xc3, 0xa5, 0xff, 0xc3, 0xa6, 0xff, 0xc3, 0xa7, 0xff, 0xc3, 0xa8, 0xff, 0xc3, 0xa9, + 0xff, 0xc3, 0xaa, 0xff, 0xc3, 0xab, 0xff, 0xc3, 0xac, 0xff, 0xc3, 0xad, 0xff, 0xc3, 0xae, 0xff, + 0xc3, 0xaf, 0xff, 0xc3, 0xb0, 0xff, 0xc3, 0xb1, 0xff, 0xc3, 0xb2, 0xff, 0xc3, 0xb3, 0xff, 0xc3, + 0xb4, 0xff, 0xc3, 0xb5, 0xff, 0xc3, 0xb6, 0xff, 0xc3, 0xb7, 0xff, 0xc3, 0xb8, 0xff, 0xc3, 0xb9, + 0xff, 0xc3, 0xba, 0xff, 0xc3, 0xbb, 0xff, 0xc3, 0xbc, 0xff, 0xc3, 0xbd, 0xff, 0xc3, 0xbe, 0xff, + 0xc3, 0xbf, 0xff +}; diff --git a/gfxboot_malloc.c b/gfxboot_malloc.c new file mode 100644 index 0000000..f1ec1d6 --- /dev/null +++ b/gfxboot_malloc.c @@ -0,0 +1,140 @@ +#include + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// malloc functions +// +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_malloc_init() +{ + malloc_header_t *m = gfxboot_data->vm.mem.ptr; + + if(!m || gfxboot_data->vm.mem.size < 0x1000) return 1; + + m->next = gfxboot_data->vm.mem.size; + m->id = 0; + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_malloc_dump(dump_style_t style) +{ + uint8_t *p, *p_start, *p_end; + malloc_header_t *m; + unsigned idx, x, g; + + p_start = gfxboot_data->vm.mem.ptr; + p_end = p_start + gfxboot_data->vm.mem.size; + + gfxboot_log("=== memory dump ===\n"); + + if(!p_start) { + gfxboot_log(" no memory\n"); + + return; + } + + for(idx = 0, p = p_start; p >= p_start && p < p_end; p += m->next, idx++) { + if(style.max && idx >= style.max) break; + m = (malloc_header_t *) p; + x = OBJ_ID2IDX(m->id); + g = OBJ_ID2GEN(m->id); + gfxboot_log("%4u: %4u.%02x, ", idx, x, g); + if(gfxboot_data->vm.debug.show_pointer) { + gfxboot_log("%p", m + 1); + } + else { + gfxboot_log("0x%08x", (int) (p - p_start) + (int) sizeof (malloc_header_t)); + } + gfxboot_log("[%8d]\n", (int) (m->next - sizeof (malloc_header_t))); + if(m->next <= sizeof (malloc_header_t)) break; + } + + if(!style.max && p != p_end) { + gfxboot_log(" -- malloc chain corrupt --\n"); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void *gfx_malloc(uint32_t size, uint32_t id) +{ + uint8_t *p, *p_start, *p_end; + malloc_header_t *m; + void *mem = 0; + + if(id == 0) id = 1; // ensure it's not 0 + + p_start = gfxboot_data->vm.mem.ptr; + p_end = p_start + gfxboot_data->vm.mem.size; + + if(size > gfxboot_data->vm.mem.size) return mem; + + // size 0: return a valid pointer that we won't try to free + if(size == 0) return p_end; + + size += sizeof (malloc_header_t); // include header size + size = (size + 3) & ~3U; // align a bit + + for(p = p_start; p >= p_start && p < p_end; p += m->next) { + m = (malloc_header_t *) p; + if(m->id == 0 && m->next >= size) { + m->id = id; + mem = p + sizeof (malloc_header_t); + gfx_memset(mem, 0, size - sizeof (malloc_header_t)); + if(m->next > size + sizeof (malloc_header_t)) { + uint32_t n = m->next - size; + m->next = size; + m = (malloc_header_t *) (p + size); + m->id = 0; + m->next = n; + } + break; + } + } + + return mem; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_free(void *ptr) +{ + uint8_t *p, *p_start, *p_end, *p_last, *mem = ptr; + malloc_header_t *m, *m_last, *m_next; + + p_start = gfxboot_data->vm.mem.ptr; + p_end = p_start + gfxboot_data->vm.mem.size; + + if(!mem || mem < p_start || mem >= p_end) return; + + // p < mem instead of 'p < p_end' for an early exit + for(p = p_last = p_start; p >= p_start && p < mem; p_last = p, p += m->next) { + m = (malloc_header_t *) p; + + if(mem == p + sizeof (malloc_header_t)) { + if(m->id == 0) return; // already free + + m->id = 0; // mark as free + + if(p + m->next < p_end) { // not last block + m_next = (malloc_header_t *) (p + m->next); + if(m_next->id == 0) { // join next + current block + m->next += m_next->next; + } + } + + if(p_last != p) { // not first block + m_last = (malloc_header_t *) p_last; + if(m_last->id == 0) { // join last + current block + m_last->next += m->next; + } + } + } + } +} + + diff --git a/gfxboot_mem.c b/gfxboot_mem.c new file mode 100644 index 0000000..093e469 --- /dev/null +++ b/gfxboot_mem.c @@ -0,0 +1,302 @@ +#include +#include + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// mem + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_mem_new(uint32_t size) +{ + return gfx_obj_alloc(OTYPE_MEM, size); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +data_t *gfx_obj_mem_ptr(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_MEM) return 0; + + return &ptr->data; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +data_t *gfx_obj_mem_subtype_ptr(obj_id_t id, uint8_t subtype) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_MEM || ptr->sub_type != subtype) return 0; + + return &ptr->data; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_const_mem_nofree_new(const uint8_t *str, unsigned len, uint8_t sub_type, obj_id_t ref_id) +{ + obj_id_t id = 0; + + if(str) { + // avoid recursive references, always point to original object + if(ref_id) { + obj_t *ptr; + while((ptr = gfx_obj_ptr(ref_id))) { + if(ptr->base_type != OTYPE_MEM || !ptr->data.ref_id) break; + ref_id = ptr->data.ref_id; + } + } + + id = gfx_obj_new(OTYPE_MEM); + obj_t *optr = gfx_obj_ptr(id); + if(optr) { + optr->data.ptr = (uint8_t *) str; + optr->data.size = len; + optr->data.ref_id = ref_id; + optr->flags.ro = 1; + optr->flags.nofree = 1; + optr->sub_type = sub_type; + + gfx_obj_ref_inc(ref_id); + } + } + + return id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_asciiz_new(const char *str) +{ + return gfx_obj_const_mem_nofree_new((uint8_t *) str, gfx_strlen(str), t_string, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_mem_dup(obj_id_t id, unsigned extra_bytes) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_MEM) return 0; + + obj_id_t new_id = gfx_obj_new(OTYPE_MEM); + obj_t *new_ptr = gfx_obj_ptr(new_id); + + if(new_ptr) { + data_t *data = OBJ_DATA_FROM_PTR(ptr); + if((new_ptr->data.ptr = gfx_malloc(data->size + extra_bytes, new_id))) { + new_ptr->data.size = data->size + extra_bytes; + new_ptr->sub_type = ptr->sub_type; + gfx_memcpy(new_ptr->data.ptr, data->ptr, data->size); + } + else { + // delete, keep generation counter + *new_ptr = (obj_t) { gen:new_ptr->gen }; + new_id = 0; + } + } + + return new_id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// returns value (0..255) or -1 (invalid) +int gfx_obj_mem_get(obj_id_t mem_id, int pos) +{ + data_t *mem = gfx_obj_mem_ptr(mem_id); + + if(!mem) return -1; + + if(pos < 0) pos = (int) mem->size + pos; + + if(pos < 0 || pos >= (int) mem->size) return -1; + + return ((uint8_t *) mem->ptr)[pos]; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_obj_mem_del(obj_id_t mem_id, int pos) +{ + data_t *mem = gfx_obj_mem_ptr(mem_id); + + if(!mem) return; + + if(pos < 0) pos = (int) mem->size + pos; + + if(pos < 0 || pos >= (int) mem->size) return; + + obj_t *ptr = gfx_obj_ptr(mem_id); + if(ptr->flags.ro) return; + + mem->size--; + + if(mem->size > (unsigned) pos) { + gfx_memcpy(mem->ptr + pos, mem->ptr + pos + 1, mem->size - (unsigned) pos); + } + + ((uint8_t *) mem->ptr)[mem->size] = 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_mem_set(obj_id_t mem_id, uint8_t val, int pos) +{ + obj_t *ptr = gfx_obj_ptr(mem_id); + + if(!ptr || ptr->base_type != OTYPE_MEM || ptr->flags.ro) return 0; + + data_t *mem = OBJ_DATA_FROM_PTR(ptr); + + if(pos < 0) pos = (int) mem->size + pos; + + if(pos < 0) return 0; + + if(pos >= (int) mem->size) { + if(!gfx_obj_realloc(mem_id, (unsigned) pos + 1)) return 0; + } + + ((uint8_t *) mem->ptr)[pos] = val; + + return mem_id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_mem_iterate(obj_t *ptr, unsigned *idx, obj_id_t *id1, obj_id_t *id2) +{ + uint8_t *p = ptr->data.ptr; + unsigned len = ptr->data.size; + + if(!p) { + GFX_ERROR(err_internal); + return 0; + } + + if(*idx >= len) { + return 0; + } + + *id1 = gfx_obj_num_new(p[*idx], t_int); + (*idx)++; + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_mem_dump(obj_t *ptr, dump_style_t style) +{ + if(!ptr) return 1; + + uint8_t *p = ptr->data.ptr; + unsigned cnt, len = ptr->data.size; + char s[17]; + int s_idx = 0; + unsigned sub_type = ptr->sub_type; + obj_id_t ref_id = ptr->data.ref_id; + + if(!p) return 1; + + if(!style.dump) { + if(!style.ref) { + if(style.inspect) { + if(ref_id) { + gfxboot_log("%s, ", gfx_obj_id2str(ref_id)); + data_t *ref_data = gfx_obj_mem_ptr(ref_id); + if(ref_data && ptr->data.ptr >= ref_data->ptr) { + gfxboot_log("ofs 0x%x, ", (unsigned) (ptr->data.ptr - ref_data->ptr)); + } + } + gfxboot_log("size %u", len); + // if(sub_type) gfxboot_log(", subtype %u", sub_type); + } + + if(sub_type == t_string || sub_type == t_word || sub_type == t_ref) { + if(style.inspect) gfxboot_log(", "); + gfxboot_log("\""); + for(cnt = 0; cnt < len; cnt++) { + gfxboot_log("%c", p[cnt] < 0x20 ? ' ' : p[cnt]); + } + gfxboot_log("\""); + } + else { + return 0; + } + + return 1; + } + } + else { + // if(len > 64) len = 64; // log at most this much + gfxboot_log(" "); + s_idx = 0; + for(cnt = 0; cnt < len; cnt++) { + gfxboot_log(" %02x", p[cnt]); + s[s_idx++] = (p[cnt] >= 0x20 && p[cnt] < 0x7f) ? (char) p[cnt] : '.'; + if((cnt & 15) == 15) { + s[s_idx] = 0; + gfxboot_log(" %s", s); + s_idx = 0; + } + if((cnt & 15) == 15 && cnt + 1 < len) { + gfxboot_log("\n "); + } + } + if(s_idx) { + s[s_idx] = 0; + int spaces = 16 - s_idx; + while(spaces--) gfxboot_log(" "); + gfxboot_log(" %s", s); + } + gfxboot_log("\n"); + } + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_mem_cmp(data_t *mem1, data_t *mem2) +{ + int result = 0; + + unsigned len = mem1->size < mem2->size ? mem1->size : mem2->size; + + if(len) { + if((result = gfx_memcmp(mem1->ptr, mem2->ptr, len))) { + result = result > 0 ? 1 : -1; + } + } + + if(!result && mem1->size != mem2->size) { + result = mem1->size > mem2->size ? 1 : -1; + } + + return result; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_mem_gc(obj_t *ptr) +{ + if(!ptr) return 0; + + data_t *data = OBJ_DATA_FROM_PTR(ptr); + + return gfx_obj_ref_dec_delay_gc(data->ref_id); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_mem_contains(obj_t *ptr, obj_id_t id) +{ + if(!ptr || !id) return 0; + + data_t *data = OBJ_DATA_FROM_PTR(ptr); + + return data->ref_id == id; +} diff --git a/gfxboot_num.c b/gfxboot_num.c new file mode 100644 index 0000000..6af69b6 --- /dev/null +++ b/gfxboot_num.c @@ -0,0 +1,67 @@ +#include + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// num + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_num_new(int64_t num, uint8_t sub_type) +{ + obj_id_t id = gfx_obj_new(OTYPE_NUM); + obj_t *ptr = gfx_obj_ptr(id); + + if(ptr) { + ptr->data.value = num; + ptr->sub_type = sub_type; + } + + return id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int64_t *gfx_obj_num_ptr(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_NUM) return 0; + + return &ptr->data.value; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int64_t *gfx_obj_num_subtype_ptr(obj_id_t id, uint8_t subtype) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_NUM || ptr->sub_type != subtype) return 0; + + return &ptr->data.value; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_num_dump(obj_t *ptr, dump_style_t style) +{ + if(!ptr) return 1; + + int64_t num = ptr->data.value; + + if(style.ref) return 1; + + switch(style.inspect) { + case 0: + gfxboot_log("%lld", (long long) num); + break; + case 1: + gfxboot_log("%lld (0x%llx)", (long long) num, (long long) num); + break; + } + + return 1; +} + + diff --git a/gfxboot_obj.c b/gfxboot_obj.c new file mode 100644 index 0000000..cf666d4 --- /dev/null +++ b/gfxboot_obj.c @@ -0,0 +1,570 @@ +#include +#define WITH_TYPE_NAMES 1 +#include + +typedef struct { + unsigned data_is_ptr:1; + dump_function_t dump_function; + gc_function_t gc_function; + contains_function_t contains_function; + iterate_function_t iterate_function; +} obj_descr_t; + +static unsigned gfx_obj_data_is_ptr(unsigned type); +static dump_function_t gfx_obj_dump_function(unsigned type); +static gc_function_t gfx_obj_gc_function(unsigned type); +static iterate_function_t gfx_obj_iterate_function(unsigned type); +static int gfx_obj_none_dump(obj_t *ptr, dump_style_t style); +static int gfx_obj_invalid_dump(obj_t *ptr, dump_style_t style); +static unsigned gfx_obj_none_gc(obj_t *ptr); +static int gfx_obj_none_contains(obj_t *ptr, obj_id_t id); +static unsigned gfx_obj_none_iterate(obj_t *ptr, unsigned *idx, obj_id_t *id1, obj_id_t *id2); + +obj_descr_t obj_descr[] = { + [OTYPE_NONE] = { + 0, + gfx_obj_none_dump, + 0, + 0, + 0 + }, + [OTYPE_MEM] = { + 1, + gfx_obj_mem_dump, + gfx_obj_mem_gc, + gfx_obj_mem_contains, + gfx_obj_mem_iterate + }, + [OTYPE_OLIST] = { + 1, + gfx_obj_olist_dump, + 0, + 0, + 0 + }, + [OTYPE_FONT] = { + 1, + gfx_obj_font_dump, + gfx_obj_font_gc, + gfx_obj_font_contains, + 0 + }, + [OTYPE_CANVAS] = { + 1, + gfx_obj_canvas_dump, + 0, + 0, + 0 + }, + [OTYPE_ARRAY] = { + 1, + gfx_obj_array_dump, + gfx_obj_array_gc, + gfx_obj_array_contains, + gfx_obj_array_iterate + }, + [OTYPE_HASH] = { + 1, + gfx_obj_hash_dump, + gfx_obj_hash_gc, + gfx_obj_hash_contains, + gfx_obj_hash_iterate + }, + [OTYPE_CONTEXT] = { + 1, + gfx_obj_context_dump, + gfx_obj_context_gc, + gfx_obj_context_contains, + 0 + }, + [OTYPE_NUM] = { + 0, + gfx_obj_num_dump, + 0, + 0, + 0 + }, + [OTYPE_GSTATE] = { + 1, + gfx_obj_gstate_dump, + gfx_obj_gstate_gc, + gfx_obj_gstate_contains, + 0 + }, + [OTYPE_INVALID] = { + 0, + gfx_obj_invalid_dump, + 0, + 0, + 0 + }, +}; + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// object functions +// +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_init() +{ + unsigned size = 0x2; + + gfxboot_log("gfx_obj_init(%u)\n", size); + + gfxboot_data->vm.olist.ptr = gfx_malloc(OBJ_OLIST_SIZE(size), OBJ_ID(0, 1)); + + olist_t *ol = gfxboot_data->vm.olist.ptr; + ol->max = size; + + // create object for object list + obj_t *ptr = gfx_obj_ptr(gfxboot_data->vm.olist.id = gfx_obj_new(OTYPE_OLIST)); + + if(ptr) { + ptr->ref_cnt = -1u; // can't be deleted + ptr->data.ptr = gfxboot_data->vm.olist.ptr; + ptr->data.size = OBJ_OLIST_SIZE(size); + } + + return ptr ? 0 : 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +char *gfx_obj_id2str(obj_id_t id) +{ + // corresponds to OTYPE_* defines + static const char *names[] = { "nil", "mem", "olist", "font", "canv", "array", "hash", "ctx", "num", "gstate" }; + static char buf[64], buf2[32]; + const char *s, *sub_type = "", *ro = ""; + unsigned idx = OBJ_ID2IDX(id); + unsigned gen = OBJ_ID2GEN(id); + + obj_t *ptr = gfx_obj_ptr_nocheck(id); + if(ptr && id) { + if(ptr->flags.ro) ro = ".ro"; + if(ptr->sub_type) { + if(ptr->sub_type < sizeof type_name / sizeof *type_name) { + sub_type = type_name[ptr->sub_type]; + } + else { + sub_type = "?"; + } + } + s = ptr->base_type < sizeof names / sizeof *names ? names[ptr->base_type] : "???"; + if(ptr->ref_cnt != -1u) { + gfxboot_snprintf(buf2, sizeof buf2, ".%d", ptr->ref_cnt); + } + else { + gfx_memcpy(buf2, ".*", sizeof ".*"); + } + } + else { + s = id ? "?" : "nil"; + *buf2 = 0; + } + + gfxboot_snprintf(buf, sizeof buf, "#%u.%u%s.%s%s%s%s", idx, gen, buf2, s, *sub_type ? "." : "", sub_type, ro); + + return buf; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_obj_dump(obj_id_t id, dump_style_t style) +{ + unsigned type; + obj_t *ptr; + + ptr = gfx_obj_ptr(id); + + if(!ptr) { + if(style.dump) { + gfxboot_log("= object dump (id %s): not found\n", gfx_obj_id2str(id)); + } + else { + if(style.inspect) { + gfxboot_log("%s <%s>", gfx_obj_id2str(id), id ? "undef" : "nil"); + } + else { + gfxboot_log("%s", id ? "undef" : "nil"); + } + if(!style.no_nl) gfxboot_log("\n"); + } + + return; + } + + if(style.dump && !style.no_head) { + gfxboot_log("== object dump (id %s) ==\n", gfx_obj_id2str(id)); + } + + type = ptr->base_type; + + if(type) { + char *id_str = gfx_obj_id2str(id); + if(style.dump) { + gfxboot_log(" %s <", id_str); + gfx_obj_dump_function(type)(ptr, (dump_style_t) { .inspect = 1, .max = style.max }); + if(gfxboot_data->vm.debug.show_pointer && ptr->flags.data_is_ptr) { + gfxboot_log(", data %p[%u]", ptr->data.ptr, ptr->data.size); + } + gfxboot_log(">\n"); + gfx_obj_dump_function(type)(ptr, (dump_style_t) { .inspect = 1, .ref = 1, .dump = 1, .max = style.max }); + } + else { + if(style.ref) { + gfx_obj_dump_function(type)(ptr, (dump_style_t) { .inspect = style.inspect, .ref = 1, .max = style.max }); + } + else { + if(style.inspect) { + gfxboot_log("%s <", id_str); + gfx_obj_dump_function(type)(ptr, (dump_style_t) { .inspect = 1, .max = style.max }); + gfxboot_log(">"); + } + else { + if(!gfx_obj_dump_function(type)(ptr, (dump_style_t) { .inspect = 0, .max = style.max })) { + gfxboot_log("%s", id_str); + } + } + if(!style.no_nl) gfxboot_log("\n"); + } + } + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// Note: id1 and id2 have their reference count already increased! +// +unsigned gfx_obj_iterate(obj_id_t id, unsigned *idx, obj_id_t *id1, obj_id_t *id2) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr) { + *idx = 0; + return 0; + } + + return gfx_obj_iterate_function(ptr->base_type)(ptr, idx, id1, id2); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_new(unsigned type) +{ + uint32_t u, u2; + olist_t *ol = gfxboot_data->vm.olist.ptr; + unsigned size = ol->max; + obj_t *ptr = ol->ptr; + + type &= OBJ_TYPE_MASK; + + if(type == OTYPE_NONE) return 0; + + // ol->next = 0; + + for(u = 0, u2 = ol->next; u < size; u++, u2++) { + if(u2 >= ol->max) u2 -= ol->max; + if(ptr[u2].base_type == OTYPE_NONE) { + ptr[u2].gen++; + if(!ptr[u2].gen) ptr[u2].gen++; // avoid generation count 0 + ptr[u2].base_type = type; + ptr[u2].ref_cnt = 1; + ptr[u2].flags.data_is_ptr = gfx_obj_data_is_ptr(type); + + ol->next = u2 + 1; + if(ol->next >= ol->max) ol->next -= ol->max; + + return OBJ_ID(u2, ptr[u2].gen); + } + } + + // object list too small, realloc enlarged one + size += (size >> 3) + 0x100; + if(gfx_obj_realloc(gfxboot_data->vm.olist.id, OBJ_OLIST_SIZE(size))) { + olist_t *ol2 = gfx_obj_olist_ptr(gfxboot_data->vm.olist.id); + if(ol2) { + ol2->max = size; + return gfx_obj_new(type); + } + } + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_alloc(unsigned type, uint32_t size) +{ + obj_id_t id = gfx_obj_new(type); + obj_t *optr = gfx_obj_ptr(id); + + if(optr) { + optr->data.size = size; + optr->data.ptr = gfx_malloc(size, id); + + if(!optr->data.ptr) { + // cleanup entry but keep generation counter + *optr = (obj_t) { gen:optr->gen }; + id = 0; + } + } + + return id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_realloc(obj_id_t id, uint32_t size) +{ + obj_t *ptr = gfx_obj_ptr(id); + void *ptr_old, *ptr_new; + uint32_t size_old; + + if(ptr && ptr->flags.data_is_ptr) { + ptr_new = gfx_malloc(size, id); + + if(ptr_new) { + size_old = ptr->data.size; + ptr_old = ptr->data.ptr; + + ptr->data.ptr = ptr_new; + ptr->data.size = size; + + if(size_old > size) size_old = size; + if(size_old && ptr_old) { + gfx_memcpy(ptr_new, ptr_old, size_old); + } + + // store link to new object list + if(id == gfxboot_data->vm.olist.id) { + gfxboot_data->vm.olist.ptr = ptr_new; + } + + gfx_free(ptr_old); + } + else { + id = 0; + } + } + + return id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_ref_inc(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(ptr) { + if(gfxboot_data->vm.debug.trace.gc) gfxboot_log("GC: ++%s\n", gfx_obj_id2str(id)); + + if(ptr->ref_cnt != -1u) ptr->ref_cnt++; + } + + return id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_obj_ref_dec(obj_id_t id) +{ + if(gfx_obj_ref_dec_delay_gc(id)) gfx_obj_run_gc(); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// Decrement ref counter of id and add to gc list if ref count becomes 0. +// +// return: +// 1: entry to gc list added +// 0: nothing changed +// +unsigned gfx_obj_ref_dec_delay_gc(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr) return 0; + + if(gfxboot_data->vm.debug.trace.gc) gfxboot_log("GC: --%s\n", gfx_obj_id2str(id)); + + if(ptr->ref_cnt && ptr->ref_cnt != -1u) { + ptr->ref_cnt--; + } + + if(ptr->ref_cnt == 0) { + if(!gfxboot_data->vm.gc_list) { + gfxboot_data->vm.gc_list = gfx_obj_array_new(0); + } + if(gfxboot_data->vm.gc_list) { + gfx_obj_array_push(gfxboot_data->vm.gc_list, id, 0); + + return 1; + } + } + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_obj_run_gc() +{ + unsigned idx, type; + obj_id_t id; + obj_t *optr; + void *data_ptr; + array_t *a = gfx_obj_array_ptr(gfxboot_data->vm.gc_list); + + if(!a) return; + + for(idx = 0; idx < a->size; idx++) { + id = a->ptr[idx]; + if(!id) continue; + optr = gfx_obj_ptr(id); + if(!optr) continue; + type = optr->base_type; + data_ptr = optr->data.ptr; + + unsigned more_gc = gfx_obj_gc_function(type)(optr); + + // ptr to gc_list might be outdated + if(more_gc) { + a = gfx_obj_array_ptr(gfxboot_data->vm.gc_list); + } + + if(optr->flags.data_is_ptr) { + if(!optr->flags.nofree) { + gfx_free(data_ptr); + } + } + + // keep generation counter + *optr = (obj_t) { gen:optr->gen }; + } + + // clear gc list + a->size = 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_t *gfx_obj_ptr_nocheck(obj_id_t id) +{ + uint32_t idx; + olist_t *ol; + + idx = OBJ_ID2IDX(id); + + ol = gfxboot_data->vm.olist.ptr; + + if(idx >= ol->max) return 0; + + return ol->ptr + idx; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_t *gfx_obj_ptr(obj_id_t id) +{ + obj_t *ptr; + + if(!id) return 0; + + ptr = gfx_obj_ptr_nocheck(id); + + if(!ptr) return 0; + + if(ptr->base_type == OTYPE_NONE || ptr->gen != OBJ_ID2GEN(id)) { + // nonexistent or outdated + return 0; + } + + return ptr; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_data_is_ptr(unsigned type) +{ + if(type >= sizeof obj_descr/ sizeof *obj_descr) type = OTYPE_INVALID; + + return obj_descr[type].data_is_ptr; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +dump_function_t gfx_obj_dump_function(unsigned type) +{ + if(type >= sizeof obj_descr/ sizeof *obj_descr) type = OTYPE_INVALID; + + return obj_descr[type].dump_function; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +gc_function_t gfx_obj_gc_function(unsigned type) +{ + if(type >= sizeof obj_descr/ sizeof *obj_descr) type = OTYPE_INVALID; + + return obj_descr[type].gc_function ?: gfx_obj_none_gc; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +contains_function_t gfx_obj_contains_function(unsigned type) +{ + if(type >= sizeof obj_descr/ sizeof *obj_descr) type = OTYPE_INVALID; + + return obj_descr[type].contains_function ?: gfx_obj_none_contains; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +iterate_function_t gfx_obj_iterate_function(unsigned type) +{ + if(type >= sizeof obj_descr/ sizeof *obj_descr) type = OTYPE_INVALID; + + return obj_descr[type].iterate_function ?: gfx_obj_none_iterate; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_none_dump(obj_t *ptr, dump_style_t style) +{ + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_invalid_dump(obj_t *ptr, dump_style_t style) +{ + gfxboot_log(" \n"); + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_none_gc(obj_t *ptr) +{ + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_none_contains(obj_t *ptr, obj_id_t id) +{ + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +unsigned gfx_obj_none_iterate(obj_t *ptr, unsigned *idx, obj_id_t *id1, obj_id_t *id2) +{ + return 0; +} diff --git a/gfxboot_olist.c b/gfxboot_olist.c new file mode 100644 index 0000000..4065829 --- /dev/null +++ b/gfxboot_olist.c @@ -0,0 +1,76 @@ +#include + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// obj list + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +obj_id_t gfx_obj_olist_new(unsigned max) +{ + obj_id_t id = gfx_obj_alloc(OTYPE_OLIST, OBJ_OLIST_SIZE(max)); + olist_t *ol = gfx_obj_olist_ptr(id); + + if(ol) { + ol->max = max; + } + + return id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +olist_t *gfx_obj_olist_ptr(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_OLIST) return 0; + + return (olist_t *) ptr->data.ptr; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int gfx_obj_olist_dump(obj_t *ptr, dump_style_t style) +{ + unsigned u, used; + + if(!ptr) return 1; + + olist_t *ol = ptr->data.ptr; + + if(ptr->data.size != OBJ_OLIST_SIZE(ol->max)) { + gfxboot_log(" \n"); + + return 1; + } + + for(u = used = 0; u < ol->max; u++) { + if(ol->ptr[u].base_type != OTYPE_NONE) used++; + } + + if(!style.ref) { + if(style.inspect) { + gfxboot_log("size %u, next %u, max %u", used, ol->next, ol->max); + + return 1; + } + else { + return 0; + } + } + + if(style.dump) gfxboot_log(" "); + + for(u = 0; u < ol->max; u++) { + if(ol->ptr[u].base_type != OTYPE_NONE) { + obj_id_t id = OBJ_ID(u, ol->ptr[u].gen); + dump_style_t s = { .inspect = style.inspect, .no_head = 1 }; + s.dump = style.dump && u; + gfx_obj_dump(id, s); + } + } + + return 1; +} diff --git a/gfxboot_prim.c b/gfxboot_prim.c new file mode 100644 index 0000000..f84a3c3 --- /dev/null +++ b/gfxboot_prim.c @@ -0,0 +1,4399 @@ +#include + +#define WITH_PRIM_NAMES 1 +#define WITH_PRIM_HEADERS 1 +#include + +static obj_id_t prim_array_start_id = 0; +static obj_id_t prim_hash_start_id = 0; + +typedef enum { + op_sub, op_mul, op_div, op_mod, op_and, op_or, op_xor, op_min, op_max, op_shl, op_shr, + op_neg, op_not, op_abs +} op_t; + +typedef enum { + op_eq, op_ne, op_gt, op_ge, op_lt, op_le, op_cmp +} cmp_op_t; + +typedef struct { + obj_id_t id; + obj_t *ptr; +} arg_t; + +static arg_t *gfx_arg_1(uint8_t type); +static arg_t *gfx_arg_n(unsigned argc, uint8_t arg_types[]); +static int is_true(obj_id_t id); +static error_id_t do_op(op_t op, int64_t *result, int64_t val1, int64_t val2, unsigned sub_type); +static void binary_op_on_stack(op_t op); +static void unary_op_on_stack(op_t op); +static void binary_cmp_on_stack(cmp_op_t op); +static void gfx_prim_def_at(unsigned where); + +#define IS_NIL 0x80 +#define IS_RW 0x40 +#define TYPE_MASK 0x3f + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +arg_t *gfx_arg_1(uint8_t type) +{ + static arg_t argv[1]; + unsigned is_nil = type & IS_NIL; + unsigned is_rw = type & IS_RW; + type &= TYPE_MASK; + + GFX_ERROR(err_ok); + + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 1) { + GFX_ERROR(err_stack_underflow); + + return 0; + } + + obj_id_t id = argv[0].id = pstack->ptr[pstack->size - 1]; + obj_t *ptr = argv[0].ptr = gfx_obj_ptr(id); + + if( + (ptr && (type == ptr->base_type || type == OTYPE_ANY)) || + (id == 0 && (type == OTYPE_NONE || is_nil)) + ) { + if(is_rw && ptr && ptr->flags.ro) { + GFX_ERROR(err_readonly); + + return 0; + } + + return argv; + } + + GFX_ERROR(err_invalid_arguments); + + return 0; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +arg_t *gfx_arg_n(unsigned argc, uint8_t arg_types[]) +{ + unsigned i; + static arg_t argv[8]; + +#if 0 + if(argc >= sizeof argv / sizeof *argv) { + GFX_ERROR(err_internal); + + return 0; + } +#endif + + GFX_ERROR(err_ok); + + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < argc) { + GFX_ERROR(err_stack_underflow); + + return 0; + } + + unsigned stack_size = pstack->size; + obj_id_t *stack = pstack->ptr + stack_size - argc; + + for(i = 0; i < argc; i++) { + obj_id_t id = argv[i].id = stack[i]; + obj_t *ptr = argv[i].ptr = gfx_obj_ptr(id); + + uint8_t type = arg_types[i]; + unsigned is_nil = type & IS_NIL; + unsigned is_rw = type & IS_RW; + type &= TYPE_MASK; + + if( + (ptr && (type == ptr->base_type || type == OTYPE_ANY)) || + (id == 0 && (type == OTYPE_NONE || is_nil)) + ) { + if(is_rw && ptr && ptr->flags.ro) { + GFX_ERROR(err_readonly); + + return 0; + } + continue; + } + + GFX_ERROR(err_invalid_arguments); + + return 0; + } + + return argv; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// return: 0 = failed, 1 = ok +// +int gfx_setup_dict() +{ + unsigned u; + obj_id_t prim_id; + + gfx_obj_ref_dec(gfxboot_data->vm.program.dict); + gfxboot_data->vm.program.dict = gfx_obj_hash_new(0); + if(!gfxboot_data->vm.program.dict) return 0; + + for(u = 0; u < sizeof prim_names / sizeof *prim_names ; u++) { + gfx_obj_hash_set( + gfxboot_data->vm.program.dict, + gfx_obj_const_mem_nofree_new((const uint8_t *) prim_names[u], gfx_strlen(prim_names[u]), t_ref, 0), + prim_id = gfx_obj_num_new(u, t_prim), + 0 + ); + + switch(u) { + case prim_idx_array_start: + prim_array_start_id = prim_id; + break; + case prim_idx_hash_start: + prim_hash_start_id = prim_id; + break; + } + } + + if(!prim_array_start_id || !prim_hash_start_id) return 0; + + return 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +error_id_t gfx_run_prim(unsigned prim) +{ + if(prim > sizeof gfx_prim_list / sizeof *gfx_prim_list) { + GFX_ERROR(err_invalid_code); + return gfxboot_data->vm.error.id; + } + + gfx_prim_list[prim](); + + return gfxboot_data->vm.error.id; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// start code block +// +// group: code,array,hash +// +// ( -- code_1 ) +// +// Put a reference to the following code block on the stack. The code block +// starts after the opening `{` and extends to (and including) the matching +// closing `}`. +// +// This special word is handled while converting the source code into binary code with `gfxboot-compile`. +// For this reason, this is the only word that cannot be redefined. +// +// example: +// +// { "Hello!" show } +// +void gfx_prim_code_start() +{ + // will never be called +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// finish code block +// +// group: code,array,hash +// +// ( -- ) +// +// This marks the end of a code block. When the code is executed, the +// interpreter leaves the current execution context and returns to the +// parent context. +// +// example: +// +// /hello { "Hello!" show } def +// hello # print "Hello!" +// +void gfx_prim_code_end() +{ + context_t *context = gfx_obj_context_ptr(gfxboot_data->vm.program.context); + + if(!context) { + GFX_ERROR(err_invalid_instruction); + return; + } + + obj_id_t parent_id = context->parent_id; + + switch(context->type) { + case t_ctx_block: + case t_ctx_func: + OBJ_ID_ASSIGN(gfxboot_data->vm.program.context, parent_id); + break; + + case t_ctx_loop: + context->ip = 0; + break; + + case t_ctx_repeat: + if(--context->index) { + context->ip = 0; + } + else { + OBJ_ID_ASSIGN(gfxboot_data->vm.program.context, parent_id); + } + break; + + case t_ctx_for: + context->index += context->inc; + if( + (context->inc > 0 && context->index <= context->max) || + (context->inc < 0 && context->index >= context->max) + ) { + context->ip = 0; + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(context->index, t_int), 0); + } + else { + OBJ_ID_ASSIGN(gfxboot_data->vm.program.context, parent_id); + } + break; + + case t_ctx_forall: + ; + obj_id_t val1, val2; + unsigned idx = context->index; + unsigned items = gfx_obj_iterate(context->iterate_id, &idx, &val1, &val2); + context->index = idx; + + if(items) { + context->ip = 0; + // note: reference counting for val1 and val2 has been done inside gfx_obj_iterate() + gfx_obj_array_push(gfxboot_data->vm.program.pstack, val1, 0); + if(items > 1) gfx_obj_array_push(gfxboot_data->vm.program.pstack, val2, 0); + } + else { + OBJ_ID_ASSIGN(gfxboot_data->vm.program.context, parent_id); + } + break; + + default: + GFX_ERROR(err_invalid_instruction); + break; + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// start array definition +// +// group: array,code,hash +// +// ( -- mark_1 ) +// +// mark_1: array start marker +// +// Put array start marker on stack. Array definition is completed with ]. +// +// example: +// +// [ 1 2 3 ] # array with 3 elements +// +void gfx_prim_array_start() +{ + gfx_obj_array_push(gfxboot_data->vm.program.pstack, prim_array_start_id, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// finish array definition +// +// group: array,code,hash +// +// ( mark_1 any_1 ... any_n -- array_1 ) +// +// mark_1: array start marker +// any_1 ... any_n: some elements +// array_1: new array +// +// Search for mark_1 on the stack and put everything between mark_1 and TOS +// into an array. +// +// example: +// +// [ 10 20 "some" "text" ] # array with 4 elements +// +void gfx_prim_array_end() +{ + array_t *a = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!a) return; + + unsigned idx = a->size; + unsigned start_idx = -1u; + + while(idx-- > 0) { + if(a->ptr[idx] == prim_array_start_id) { + start_idx = idx; + break; + } + } + + if(start_idx == -1u) { + GFX_ERROR(err_no_array_start); + return; + } + + obj_id_t array_id = gfx_obj_array_new(a->size - start_idx - 1); + + if(!array_id) { + GFX_ERROR(err_no_memory); + return; + } + + // no ref counting neded as the elements are just moved + for(idx = start_idx + 1; idx < a->size; idx++) { + gfx_obj_array_push(array_id, a->ptr[idx], 0); + } + + a->size = start_idx + 1; + a->ptr[start_idx] = array_id; + + gfx_obj_ref_dec(prim_array_start_id); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// start hash definition +// +// group: hash,array,code +// +// ( -- mark_1 ) +// +// mark_1: hash start marker +// +// Put hash start marker on stack. Hash definition is completed with ). +// +// example: +// +// ( "foo" 10 "bar" 20 ) # hash with 2 keys "foo" and "bar" +// +void gfx_prim_hash_start() +{ + gfx_obj_array_push(gfxboot_data->vm.program.pstack, prim_hash_start_id, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// finish hash definition +// +// group: hash,array,code +// +// ( mark_1 any_1 ... any_n -- hash_1 ) +// +// mark_1: array start marker +// any_1 ... any_n: some key - value pairs +// hash_1: new hash +// +// Search for mark_1 on the stack and put everything between mark_1 and TOS +// into a hash. The elements are interpreted alternatingly as key and value. +// If there's an odd number of elements on the stack, the last value is nil. +// +// example: +// +// ( "foo" 10 "bar" 20 ) # hash with 2 keys "foo" and "bar" +// +void gfx_prim_hash_end() +{ + array_t *a = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!a) return; + + unsigned idx = a->size; + unsigned start_idx = -1u; + + while(idx-- > 0) { + if(a->ptr[idx] == prim_hash_start_id) { + start_idx = idx; + break; + } + } + + if(start_idx == -1u) { + GFX_ERROR(err_no_hash_start); + return; + } + + obj_id_t hash_id = gfx_obj_hash_new((a->size - start_idx) / 2); + + if(!hash_id) { + GFX_ERROR(err_no_memory); + return; + } + + // no ref counting neded as the elements are just moved + for(idx = start_idx + 1; idx < a->size; idx += 2) { + obj_id_t key = a->ptr[idx]; + obj_id_t val = idx + 1 < a->size ? a->ptr[idx + 1] : 0; + if(gfx_obj_mem_ptr(key)) { + gfx_obj_hash_set(hash_id, key, val, 0); + } + else { + GFX_ERROR(err_invalid_hash_key); + gfx_obj_ref_dec(hash_id); + return; + } + } + + a->size = start_idx + 1; + a->ptr[start_idx] = hash_id; + + gfx_obj_ref_dec(prim_hash_start_id); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// where: 0 (existing), 1 (local), 2 (global) +// +void gfx_prim_def_at(unsigned where) +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + obj_t *ptr1 = gfx_obj_ptr(id1); + + if(!ptr1 || ptr1->sub_type != t_ref) { + GFX_ERROR(err_invalid_instruction); + return; + } + + obj_id_t dict_id = 0; + + if(where == 0) { + obj_id_pair_t pair = gfx_lookup_dict(OBJ_DATA_FROM_PTR(ptr1)); + if(pair.id1) { + dict_id = pair.id1; + } + else { + where = 1; + } + } + + if(where) { + context_t *context = gfx_obj_context_ptr(gfxboot_data->vm.program.context); + if(!context) { + GFX_ERROR(err_internal); + return; + } + + if(where == 2) { + while(context->parent_id) { + context = gfx_obj_context_ptr(context->parent_id); + if(!context) { + GFX_ERROR(err_internal); + return; + } + } + } + + if(!context->dict_id) context->dict_id = gfx_obj_hash_new(0); + + dict_id = context->dict_id; + + if(!dict_id) { + GFX_ERROR(err_internal); + return; + } + } + + gfx_obj_hash_set(dict_id, id1, id2, 1); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// define new word +// +// group: def +// +// ( word_1 any_1 -- ) +// +// If word_1 does not exist, define word_1 in the current context. +// +// If word_1 does already exist, redefine word_1 in the context in which it is defined. +// +// example: +// /x 100 def # define x as 100 +// /neg { -1 mul } def # define a function that negates its argument +// +void gfx_prim_def() +{ + gfx_prim_def_at(0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// define new local word +// +// group: def +// +// ( word_1 any_1 -- ) +// +// Define word_1 in the current local context. +// +// example: +// /foo 200 ldef # define local word foo as 200 +// +void gfx_prim_ldef() +{ + gfx_prim_def_at(1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// define new global word +// +// group: def +// +// ( word_1 any_1 -- ) +// +// Define word_1 in the global context. +// +// example: +// /foo 300 gdef # define global word foo as 300 +// +void gfx_prim_gdef() +{ + gfx_prim_def_at(2); +} + + +#if 0 +/* not really needed... */ +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_prim_class() +{ + arg_t *argv; + + argv = gfx_arg_n(3, (uint8_t [3]) { OTYPE_MEM, OTYPE_HASH, OTYPE_HASH | IS_RW }); + + if(argv) { + if(argv[0].ptr->sub_type != t_ref) { + GFX_ERROR(err_invalid_arguments); + return; + } + + context_t *context = gfx_obj_context_ptr(gfxboot_data->vm.program.context); + if(!context) { + GFX_ERROR(err_internal); + return; + } + + while(context->parent_id) { + context = gfx_obj_context_ptr(context->parent_id); + if(!context) { + GFX_ERROR(err_internal); + return; + } + } + + if(!context->dict_id) context->dict_id = gfx_obj_hash_new(0); + + obj_id_t dict_id = context->dict_id; + + gfx_obj_hash_set(dict_id, argv[0].id, argv[2].id, 1); + + hash_t *hash = OBJ_HASH_FROM_PTR(argv[2].ptr); + obj_id_t old_id = hash->parent_id; + hash->parent_id = gfx_obj_ref_inc(argv[1].id); + gfx_obj_ref_dec(old_id); + + gfx_obj_array_pop_n(3, gfxboot_data->vm.program.pstack, 1); + } +} +#endif + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// conditional execution +// +// group: if +// +// (bool_1 code_1 -- ) +// (int_1 code_1 -- ) +// (nil code_1 -- ) +// (any_1 code_1 -- ) +// +// code_1: code block to run if condition evaluates to 'true' +// +// The condition is false for: boolean false, integer 0, or nil. In all other cases it is true. +// +// example: +// +// true { "ok" show } if # "ok" +// 50 { "ok" show } if # "ok" +// nil { "ok" show } if # shows nothing +// "" { "ok" show } if # "ok" +// +void gfx_prim_if() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + if(!gfx_is_code(id2)) { + GFX_ERROR(err_invalid_code); + return; + } + + if(is_true(id1)) { + obj_id_t context_id = gfx_obj_context_new(t_ctx_block); + context_t *context = gfx_obj_context_ptr(context_id); + + if(!context) { + GFX_ERROR(err_no_memory); + return; + } + + context->code_id = gfx_obj_ref_inc(id2); + + context->parent_id = gfxboot_data->vm.program.context; + gfxboot_data->vm.program.context = context_id; + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// conditional execution +// +// group: if +// +// (bool_1 code_1 code_2 -- ) +// (int_1 code_1 code_2 -- ) +// (nil code_1 code_2 -- ) +// (any_1 code_1 code_2 -- ) +// +// code_1: code block to run if condition evaluates to 'true' +// code_2: code block to run if condition evaluates to 'false' +// +// The condition is false for: boolean false, integer 0, or nil. In all other cases it is true. +// +// example: +// +// false { "ok" } { "bad" } ifelse show # "bad" +// 20 { "ok" } { "bad" } ifelse show # "ok" +// nil { "ok" } { "bad" } ifelse sho # "bad" +// "" { "ok" } { "bad" } ifelse show # "ok" +// +void gfx_prim_ifelse() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 3) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 3]; + obj_id_t id2 = pstack->ptr[pstack->size - 2]; + obj_id_t id3 = pstack->ptr[pstack->size - 1]; + + if(!gfx_is_code(id2) || !gfx_is_code(id3)) { + GFX_ERROR(err_invalid_code); + return; + } + + obj_id_t context_id = gfx_obj_context_new(t_ctx_block); + context_t *context = gfx_obj_context_ptr(context_id); + + if(!context) { + GFX_ERROR(err_no_memory); + return; + } + + context->code_id = gfx_obj_ref_inc(is_true(id1) ? id2 : id3); + + context->parent_id = gfxboot_data->vm.program.context; + gfxboot_data->vm.program.context = context_id; + + for(int i = 0; i < 3; i++) gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// endless loop +// +// group: if,loop +// +// ( code_1 -- ) +// +// Repeat code_1 forever until you exit the loop explicitly. +// +// example: +// +// { "Help!" show } loop +// +void gfx_prim_loop() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 1) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 1]; + + if(!gfx_is_code(id1)) { + GFX_ERROR(err_invalid_code); + return; + } + + obj_id_t context_id = gfx_obj_context_new(t_ctx_loop); + context_t *context = gfx_obj_context_ptr(context_id); + + if(!context) { + GFX_ERROR(err_no_memory); + return; + } + + context->code_id = gfx_obj_ref_inc(id1); + + context->parent_id = gfxboot_data->vm.program.context; + gfxboot_data->vm.program.context = context_id; + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// repeat code block +// +// group: if,loop +// +// ( int_1 code_1 -- ) +// +// Repeat code_1 int_1 times. If int_1 is less or equal to 0, code_1 is not run. +// +// example: +// +// 3 { "Help!" show } repeat # "Help!Help!Help!" +// +void gfx_prim_repeat() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + int64_t *count = gfx_obj_num_subtype_ptr(id1, t_int); + + if(!count || !gfx_is_code(id2)) { + GFX_ERROR(err_invalid_code); + return; + } + + if(*count > 0) { + obj_id_t context_id = gfx_obj_context_new(t_ctx_repeat); + context_t *context = gfx_obj_context_ptr(context_id); + + if(!context) { + GFX_ERROR(err_no_memory); + return; + } + + context->code_id = gfx_obj_ref_inc(id2); + context->index = *count; + + context->parent_id = gfxboot_data->vm.program.context; + gfxboot_data->vm.program.context = context_id; + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// run code block repeatedly, with counter +// +// group: if,loop +// +// ( int_1 int_2 int_3 code_1 -- ) +// int_1: start value +// int_2: increment value +// int_3: maximum value (inclusive) +// +// Run code_1 repeatedly and put the current counter value on the stack in every iteration. +// +// The counter starts with int_1 and is incremented by int_2 until it +// reaches int_3. The code block is executed with the start value and then +// as long as the counter is less than or equal to the maximum value. +// +// The increment may be negative. In that case the loop is executed as long as the counter +// is greater than or equal to the maximum value. +// +// If the increment is 0, the loop is not executed. +// +// example: +// +// 0 1 4 { } for # 0 1 2 3 4 +// 0 -2 -5 { } for # 0 -2 -4 +// +void gfx_prim_for() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 4) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 4]; + obj_id_t id2 = pstack->ptr[pstack->size - 3]; + obj_id_t id3 = pstack->ptr[pstack->size - 2]; + obj_id_t id4 = pstack->ptr[pstack->size - 1]; + + int64_t *start = gfx_obj_num_subtype_ptr(id1, t_int); + int64_t *inc = gfx_obj_num_subtype_ptr(id2, t_int); + int64_t *max = gfx_obj_num_subtype_ptr(id3, t_int); + + if(!start || !inc || !max || !gfx_is_code(id4)) { + GFX_ERROR(err_invalid_arguments); + return; + } + + int pop_count = 4; + + if( + (*inc > 0 && *start <= *max) || + (*inc < 0 && *start >= *max) + ) { + obj_id_t context_id = gfx_obj_context_new(t_ctx_for); + context_t *context = gfx_obj_context_ptr(context_id); + + if(!context) { + GFX_ERROR(err_no_memory); + return; + } + + context->code_id = gfx_obj_ref_inc(id4); + context->index = *start; + context->inc = *inc; + context->max = *max; + + context->parent_id = gfxboot_data->vm.program.context; + gfxboot_data->vm.program.context = context_id; + + pop_count--; + } + + for(int i = 0; i < pop_count; i++) gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// loop over all elements +// +// group: if,loop +// +// ( array_1 code_1 -- ) +// ( hash_1 code_1 -- ) +// ( string_1 code_1 -- ) +// +// Run code_1 for each element of array_1, hash_1, or string_1. +// +// For array_1 and string_1, each element is put on the stack and code_1 is run. +// +// For hash_1, each key and value pair are put on the stack and code_1 is run. +// The hash keys are iterated in alphanumerical order. +// +// Note that string_1 is interpreted as a sequence of bytes, not UTF8-encoded characters. +// +// example: +// +// [ 10 20 30 ] { } forall # 10 20 30 +// ( "foo" 10 "bar" 20 ) { } forall # "bar" 20 "foo" 10 +// "ABC" { } forall # 65 66 67 +// +void gfx_prim_forall() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + obj_t *ptr1 = gfx_obj_ptr(id1); + + if( + !gfx_is_code(id2) || + !ptr1 || + (ptr1->base_type != OTYPE_ARRAY && ptr1->base_type != OTYPE_HASH && ptr1->base_type != OTYPE_MEM) + ) { + GFX_ERROR(err_invalid_arguments); + return; + } + + obj_id_t val1, val2; + unsigned idx = 0; + unsigned items = gfx_obj_iterate(id1, &idx, &val1, &val2); + + if(items) { + obj_id_t context_id = gfx_obj_context_new(t_ctx_forall); + context_t *context = gfx_obj_context_ptr(context_id); + + if(!context) { + GFX_ERROR(err_no_memory); + return; + } + + context->code_id = gfx_obj_ref_inc(id2); + context->index = idx; + context->iterate_id = gfx_obj_ref_inc(id1); + + context->parent_id = gfxboot_data->vm.program.context; + gfxboot_data->vm.program.context = context_id; + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + // note: reference counting for val1 and val2 has been done inside gfx_obj_iterate() + gfx_obj_array_push(gfxboot_data->vm.program.pstack, val1, 0); + if(items > 1) gfx_obj_array_push(gfxboot_data->vm.program.pstack, val2, 0); + } + else { + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// leave loop/repeat/for/forall loop +// +// group: if,loop +// +// ( -- ) +// +// Exit from current loop. +// +// example: +// +// 0 1 10 { dup 4 eq { exit } if } for # 0 1 2 3 4 +// +void gfx_prim_exit() +{ + context_t *context = gfx_obj_context_ptr(gfxboot_data->vm.program.context); + + if(!context) { + GFX_ERROR(err_internal); + return; + } + + for(; context; context = gfx_obj_context_ptr(context->parent_id)) { + if(context->type == t_ctx_block) continue; + + if(context->type == t_ctx_func) { + GFX_ERROR(err_no_loop_context); + return; + } + + OBJ_ID_ASSIGN(gfxboot_data->vm.program.context, context->parent_id); + + return; + } + + GFX_ERROR(err_no_loop_context); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// leave current function +// +// group: if,loop +// +// Exit from currently running function. +// +// example: +// +// /foo { dup nil eq { return } if show } def +// "abc" foo # shows "abc" +// nil foo # does nothing +// +void gfx_prim_return() +{ + context_t *context = gfx_obj_context_ptr(gfxboot_data->vm.program.context); + + if(!context) { + GFX_ERROR(err_internal); + return; + } + + for(; context; context = gfx_obj_context_ptr(context->parent_id)) { + if(context->type == t_ctx_func) break; + } + + if(!context) gfxboot_data->vm.program.stop = 1; + + OBJ_ID_ASSIGN(gfxboot_data->vm.program.context, context ? context->parent_id : 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// create or duplicate string +// +// group: mem +// +// ( int_1 -- string_1 ) +// int_1: length +// string_1: new string with length int_1 +// ( string_2 -- string_3 ) +// string_2: string to duplicate +// string_3: copy of string_2 +// +// There are two variants: given a number, a string of that length is +// created and initialized with zeros; given a string, a copy of that string is created. +// +// int_1 may be 0 to create a zero-length string. +// +// Note: duplication works for all string-like objects. For example for word references and even code blocks. +// +// example: +// +// 2 string # creates an empty string of length 2: "\x00\x00" +// "abc" string # creates a copy of "abc" +// +// # even this works: +// /abc mem # a copy of /abc +// { 10 20 } mem # a copy of the code block { 10 20 } +// +void gfx_prim_string() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 1) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 1]; + + obj_t *ptr1 = gfx_obj_ptr(id1); + if(!ptr1) { + GFX_ERROR(err_invalid_arguments); + return; + } + + obj_id_t val_id = 0; + + switch(ptr1->base_type) { + case OTYPE_NUM: + { + int64_t value = OBJ_VALUE_FROM_PTR(ptr1); + + if(value < 0 || value >= (1ll << 32)) { + GFX_ERROR(err_invalid_range); + return; + } + + val_id = gfx_obj_mem_new(value); + + if(!val_id) { + GFX_ERROR(err_no_memory); + return; + } + } + break; + + case OTYPE_MEM: + val_id = gfx_obj_mem_dup(id1, 0); + break; + + default: + GFX_ERROR(err_invalid_arguments); + return; + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + // we did the ref counting already above + gfx_obj_array_push(gfxboot_data->vm.program.pstack, val_id, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get array, hash, or string element +// +// group: get +// +// ( array_1 int_1 -- ) +// array_1: array to modify +// int_1: element index +// +// ( hash_1 string_1 -- ) +// hash_1: hash to modify +// string_1: key +// +// ( string_2 int_2 -- ) +// string_2: string to modify +// int_2: element index +// +// Read the respective element of array_1, hash_1, or string_2. +// +// example: +// +// [ 10 20 30 ] 2 get # 30 +// ( "foo" 10 "bar" 20 ) "foo" get # 10 +// "ABC" 1 get # 66 +// +void gfx_prim_get() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + obj_t *ptr1 = gfx_obj_ptr(id1); + if(!ptr1) { + GFX_ERROR(err_invalid_arguments); + return; + } + + obj_id_t val = 0; + + switch(ptr1->base_type) { + case OTYPE_ARRAY: + { + int64_t *idx = gfx_obj_num_ptr(id2); + if(!idx) { + GFX_ERROR(err_invalid_range); + return; + } + val = gfx_obj_array_get(id1, *idx); + gfx_obj_ref_inc(val); + } + break; + + case OTYPE_HASH: + { + data_t *key = gfx_obj_mem_ptr(id2); + if(!key) { + GFX_ERROR(err_invalid_hash_key); + return; + } + val = gfx_obj_hash_get(id1, key).id2; + gfx_obj_ref_inc(val); + } + break; + + case OTYPE_MEM: + { + int64_t *idx = gfx_obj_num_ptr(id2); + if(!idx) { + GFX_ERROR(err_invalid_range); + return; + } + int i = gfx_obj_mem_get(id1, *idx); + if(i != -1) { + val = gfx_obj_num_new(i, t_int); + } + } + break; + + default: + GFX_ERROR(err_invalid_arguments); + return; + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + // we did the ref counting already above + gfx_obj_array_push(gfxboot_data->vm.program.pstack, val, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_prim_get_x(data_t *key) +{ + arg_t *argv; + + argv = gfx_arg_1(OTYPE_HASH); + + if(argv) { + obj_id_pair_t pair = gfx_obj_hash_get(argv[0].id, key); + if(!pair.id1) { + GFX_ERROR(err_invalid_arguments); + return; + } + gfx_exec_id(argv[0].id, pair.id2, 1); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_prim_put_x(obj_id_t key) +{ + arg_t *argv; + + argv = gfx_arg_n(2, (uint8_t [2]) { OTYPE_HASH | IS_RW, OTYPE_ANY | IS_NIL }); + + if(argv) { + if(!gfx_obj_hash_set(argv[0].id, key, argv[1].id, 1)) { + GFX_ERROR(err_invalid_hash_key); + return; + } + + gfx_obj_array_pop_n(2, gfxboot_data->vm.program.pstack, 1); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set array, hash, or string element +// +// group: get +// +// ( array_1 int_1 any_1 -- ) +// array_1: array to modify +// int_1: element index +// any_1: new value +// +// ( hash_1 string_1 any_2 -- ) +// hash_1: hash to modify +// string_1: key +// any_2: new value +// +// ( string_2 int_2 int_3 -- ) +// string_2: string to modify +// int_2: element index +// int_3: new value +// +// Set the respective element of array_1, hash_1, or string_2. +// +// Note that string constants are read-only and cannot be modified. +// +// example: +// +// /x [ 10 20 30 ] def +// x 2 40 put # x is now [ 10 20 40 ] +// +// /y ( "foo" 10 "bar" 20 ) def +// y "bar" 40 put # y is now ( "foo" 10 "bar" 40 ) +// +// /z "ABC" mem def # mem is needed to create a writable copy +// z 1 68 put # z is now "ADC" +// +void gfx_prim_put() +{ + arg_t *argv; + + argv = gfx_arg_n(3, (uint8_t [3]) { OTYPE_ARRAY | IS_RW, OTYPE_NUM, OTYPE_ANY | IS_NIL }); + + if(argv) { + int pos = OBJ_VALUE_FROM_PTR(argv[1].ptr); + + if(!gfx_obj_array_set(argv[0].id, argv[2].id, pos, 1)) { + GFX_ERROR(err_invalid_range); + return; + } + + gfx_obj_array_pop_n(3, gfxboot_data->vm.program.pstack, 1); + return; + } + + if(gfxboot_data->vm.error.id == err_readonly) return; + + argv = gfx_arg_n(3, (uint8_t [3]) { OTYPE_HASH | IS_RW, OTYPE_MEM, OTYPE_ANY | IS_NIL }); + + if(argv) { + if(!gfx_obj_hash_set(argv[0].id, argv[1].id, argv[2].id, 1)) { + GFX_ERROR(err_invalid_hash_key); + return; + } + + gfx_obj_array_pop_n(3, gfxboot_data->vm.program.pstack, 1); + return; + } + + if(gfxboot_data->vm.error.id == err_readonly) return; + + argv = gfx_arg_n(3, (uint8_t [3]) { OTYPE_MEM | IS_RW, OTYPE_NUM, OTYPE_NUM }); + + if(argv) { + uint8_t val = OBJ_VALUE_FROM_PTR(argv[2].ptr); + int pos = OBJ_VALUE_FROM_PTR(argv[1].ptr); + + if(!gfx_obj_mem_set(argv[0].id, val, pos)) { + GFX_ERROR(err_invalid_range); + return; + } + + gfx_obj_array_pop_n(3, gfxboot_data->vm.program.pstack, 1); + return; + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// delete an array, hash, or string element +// +// group: get +// +// ( array_1 int_1 -- ) +// array_1: array to modify +// int_1: element index +// +// ( hash_1 string_1 -- ) +// hash_1: hash to modify +// string_1: key +// +// ( string_2 int_2 -- ) +// string_2: string to modify +// int_2: element index +// +// Delete the respective element of array_1, hash_1, or string_2. The length +// of array_1 andstring_2 will be reduced by 1. +// +// Note that string constants are read-only and cannot be modified. +// +// example: +// +// /x [ 10 20 30 ] def +// x 1 delete # x is now [ 10 30 ] +// +// /y ( "foo" 10 "bar" 20 ) def +// y "foo" delete # y is now ( "bar" 20 ) +// +// /z "ABC" mem def # mem is needed to create a writable copy +// z 1 delete # z is now "AC" +// +void gfx_prim_delete() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + obj_t *ptr1 = gfx_obj_ptr(id1); + if(!ptr1) { + GFX_ERROR(err_invalid_arguments); + return; + } + + if(ptr1->flags.ro) { + GFX_ERROR(err_readonly); + return; + } + + switch(ptr1->base_type) { + case OTYPE_ARRAY: + { + int64_t *idx = gfx_obj_num_ptr(id2); + if(!idx) { + GFX_ERROR(err_invalid_range); + return; + } + gfx_obj_array_del(id1, *idx, 1); + } + break; + + case OTYPE_HASH: + { + data_t *key = gfx_obj_mem_ptr(id2); + if(!key) { + GFX_ERROR(err_invalid_hash_key); + return; + } + gfx_obj_hash_del(id1, id2, 1); + } + break; + + case OTYPE_MEM: + { + int64_t *idx = gfx_obj_num_ptr(id2); + if(!idx) { + GFX_ERROR(err_invalid_range); + return; + } + gfx_obj_mem_del(id1, *idx); + } + break; + + default: + GFX_ERROR(err_invalid_arguments); + return; + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get size of array, hash, or string +// +// group: get +// +// ( array_1 -- int_1 ) +// int_1: number of elements in array_1 +// +// ( hash_1 -- int_2 ) +// int_2: number of key - value pairs in hash_1 +// +// ( string_1 -- int_3 ) +// int_3: number of bytes in string_1 +// +// Put the length of array_1, hash_1, or string_1 on the stack. +// +// example: +// +// [ 10 20 30 ] length # 3 +// ( "foo" 10 "bar" 20 ) length # 2 +// "ABC" length # 3 +// +void gfx_prim_length() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 1) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 1]; + + obj_t *ptr1 = gfx_obj_ptr(id1); + if(!ptr1) { + GFX_ERROR(err_invalid_arguments); + return; + } + + int64_t val = 0; + + switch(ptr1->base_type) { + case OTYPE_ARRAY: + val = OBJ_ARRAY_FROM_PTR(ptr1)->size; + break; + + case OTYPE_HASH: + val = OBJ_HASH_FROM_PTR(ptr1)->size; + break; + + case OTYPE_MEM: + val = OBJ_DATA_FROM_PTR(ptr1)->size; + break; + + default: + GFX_ERROR(err_invalid_arguments); + return; + } + + obj_id_t val_id = gfx_obj_num_new(val, t_int); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + // we did the ref counting already above + gfx_obj_array_push(gfxboot_data->vm.program.pstack, val_id, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// duplicate TOS +// +// group: stack +// +// ( any_1 -- any_1 any_1 ) +// +// Duplicate the top-of-stack element. +// +// example: +// +// 10 dup # 10 10 +// +void gfx_prim_dup() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 1) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 1]; + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, id1, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// remove TOS +// +// group: stack +// +// ( any_1 -- ) +// +// Remove the top-of-stack element. +// +// example: +// +// 10 20 pop # 10 +// +void gfx_prim_pop() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 1) { + GFX_ERROR(err_stack_underflow); + return; + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// swap upper two stack elements +// +// group: stack +// +// ( any_1 any_2 -- any_2 any_1 ) +// +// Swap the two topmost stack elements. +// +// example: +// +// 10 20 exch # 20 10 +// +void gfx_prim_exch() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + gfx_obj_array_set(gfxboot_data->vm.program.pstack, id2, (int) pstack->size - 2, 0); + gfx_obj_array_set(gfxboot_data->vm.program.pstack, id1, (int) pstack->size - 1, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// rotate upper three stack elements +// +// group: stack +// +// ( any_1 any_2 any_3 -- any_2 any_3 any_1 ) +// +// Rotate any_1 to the top-of-stack. +// +// example: +// +// 10 20 30 rot # 20 30 10 +// +void gfx_prim_rot() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 3) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 3]; + obj_id_t id2 = pstack->ptr[pstack->size - 2]; + obj_id_t id3 = pstack->ptr[pstack->size - 1]; + + gfx_obj_array_set(gfxboot_data->vm.program.pstack, id2, (int) pstack->size - 3, 0); + gfx_obj_array_set(gfxboot_data->vm.program.pstack, id3, (int) pstack->size - 2, 0); + gfx_obj_array_set(gfxboot_data->vm.program.pstack, id1, (int) pstack->size - 1, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// rotate stack elements +// +// group: stack +// +// ( any_1 ... any_n int_1 int_2 -- any_x ... any_y ) +// int_1: number of stack elements to rotate (equal to index n) +// int_2: rotation amount +// +// Rotate the n elements any_1 ... any_n. The new positions are calculated as follows: +// +// x = (1 - int_2) mod int_1 +// +// y = (n - int_2) mod int_1 +// +// This can be seen as rotating int_1 elements up by int_2 resp. down by -int_2. +// +// example: +// +// 10 20 30 40 50 5 2 roll # 40 50 10 20 30 +// +// /rot { 3 -1 roll } def # definition of 'rot' +// +void gfx_prim_roll() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + int64_t *xlen = gfx_obj_num_ptr(id1); + int64_t *xofs = gfx_obj_num_ptr(id2); + + if(!xlen || *xlen < 0 || !xofs) { + GFX_ERROR(err_invalid_arguments); + return; + } + + int len = *xlen; + int ofs = *xofs; + + if((unsigned) len + 2 > pstack->size) { + GFX_ERROR(err_stack_underflow); + return; + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + if(!len) return; + + ofs %= len; + if(ofs < 0) ofs += len; + if(!ofs) return; + + ofs = len - ofs; + + // FIXME: it's a bit inefficient this way + while(ofs--) { + obj_id_t tmp_id = pstack->ptr[(int) pstack->size - len]; + for(int i = 0; i < len - 1; i++) { + pstack->ptr[(int) pstack->size - len + i] = pstack->ptr[(int) pstack->size - len + i + 1]; + } + pstack->ptr[pstack->size - 1] = tmp_id; + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// copy TOS-1 to TOS +// +// group: stack +// +// ( any_1 any_2 -- any_1 any_2 any_1 ) +// +// Put a copy of the second-from-top element on the top-of-stack. +// +// example: +// +// 10 20 over # 10 20 10 +// +void gfx_prim_over() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, id1, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// copy stack element +// +// group: stack +// +// ( any_n ... any_0 int_1 -- any_n ... any_0 any_n ) +// int_1: element position on stack (n is equal to int_1) +// +// Copy the int_1-th-from-top element on the top-of-stack. +// +// example: +// +// 10 20 30 40 3 index # 10 20 30 40 10 +// +// /dup { 0 index } def # definition of 'dup' +// +// /over { 1 index } def # definition of 'over' +// +void gfx_prim_index() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 1]; + int64_t *idx = gfx_obj_num_ptr(id1); + + if(!idx || *idx < 0) { + GFX_ERROR(err_invalid_range); + return; + } + + if(*idx + 2 > pstack->size) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id2 = pstack->ptr[pstack->size - 2 - *idx]; + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, id2, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void gfx_exec_id(obj_id_t dict_id, obj_id_t id, int on_stack) +{ + int64_t *val; + + if((val = gfx_obj_num_subtype_ptr(id, t_prim))) { + if(on_stack) gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_run_prim(*val); + } + else if(gfx_obj_mem_subtype_ptr(id, t_code)) { + obj_id_t context_id = gfx_obj_context_new(t_ctx_func); + context_t *context = gfx_obj_context_ptr(context_id); + if(!context) { + GFX_ERROR(err_no_memory); + return; + } + context->code_id = gfx_obj_ref_inc(id); + + context->parent_id = gfxboot_data->vm.program.context; + gfxboot_data->vm.program.context = context_id; + + if(dict_id) { + context->dict_id = gfx_obj_hash_new(0); + hash_t *hash = gfx_obj_hash_ptr(context->dict_id); + if(!hash) { + GFX_ERROR(err_no_memory); + return; + } + hash->parent_id = gfx_obj_ref_inc(dict_id); + } + + if(on_stack) gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + } + else { + gfx_obj_ref_inc(id); + if(on_stack) gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_push(gfxboot_data->vm.program.pstack, id, 0); + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// execute object +// +// group: loop +// +// ( ref_1 -- ) +// ref_1: word reference +// +// ( code_1 -- ) +// code_1: code block +// +// Executes the given code block or looks up and executes the word reference. +// +// example: +// +// { 10 20 } exec # 10 20 +// +// /foo "abc" def +// foo # "abc" +// /foo exec # "abc" +// +void gfx_prim_exec() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 1) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id = pstack->ptr[pstack->size - 1]; + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr) return; + + if( + ptr->base_type == OTYPE_MEM && + (ptr->sub_type == t_word || ptr->sub_type == t_ref) + ) { + id = gfx_lookup_dict(OBJ_DATA_FROM_PTR(ptr)).id2; + } + + gfx_exec_id(0, id, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// addition +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: int_1 + int_2 +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 xor bool_2 +// +// ( array_1 array_2 -- array_3 ) +// array_3: array_2 appended to array_1 +// +// ( hash_1 hash_2 -- hash_3 ) +// hash_3: joined hash_1 and hash_2 +// +// ( string_1 string_2 -- string_3 ) +// string_3: string_2 appended to string_1 +// +// Add two numbers, or concatenate two arrays, or join two hashes, or concatenate two strings. +// +// For boolean 1 bit arithmetic this is equivalent to 'xor'. +// +// example: +// +// 10 20 add # 30 +// true true add # false +// [ 10 20 ] [ 30 40 ] add # [ 10 20 30 40 ] +// ( "foo" 10 ) ( "bar" 20 ) add # ( "bar" 20 "foo" 10 ) +// "abc" "def" add # "abcdef" +// +void gfx_prim_add() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + obj_t *ptr1 = gfx_obj_ptr(id1); + obj_t *ptr2 = gfx_obj_ptr(id2); + + // FIXME: maybe allow 'mem_ref + int'? + + if(!ptr1 || !ptr2 || ptr1->base_type != ptr2->base_type) { + GFX_ERROR(err_invalid_arguments); + return; + } + + obj_id_t result_id = 0; + + switch(ptr1->base_type) { + case OTYPE_NUM: + { + int64_t result = ptr1->data.value + ptr2->data.value; + if(ptr1->sub_type == t_bool) result &= 1; + result_id = gfx_obj_num_new(result, ptr1->sub_type); + } + break; + + case OTYPE_MEM: + { + result_id = gfx_obj_mem_new(ptr1->data.size + ptr2->data.size); + obj_t *result_ptr = gfx_obj_ptr(result_id); + if(!result_ptr) { + GFX_ERROR(err_no_memory); + return; + } + result_ptr->sub_type = ptr1->sub_type; + gfx_memcpy(result_ptr->data.ptr, ptr1->data.ptr, ptr1->data.size); + gfx_memcpy(result_ptr->data.ptr + ptr1->data.size, ptr2->data.ptr, ptr2->data.size); + } + break; + + case OTYPE_ARRAY: + { + array_t *array1 = gfx_obj_array_ptr(id1); + array_t *array2 = gfx_obj_array_ptr(id2); + if(array1 && array2) { + result_id = gfx_obj_array_new(array1->size + array2->size + 0x10); + } + if(!result_id) { + GFX_ERROR(err_no_memory); + return; + } + obj_id_t val; + unsigned idx = 0; + while(gfx_obj_iterate(id1, &idx, &val, 0)) { + // note: reference counting for val has been done inside gfx_obj_iterate() + gfx_obj_array_push(result_id, val, 0); + } + idx = 0; + while(gfx_obj_iterate(id2, &idx, &val, 0)) { + // note: reference counting for val has been done inside gfx_obj_iterate() + gfx_obj_array_push(result_id, val, 0); + } + } + break; + + case OTYPE_HASH: + { + hash_t *hash1 = gfx_obj_hash_ptr(id1); + hash_t *hash2 = gfx_obj_hash_ptr(id2); + if(hash1 && hash2) { + result_id = gfx_obj_hash_new(hash1->size + hash2->size + 0x10); + } + if(!result_id) { + GFX_ERROR(err_no_memory); + return; + } + obj_id_t key, val; + unsigned idx = 0; + while(gfx_obj_iterate(id1, &idx, &key, &val)) { + // note: reference counting for key & val has been done inside gfx_obj_iterate() + gfx_obj_hash_set(result_id, key, val, 0); + } + idx = 0; + while(gfx_obj_iterate(id2, &idx, &key, &val)) { + // note: reference counting for key & val has been done inside gfx_obj_iterate() + gfx_obj_hash_set(result_id, key, val, 0); + } + } + break; + + default: + GFX_ERROR(err_invalid_arguments); + return; + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, result_id, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// subtraction +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: int_1 - int_2 +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 xor bool_2 +// +// Subtract int_2 from int_1. +// +// For boolean 1 bit arithmetic this is equivalent to 'xor'. +// +// example: +// +// 100 30 sub # 70 +// false true sub # true +// +void gfx_prim_sub() +{ + binary_op_on_stack(op_sub); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// multiplication +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: int_1 * int_2 +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 and bool_2 +// +// Multiply int_1 by int_2. +// +// For boolean 1 bit arithmetic this is equivalent to 'and'. +// +// example: +// +// 20 30 mul # 600 +// true false mul # false +// +void gfx_prim_mul() +{ + binary_op_on_stack(op_mul); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// division +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: int_1 / int_2 +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 / bool_2 +// +// Divide int_1 by int_2. +// +// You can do a 1 bit division with boolean values. Note that this will run +// into a division by zero exception if bool_2 is false. +// +// example: +// +// 200 30 div # 6 +// true true div # true +// +void gfx_prim_div() +{ + binary_op_on_stack(op_div); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// remainder +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: int_1 % int_2 +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 / bool_2 +// +// int_3 is the remainder dividing int_1 by int_2. +// +// You can get the remainder from a 1 bit division with boolean values. Note +// that this will run into a division by zero exception if bool_2 is false. +// +// example: +// +// 200 30 mod # 20 +// true true mod # false +// +void gfx_prim_mod() +{ + binary_op_on_stack(op_mod); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// negation +// +// group: calc +// +// ( int_1 -- int_2 ) +// int_2: -int_1 +// +// ( bool_1 -- bool_2 ) +// bool_2: -bool_1 +// +// Negate int_1 (change sign). +// +// For boolean 1 bit arithmetic the value is unchanged (this is not a 'not' operation). +// +// example: +// +// 20 neg # -20 +// true neg # true +// +void gfx_prim_neg() +{ + unary_op_on_stack(op_neg); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// absolute value +// +// group: calc +// +// ( int_1 -- int_2 ) +// int_2: |int_1| +// +// ( bool_1 -- bool_2 ) +// bool_2: bool_1 +// +// Absolute value of int_1 (change sign if int_1 is negative). +// +// example: +// +// For boolean 1 bit arithmetic the value is unchanged. +// +// -20 abs # 20 +// true abs # true +// +void gfx_prim_abs() +{ + unary_op_on_stack(op_abs); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// minimum +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: minimum(int_1, int_2) +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 and bool_2 +// +// int_3 is the smaller value of int_1 and int_2. +// +// For boolean 1 bit arithmetic this is equivalent to 'and' +// +// example: +// +// 10 20 min # 10 +// true false min # false +// +void gfx_prim_min() +{ + binary_op_on_stack(op_min); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// maximum +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: maximum(int_1, int_2) +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 or bool_2 +// +// int_3 is the larger value of int_1 and int_2. +// +// For boolean 1 bit arithmetic this is equivalent to 'or' +// +// example: +// +// 10 20 max # 20 +// true false max # true +// +void gfx_prim_max() +{ + binary_op_on_stack(op_max); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// and +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: int_1 and int_2 +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 and bool_2 +// +// example: +// +// 15 4 and # 4 +// true false and # false +// +void gfx_prim_and() +{ + binary_op_on_stack(op_and); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// or +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: int_1 or int_2 +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 or bool_2 +// +// example: +// +// 15 4 or # 15 +// true false or # true +// +void gfx_prim_or() +{ + binary_op_on_stack(op_or); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// exclusive or +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: int_1 xor int_2 +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 xor bool_2 +// +// example: +// +// 15 4 xor # 11 +// true false or # true +// +void gfx_prim_xor() +{ + binary_op_on_stack(op_xor); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// not +// +// group: calc +// +// ( int_1 -- int_2 ) +// int_2: -int_1 - 1 +// +// ( bool_1 -- bool_2 ) +// bool_2: !bool_1 +// +// example: +// +// 20 not # -21 +// true not # false +// +void gfx_prim_not() +{ + unary_op_on_stack(op_not); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// shift left +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: int_1 << int_2 +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 and !bool_2 +// +// example: +// +// 1 4 shl # 16 +// true false shl # true +// +void gfx_prim_shl() +{ + binary_op_on_stack(op_shl); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// shift right +// +// group: calc +// +// ( int_1 int_2 -- int_3 ) +// int_3: int_1 >> int_2 +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 and !bool_2 +// +// example: +// +// 16 4 shr # 1 +// true false shr # true +// +void gfx_prim_shr() +{ + binary_op_on_stack(op_shr); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// equal +// +// group: cmp +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 == bool_2 +// +// ( int_1 int_2 -- bool_4 ) +// bool_4: int_1 == int_2 +// +// ( string_1 string_2 -- bool_5 ) +// bool_5: string_1 == string_2 +// +// ( any_1 any_2 -- bool_6 ) +// bool_6: any_1 == any_2 +// +// For pairs of booleans, integers, and strings the values are compared. For all +// other combinations the internal object id is compared. +// +// example: +// +// 10 20 eq # false +// true false eq # false +// "abc" "abc" eq # true +// [ 10 20 ] [ 10 20 ] eq # false +// 0 false eq # false +// 0 nil eq # false +// "abc" [ 10 ] eq # false +// +// /foo [ 10 20 ] def +// /bar foo def +// foo bar eq # true +// +void gfx_prim_eq() +{ + binary_cmp_on_stack(op_eq); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// not equal +// +// group: cmp +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 != bool_2 +// +// ( int_1 int_2 -- bool_4 ) +// bool_4: int_1 != int_2 +// +// ( string_1 string_2 -- bool_5 ) +// bool_5: string_1 != string_2 +// +// ( any_1 any_2 -- bool_6 ) +// bool_6: any_1 != any_2 +// +// For pairs of booleans, integers, and strings the values are compared. For all +// other combinations the internal object id is compared. +// +// example: +// +// 10 20 ne # true +// true false ne # true +// "abc" "abc" ne # false +// [ 10 20 ] [ 10 20 ] ne # true +// 0 false ne # true +// 0 nil ne # true +// "abc" [ 10 ] ne # true +// +// /foo [ 10 20 ] def +// /bar foo def +// foo bar ne # false +// +void gfx_prim_ne() +{ + binary_cmp_on_stack(op_ne); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// greater than +// +// group: cmp +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 > bool_2 +// +// ( int_1 int_2 -- bool_4 ) +// bool_4: int_1 > int_2 +// +// ( string_1 string_2 -- bool_5 ) +// bool_5: string_1 > string_2 +// +// ( any_1 any_2 -- bool_6 ) +// bool_6: any_1 > any_2 +// +// For pairs of booleans, integers, and strings the values are compared. For all +// other combinations the internal object id is compared. +// +// example: +// +// 10 20 gt # false +// true false gt # true +// "abd" "abc" gt # true +// [ 10 20 ] [ 10 20 ] gt # varies +// 0 false gt # varies +// 0 nil gt # varies +// "abc" [ 10 ] gt # varies +// +void gfx_prim_gt() +{ + binary_cmp_on_stack(op_gt); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// greater or equal +// +// group: cmp +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 >= bool_2 +// +// ( int_1 int_2 -- bool_4 ) +// bool_4: int_1 >= int_2 +// +// ( string_1 string_2 -- bool_5 ) +// bool_5: string_1 >= string_2 +// +// ( any_1 any_2 -- bool_6 ) +// bool_6: any_1 >= any_2 +// +// For pairs of booleans, integers, and strings the values are compared. For all +// other combinations the internal object id is compared. +// +// example: +// +// 10 20 ge # false +// true false ge # true +// "abd" "abc" ge # true +// [ 10 20 ] [ 10 20 ] ge # varies +// 0 false ge # varies +// 0 nil ge # varies +// "abc" [ 10 ] ge # varies +// +void gfx_prim_ge() +{ + binary_cmp_on_stack(op_ge); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// less than +// +// group: cmp +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 < bool_2 +// +// ( int_1 int_2 -- bool_4 ) +// bool_4: int_1 < int_2 +// +// ( string_1 string_2 -- bool_5 ) +// bool_5: string_1 < string_2 +// +// ( any_1 any_2 -- bool_6 ) +// bool_6: any_1 < any_2 +// +// For pairs of booleans, integers, and strings the values are compared. For all +// other combinations the internal object id is compared. +// +// example: +// +// 10 20 lt # true +// true false lt # false +// "abd" "abc" lt # false +// [ 10 20 ] [ 10 20 ] lt # varies +// 0 false lt # varies +// 0 nil lt # varies +// "abc" [ 10 ] lt # varies +// +void gfx_prim_lt() +{ + binary_cmp_on_stack(op_lt); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// less or equal +// +// group: cmp +// +// ( bool_1 bool_2 -- bool_3 ) +// bool_3: bool_1 <= bool_2 +// +// ( int_1 int_2 -- bool_4 ) +// bool_4: int_1 <= int_2 +// +// ( string_1 string_2 -- bool_5 ) +// bool_5: string_1 <= string_2 +// +// ( any_1 any_2 -- bool_6 ) +// bool_6: any_1 <= any_2 +// +// For pairs of booleans, integers, and strings the values are compared. For all +// other combinations the internal object id is compared. +// +// example: +// +// 10 20 le # true +// true false le # false +// "abd" "abc" le # false +// [ 10 20 ] [ 10 20 ] le # varies +// 0 false le # varies +// 0 nil le # varies +// "abc" [ 10 ] le # varies +// +void gfx_prim_le() +{ + binary_cmp_on_stack(op_le); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// compare +// +// group: cmp +// +// ( int_1 int_2 -- int_3 ) +// int_3: int_1 <=> int_2 +// +// ( bool_1 bool_2 -- int_4 ) +// int_4: bool_1 <=> bool_2 +// +// ( string_1 string_2 -- int_5 ) +// int_5: string_1 <=> string_2 +// +// ( any_1 any_2 -- int_6 ) +// int_6: any_1 <=> any_2 +// +// For pairs of booleans, integers, and strings the values are compared. For +// all other combinations the internal object id is compared. +// +// The result is -1, 1, 0 if the first argument is less than, greater than, +// or equal to the second argument, respectively. +// +// example: +// +// 10 20 cmp # -1 +// true false cmp # 1 +// "abc" "abc" cmp # 0 +// [ 10 20 ] [ 10 20 ] cmp # varies +// 0 false cmp # varies +// 0 nil cmp # varies +// "abc" [ 10 ] cmp # varies +// +// /foo [ 10 20 ] def +// /bar foo def +// foo bar cmp # 0 +// +void gfx_prim_cmp() +{ + binary_cmp_on_stack(op_cmp); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +int is_true(obj_id_t id) +{ + obj_t *ptr = gfx_obj_ptr(id); + int val = 0; + + if(ptr) { + if(ptr->base_type == OTYPE_NUM) { + val = ptr->data.value ? 1 : 0; + } + else { + val = 1; + } + } + + return val; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +error_id_t do_op(op_t op, int64_t *result, int64_t val1, int64_t val2, unsigned sub_type) +{ + error_id_t err = 0; + + switch(op) { + case op_sub: + *result = val1 - val2; + break; + + case op_mul: + if(sub_type == t_bool) { + *result = (val1 & val2) & 1; + } + else { + *result = val1 * val2; + } + break; + + case op_div: + if(sub_type == t_bool) { + int i1 = val1 & 1; + int i2 = val2 & 1; + if(i2 == 0) { + err = err_div_by_zero; + } + else { + *result = i1; + } + } + else { + if( + val2 == 0 || + ((uint64_t) val1 == 0x8000000000000000ll && val2 == -1) + ) { + err = err_div_by_zero; + } + else { + *result = val1 / val2; + } + } + break; + + case op_mod: + if(sub_type == t_bool) { + int i1 = val1 & 1; + int i2 = val2 & 1; + if(i2 == 0) { + err = err_div_by_zero; + } + else { + *result = i1; + } + } + else { + if( + val2 == 0 || + ((uint64_t) val1 == 0x8000000000000000ll && val2 == -1) + ) { + err = err_div_by_zero; + } + else { + *result = val1 % val2; + } + } + break; + + case op_and: + *result = val1 & val2; + break; + + case op_or: + *result = val1 | val2; + break; + + case op_xor: + *result = val1 ^ val2; + break; + + case op_min: + *result = val1 < val2 ? val1 : val2; + break; + + case op_max: + *result = val1 > val2 ? val1 : val2; + break; + + case op_shl: + *result = val1 << val2; + break; + + case op_shr: + *result = val1 >> val2; + break; + + case op_neg: + *result = -val1; + break; + + case op_not: + *result = ~val1; + break; + + case op_abs: + *result = val1 > 0 ? val1 : -val1; + break; + + default: + *result = 0; + break; + } + + if(sub_type == t_bool) *result &= 1; + + return err; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void binary_op_on_stack(op_t op) +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + obj_t *ptr1 = gfx_obj_ptr(id1); + obj_t *ptr2 = gfx_obj_ptr(id2); + + if(!ptr1 || !ptr2 || ptr1->base_type != ptr2->base_type || ptr1->base_type != OTYPE_NUM) { + GFX_ERROR(err_invalid_arguments); + return; + } + + int64_t result; + + error_id_t err = do_op(op, &result, ptr1->data.value, ptr2->data.value, ptr1->sub_type); + + if(err) { + GFX_ERROR(err); + return; + } + + obj_id_t result_id = gfx_obj_num_new(result, ptr1->sub_type); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, result_id, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void unary_op_on_stack(op_t op) +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 1) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id = pstack->ptr[pstack->size - 1]; + obj_t *ptr = gfx_obj_ptr(id); + + if(!ptr || ptr->base_type != OTYPE_NUM) { + GFX_ERROR(err_invalid_arguments); + return; + } + + int64_t result; + + error_id_t err = do_op(op, &result, ptr->data.value, 0, ptr->sub_type); + + if(err) { + GFX_ERROR(err); + return; + } + + obj_id_t result_id = gfx_obj_num_new(result, ptr->sub_type); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, result_id, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void binary_cmp_on_stack(cmp_op_t op) +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + obj_t *ptr1 = gfx_obj_ptr(id1); + obj_t *ptr2 = gfx_obj_ptr(id2); + + int result = 0; + + if(id1 != 0 || id2 != 0) { + if(!ptr1 || !ptr2) { + result = id1 > id2 ? 1 : -1; + } + else if(ptr1->base_type != ptr2->base_type) { + result = ptr1->base_type > ptr2->base_type ? 1 : -1; + } + else { + switch(ptr1->base_type) { + case OTYPE_NUM: + if(ptr1->sub_type != ptr2->sub_type) { + result = ptr1->sub_type > ptr2->sub_type ? 1 : -1; + } + else { + if(ptr1->data.value != ptr2->data.value) { + result = ptr1->data.value > ptr2->data.value ? 1 : -1; + } + } + break; + + case OTYPE_MEM: + if(ptr1->sub_type != ptr2->sub_type) { + result = ptr1->sub_type > ptr2->sub_type ? 1 : -1; + } + else { + result = gfx_obj_mem_cmp(&ptr1->data, &ptr2->data); + } + break; + + default: + if(id1 != id2) { + result = id1 > id2 ? 1 : -1; + } + break; + } + } + } + + uint8_t subtype = t_bool; + + switch(op) { + case op_eq: + result = result == 0 ? 1 : 0; + break; + + case op_ne: + result = result != 0 ? 1 : 0; + break; + + case op_gt: + result = result > 0 ? 1 : 0; + break; + + case op_ge: + result = result >= 0 ? 1 : 0; + break; + + case op_lt: + result = result < 0 ? 1 : 0; + break; + + case op_le: + result = result <= 0 ? 1 : 0; + break; + + case op_cmp: + subtype = t_int; + break; + } + + obj_id_t result_id = gfx_obj_num_new(result, subtype); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, result_id, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get parent of context, font, or hash +// +// group: hash +// +// ( context_1 -- context_2 ) +// context_2: parent of context_1 or nil +// +// ( font_1 -- font_2 ) +// font_2: parent of font_1 or nil +// +// ( hash_1 -- hash_2 ) +// hash_2: parent of hash_1 or nil +// +// If a word lookup fails in a context, the lookup continues in the parent +// context. +// +// If a glyph lookup fails in a font, the lookup continues in the parent +// font. +// +// If a key cannot be found in a hash, the lookup continues in the parent +// hash. +// +// example: +// +// /x ( "foo" 10 "bar" 20 ) def +// /y ( "zap" 30 ) def +// x getparent # nil +// x y setparent +// x getparent # ( "zap" 30 ) +// +void gfx_prim_getparent() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 1) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 1]; + + obj_t *ptr1 = gfx_obj_ptr(id1); + if(!ptr1) { + GFX_ERROR(err_invalid_arguments); + return; + } + + obj_id_t parent_id = 0; + + switch(ptr1->base_type) { + case OTYPE_HASH: + ; + hash_t *hash = OBJ_HASH_FROM_PTR(ptr1); + parent_id = hash->parent_id; + break; + + case OTYPE_FONT: + ; + font_t *font = OBJ_FONT_FROM_PTR(ptr1); + parent_id = font->parent_id; + break; + + case OTYPE_CONTEXT: + ; + context_t *ctx = OBJ_CONTEXT_FROM_PTR(ptr1); + parent_id = ctx->parent_id; + break; + + default: + GFX_ERROR(err_invalid_arguments); + return; + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, parent_id, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set parent of context, font, or hash +// +// group: hash +// +// ( context_1 context_2 -- ) +// ( context_1 nil -- ) +// context_2: new parent of context_1 +// +// ( font_1 font_2 -- ) +// ( font_1 nil -- ) +// font_2: new parent of font_1 +// +// ( hash_1 hash_2 -- ) +// ( hash_1 nil -- ) +// hash_2: new parent of hash_1 +// +// If nil is used as second argument, any existing parent link is removed. +// +// If a word lookup fails in a context, the lookup continues in the parent +// context. +// +// If a glyph lookup fails in a font, the lookup continues in the parent +// font. +// +// If a key cannot be found in a hash, the lookup continues in the parent +// hash. +// +// example: +// +// /x ( "foo" 10 "bar" 20 ) def +// /y ( "zap" 30 ) def +// x "zap" get # nil +// x y setparent +// x "zap" get # 30 +// x nil setparent +// x "zap" get # nil +// +void gfx_prim_setparent() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 2) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 2]; + obj_id_t id2 = pstack->ptr[pstack->size - 1]; + + obj_t *ptr1 = gfx_obj_ptr(id1); + + if(!ptr1) { + GFX_ERROR(err_invalid_arguments); + return; + } + + if(ptr1->flags.ro) { + GFX_ERROR(err_readonly); + return; + } + + obj_id_t old_parent_id = 0; + + switch(ptr1->base_type) { + case OTYPE_HASH: + if(id2 && !gfx_obj_hash_ptr(id2)) { + GFX_ERROR(err_invalid_arguments); + return; + } + hash_t *hash = OBJ_HASH_FROM_PTR(ptr1); + old_parent_id = hash->parent_id; + hash->parent_id = gfx_obj_ref_inc(id2); + break; + + case OTYPE_FONT: + if(id2 && !gfx_obj_font_ptr(id2)) { + GFX_ERROR(err_invalid_arguments); + return; + } + font_t *font = OBJ_FONT_FROM_PTR(ptr1); + old_parent_id = font->parent_id; + font->parent_id = gfx_obj_ref_inc(id2); + break; + + case OTYPE_CONTEXT: + if(id2 && !gfx_obj_context_ptr(id2)) { + GFX_ERROR(err_invalid_arguments); + return; + } + context_t *ctx = OBJ_CONTEXT_FROM_PTR(ptr1); + old_parent_id = ctx->parent_id; + ctx->parent_id = gfx_obj_ref_inc(id2); + break; + + default: + GFX_ERROR(err_invalid_arguments); + return; + } + + gfx_obj_ref_dec(old_parent_id); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get active dictionary +// +// group: hash +// +// ( -- hash_1 ) +// ( -- nil ) +// hash_1: dictionary +// +// Return the currently active dictionary or nil, if the current context +// does not (yet) have a dictionary. +// +// A dictionary will only be created on demand - that is, the first time a +// word is defined in the current context. +// +// When a program is started the global context is created containing a +// dictionary with all primitive words. +// +// example: +// +// /foo { getdict } def +// foo # nil +// +// /bar { /x 10 ldef getdict } def +// bar # ( /x 10 ) +// +void gfx_prim_getdict() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack) { + GFX_ERROR(err_stack_underflow); + return; + } + + context_t *context = gfx_obj_context_ptr(gfxboot_data->vm.program.context); + if(!context) { + GFX_ERROR(err_internal); + return; + } + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, context->dict_id, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set active dictionary +// +// group: hash +// +// ( hash_1 -- ) +// ( nil -- ) +// hash_1: new active dictionary +// +// Set the currently active dictionary. With nil, the dictionary is removed +// from the current context. +// +// example: +// +// /foo { /x 10 ldef x } def +// foo # 10 +// +// /bar { ( /x 10 ) setdict x } def +// bar # 10 +// +void gfx_prim_setdict() +{ + array_t *pstack = gfx_obj_array_ptr(gfxboot_data->vm.program.pstack); + + if(!pstack || pstack->size < 1) { + GFX_ERROR(err_stack_underflow); + return; + } + + obj_id_t id1 = pstack->ptr[pstack->size - 1]; + + if(id1 && !gfx_obj_hash_ptr(id1)) { + GFX_ERROR(err_invalid_arguments); + return; + } + + context_t *context = gfx_obj_context_ptr(gfxboot_data->vm.program.context); + if(!context) { + GFX_ERROR(err_internal); + return; + } + + OBJ_ID_ASSIGN(context->dict_id, id1); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// make object read-only +// +// group: mem +// +// ( any_1 -- any_1 ) +// +// Make any object read-only. A read-only object cannot be modified. +// +// Note that string constants are read-only by default. +// +// example: +// +// [ 10 20 30 ] freeze # [ 10 20 30 ] +// 0 delete # raises 'readonly' exception +// +void gfx_prim_freeze() +{ + arg_t *argv = gfx_arg_1(OTYPE_ANY | IS_NIL); + + if(!argv) return; + + if(argv[0].ptr) argv[0].ptr->flags.ro = 1; +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get drawing color +// +// group: gfx +// +// ( -- int_1 ) +// int_1: color +// +// Return current drawing color. +// +// A color is a RGB value with red in bits 16-23, green in bits 8-15 and +// blue in bits 0-7. This is independent of what the graphics card is actually using. +// +// example: +// +// getcolor # 0xffffff (white) +// +void gfx_prim_getcolor() +{ + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(gstate ? gstate->color : 0, t_int), 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set drawing color +// +// group: gfx +// +// ( int_1 -- ) +// int_1: color +// +// Set current drawing color. +// +// A color is a RGB value with red in bits 16-23, green in bits 8-15 and +// blue in bits 0-7. This is independent of what the graphics card is actually using. +// +// example: +// +// 0xff0000 setcolor # red +// +void gfx_prim_setcolor() +{ + arg_t *argv = gfx_arg_1(OTYPE_NUM); + + if(!argv) return; + + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + if(gstate) gstate->color = OBJ_VALUE_FROM_PTR(argv[0].ptr); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get background color +// +// group: gfx +// +// ( -- int_1 ) +// int_1: color +// +// Return current background color. +// +// A color is a RGB value with red in bits 16-23, green in bits 8-15 and +// blue in bits 0-7. This is independent of what the graphics card is actually using. +// +// example: +// +// getcolor # 0 (black) +// +void gfx_prim_getbgcolor() +{ + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(gstate ? gstate->bg_color : 0, t_int), 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set background color +// +// group: gfx +// +// ( int_1 -- ) +// int_1: color +// +// Set current background color. +// +// A color is a RGB value with red in bits 16-23, green in bits 8-15 and +// blue in bits 0-7. This is independent of what the graphics card is actually using. +// +// example: +// +// 0xff00 setcolor # green +// +void gfx_prim_setbgcolor() +{ + arg_t *argv = gfx_arg_1(OTYPE_NUM); + + if(!argv) return; + + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + if(gstate) gstate->bg_color = OBJ_VALUE_FROM_PTR(argv[0].ptr); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get drawing position +// +// group: gfx +// +// ( -- int_1 int_2 ) +// int_1: x +// int_2: y +// +// Return current drawing position. The position is relative to the drawing region in the graphics state. +// +// example: +// +// getpos # 0 0 +// +void gfx_prim_getpos() +{ + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(gstate ? gstate->pos.x : 0, t_int), 0); + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(gstate ? gstate->pos.y : 0, t_int), 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set drawing position +// +// group: gfx +// +// ( int_1 int_2 -- ) +// int_1: x +// int_2: y +// +// Set drawing position. The position is relative to the drawing region in the graphics state. +// +// example: +// +// 20 30 setpos +// +void gfx_prim_setpos() +{ + arg_t *argv = gfx_arg_n(2, (uint8_t [2]) { OTYPE_NUM, OTYPE_NUM }); + + if(!argv) return; + + int64_t val1 = OBJ_VALUE_FROM_PTR(argv[0].ptr); + int64_t val2 = OBJ_VALUE_FROM_PTR(argv[1].ptr); + + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + if(gstate) { + gstate->pos.x = val1; + gstate->pos.y = val2; + } + + gfx_obj_array_pop_n(2, gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get font +// +// group: gfx +// +// ( gstate_1 -- font_1 ) +// ( gstate_1 -- nil ) +// gstate_1: graphics state +// font_1: font +// +// Get font from graphics state. +// +// example: +// +// getgstate getfont # current font +// +void gfx_prim_getfont() +{ + arg_t *argv = gfx_arg_1(OTYPE_GSTATE); + + if(!argv) return; + + gstate_t *gstate = OBJ_GSTATE_FROM_PTR(argv[0].ptr); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gstate->font_id, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set font +// +// group: gfx +// +// ( gstate_1 font_1 -- ) +// ( gstate_1 nil -- ) +// gstate_1: graphics state +// font_1: font +// +// Set font in graphics state. If nil is passed, any font is removed from the graphics state. +// +// example: +// +// /foo_font "foo.fnt" readfile newfont def +// getgstate foo_font setfont # use "foo.fnt" +// +void gfx_prim_setfont() +{ + arg_t *argv = gfx_arg_n(2, (uint8_t [2]) { OTYPE_GSTATE, OTYPE_FONT | IS_NIL }); + + if(!argv) return; + + gstate_t *gstate = OBJ_GSTATE_FROM_PTR(argv[0].ptr); + + OBJ_ID_ASSIGN(gstate->font_id, argv[1].id); + + area_t area = gfx_font_dim(gstate->font_id); + + gstate->pos.width = area.width; + gstate->pos.height = area.height; + + gfx_obj_array_pop_n(2, gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// create font object +// +// group: gfx +// +// ( string_1 -- font_1 ) +// ( string_1 -- nil ) +// string_1: font data +// font_1: font object +// +// Parse font data in string_1 and create font object. If string_1 does not +// contain valid font data, return nil. +// +// example: +// +// /foo_font "foo.fnt" readfile newfont def # create font from file "foo.fnt" +// +void gfx_prim_newfont() +{ + arg_t *argv = gfx_arg_1(OTYPE_MEM); + + if(!argv) return; + + obj_id_t font_id = gfx_obj_font_open(argv[0].id); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, font_id, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get drawing region +// +// group: gfx +// +// ( gstate_1 -- int_1 int_2 int_3 int_4 ) +// gstate_1: graphics state +// int_1: x +// int_2: y +// int_3: width +// int_4: height +// +// Get drawing region associated with graphics state. Any drawing operation +// will be relative to this region. Graphics output will be clipped at the +// region boundaries. +// +// example: +// +// getgstate getregion # 0 0 800 600 +// +void gfx_prim_getregion() +{ + arg_t *argv = gfx_arg_1(OTYPE_GSTATE); + + if(!argv) return; + + gstate_t *gstate = OBJ_GSTATE_FROM_PTR(argv[0].ptr); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(gstate ? gstate->region.x : 0, t_int), 0); + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(gstate ? gstate->region.y : 0, t_int), 0); + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(gstate ? gstate->region.width : 0, t_int), 0); + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(gstate ? gstate->region.height : 0, t_int), 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set drawing region +// +// group: gfx +// +// ( gstate_1 int_1 int_2 int_3 int_4 -- ) +// gstate_1: graphics state +// int_1: x +// int_2: y +// int_3: width +// int_4: height +// +// Set drawing region associated with graphics state. Any drawing operation +// will be relative to this region. Graphics output will be clipped at the +// region boundaries. +// +// example: +// +// getgstate 10 10 200 100 setregion +// +void gfx_prim_setregion() +{ + arg_t *argv = gfx_arg_n(5, (uint8_t [5]) { OTYPE_GSTATE, OTYPE_NUM, OTYPE_NUM, OTYPE_NUM, OTYPE_NUM }); + + if(!argv) return; + + gstate_t *gstate = OBJ_GSTATE_FROM_PTR(argv[0].ptr); + + int64_t val1 = OBJ_VALUE_FROM_PTR(argv[1].ptr); + int64_t val2 = OBJ_VALUE_FROM_PTR(argv[2].ptr); + int64_t val3 = OBJ_VALUE_FROM_PTR(argv[3].ptr); + int64_t val4 = OBJ_VALUE_FROM_PTR(argv[4].ptr); + + area_t area = { .x = val1, .y = val2, .width = val3, .height = val4 }; + canvas_t *canvas = gfx_obj_canvas_ptr(gstate->canvas_id); + if(canvas) { + area_t clip = { .width = canvas->width, .height = canvas->height }; + gfx_clip(&area, &clip); + } + gstate->region = area; + + gfx_obj_array_pop_n(5, gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// create canvas +// +// group: gfx +// +// ( int_1 int_2 -- canvas_1 ) +// int_1: width +// int_2: height +// +// Create a new empty canvas of the specified size. +// +// example: +// +// 800 600 canvas +// +void gfx_prim_canvas() +{ + arg_t *argv = gfx_arg_n(2, (uint8_t [2]) { OTYPE_NUM, OTYPE_NUM }); + + if(!argv) return; + + int64_t val1 = OBJ_VALUE_FROM_PTR(argv[0].ptr); + int64_t val2 = OBJ_VALUE_FROM_PTR(argv[1].ptr); + + gfx_obj_array_pop_n(2, gfxboot_data->vm.program.pstack, 1); + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_canvas_new(val1, val2), 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get canvas +// +// group: gfx +// +// ( gstate_1 -- canvas_1 ) +// ( gstate_1 -- nil ) +// gstate_1: graphics state +// canvas_1: canvas object +// +// Get canvas object from graphics state. A canvas is a memory area with +// associated width and height. All drawing operations are done on canvas +// objects. If no canvas is associated with the graphics state, return nil. +// +// example: +// +// getgstate getcanvas dim # 800 600 +// +void gfx_prim_getcanvas() +{ + arg_t *argv = gfx_arg_1(OTYPE_GSTATE); + + if(!argv) return; + + gstate_t *gstate = OBJ_GSTATE_FROM_PTR(argv[0].ptr); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gstate->canvas_id, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set canvas +// +// group: gfx +// +// ( gstate_1 canvas_1 -- ) +// ( gstate_1 nil -- ) +// gstate_1: graphics state +// canvas_1: canvas object +// +// Set canvas of graphics state. A canvas is a memory area with +// associated width and height. All drawing operations are done on canvas +// objects. If nil is passed, the canvas is removed from the graphics state. +// +// The drawing region of gstate_1 is adjusted to match the canvas size. The +// drawing position is reset to x = 0, y = 0. +// +// example: +// +// getgstate 800 600 canvas setcanvas +// +void gfx_prim_setcanvas() +{ + arg_t *argv = gfx_arg_n(2, (uint8_t [2]) { OTYPE_GSTATE, OTYPE_CANVAS | IS_NIL }); + + if(!argv) return; + + gstate_t *gstate = OBJ_GSTATE_FROM_PTR(argv[0].ptr); + + OBJ_ID_ASSIGN(gstate->canvas_id, argv[1].id); + + if(argv[1].id) { + canvas_t *canvas = OBJ_CANVAS_FROM_PTR(argv[1].ptr); + + gstate->region = (area_t) {0, 0, canvas->width, canvas->height}; + gstate->pos.x = gstate->pos.y = 0; + } + + gfx_obj_array_pop_n(2, gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get graphics state +// +// group: gfx +// +// ( -- gstate_1 ) +// ( -- nil ) +// +// Get current graphics state. If none has been set, return nil. +// +// The graphics state consists of a canvas to draw into, a region describing +// a rectangular drawing and clipping area in that canvas, a drawing +// position (relative to the drawing region), drawing color, background +// color (for text), and a text font. +// +// example: +// +// /saved_state getgstate def # save current graphics state +// +void gfx_prim_getgstate() +{ + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfxboot_data->gstate_id, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set graphics state +// +// group: gfx +// +// ( gstate_1 -- ) +// ( nil -- ) +// +// Set current graphics state. If nil is passed, the current state is removed. +// +// The graphics state consists of a canvas to draw into, a region describing +// a rectangular drawing and clipping area in that canvas, a drawing +// position (relative to the drawing region), drawing color, background +// color (for text), and a text font. +// +// example: +// +// /saved_state getgstate def # save current graphics state +// ... +// saved_state setgstate # restore saved graphics state +// +void gfx_prim_setgstate() +{ + arg_t *argv = gfx_arg_1(OTYPE_GSTATE | IS_NIL); + + if(!argv) return; + + OBJ_ID_ASSIGN(gfxboot_data->gstate_id, argv[0].id); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// create graphics state +// +// group: gfx +// +// ( -- gstate_1 ) +// +// Create a new empty graphics state gate_1. +// +// example: +// +// gstate +// +void gfx_prim_gstate() +{ + obj_id_t gstate_id = gfx_obj_gstate_new(); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gstate_id, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get graphics state of the debug console +// +// group: gfx +// +// ( -- gstate_1 ) +// ( -- nil ) +// +// Get graphics state of the debug console. If none has been set, return nil. +// +// example: +// +// /saved_state getconsolegstate def # save current debug console state +// +void gfx_prim_getconsolegstate() +{ + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfxboot_data->console.gstate_id, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set graphics state of the debug console +// +// group: gfx +// +// ( gstate_1 -- ) +// ( nil -- ) +// +// Set graphics state of the debug console. If nil is passed, the current state is removed. +// +// example: +// +// /saved_state getconsolegstate def +// ... +// saved_state setconsolegstate # restore saved debug console state +// +void gfx_prim_setconsolegstate() +{ + arg_t *argv = gfx_arg_1(OTYPE_GSTATE | IS_NIL); + + if(!argv) return; + + OBJ_ID_ASSIGN(gfxboot_data->console.gstate_id, argv[0].id); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// show +// +// group: gfx +// +// ( string_1 -- ) +// +// Print string_1 at current cursor position in canvas associated with +// current graphics state. +// +// The cursor position is advanced to point at the end of the printed text. +// Newline ('\x0a') and carriage return ('\x0d') characters are interpreted +// and the cursor position is adjusted relative to the starting position. +// +// example: +// +// "Hello!" show # print "Hello!" +// +void gfx_prim_show() +{ + arg_t *argv = gfx_arg_1(OTYPE_MEM); + + if(!argv) return; + + data_t *data = OBJ_DATA_FROM_PTR(argv[0].ptr); + + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + if(gstate) { + gfx_puts(gstate, data->ptr, data->size); + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// get graphics object dimension +// +// group: gfx +// +// ( canvas_1 -- int_1 int_2 ) +// ( font_1 -- int_1 int_2 ) +// ( gstate_1 -- int_1 int_2 ) +// int_1: width +// int_2: height +// +// Get dimension of graphics object. For a canvas it is its size, for a +// graphics state it is the size of the associated region, for a fixed size +// font it is its glyph size, for proportional font the width is 0 and the +// height is the font height. +// +// example: +// +// getconsolegstate getcanvas dim # 800 600 +// getconsolegstate dim # 640 480 +// getconsolegstate getfont dim # 8 16 +// +void gfx_prim_dim() +{ + arg_t *argv = gfx_arg_1(OTYPE_ANY); + + if(!argv) return; + + area_t area; + + switch(argv[0].ptr->base_type) { + case OTYPE_FONT: + area = gfx_font_dim(argv[0].id); + break; + + case OTYPE_CANVAS: + ; + canvas_t *canvas = OBJ_CANVAS_FROM_PTR(argv[0].ptr); + area.width = canvas->width; + area.height = canvas->height; + break; + + case OTYPE_GSTATE: + ; + gstate_t *gstate = OBJ_GSTATE_FROM_PTR(argv[0].ptr); + area.width = gstate->region.width; + area.height = gstate->region.height; + break; + + default: + GFX_ERROR(err_invalid_arguments); + return; + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(area.width, t_int), 0); + gfx_obj_array_push(gfxboot_data->vm.program.pstack, gfx_obj_num_new(area.height, t_int), 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// run code +// +// group: loop +// +// ( string_1 -- ) +// string_1: binary code +// +// Load binary code and run it. +// +// Note: unlike 'exec' this does not open a new context but replaces the +// currently running code with the new one. +// +// example: +// +// "new_program" readfile run +// +void gfx_prim_run() +{ + arg_t *argv = gfx_arg_1(OTYPE_MEM); + + if(!argv) return; + + if(!gfx_is_code(argv[0].id)) { + GFX_ERROR(err_invalid_code); + + return; + } + + context_t *context = gfx_obj_context_ptr(gfxboot_data->vm.program.context); + + if(!context) { + GFX_ERROR(err_internal); + + return; + } + + OBJ_ID_ASSIGN(context->code_id, argv[0].id); + + context->ip = context->current_ip = 0; + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// read file +// +// group: mem +// +// ( string_1 -- string_2 ) +// ( string_1 -- nil ) +// string_1: file name +// string_2: file content +// +// Read entire file and return its content. If the file could not be read, return nil. +// +// example: +// +// "foo" readfile +// +void gfx_prim_readfile() +{ + arg_t *argv = gfx_arg_1(OTYPE_MEM); + + if(!argv) return; + + // interface expects 0-terminated string + // so we create a 1 byte larger copy + obj_id_t tmp_id = gfx_obj_mem_dup(argv[0].id, 1); + data_t *data = gfx_obj_mem_ptr(tmp_id); + + if(!data) { + GFX_ERROR(err_invalid_arguments); + return; + } + + obj_id_t file_id = gfx_read_file(data->ptr); + + gfx_obj_ref_dec(tmp_id); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, file_id, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// unpack image +// +// group: gfx +// +// ( string_1 -- canvas_1 ) +// ( string_1 -- nil ) +// string_1: image file data +// +// Unpacks image and returns a canvas object with the image or nil if the +// data dos not contain image data. +// +// example: +// +// "foo.jpg" readfile unpackimage +// +void gfx_prim_unpackimage() +{ + arg_t *argv = gfx_arg_1(OTYPE_MEM); + + if(!argv) return; + + obj_id_t image_id = gfx_image_open(argv[0].id); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, image_id, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// copy rectangular region +// +// group: gfx +// +// ( gstate_1 gstate_2 -- ) +// +// Copy from the drawing region of gstate_2 to the drawing region of gstate_1, at the drawing pos of gstate_1. +// +// example: +// +// /cat_pic gstate def +// cat_pic "cat.jpg" readfile unpackimage setcanvas +// 0 0 setpos getgstate cat_pic blt # show cat picture +// +void gfx_prim_blt() +{ + arg_t *argv = gfx_arg_n(2, (uint8_t [2]) { OTYPE_GSTATE, OTYPE_GSTATE }); + + if(!argv) return; + + gstate_t *gstate1 = OBJ_GSTATE_FROM_PTR(argv[0].ptr); + gstate_t *gstate2 = OBJ_GSTATE_FROM_PTR(argv[1].ptr); + + area_t area2 = gstate2->region; + area_t area1 = { + .x = gstate1->region.x + gstate1->pos.x, + .y = gstate1->region.y + gstate1->pos.y, + .width = area2.width, + .height = area2.height + }; + +#if 0 + gfxboot_serial(4, "blt area1 %dx%d_%dx%d, area2 %dx%d_%dx%d\n", + area1.x, area1.y, area1.width, area1.height, + area2.x, area2.y, area2.width, area2.height + ); +#endif + + area_t diff = gfx_clip(&area1, &gstate1->region); + + ADD_AREA(area2, diff); + +#if 0 + gfxboot_serial(4, "blt clipped area1 %dx%d_%dx%d\n", + area1.x, area1.y, area1.width, area1.height + ); +#endif + + gfx_blt(1, gstate1->canvas_id, area1, gstate2->canvas_id, area2); + + gfx_obj_array_pop_n(2, gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// start debug console +// +// group: def +// +// ( -- ) +// +// Stop code execution and start debug console. +// +// You can leave (and re-enter) the debug console with `^D` but note that this +// doesn't resume program execution. Use the `run` (or `r`) console command for this. +// +// example: +// +// /foo { debug 10 20 } def +// foo # activate debug console when 'foo' is run +// +void gfx_prim_debug() +{ + gfxboot_data->vm.program.stop = 1; + gfx_program_debug_on_off(1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// read pixel +// +// group: gfx +// +// ( -- int_1 ) +// ( -- nil ) +// int_1: color +// +// Read pixel at drawing position from canvas in current graphics state. If +// the position is outside the drawing region, return nil. +// +// example: +// +// getpixel +// +void gfx_prim_getpixel() +{ + obj_id_t val = 0; + + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + if(gstate) { + canvas_t *canvas = gfx_obj_canvas_ptr(gstate ? gstate->canvas_id : 0); + + if(canvas) { + color_t color; + if(gfx_getpixel(gstate, canvas, gstate->pos.x, gstate->pos.y, &color)) { + val = gfx_obj_num_new(color, t_int); + } + } + } + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, val, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// set pixel +// +// group: gfx +// +// ( -- ) +// +// Set pixel with current color at drawing position in canvas in current +// graphics state. If the position is outside the drawing region, nothing is +// drawn. +// +// example: +// +// setpixel +// +void gfx_prim_putpixel() +{ + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + if(gstate) { + canvas_t *canvas = gfx_obj_canvas_ptr(gstate->canvas_id); + + if(canvas) { + gfx_putpixel(gstate, canvas, gstate->pos.x, gstate->pos.y, gstate->color); + } + } +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// draw line +// +//group: gfx +// +// ( int_1 int_2 -- ) +// int_1: x +// int_2: y +// +// Draw line from current position to the specified x and y coordinates +// using the current color. The drawing position is updated to the end +// position. Line segments outside the drawing region are not drawn. +// +// example: +// +// 100 200 lineto +// +void gfx_prim_lineto() +{ + arg_t *argv = gfx_arg_n(2, (uint8_t [2]) { OTYPE_NUM, OTYPE_NUM }); + + if(!argv) return; + + int64_t val1 = OBJ_VALUE_FROM_PTR(argv[0].ptr); + int64_t val2 = OBJ_VALUE_FROM_PTR(argv[1].ptr); + + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + if(gstate) { + canvas_t *canvas = gfx_obj_canvas_ptr(gstate->canvas_id); + + if(canvas) { + gfx_line(gstate, canvas, gstate->pos.x, gstate->pos.y, val1, val2, gstate->color); + } + + gstate->pos.x = val1; + gstate->pos.y = val2; + } + + gfx_obj_array_pop_n(2, gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// draw filled rectangle +// +// group: gfx +// +// ( int_1 int_2 -- ) +// int_1: width +// int_2: height +// +// Draw filled rectangle (using current color) at current position. The +// rectangle is clipped at the current drawing region. +// +// example: +// +// 200 100 fillrect +// +void gfx_prim_fillrect() +{ + arg_t *argv = gfx_arg_n(2, (uint8_t [2]) { OTYPE_NUM, OTYPE_NUM }); + + if(!argv) return; + + int64_t val1 = OBJ_VALUE_FROM_PTR(argv[0].ptr); + int64_t val2 = OBJ_VALUE_FROM_PTR(argv[1].ptr); + + gstate_t *gstate = gfx_obj_gstate_ptr(gfxboot_data->gstate_id); + + if(gstate) { + gfx_rect(gstate, gstate->pos.x, gstate->pos.y, val1, val2, gstate->color); + } + + gfx_obj_array_pop_n(2, gfxboot_data->vm.program.pstack, 1); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// decode Unicode string +// +// group: mem +// +// (string_1 -- array_1 ) +// string_1: UTF8-encoded string +// array_1: array with decoded chars +// +// The array contains one element for each UTF8-encoded char. If string_1 +// contains non-UTF8-chars they are represented as the negated 8-bit value. +// +// example: +// +// "ABC" utf8decode # [ 65 66 67 ] +// "Ä €" utf8decode # [ 196 32 8364 ] +// "A\xf0B" utf8decode # [ 65 -240 66 ] +// +void gfx_prim_utf8decode() +{ + arg_t *argv = gfx_arg_1(OTYPE_MEM); + + if(!argv) return; + + data_t *mem = OBJ_DATA_FROM_PTR(argv[0].ptr); + + char *data = (char *) mem->ptr; + unsigned data_len = mem->size; + + unsigned uni_len = 0; + while(data_len) { + uni_len++; + gfx_utf8_dec(&data, &data_len); + } + + obj_id_t array_id = gfx_obj_array_new(uni_len); + if(!array_id) { + GFX_ERROR(err_no_memory); + return; + } + + data = (char *) mem->ptr; + data_len = mem->size; + + int i = 0; + while(data_len) { + int c = gfx_utf8_dec(&data, &data_len); + gfx_obj_array_set(array_id, gfx_obj_num_new(c, t_int), i++, 0); + } + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, array_id, 0); +} + + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// encode Unicode string +// +// group: mem +// +// (array_1 -- string_1 ) +// array_1: array with decoded chars +// string_1: UTF8-encoded string +// +// The array contains one element for each UTF8-encoded char. If string_1 +// should contain non-UTF8-chars they are represented as the negated 8-bit +// value in array_1. +// +// example: +// +// [ 65 66 67 ] utf8encode # "ABC" +// [ 196 32 8364 ] utf8encode # "Ä €" +// [ 65 -240 66 ] utf8encode # "A\xf0B" +// +void gfx_prim_utf8encode() +{ + arg_t *argv = gfx_arg_1(OTYPE_ARRAY); + + if(!argv) return; + + obj_id_t array_id = argv[0].id; + unsigned array_size = OBJ_ARRAY_FROM_PTR(argv[0].ptr)->size; + + obj_id_t mem_id = gfx_obj_mem_new(array_size*6); + if(!mem_id) { + GFX_ERROR(err_no_memory); + return; + } + + obj_t *ptr = gfx_obj_ptr(mem_id); + ptr->sub_type = t_string; + data_t *mem = OBJ_DATA_FROM_PTR(ptr); + + uint8_t *data = (uint8_t *) mem->ptr; + + for(int i = 0; i < (int) array_size; i++) { + int64_t *val = gfx_obj_num_ptr(gfx_obj_array_get(array_id, i)); + + if(!val) { + gfx_obj_ref_dec(mem_id); + GFX_ERROR(err_invalid_data); + return; + } + + if(*val <= 0) { + *data++ = -*val; + } + else { + uint8_t *str = gfx_utf8_enc(*val); + while(*str) *data++ = *str++; + } + } + + gfx_obj_realloc(mem_id, data - (uint8_t *) mem->ptr); + + gfx_obj_array_pop(gfxboot_data->vm.program.pstack, 1); + + gfx_obj_array_push(gfxboot_data->vm.program.pstack, mem_id, 0); +} diff --git a/git2log b/git2log new file mode 100755 index 0000000..2032a05 --- /dev/null +++ b/git2log @@ -0,0 +1,1041 @@ +#! /usr/bin/perl + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# +# This script is maintained at https://github.com/openSUSE/linuxrc-devtools +# +# If you're in another project, this is just a copy. +# You may update it to the latest version from time to time... +# +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +use strict; + +use Getopt::Long; + +use Data::Dumper; +$Data::Dumper::Sortkeys = 1; +$Data::Dumper::Terse = 1; +$Data::Dumper::Indent = 1; + +sub usage; +sub changelog_outdated; +sub get_github_project; +sub get_version; +sub get_tags; +sub get_log; +sub is_formatted_tag; +sub get_branch; +sub choose_tags; +sub add_head_tag; +sub tags_to_str; +sub format_log; +sub format_all_logs; +sub fix_dates; +sub add_line_breaks; +sub add_bugzilla_to_weblate; +sub format_date_obs; +sub format_date_iso; +sub raw_date_to_s; + +usage 0 if !@ARGV; + +my @changelog_deps = qw ( .git/HEAD .git/refs/heads .git/refs/tags ); + +my $branch; +my $current_version; +my @tags; +my @all_tags; +my $config; + +my $opt_log; +my $opt_version; +my $opt_branch; +my $opt_update; +my $opt_file; +my $opt_start; +my $opt_max; +my $opt_width = 66; +my $opt_width_fuzz = 8; +my $opt_sep_width = 68; +my $opt_format = 'internal'; # obs, internal +my $opt_merge_msg_before = 1; # log auto generated pr merge message before the commit messages (vs. after) +my $opt_join_author = 1; # join consecutive commit messages as long as they are by the same author +my $opt_keep_date = 1; # don't join consecutive commit messages if they have different time stamps +my $opt_default_email = 'opensuse-packaging@opensuse.org'; # default email to use in changelog +my $opt_weblate = 'bsc#1149754'; # bugzilla ref to use for Weblate commits + +GetOptions( + 'help' => sub { usage 0 }, + 'version' => \$opt_version, + 'branch' => \$opt_branch, + 'update' => \$opt_update, + 'start=s' => \$opt_start, + 'format=s' => \$opt_format, + 'max=i' => \$opt_max, + 'width=i' => \$opt_width, + 'fuzz=i' => \$opt_width_fuzz, + 'merge-msg=s' => sub { $opt_merge_msg_before = ($_[1] eq 'after' ? 0 : 1) }, + 'join-author!' => \$opt_join_author, + 'keep-date!' => \$opt_keep_date, + 'log|changelog' => \$opt_log, + 'default-email=s' => \$opt_default_email, + 'weblate=s' => \$opt_weblate, +) || usage 1; + +# ensure we are used correctly +usage 1 if @ARGV > 1 || !($opt_log || $opt_version || $opt_branch); +$opt_file = @ARGV ? shift : '-'; + +die "no git repo\n" unless -d ".git"; + +# if update option has been give write changelog only if git refs are newer +exit 0 if $opt_update && $opt_file ne '-' && -f($opt_file) && !changelog_outdated($opt_file); + +$opt_max = 2 if $opt_version || $opt_branch; + +# gather some data +get_github_project; +get_branch; +get_log; +fix_dates; +get_tags; +choose_tags; +add_head_tag; +get_version; + +# just print current branch +if($opt_branch) { + open my $f, ">$opt_file"; + print $f $config->{branch} ? $config->{branch} : "master", "\n"; + close $f; + + exit 0; +} + +# just print current version +if($opt_version) { + my $old_version; + + if($opt_file ne '-' && open(my $f, $opt_file)) { + chomp($old_version = <$f>); + close $f; + } + + if($config->{version} ne $old_version) { + open my $f, ">$opt_file"; + print $f "$config->{version}\n"; + close $f; + } + + exit 0; +} + +# set start tag +if($opt_start) { + my $x = is_formatted_tag $opt_start; + die "$opt_start: not a valid start tag\n" if !$x; + $x->{branch} = $config->{branch} if !$x->{branch}; + $config->{start} = $x; +} + +format_all_logs; + +open my $f, ">$opt_file"; + +print $f $_->{formatted} for @{$config->{log}}; + +close $f; + +exit 0; + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# usage(exit_code) +# +# Print help message and exit. +# - exit_code: exit code +# +# Function does not return. +# +sub usage +{ + my $err = shift; + + print <<" usage"; +Usage: git2log [OPTIONS] [FILE] +Create changelog and project version from git repo. + --changelog Write changelog to FILE. + --version Write version number to FILE. + --branch Write current branch to FILE. + --start START_TAG Start with tag START_TAG. + --max N Write at most N log entries. + --update Write changelog or version only if FILE is outdated. + --format FORMAT Write log using FORMAT. Supported FORMATs are 'internal' (default) and 'obs'. + --width WIDTH Reformat log entries to be max WIDTH chars wide. + --fuzz FUZZ Allow log lines to be up to FUZZ chars longer as WIDTH to avoid + line breaks leaving tiny bits on the last line. + --merge-msg WHERE Log message about merges before or after the actual merge commit messages. + Valid values for WHERE are 'after' and 'before' (default). + --join-author Join consecutive commits as long as they are by the same author. (default) + --no-join-author Keep consecutive commits by the same author separate. + --keep-date Join consecutive commits only if they have the same date. (default) + --no-keep-date Join consecutive commits even if dates differ. + --default-email Use this email in changelog entries if no other suitable email could be + determined (default: opensuse-packaging\@opensuse.org). + --weblate STRING Add this STRING to every auto-generated Weblate commit. + --help Print this help text. + usage + + exit $err; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# res = changelog_outdated(file) +# +# Return status of changelog file. +# - file: changelog file name +# - res: status +# 1: file is newer than the last git repo change and should be updated +# 0: file is still recent enough +# +# Relies on global var @changelog_deps. +# +sub changelog_outdated +{ + my $file = $_[0]; + + my $changelog_time = (stat $file)[9]; + + return 1 if !defined $changelog_time; + + for (@changelog_deps) { + return 1 if (stat)[9] > $changelog_time; + } + + return 0; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# get_github_project() +# +# Set $config->{github_project} to the github project name. +# +sub get_github_project +{ + if(`git config remote.origin.url` =~ m#github.com[:/]+(\S+/\S+)#) { + $config->{github_project} = $1; + $config->{github_project} =~ s/\.git$//; + } +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# get_version() +# +# Set $config->{branch} and $config->{version} to the current branch and +# version info. +# +# This might be taken directly from HEAD if HEAD is tagged or otherwise be +# exprapolated from the most recent tag (cf. add_head_tag()). +# +sub get_version +{ + $config->{version} = "0.0"; + + my $tag = $config->{log}[0]{tags}[0]; + + if($tag->{version}) { + $config->{version} = $tag->{version}; + $config->{branch} = $tag->{branch}; + } +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# get_tags() +# +# Parse $config->{raw_log}, extract tag names, and split into per-tag +# sections. +# +# Only tags recognized by is_formatted_tag() are considered. +# +# Tags inside merge commits are ignored. +# +# The parsed logs is stored in $config->{log}, an array of log sections. +# Each section is a hash with these keys: +# - 'tags': array of tags for this section +# - 'commit': git commit id associated with these tags +# - 'lines': git log lines +# +sub get_tags +{ + my $log_entry; + + # the end of the merge commit if in a merge + my $merge; + + for (@{$config->{raw_log}}) { + if(/^commit (\S+)( \((.*)\))?/) { + my $commit = $1; + my $tag_list = $3; + my $xtag; + + # we have reached the end of the merge commit + undef $merge if $merge && $commit =~ /^$merge/; + + # ignore tag info inside a merge commit + $tag_list = "" if $merge; + + for my $t (split /, /, $tag_list) { + if($t =~ /tag: (\S+)/) { + my $tag = $1; + my $x = is_formatted_tag $tag; + push @$xtag, $x if $x; + } + } + + if($xtag) { + if($log_entry) { + push @{$config->{log}}, $log_entry; + last if $opt_max && @{$config->{log}} >= $opt_max; + } + $log_entry = { commit => $commit, tags => $xtag }; + } + else { + $log_entry = { commit => $commit } if !$log_entry; + } + } + elsif(!$merge && /^Merge: (\S+)/) { + # remember end of merge + $merge = $1; + } + + push @{$log_entry->{lines}}, $_ if $log_entry; + } +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# get_log() +# +# Read git log and store lines as array in $config->{raw_log} (trailing +# newlines removed). +# +sub get_log +{ + chomp(@{$config->{raw_log}} = `git log --pretty=medium --date=raw --topo-order --decorate`); +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# hash_ref = is_formatted_tag(tag_name) +# +# Parse tag and return hash ref with branch and version number parts or +# undef if it doesn't match. +# - tag_name: tag as string +# - hash_ref: hash ref with internal tag representation (with keys 'branch' and 'version'). +# +# This expects tags of the form "VERSION" or "BRANCH-VERSION" where VERSION +# consists of decimal numbers separated by dots '.' and BRANCH can be any +# string. +# (Note: it doesn't really have to be the name of an existing branch.) +# +# Tags not conforming to this convention are ignored. +# +sub is_formatted_tag +{ + if($_[0] =~ /^((.+)-)?((\d+\.)*\d+)$/) { + return { branch => $2, version => $3 } + } + + return undef; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# get_branch() +# +# Get currently active git branch and store in $config->{branch}. +# +# 'master' branch is represented by empty 'branch' key. +# +sub get_branch +{ + chomp(my $branch = `git rev-parse --abbrev-ref HEAD`); + + $branch = "" if $branch eq 'master'; + + $config->{branch} = $branch; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# res = tag_sort(a, b) +# +# Compare 2 tags. +# - a, b: refs to tag hash +# - res: -1, 0, 1 +# +# This is used when we have to decide between alternative tags. +# (Prefer 'lesser' variant.) +# +sub tag_sort +{ + my ($x, $y); + + $x = length $a->{version}; + $y = length $b->{version}; + + # longer version number first + return $y <=> $x if $y <=> $x; + + return $a->{branch} cmp $b->{branch}; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# str = tag_to_str(tag_ref) +# +# Convert tag into string. +# - tag_ref: ref to hash with 'branch' and 'version' keys +# - str: string (e.g. "foo-1.44") +# +# 'master' branch is represented by missing/empty 'branch' key. +# +sub tag_to_str +{ + my $tag = $_[0]; + my $str; + + $str = "$tag->{branch}-" if $tag->{branch} ne ""; + $str .= $tag->{version}; + + return $str; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# str = tags_to_str(tag_array_ref) +# +# Convert array of tags into string. +# - tag_array_ref: ref to array of tags +# - str: string (e.g. "(tag1, tag2)" +# +# This function is used only internally for debugging. +# +sub tags_to_str +{ + my $tags = $_[0]; + my $str; + + for my $t (@$tags) { + $str .= ", " if $str; + $str .= tag_to_str $t; + } + + return "($str)"; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# choose_tags() +# +# Scan commit messages and extract tag & branch information. +# +# This stores the tag/branch info in $config->{log}[]{tags}. +# +sub choose_tags +{ + my $branch = $config->{branch}; + + for my $x (@{$config->{log}}) { + # printf "# %s\n", tags_to_str($x->{tags}); + + # no tag info? -> ignore + next if !$x->{tags}; + + # single tag? -> remember branch info + if(@{$x->{tags}} == 1) { + $branch = $x->{tags}[0]{branch}; + next; + } + + # several tags? -> choose one + + # any with current branch name? + my @t = grep { $_->{branch} eq $branch } @{$x->{tags}}; + + # no? -> choose among all + @t = @{$x->{tags}} if @t == 0; + + # prefer longest version number, then alphanumerically smallest branch name + @t = sort tag_sort @t; + + $branch = $t[0]{branch}; + + # Here's some magic: + # + # If a commit is tagged "FOO-X.Y" *and* "FOO-X.Y.0" assume the user + # wants to start a new sub-numbering scheme. + # + # Use "X.Y" as version but remember to go to "X.Y.1" when we need to + # increment the version. + # + my $version = $t[0]{version}; + if($version =~ s/\.0$//) { + if(grep { $_->{branch} eq $branch && $_->{version} eq $version } @t) { + $t[0]{new_start} = 1; + $t[0]{version} = $version; + } + } + + $x->{tags} = [ $t[0] ]; + + # printf "X %s\n", tags_to_str($x->{tags}); + } +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# add_head_tag() +# +# Suggest tag for HEAD if there isn't one. +# +# Basically, use branch + version from most recent tag and increment version. +# +# If the 'new_start' attribute to tag is set, start a new sub-numbering scheme. +# +sub add_head_tag +{ + return if @{$config->{log}} < 2; + + # HEAD tagged already? + return if $config->{log}[0]{tags}; + + # the first tagged commit if HEAD isn't tagged + my $tag = { %{$config->{log}[1]{tags}[0]} }; + + # append '.0' to version + $tag->{version} .= '.0' if $tag->{new_start}; + + # increment version + $tag->{version} =~ s/(\d+)$/$1 + 1/e; + + $config->{log}[0]{tags}[0] = $tag; + + # remember that the tag was generated + $config->{log}[0]{was_untagged} = 1; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# fix_dates() +# +# Adjust time stamps in entire git log. +# +# The time stamps of the git commits are not necessarily ordered by date. +# But the generated changelog is required to have a strictly monotonic time. +# +# We do this by going through the log in reverse and rewriting any dates we +# find whenever the date decreases. +# +# A minimum time difference of 1 second beween entries is maintained. +# +# Not very subtle but it works. +# +sub fix_dates +{ + my $last_date; + + for (reverse @{$config->{raw_log}}) { + # e.g. "Date: 1443184889 +0200" + if(/^(Date:\s+)(\S+)(\s+\S+)/) { + if(defined $last_date && $2 < $last_date) { + $_ = "$1$last_date$3\n"; + } + else { + $last_date = $2; + } + + # ensure a minimal time gap of 1 second + $last_date += 1; + } + } +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# format_all_logs() +# +# Format the entire git log. +# +# This is done for every code version individually (the log has already been +# split accordingly). +# +# If $config->{start} is set, use this as starting point. Else format the +# entire git log. +# +sub format_all_logs +{ + # check if start tag actually exists - if not, print nothing + if($config->{start}) { + my $tag_found; + for (@{$config->{log}}) { + $tag_found = 1, last if grep { tag_to_str($config->{start}) eq tag_to_str($_) } @{$_->{tags}}; + } + return if !$tag_found; + } + + for (@{$config->{log}}) { + if($config->{start}) { + # stop if we meet the start tag + last if grep { tag_to_str($config->{start}) eq tag_to_str($_) } @{$_->{tags}}; + } + format_log $_; + } +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# format_log(log) +# +# Format log messages. +# - log: is an array ref with individual commits +# +# All commits belong to a specific code version (stored in $log->{tag}). +# $log->{formatted} holds the result. +# +# The process is done in several individual steps, documented below in the code. +# +sub format_log +{ + my $log = $_[0]; + + my $merge; + my $commit; + my $commits; + + for (@{$log->{lines}}) { + if(/^commit (\S+)/) { + $commit = { ref => $1 }; + push @{$commits}, $commit; + + if( + $merge && + $merge->{merge_end} eq substr($commit->{ref}, 0, length($merge->{merge_end})) + ) { + undef $merge; + } + + if($merge) { + $commit->{merge_ref} = $merge->{ref}; + $commit->{date} = $merge->{date}; + $commit->{author} = $merge->{author}; + # add to all commits so it's not lost when we re-arrange + $commit->{merge_msg} = $merge->{msg}; + } + + next; + } + + if(/^Merge: (\S+)/ && !$merge) { + if($commit) { + $merge = { merge_end => $1, ref => $commit->{ref} } unless $merge; + } + next; + } + + if(/^Date:\s+(\S.*)/) { + $commit->{date} ||= $1 if $commit; + $merge->{date} ||= $1 if $merge; + next; + } + + if(/^Author:\s+(\S.*)/) { + $commit->{author} ||= $1 if $commit; + $merge->{author} ||= $1 if $merge; + next; + } + + if($merge) { + if(/^ Merge pull request (#\d+) from (\S+)/) { + if($config->{github_project}) { + push @{$merge->{msg}}, "merge gh#$config->{github_project}$1"; + } + else { + push @{$merge->{msg}}, "merge pr $2"; + } + } + elsif(/^ Merge branch '([^']+)'( into)?/) { + push @{$merge->{msg}}, "merge branch $1" if $2 eq ""; + } + elsif(/^ Merge remote-tracking branch /) { + # ignore + } + elsif(s/^ //) { + push @{$commit->{lines}}, $_ unless /^# /; + } + } + elsif($commit) { + if(s/^ //) { + push @{$commit->{lines}}, $_ unless /^# /; + } + } + } + + # Note: the individual steps below work on the array @$commits and modify + # its content. + + # step 1 + # - if there are paragraphs starting with '@log@' or '@+log@' + # - delete first paragraph (short summary) + # - else + # - keep only first paragraph + # - if there is a paragraph starting with '@-log', delete entire log + # - tag commits that have a '@log@' tag so we can delete untagged commits + # belonging to the same merge commit later + + my $tagged_merges = {}; + + for my $commit (@$commits) { + # skip leading empty lines + for (@{$commit->{lines}}) { + last if !/^\s*$/; + shift @{$commit->{lines}}; + } + my $para_cnt = 0; + my $delete_all = 0; + my $delete_first = 0; + for (@{$commit->{lines}}) { + $para_cnt++ if $_ eq ""; + $para_cnt = 0, $delete_first = 1 if /^\@\+log\@/; + $delete_all = 1 if /^\@\-log\@/; + if(/^\@log\@/) { + $para_cnt = 0; + $commit->{clear} = 1; + $tagged_merges->{$commit->{merge_ref}} = 1 if $commit->{merge_ref} || $log->{was_untagged}; + } + $_ = undef if $para_cnt; + } + shift @{$commit->{lines}} if $delete_first; + $commit->{lines} = [] if $delete_all; + } + + # step 2 + # - clean up tagged commits or commits belonging to tagged merges + + for my $commit (@$commits) { + next unless $commit->{clear} || $tagged_merges->{$commit->{merge_ref}}; + for (@{$commit->{lines}}) { + last if /^\@\+?log\@/; + $_ = undef; + } + } + + # step 3 + # - join lines + + for my $commit (@$commits) { + my $lines; + my $line; + + for (@{$commit->{lines}}) { + next if $_ eq ""; + if( + s/^\s*[+\-][\-\s]*// || + s/^\@\+?log\@// || + $line eq "" + ) { + s/^\s*//; + push @$lines, $line if $line ne ""; + $line = $_; + } + else { + s/^\s*//; + $line .= " " if $line ne ""; + $line .= $_; + } + } + push @$lines, $line if $line ne ""; + + $commit->{formatted} = $lines if $lines; + } + + # step 4 + # - fix small glitches + + for my $commit (@$commits) { + next unless $commit->{formatted}; + for (@{$commit->{formatted}}) { + s/(fate|bnc|bsc|boo|jsc)\s*(#[a-z\d\-]+)/\L$1\E$2/ig; + } + } + + # step 5 + # - add merge info at the top or bottom (depending on $opt_merge_msg_before) + + my $merge_logged; + + for my $commit ($opt_merge_msg_before ? reverse(@$commits) : @$commits) { + next unless $commit->{formatted}; + + if($commit->{merge_ref} && !$merge_logged->{$commit->{merge_ref}}) { + $merge_logged->{$commit->{merge_ref}} = 1; + if($commit->{merge_msg}) { + if($opt_merge_msg_before) { + unshift @{$commit->{formatted}}, @{$commit->{merge_msg}}; + } + else { + push @{$commit->{formatted}}, @{$commit->{merge_msg}}; + } + } + } + } + + # step 6 + # - join commit messages with same author (optionally even with different dates) + + my $commit0; + + for my $commit (@$commits) { + next if !$commit->{formatted}; + $commit0 = $commit, next if !$commit0; + + if( + # $commit->{merge_ref} eq $commit0->{merge_ref} && + ( + $opt_join_author && ($commit->{author} eq $commit0->{author}) + && (!$opt_keep_date || $commit->{date} eq $commit0->{date}) + ) + || $opt_format eq 'internal' + ) { + unshift @{$commit0->{formatted}}, @{$commit->{formatted}}; + delete $commit->{formatted}; + } + else { + $commit0 = $commit; + } + } + + # step 7 + # - add version tag at the end of the first log entry + + for my $commit (@$commits) { + next unless $commit->{formatted}; + + if($opt_format eq 'obs') { + push @{$commit->{formatted}}, $log->{tags}[0]{version} if defined $log->{tags}[0]{version}; + } + else { + # push @{$commit->{formatted}}, tag_to_str($log->{tags}[0]); + } + + last; + } + + # step 8 + # - remove identical lines + + for my $commit (@$commits) { + next unless $commit->{formatted}; + my %k; + $commit->{formatted} = [ grep { !$k{$_}++ } @{$commit->{formatted}} ] + } + + # step 9 + # - remove shortened lines (that match the beginning of other lines) + + for my $commit (@$commits) { + next unless $commit->{formatted}; + + # return 1 if some other commit line starts with function arg + my $is_substr = sub { + my $str = $_[0]; + $str =~ s/\s*…$//; # github likes to shorten lines with ' …' + my $str_len = length $str; + for (@{$commit->{formatted}}) { + return 1 if $str_len < length($_) && $str eq substr($_, 0, $str_len); + } + + return 0; + }; + + $commit->{formatted} = [ grep { ! $is_substr->($_) } @{$commit->{formatted}} ] + } + + # step 10 + # - add bugzilla reference to Weblate commits + + for my $commit (@$commits) { + next unless $commit->{formatted}; + for (@{$commit->{formatted}}) { + $_ = add_bugzilla_to_weblate $_; + } + } + + # step 11 + # - add line breaks + + for my $commit (@$commits) { + next unless $commit->{formatted}; + for (@{$commit->{formatted}}) { + $_ = add_line_breaks $_; + } + } + + # step 12 + # - generate final log message + # + # note: non-(open)suse email addresses are replaced by $opt_default_email + + my $formated_log; + + for my $commit (@$commits) { + next unless $commit->{formatted} && @{$commit->{formatted}}; + + if($opt_format eq 'obs') { + $formated_log .= "-" x $opt_sep_width . "\n"; + $formated_log .= format_date_obs($commit->{date}); + } + else { + $formated_log .= format_date_iso($commit->{date}); + } + if($opt_format eq 'obs') { + my $auth = $commit->{author}; + $auth =~ s/^.*.*$//; + # replace non-suse e-mail addresses with a generic one + if($auth !~ /\@(suse\.(com|cz|de)|opensuse\.org)$/) { + $auth = $opt_default_email; + } + $formated_log .= " - $auth\n\n"; + } + else { + $formated_log .= ":\t" . tag_to_str($log->{tags}[0]) . "\n"; + } + + for (@{$commit->{formatted}}) { + s/^/\t/mg if $opt_format eq 'internal'; + $formated_log .= "$_\n"; + } + + $formated_log .= "\n"; + } + + $log->{formatted} = $formated_log; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# new_text = add_line_breaks(text) +# +# Add line breaks to text. +# - text: some text +# - new_text: same text, reformatted +# +# Lines are formatted to have a maximal length of $opt_width. If this causes +# the last line to be shorter than $opt_width_fuzz, it is appended to the +# previous line. +# +sub add_line_breaks +{ + my @words = split /\s+/, @_[0]; + my $remaining_len = length(join '', @words); + + my $str = shift(@words); + my $len = length $str; + + my $next_len; + my $word_len; + + for (@words) { + $word_len = length; + $remaining_len -= $word_len; + $next_len = $len + $word_len + 1; + if( + $next_len >= $opt_width && + $next_len + $remaining_len + 1 >= $opt_width + $opt_width_fuzz + ) { + $str .= "\n $_"; + $len = $word_len; + } + else { + $str .= " $_"; + $len += $word_len + 1; + } + } + + return "- " . $str; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# new_text = add_bugzilla_to_weblate(text) +# +# Add bugzilla number to an auto-generated Weblate commit. +# - text: some text +# - new_text: same text, "($opt_weblate)" added +# +sub add_bugzilla_to_weblate +{ + my $text = @_[0]; + + if($opt_weblate ne "") { + if($text =~ /Translated using Weblate/ && $text !~ /\($opt_weblate\)/) { + $text .= " ($opt_weblate)"; + } + } + + return $text; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# seconds = raw_date_to_s(git_date) +# +# Convert git raw date to seconds. +# - git_date: raw git format (e.g. "1443184889 +0200") +# - seconds: the seconds part (e.g. "1443184889") +# +sub raw_date_to_s +{ + return (split / /, $_[0])[0]; +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# date = format_date_obs(git_date) +# +# Convert git raw date to obs format. +# - git_date: raw git format (e.g. "1443184889 +0200") +# - date: obs format ("Fri Sep 25 12:41:29 UTC 2015") +# +sub format_date_obs +{ + my @d = gmtime(raw_date_to_s($_[0])); + + return + qw(Sun Mon Tue Wed Thu Fri Sat)[$d[6]] . " " . + qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)[$d[4]] . " " . + $d[3] . " " . + sprintf("%02d:%02d:%02d", $d[2], $d[1], $d[0]) . " UTC " . + (1900 + $d[5]); +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# date = format_date_iso(git_date) +# +# Convert git raw date to iso format. +# - git_date: raw git format (e.g. "1443184889 +0200") +# - date: obs format ("2015-09-25") +# +sub format_date_iso +{ + my @d = gmtime(raw_date_to_s($_[0])); + + return sprintf("%04d-%02d-%02d", 1900 + $d[5], $d[4] + 1, $d[3]); +} diff --git a/grub_build b/grub_build new file mode 100755 index 0000000..03a67fa --- /dev/null +++ b/grub_build @@ -0,0 +1,39 @@ +#! /bin/sh + +# script to update gfxboot sources in grub2 and rebuild it +# +# use --bios or --efi option to rebuild only either target +# + +. ./config_vars + + +# - - - lets start... - - - + +user_spec=`stat -c '%u:%g' $HOME` + +if [ ! -d $grub_dir ] ; then + echo "no grub build project prepared" + exit 1 +fi + +( + cd $grub_dir + + if [ `stat -c '%u:%g' .` != "$user_spec" ] ; then + $su chown "$user_spec" -R . + echo adjusting grub build tree ownership + fi +) + +mkdir -p $grub_dir/grub-core/$grub_module +cp -a $grub_files $grub_dir/grub-core/$grub_module + +if [ "$1" != "--efi" ] ; then + $su chroot --userspec "$user_spec" $grub_root/ sh -c "cd $grub_build/build ; make" +fi + +if [ "$1" != "--bios" ] ; then + $su chroot --userspec "$user_spec" $grub_root/ sh -c "cd $grub_build/build-efi ; make" +fi + diff --git a/mk_grub_test b/mk_grub_test new file mode 100755 index 0000000..c45b88c --- /dev/null +++ b/mk_grub_test @@ -0,0 +1,75 @@ +#! /bin/bash + +# script to copy the updated gfxboot module from the grub2 tree and build a +# test cd with them +# + +. ./config_vars + +rm -rf $grub_iso_dir +cp -a $grub_iso_src $grub_iso_dir + +mkdir -p $grub_iso_dir/EFI/BOOT + +test_grub_dir=$grub_iso_dir/boot/x86_64/grub2-efi +mkdir $test_grub_dir + +mods=" + gfxboot gfxterm + video videoinfo vga vbe + biosdisk linux + ext2 btrfs ext2 xfs jfs reiserfs + all_video boot cat chain configfile echo + font gzio halt iso9660 + jpeg minicmd normal part_apple part_msdos part_gpt + password_pbkdf2 png reboot search search_fs_uuid + search_fs_file search_label sleep test video fat loadenv +" + +efimods=" + gfxboot gfxterm + video videoinfo efi_gop + linuxefi + ext2 btrfs ext2 xfs jfs reiserfs + all_video boot cat chain configfile echo + font gzio halt iso9660 + jpeg minicmd normal part_apple part_msdos part_gpt + password_pbkdf2 png reboot search search_fs_uuid + search_fs_file search_label sleep test video fat loadenv +" + +# - - - lets start... - - - + +echo re-building $grub_iso + +( + mods=$(echo $mods) + sw 0 chroot $grub_root/ sh -c "cd b/build ; ./grub-mkimage -d grub-core -O i386-pc -o core.img --prefix=/boot/x86_64/grub2-efi $mods" + cd $grub_dir/build + cat grub-core/cdboot.img core.img >cd.img +) + +cp $grub_dir/build/cd.img $test_grub_dir + +cp files/grub.cfg $test_grub_dir +perl -pi -e 's/(linux|initrd)efi/$1/' $test_grub_dir/grub.cfg + +( + efimods=$(echo $efimods) + sw 0 chroot $grub_root/ sh -c "cd b/build-efi ; ./grub-mkimage -d grub-core -O x86_64-efi -o grub.efi --prefix= $efimods" + cd $grub_dir/build-efi + cp grub.efi $grub_iso_dir/EFI/BOOT/bootx64.efi + mcopy -i $grub_iso_dir/boot/x86_64/efi grub.efi ::/EFI/BOOT/bootx64.efi +) + +cp files/grub.cfg $grub_iso_dir/EFI/BOOT/ +mcopy -i $grub_iso_dir/boot/x86_64/efi files/grub.cfg ::/EFI/BOOT + +cp files/* $test_grub_dir + +for i in $test_grub_dir/*.gs ; do + ./gfxboot-compile -c ${i/.gs/.gc} $i +done + +mksusecd --nano --no-hybrid --no-digest --grub2 -c $grub_iso $grub_iso_dir + diff --git a/mk_reference b/mk_reference new file mode 100755 index 0000000..eda3e33 --- /dev/null +++ b/mk_reference @@ -0,0 +1,247 @@ +#! /usr/bin/perl + +use strict; + +use Data::Dumper; +$Data::Dumper::Sortkeys = 1; +$Data::Dumper::Terse = 1; +$Data::Dumper::Indent = 1; + +sub word_sort; +sub process_comment; +sub xref; + +# vocabulary definitions +my $prim = $ARGV[0]; +# C source +my $source = $ARGV[1]; +# doc template +my $doc = $ARGV[2]; +# generated doc +my $dst = $ARGV[3]; + +my $vocab; +my $groups; + +open my $f, $prim or die "$prim: $!\n"; + +while(<$f>) { + next if /^\s*(#|$)/; + my @i = split /\s+/; + my $name = $i[1] ? $i[1] : $i[0]; + $vocab->{$name}{name} = $name; + $vocab->{$name}{str} = $i[0]; +} + +close $f; + +open my $f, $source or die "$source: $!\n"; + +my $comm; +while(<$f>) { + if(m#^// ?(.*?)$#) { + my $c = $1; + push @$comm, $c unless $c =~ /^- - -/; + next; + } + if(/^void gfx_prim_([^\(]+)/ && exists $vocab->{$1}) { + $vocab->{$1}{doc} = $comm; + undef $comm; + next; + } + if(/^\}/) { + undef $comm; + next; + } +} + +close $f; + +process_comment $vocab->{$_} for keys %$vocab; + +my $doc_template; + +open my $f, $doc or die "$doc: $!\n"; +{ + local $/; + $doc_template = <$f>; +} +close $f; + +my $all_docs; + +for (sort { word_sort } keys %$vocab) { + next if @{$vocab->{$_}{doc}} == 0; + my $str = $vocab->{$_}{doc_str}; + + $str = xref $str, $_; + + $all_docs .= $str; + $all_docs .= "\n"; +} + +$doc_template =~ s/PRIMITIVE_WORD_LIST/$all_docs/; + +open my $f, ">", $dst or die "$dst: $!\n"; + +print $f $doc_template; + +close $f; + +my $undoc; + +for (sort { word_sort } keys %$vocab) { + next if @{$vocab->{$_}{doc}} != 0; + push @$undoc, $vocab->{$_}{name}; +} + +print "undocumented words: ", join(", ", @$undoc), "\n" if $undoc; + +# print Dumper $vocab; + + +sub process_comment +{ + my $d = $_[0]; + + if($d->{doc}) { + while(@{$d->{doc}} >= 1) { + if($d->{doc}[-1] eq "") { + pop @{$d->{doc}} + } + else { + last; + } + } + } + + my $vars; + for my $c (@{$d->{doc}}) { + if($c =~ /^\(.*--.*\)/) { + while($c =~ m/([a-z0-9_]+)/g) { + my $v1 = $1; + my $v2 = $v1; + $v2 =~ s/_(\S+)/~$1~/; + $vars->{$v1} = "__${v2}__"; + } + } + } + + my $all_vars = join '|', keys %$vars; + + my $doc; + my $new_para; + my $example; + my $cnt = 0; + my $item_start; + my $notes; + for my $c (@{$d->{doc}}) { + $cnt++; + if($cnt == 1) { + $doc = "* **+$d->{str}+** - $c [[$d->{name}]]\n"; + next; + } + if($example) { + $doc .= "$c\n"; + next; + } + if($c eq "") { + $doc .= "+\n" unless $new_para; + $new_para = 1; + next; + } + if($c =~ /^groups?:\s*(\S+)/i) { + for my $g (split /,/, $1) { + $groups->{$g}{$d->{name}} = 1; + $d->{groups}{$g} = 1; + } + next; + } + if($c =~ /^examples?:/i) { + if($item_start) { + $doc .= "--\n+\n"; + $item_start = 0; + } + $doc .= ".Examples\n```\n"; + $example = 1; + next; + } + $new_para = 0; + my $x = $c; + if($c =~ /^\(.*--.*\)/) { + $x = "** $x"; + $x = "--\n$x" if !$item_start; + $item_start = 1; + } + elsif( + $item_start && + $c ne "" && + (!($c =~ /^($all_vars):/ || ($c =~ /^($all_vars)\b/ && $c =~ /\b($all_vars)\b/)) || $all_vars eq "") + ) { + $x = "XXX--\n$x"; + $item_start = 0; + $notes = 1; + } + else { + $x = "+\n$x" unless $notes; + } + for my $v (keys %$vars) { + $x =~ s/\b$v\b/$vars->{$v}/g; + } + $doc .= "$x\n"; + } + + $doc .= "--\n" if $item_start; + $doc =~ s/\+\nXXX--\n/--\n+\n/; + $doc .= "```\n" if $example; + + if($d->{groups}) { +# $doc .= "+\nSee also: XXX_XREF\n"; + $doc .= "XXX_XREF"; + } + + $doc =~ s/\+\n\+\n/+\n/g; + + $d->{doc_str} = $doc; +} + + +sub xref +{ + my $doc = $_[0]; + my $name = $_[1]; + + my $refs; + + if($vocab->{$name}{groups}) { + for my $g (keys %{$vocab->{$name}{groups}}) { + for my $n (keys %{$groups->{$g}}) { + $refs->{$n} = "xref:$n\[+$vocab->{$n}{str}+\]"; + } + } + delete $refs->{$name}; + + my $r = join ", ", map { $refs->{$_} } sort { word_sort } keys %$refs; + + if($r ne "") { + $doc =~ s/XXX_XREF/+\nSee also: $r\n/; + } + else { + $doc =~ s/XXX_XREF//; + } + } + + return $doc; +} + + +sub word_sort +{ + my $x = $vocab->{$a}{str}; + my $y = $vocab->{$b}{str}; + + my $x = $x eq '{' || $x eq '}' ? " $x" : $x; + my $y = $y eq '{' || $y eq '}' ? " $y" : $y; + + return $x cmp $y; +} diff --git a/mk_vocabulary b/mk_vocabulary new file mode 100755 index 0000000..7cb97ad --- /dev/null +++ b/mk_vocabulary @@ -0,0 +1,127 @@ +#! /usr/bin/perl + +use strict; + +use Data::Dumper; +$Data::Dumper::Sortkeys = 1; +$Data::Dumper::Terse = 1; +$Data::Dumper::Indent = 1; + +sub print_list; + +# vocabulary definitions +my $prim = $ARGV[0]; +# type definitions +my $type = $ARGV[1]; +# generated C header file +my $dst = $ARGV[2]; + +my $vocab; +my $types; + +open my $f, $prim or die "$prim: $!\n"; + +while(<$f>) { + next if /^\s*(#|$)/; + my @i = split /\s+/; + push @$vocab, { str => $i[0], name => $i[1] ? $i[1] : $i[0] }; +} + +close $f; + +open my $f, $type or die "$type: $!\n"; + +while(<$f>) { + next if /^\s*(#|$)/; + my @i = split /\s+/; + push @$types, { str => $i[0], name => $i[1] ? $i[1] : $i[0] }; +} + +close $f; + +open my $f, ">", $dst or die "$dst: $!\n"; + +print $f <<"----" +#define GFXBOOT_MAGIC 0x60ad7a42a91251L + +#ifdef WITH_PRIM_NAMES +const char *prim_names[] = { +---- +; + +my $list; +push @$list, "\"$_->{str}\"" for @$vocab; +print_list $f, $list, 8; + +print $f "\n};\n#endif\n\n"; + + +print $f "enum {\n"; + +my $list; +push @$list, "prim_idx_$_->{name}" for @$vocab; +print_list $f, $list, 4; + +print $f "\n};\n\n"; + + +print $f "#ifdef WITH_PRIM_HEADERS\n"; + +my $list; +push @$list, "gfx_prim_$_->{name}" for @$vocab; +print $f "static void $_(void);\n" for @$list; + + +print $f "\nstatic void (*gfx_prim_list[])(void) = {\n"; + +print_list $f, $list, 4; + +print $f "\n};\n#endif\n\n"; + + +print $f "#ifdef WITH_TYPE_NAMES\nconst char *type_name[] = {\n"; + +my $list; +push @$list, "\"$_->{str}\"" for @$types; +print_list $f, $list, 8; + +print $f "\n};\n#endif\n\n"; + + +print $f <<"----" +#define TYPE_EXPECTS_DATA(a) ((a) >= t_comment) + +typedef enum { +---- +; + +my $list; +push @$list, "t_$_->{name}" for @$types; +print_list $f, $list, 4; + +print $f "\n} type_t;\n"; + +close $f; + + +sub print_list +{ + my $f = $_[0]; + my $list = $_[1]; + my $cols = $_[2]; + + my $cnt = 0; + for (@$list) { + print $f "," if $cnt; + if($cnt % $cols) { + print $f " "; + } + else { + print $f "\n" if $cnt; + print $f " "; + } + print $f "$_"; + $cnt++; + } +} + diff --git a/mk_x11_test b/mk_x11_test new file mode 100755 index 0000000..256dfaa --- /dev/null +++ b/mk_x11_test @@ -0,0 +1,12 @@ +#! /bin/bash + +rm -rf x11 +mkdir x11 + +cp files/* x11 +rm x11/*~ + +for i in x11/*.gs ; do + # ./gfxboot-compile -Oc ${i/.gs/.gc} $i + ./gfxboot-compile -O1 -vc ${i/.gs/.gc} -l $i.log $i +done diff --git a/patches/grub-2.04.diff b/patches/grub-2.04.diff new file mode 100644 index 0000000..f034148 --- /dev/null +++ b/patches/grub-2.04.diff @@ -0,0 +1,256 @@ +diff -ru grub-2.04.orig/include/grub/menu_viewer.h grub-2.04/include/grub/menu_viewer.h +--- grub-2.04.orig/include/grub/menu_viewer.h 2020-03-15 17:27:58.095304000 +0100 ++++ grub-2.04/include/grub/menu_viewer.h 2020-03-11 20:15:05.837002361 +0100 +@@ -35,6 +35,7 @@ + void (*clear_timeout) (void *data); + void (*scroll_chosen_entry) (void *data, int diren); + void (*fini) (void *fini); ++ int (*process_key) (int *key); + }; + + void grub_menu_register_viewer (struct grub_menu_viewer *viewer); +Only in grub-2.04/include/grub: menu_viewer.h~ +diff -ru grub-2.04.orig/include/grub/video.h grub-2.04/include/grub/video.h +--- grub-2.04.orig/include/grub/video.h 2018-11-24 18:13:02.000000000 +0100 ++++ grub-2.04/include/grub/video.h 2020-03-11 20:34:46.551694570 +0100 +@@ -331,7 +331,9 @@ + grub_video_mode_type_t mode_type, + grub_video_mode_type_t mode_mask); + +- grub_err_t (*get_info) (struct grub_video_mode_info *mode_info); ++ grub_err_t (*get_info) (struct grub_video_mode_info *mode_info, void **framebuffer); ++ ++ grub_err_t (*get_raw_info) (struct grub_video_mode_info *mode_info, void **framebuffer); + + grub_err_t (*get_info_and_fini) (struct grub_video_mode_info *mode_info, + void **framebuffer); +@@ -437,6 +439,8 @@ + + grub_err_t EXPORT_FUNC (grub_video_get_info) (struct grub_video_mode_info *mode_info); + ++grub_err_t EXPORT_FUNC (grub_video_get_raw_info) (struct grub_video_mode_info *mode_info, void **framebuffer); ++ + /* Framebuffer address may change as a part of normal operation + (e.g. double buffering). That's why you need to stop video subsystem to be + sure that framebuffer address doesn't change. To ensure this abstraction +Only in grub-2.04/include/grub: video.h~ +diff -ru grub-2.04.orig/include/grub/video_fb.h grub-2.04/include/grub/video_fb.h +--- grub-2.04.orig/include/grub/video_fb.h 2018-11-24 18:13:02.000000000 +0100 ++++ grub-2.04/include/grub/video_fb.h 2020-03-11 20:23:10.733793798 +0100 +@@ -42,7 +42,7 @@ + EXPORT_FUNC(grub_video_fb_fini) (void); + + grub_err_t +-EXPORT_FUNC(grub_video_fb_get_info) (struct grub_video_mode_info *mode_info); ++EXPORT_FUNC(grub_video_fb_get_info) (struct grub_video_mode_info *mode_info, void **framebuf); + + grub_err_t + EXPORT_FUNC(grub_video_fb_get_palette) (unsigned int start, unsigned int count, +Only in grub-2.04/include/grub: video_fb.h~ +diff -ru -x Makefile.core.am -x Makefile.in -x ChangeLog grub-2.04.orig/grub-core/Makefile.core.def grub-2.04/grub-core/Makefile.core.def +--- grub-2.04.orig/grub-core/Makefile.core.def 2020-03-15 17:27:58.083304168 +0100 ++++ grub-2.04/grub-core/Makefile.core.def 2020-04-19 20:15:45.725352760 +0200 +@@ -1576,6 +1576,29 @@ + }; + + module = { ++ name = gfxboot; ++ common = gfxboot/gfxboot.c; ++ common = gfxboot/gfxboot_array.c; ++ common = gfxboot/gfxboot_canvas.c; ++ common = gfxboot/gfxboot_context.c; ++ common = gfxboot/gfxboot_debug.c; ++ common = gfxboot/gfxboot_draw.c; ++ common = gfxboot/gfxboot_font.c; ++ common = gfxboot/gfxboot_grub.c; ++ common = gfxboot/gfxboot_gstate.c; ++ common = gfxboot/gfxboot_hash.c; ++ common = gfxboot/gfxboot_jpeg.c; ++ common = gfxboot/gfxboot_lib.c; ++ common = gfxboot/gfxboot_main.c; ++ common = gfxboot/gfxboot_malloc.c; ++ common = gfxboot/gfxboot_mem.c; ++ common = gfxboot/gfxboot_num.c; ++ common = gfxboot/gfxboot_obj.c; ++ common = gfxboot/gfxboot_olist.c; ++ common = gfxboot/gfxboot_prim.c; ++}; ++ ++module = { + name = hello; + common = hello/hello.c; + }; +Only in grub-2.04/grub-core: Makefile.core.def~ +Only in grub-2.04/grub-core: gfxboot +diff -ru -x Makefile.core.am -x Makefile.in -x ChangeLog grub-2.04.orig/grub-core/normal/menu.c grub-2.04/grub-core/normal/menu.c +--- grub-2.04.orig/grub-core/normal/menu.c 2020-03-15 17:27:58.095304000 +0100 ++++ grub-2.04/grub-core/normal/menu.c 2020-03-15 17:56:52.779074968 +0100 +@@ -392,6 +392,19 @@ + + static struct grub_menu_viewer *viewers; + ++static int ++menu_process_key (int *key) ++{ ++ struct grub_menu_viewer *cur; ++ int action = 0; ++ ++ for(cur = viewers; cur && key && *key; cur = cur->next) { ++ if(cur->process_key) action = cur->process_key(key); ++ } ++ ++ return action; ++} ++ + static void + menu_set_chosen_entry (int entry) + { +@@ -659,8 +672,11 @@ + int default_entry, current_entry; + int timeout; + enum timeout_style timeout_style; ++ int action; ++ ++ *auto_boot = 0; + +- default_entry = get_entry_number (menu, "default"); ++ default_entry = current_entry = get_entry_number (menu, "default"); + + workaround_snapshot_menu_default_entry (menu, "default", &default_entry); + +@@ -779,6 +795,18 @@ + + c = grub_getkey_noblock (); + ++ action = menu_process_key (&c); ++ ++ if ((action & 0xff)) ++ { ++ *auto_boot = 0; ++ if ((action & 0x01)) menu_fini (); ++ if ((action & 0x02)) *auto_boot = 1; ++ if ((action & 0x04)) grub_cmdline_run (1, 0); ++ if ((action & 0x08)) goto refresh; ++ if ((action & 0x10)) return action >> 8; ++ } ++ + /* Negative values are returned on error. */ + if ((c != GRUB_TERM_NO_KEY) && (c > 0)) + { +Only in grub-2.04/grub-core/normal: menu.c~ +diff -ru -x Makefile.core.am -x Makefile.in -x ChangeLog grub-2.04.orig/grub-core/video/efi_gop.c grub-2.04/grub-core/video/efi_gop.c +--- grub-2.04.orig/grub-core/video/efi_gop.c 2020-03-15 17:27:58.095304000 +0100 ++++ grub-2.04/grub-core/video/efi_gop.c 2020-03-11 20:26:21.099060901 +0100 +@@ -588,6 +588,24 @@ + return GRUB_ERR_NONE; + } + ++static grub_err_t ++grub_video_gop_get_raw_info (struct grub_video_mode_info *mode_info, void **framebuf) ++{ ++ grub_err_t err = GRUB_ERR_NONE; ++ ++ if (mode_info) ++ { ++ err = grub_video_gop_fill_real_mode_info (gop->mode->mode, gop->mode->info, mode_info); ++ if (err) ++ grub_dprintf ("video", "GOP: couldn't fill mode info\n"); ++ } ++ ++ if (framebuf) ++ *framebuf = (char *) framebuffer.ptr; ++ ++ return err; ++} ++ + static struct grub_video_adapter grub_video_gop_adapter = + { + .name = "EFI GOP driver", +@@ -599,6 +617,7 @@ + .fini = grub_video_gop_fini, + .setup = grub_video_gop_setup, + .get_info = grub_video_fb_get_info, ++ .get_raw_info = grub_video_gop_get_raw_info, + .get_info_and_fini = grub_video_gop_get_info_and_fini, + .get_edid = grub_video_gop_get_edid, + .set_palette = grub_video_fb_set_palette, +diff -ru -x Makefile.core.am -x Makefile.in -x ChangeLog grub-2.04.orig/grub-core/video/fb/video_fb.c grub-2.04/grub-core/video/fb/video_fb.c +--- grub-2.04.orig/grub-core/video/fb/video_fb.c 2018-11-24 18:13:02.000000000 +0100 ++++ grub-2.04/grub-core/video/fb/video_fb.c 2020-03-11 20:25:29.923792134 +0100 +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + + GRUB_MOD_LICENSE ("GPLv3+"); + +@@ -355,11 +356,22 @@ + } + + grub_err_t +-grub_video_fb_get_info (struct grub_video_mode_info *mode_info) ++grub_video_fb_get_info (struct grub_video_mode_info *mode_info, void **framebuf) + { +- /* Copy mode info from active render target. */ +- grub_memcpy (mode_info, &framebuffer.render_target->mode_info, +- sizeof (struct grub_video_mode_info)); ++ if (mode_info) ++ { ++ /* Copy mode info from active render target. */ ++ grub_memcpy (mode_info, &framebuffer.render_target->mode_info, ++ sizeof (struct grub_video_mode_info)); ++ } ++ ++ if (framebuf) ++ { ++ *framebuf = (void *) framebuffer.pages[framebuffer.displayed_page]; ++ if(!*framebuf && framebuffer.render_target) { ++ *framebuf = (void *) framebuffer.render_target->data; ++ } ++ } + + return GRUB_ERR_NONE; + } +diff -ru -x Makefile.core.am -x Makefile.in -x ChangeLog grub-2.04.orig/grub-core/video/video.c grub-2.04/grub-core/video/video.c +--- grub-2.04.orig/grub-core/video/video.c 2019-05-20 13:00:01.000000000 +0200 ++++ grub-2.04/grub-core/video/video.c 2020-03-11 20:24:05.221003731 +0100 +@@ -60,7 +60,28 @@ + return grub_errno; + } + +- return grub_video_adapter_active->get_info (mode_info); ++ return grub_video_adapter_active->get_info (mode_info, NULL); ++} ++ ++/* Get (real) information about active video mode and framebuffer pointer. */ ++grub_err_t ++grub_video_get_raw_info (struct grub_video_mode_info *mode_info, void **framebuffer) ++{ ++ grub_err_t err = GRUB_ERR_NONE; ++ ++ if (! grub_video_adapter_active) ++ return grub_error (GRUB_ERR_BAD_DEVICE, "no video mode activated"); ++ ++ if (grub_video_adapter_active->get_raw_info) ++ { ++ err = grub_video_adapter_active->get_raw_info (mode_info, framebuffer); ++ } ++ else ++ { ++ err = grub_video_adapter_active->get_info (mode_info, framebuffer); ++ } ++ ++ return err; + } + + grub_video_driver_id_t +@@ -720,7 +741,7 @@ + continue; + } + +- err = p->get_info (&mode_info); ++ err = p->get_info (&mode_info, NULL); + if (err != GRUB_ERR_NONE) + { + p->fini (); diff --git a/patches/grub_diff b/patches/grub_diff new file mode 100755 index 0000000..9c8d667 --- /dev/null +++ b/patches/grub_diff @@ -0,0 +1,6 @@ +#! /bin/bash + +cd ~/g/usr/src/packages/BUILD + +diff -ru grub-2.04{.orig,}/include >/tmp/dif +diff -ru -x Makefile.core.am -x Makefile.in -x ChangeLog grub-2.04{.orig,}/grub-core >>/tmp/dif diff --git a/run_tests b/run_tests new file mode 100755 index 0000000..6ac2cae --- /dev/null +++ b/run_tests @@ -0,0 +1,201 @@ +#! /usr/bin/perl + +use strict; + +use Getopt::Long; + +sub prepare_test; +sub run_test; +sub verify_test; +sub table_head; + +my $testdir = "tests"; + +# store reference output, don't do checks +my $opt_create_reference; +my $opt_test_pattern = "*"; + +GetOptions( + 'create-reference|r' => \$opt_create_reference, + 'test|t=s' => \$opt_test_pattern, +); + +die "error: no gfxboot-compile\n" unless -x "./gfxboot-compile"; +die "error: no gfxboot-x11\n" unless -x "./gfxboot-x11"; + +my $tests = [ qw ( code mem trace basic code1 opt1 code2 opt2 gc screen ) ]; + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +my $count = 0; +my $failed = 0; +my $ok = 0; + +table_head if !$opt_create_reference; + +for my $test (<$testdir/$opt_test_pattern>) { + next unless -d $test; + $count++; + prepare_test $test; + run_test $test; + prepare_test $test, 1; + run_test $test, 1; + prepare_test $test, 2; + run_test $test, 2; + $failed += verify_test $test if !$opt_create_reference; +} + +if($opt_create_reference) { + print "$count test results created\n"; +} +else { + $ok = $count - $failed; + my $s = sprintf "%4d tests ok", $ok; + $s .= sprintf ", %3d failed", $failed if $failed; + table_head $s; +} + +exit $failed ? 1 : 0; + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +sub prepare_test +{ + my $test = $_[0]; + my $ref = $opt_create_reference ? ".ref" : ""; + my $opt = $_[1] ? "-O$_[1]" : ""; + + system "./gfxboot-compile $opt -v -c $test/main.gc -l $test/code$_[1].log$ref $test/main.gs"; + + if($ref && $opt) { +# unlink "$test/code$_[1].log$ref"; + } +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +sub run_test +{ + my $test = $_[0]; + my $opt = $_[1] ? "_opt$_[1]" : ""; + my $opt_log = "opt$_[1].log"; + my $ref = $opt_create_reference ? ".ref" : ""; + + system "./gfxboot-x11 --no-x11 --file tests/test_script $test >$test/test$opt.log"; + + if(open my $f, "$test/test$opt.log") { + local $/; + $_ = <$f>; + close $f; + + if(/\n(# --- trace ---\n.*\n)# --- trace_end ---\n/s) { + my $s = $1; + $s =~ s/\n[^\n]+trace_end[^\n]+$//s; + if(!$opt) { + if(open my $f, ">$test/trace.log$ref") { + print $f $s; + close $f; + } + } + my $opt_log_name = "$test/opt.log.ref"; + if($opt) { + $opt_log_name = "$test/$opt_log"; + } + if(open my $f, ">", $opt_log_name) { + $s =~ s/, (ofs|current) 0x[0-9a-f]+\b//g; + $s =~ s/, ip 0x[0-9a-f]+ \(0x[0-9a-f]+\)//g; + $s =~ s/, size \d+\b//g; + $s =~ s/\nIP: [^\n]+//g; + $s =~ s/(\nerror [^\n]+):[^\n]+/$1/g; + print $f $s; + close $f; + } + if(open my $f, ">", "$test/basic.log$ref") { + $s =~ s/#\d+(\.\d+\.\d+\.)/#xxxx$1/g; + print $f $s; + close $f; + } + if($opt) { + link "$test/opt.log.ref", "$test/$opt_log.ref"; + } + } + + if(!$opt) { + if(/\n(# --- mem ---\n.*\n)# --- mem_end ---\n/s) { + my $s = $1; + $s =~ s/\n[^\n]+mem_end[^\n]+$//s; + if(open my $f, ">$test/mem.log$ref") { + print $f $s; + close $f; + } + } + + if(/\n(# --- gc ---\n.*\n)# --- gc_end ---\n/s) { + my $s = $1; + $s =~ s/\n[^\n]+gc_end[^\n]+$//s; + if(open my $f, ">$test/gc.log$ref") { + print $f $s; + close $f; + } + } + + if(/\n(# --- screen ---\n.*\n)# --- screen_end ---\n/s) { + my $s = $1; + $s =~ s/\n[^\n]+screen_end[^\n]+$//s; + if(open my $f, ">$test/screen.log$ref") { + print $f $s; + close $f; + } + } + } + } +} + + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +sub verify_test +{ + my $test = $_[0]; + my $all_err = 0; + + my $name = $test; + $name =~ s#^.*/##; + + printf "%-26s|", $name; + + my $msg; + + for my $v (@$tests) { + my $res; + my $ref; + if(open my $f, "$test/$v.log") { local $/; $res = <$f>; close $f; } + if(open my $f, "$test/$v.log.ref") { local $/; $ref = <$f>; close $f; } + + my $err; + if($v eq "gc" ) { + # gc should have cleaned up everything but for 2 objects: + # - 1. object list + # - 2. gc's own data + $err = $res !~ /olist +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <18 (0x12)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #0.0.nil + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4660 (0x1234)> + [1] #xxxx.1.1.num.int <18 (0x12)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #0.0.nil + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1193046 (0x123456)> + [1] #xxxx.1.1.num.int <4660 (0x1234)> + [2] #xxxx.1.1.num.int <18 (0x12)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #0.0.nil + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <305419896 (0x12345678)> + [1] #xxxx.1.1.num.int <1193046 (0x123456)> + [2] #xxxx.1.1.num.int <4660 (0x1234)> + [3] #xxxx.1.1.num.int <18 (0x12)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #0.0.nil + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [1] #xxxx.1.1.num.int <305419896 (0x12345678)> + [2] #xxxx.1.1.num.int <1193046 (0x123456)> + [3] #xxxx.1.1.num.int <4660 (0x1234)> + [4] #xxxx.1.1.num.int <18 (0x12)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #0.0.nil + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [1] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [2] #xxxx.1.1.num.int <305419896 (0x12345678)> + [3] #xxxx.1.1.num.int <1193046 (0x123456)> + [4] #xxxx.1.1.num.int <4660 (0x1234)> + [5] #xxxx.1.1.num.int <18 (0x12)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #0.0.nil + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [1] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [2] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [3] #xxxx.1.1.num.int <305419896 (0x12345678)> + [4] #xxxx.1.1.num.int <1193046 (0x123456)> + [5] #xxxx.1.1.num.int <4660 (0x1234)> + [6] #xxxx.1.1.num.int <18 (0x12)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #0.0.nil + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [1] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [2] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [3] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [4] #xxxx.1.1.num.int <305419896 (0x12345678)> + [5] #xxxx.1.1.num.int <1193046 (0x123456)> + [6] #xxxx.1.1.num.int <4660 (0x1234)> + [7] #xxxx.1.1.num.int <18 (0x12)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #0.0.nil + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [1] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [2] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [3] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [4] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [5] #xxxx.1.1.num.int <305419896 (0x12345678)> + [6] #xxxx.1.1.num.int <1193046 (0x123456)> + [7] #xxxx.1.1.num.int <4660 (0x1234)> + [8] #xxxx.1.1.num.int <18 (0x12)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #0.0.nil + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [1] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [2] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [3] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [4] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [5] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [6] #xxxx.1.1.num.int <305419896 (0x12345678)> + [7] #xxxx.1.1.num.int <1193046 (0x123456)> + [8] #xxxx.1.1.num.int <4660 (0x1234)> + [9] #xxxx.1.1.num.int <18 (0x12)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #0.0.nil + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [1] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [2] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [3] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [4] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [5] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [6] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [7] #xxxx.1.1.num.int <305419896 (0x12345678)> + [8] #xxxx.1.1.num.int <1193046 (0x123456)> + [9] #xxxx.1.1.num.int <4660 (0x1234)> + [10] #xxxx.1.1.num.int <18 (0x12)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #0.0.nil + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <127 (0x7f)> + [1] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [2] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [3] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [4] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [5] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [6] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [7] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [8] #xxxx.1.1.num.int <305419896 (0x12345678)> + [9] #xxxx.1.1.num.int <1193046 (0x123456)> + [10] #xxxx.1.1.num.int <4660 (0x1234)> + [11] #xxxx.1.1.num.int <18 (0x12)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #0.0.nil + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <128 (0x80)> + [1] #xxxx.1.1.num.int <127 (0x7f)> + [2] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [3] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [4] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [5] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [6] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [7] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [8] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [9] #xxxx.1.1.num.int <305419896 (0x12345678)> + [10] #xxxx.1.1.num.int <1193046 (0x123456)> + [11] #xxxx.1.1.num.int <4660 (0x1234)> + [12] #xxxx.1.1.num.int <18 (0x12)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #0.0.nil + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <256 (0x100)> + [1] #xxxx.1.1.num.int <128 (0x80)> + [2] #xxxx.1.1.num.int <127 (0x7f)> + [3] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [4] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [5] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [6] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [7] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [8] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [9] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [10] #xxxx.1.1.num.int <305419896 (0x12345678)> + [11] #xxxx.1.1.num.int <1193046 (0x123456)> + [12] #xxxx.1.1.num.int <4660 (0x1234)> + [13] #xxxx.1.1.num.int <18 (0x12)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #0.0.nil + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <256 (0x100)> + [2] #xxxx.1.1.num.int <128 (0x80)> + [3] #xxxx.1.1.num.int <127 (0x7f)> + [4] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [5] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [6] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [7] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [8] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [9] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [10] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [11] #xxxx.1.1.num.int <305419896 (0x12345678)> + [12] #xxxx.1.1.num.int <1193046 (0x123456)> + [13] #xxxx.1.1.num.int <4660 (0x1234)> + [14] #xxxx.1.1.num.int <18 (0x12)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #0.0.nil + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <256 (0x100)> + [3] #xxxx.1.1.num.int <128 (0x80)> + [4] #xxxx.1.1.num.int <127 (0x7f)> + [5] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [6] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [7] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [8] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [9] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [10] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [11] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [12] #xxxx.1.1.num.int <305419896 (0x12345678)> + [13] #xxxx.1.1.num.int <1193046 (0x123456)> + [14] #xxxx.1.1.num.int <4660 (0x1234)> + [15] #xxxx.1.1.num.int <18 (0x12)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #0.0.nil + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [1] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <256 (0x100)> + [4] #xxxx.1.1.num.int <128 (0x80)> + [5] #xxxx.1.1.num.int <127 (0x7f)> + [6] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [7] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [8] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [9] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [10] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [11] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [12] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [13] #xxxx.1.1.num.int <305419896 (0x12345678)> + [14] #xxxx.1.1.num.int <1193046 (0x123456)> + [15] #xxxx.1.1.num.int <4660 (0x1234)> + [16] #xxxx.1.1.num.int <18 (0x12)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #0.0.nil + [19] #xxxx.1.1.num.bool <0 (0x0)> + [20] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [1] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [2] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <256 (0x100)> + [5] #xxxx.1.1.num.int <128 (0x80)> + [6] #xxxx.1.1.num.int <127 (0x7f)> + [7] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [8] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [9] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [10] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [11] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [12] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [13] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [14] #xxxx.1.1.num.int <305419896 (0x12345678)> + [15] #xxxx.1.1.num.int <1193046 (0x123456)> + [16] #xxxx.1.1.num.int <4660 (0x1234)> + [17] #xxxx.1.1.num.int <18 (0x12)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #0.0.nil + [20] #xxxx.1.1.num.bool <0 (0x0)> + [21] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [2] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [3] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <256 (0x100)> + [6] #xxxx.1.1.num.int <128 (0x80)> + [7] #xxxx.1.1.num.int <127 (0x7f)> + [8] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [9] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [10] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [11] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [12] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [13] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [14] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [15] #xxxx.1.1.num.int <305419896 (0x12345678)> + [16] #xxxx.1.1.num.int <1193046 (0x123456)> + [17] #xxxx.1.1.num.int <4660 (0x1234)> + [18] #xxxx.1.1.num.int <18 (0x12)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #0.0.nil + [21] #xxxx.1.1.num.bool <0 (0x0)> + [22] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [3] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [4] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <256 (0x100)> + [7] #xxxx.1.1.num.int <128 (0x80)> + [8] #xxxx.1.1.num.int <127 (0x7f)> + [9] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [10] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [11] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [12] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [13] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [14] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [15] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [16] #xxxx.1.1.num.int <305419896 (0x12345678)> + [17] #xxxx.1.1.num.int <1193046 (0x123456)> + [18] #xxxx.1.1.num.int <4660 (0x1234)> + [19] #xxxx.1.1.num.int <18 (0x12)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #0.0.nil + [22] #xxxx.1.1.num.bool <0 (0x0)> + [23] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [4] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [5] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <256 (0x100)> + [8] #xxxx.1.1.num.int <128 (0x80)> + [9] #xxxx.1.1.num.int <127 (0x7f)> + [10] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [11] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [12] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [13] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [14] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [15] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [16] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [17] #xxxx.1.1.num.int <305419896 (0x12345678)> + [18] #xxxx.1.1.num.int <1193046 (0x123456)> + [19] #xxxx.1.1.num.int <4660 (0x1234)> + [20] #xxxx.1.1.num.int <18 (0x12)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #0.0.nil + [23] #xxxx.1.1.num.bool <0 (0x0)> + [24] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [5] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [6] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <256 (0x100)> + [9] #xxxx.1.1.num.int <128 (0x80)> + [10] #xxxx.1.1.num.int <127 (0x7f)> + [11] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [12] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [13] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [14] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [15] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [16] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [17] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [18] #xxxx.1.1.num.int <305419896 (0x12345678)> + [19] #xxxx.1.1.num.int <1193046 (0x123456)> + [20] #xxxx.1.1.num.int <4660 (0x1234)> + [21] #xxxx.1.1.num.int <18 (0x12)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #0.0.nil + [24] #xxxx.1.1.num.bool <0 (0x0)> + [25] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9 (0x9)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [6] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [7] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <256 (0x100)> + [10] #xxxx.1.1.num.int <128 (0x80)> + [11] #xxxx.1.1.num.int <127 (0x7f)> + [12] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [13] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [14] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [15] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [16] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [17] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [18] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [19] #xxxx.1.1.num.int <305419896 (0x12345678)> + [20] #xxxx.1.1.num.int <1193046 (0x123456)> + [21] #xxxx.1.1.num.int <4660 (0x1234)> + [22] #xxxx.1.1.num.int <18 (0x12)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #0.0.nil + [25] #xxxx.1.1.num.bool <0 (0x0)> + [26] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <39 (0x27)> + [1] #xxxx.1.1.num.int <9 (0x9)> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [7] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [8] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <256 (0x100)> + [11] #xxxx.1.1.num.int <128 (0x80)> + [12] #xxxx.1.1.num.int <127 (0x7f)> + [13] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [14] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [15] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [16] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [17] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [18] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [19] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [20] #xxxx.1.1.num.int <305419896 (0x12345678)> + [21] #xxxx.1.1.num.int <1193046 (0x123456)> + [22] #xxxx.1.1.num.int <4660 (0x1234)> + [23] #xxxx.1.1.num.int <18 (0x12)> + [24] #xxxx.1.1.num.int <0 (0x0)> + [25] #0.0.nil + [26] #xxxx.1.1.num.bool <0 (0x0)> + [27] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <92 (0x5c)> + [1] #xxxx.1.1.num.int <39 (0x27)> + [2] #xxxx.1.1.num.int <9 (0x9)> + [3] #xxxx.1.1.num.int <10 (0xa)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [8] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [9] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <256 (0x100)> + [12] #xxxx.1.1.num.int <128 (0x80)> + [13] #xxxx.1.1.num.int <127 (0x7f)> + [14] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [15] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [16] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [17] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [18] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [19] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [20] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [21] #xxxx.1.1.num.int <305419896 (0x12345678)> + [22] #xxxx.1.1.num.int <1193046 (0x123456)> + [23] #xxxx.1.1.num.int <4660 (0x1234)> + [24] #xxxx.1.1.num.int <18 (0x12)> + [25] #xxxx.1.1.num.int <0 (0x0)> + [26] #0.0.nil + [27] #xxxx.1.1.num.bool <0 (0x0)> + [28] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <97 (0x61)> + [1] #xxxx.1.1.num.int <92 (0x5c)> + [2] #xxxx.1.1.num.int <39 (0x27)> + [3] #xxxx.1.1.num.int <9 (0x9)> + [4] #xxxx.1.1.num.int <10 (0xa)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [9] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [10] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <256 (0x100)> + [13] #xxxx.1.1.num.int <128 (0x80)> + [14] #xxxx.1.1.num.int <127 (0x7f)> + [15] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [16] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [17] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [18] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [19] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [20] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [21] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [22] #xxxx.1.1.num.int <305419896 (0x12345678)> + [23] #xxxx.1.1.num.int <1193046 (0x123456)> + [24] #xxxx.1.1.num.int <4660 (0x1234)> + [25] #xxxx.1.1.num.int <18 (0x12)> + [26] #xxxx.1.1.num.int <0 (0x0)> + [27] #0.0.nil + [28] #xxxx.1.1.num.bool <0 (0x0)> + [29] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <8364 (0x20ac)> + [1] #xxxx.1.1.num.int <97 (0x61)> + [2] #xxxx.1.1.num.int <92 (0x5c)> + [3] #xxxx.1.1.num.int <39 (0x27)> + [4] #xxxx.1.1.num.int <9 (0x9)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [10] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [11] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <256 (0x100)> + [14] #xxxx.1.1.num.int <128 (0x80)> + [15] #xxxx.1.1.num.int <127 (0x7f)> + [16] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [17] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [18] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [19] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [20] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [21] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [22] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [23] #xxxx.1.1.num.int <305419896 (0x12345678)> + [24] #xxxx.1.1.num.int <1193046 (0x123456)> + [25] #xxxx.1.1.num.int <4660 (0x1234)> + [26] #xxxx.1.1.num.int <18 (0x12)> + [27] #xxxx.1.1.num.int <0 (0x0)> + [28] #0.0.nil + [29] #xxxx.1.1.num.bool <0 (0x0)> + [30] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <8364 (0x20ac)> + [1] #xxxx.1.1.num.int <8364 (0x20ac)> + [2] #xxxx.1.1.num.int <97 (0x61)> + [3] #xxxx.1.1.num.int <92 (0x5c)> + [4] #xxxx.1.1.num.int <39 (0x27)> + [5] #xxxx.1.1.num.int <9 (0x9)> + [6] #xxxx.1.1.num.int <10 (0xa)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [11] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [12] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <256 (0x100)> + [15] #xxxx.1.1.num.int <128 (0x80)> + [16] #xxxx.1.1.num.int <127 (0x7f)> + [17] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [18] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [19] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [20] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [21] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [22] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [23] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [24] #xxxx.1.1.num.int <305419896 (0x12345678)> + [25] #xxxx.1.1.num.int <1193046 (0x123456)> + [26] #xxxx.1.1.num.int <4660 (0x1234)> + [27] #xxxx.1.1.num.int <18 (0x12)> + [28] #xxxx.1.1.num.int <0 (0x0)> + [29] #0.0.nil + [30] #xxxx.1.1.num.bool <0 (0x0)> + [31] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <78934 (0x13456)> + [1] #xxxx.1.1.num.int <8364 (0x20ac)> + [2] #xxxx.1.1.num.int <8364 (0x20ac)> + [3] #xxxx.1.1.num.int <97 (0x61)> + [4] #xxxx.1.1.num.int <92 (0x5c)> + [5] #xxxx.1.1.num.int <39 (0x27)> + [6] #xxxx.1.1.num.int <9 (0x9)> + [7] #xxxx.1.1.num.int <10 (0xa)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [12] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [13] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <256 (0x100)> + [16] #xxxx.1.1.num.int <128 (0x80)> + [17] #xxxx.1.1.num.int <127 (0x7f)> + [18] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [19] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [20] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [21] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [22] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [23] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [24] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [25] #xxxx.1.1.num.int <305419896 (0x12345678)> + [26] #xxxx.1.1.num.int <1193046 (0x123456)> + [27] #xxxx.1.1.num.int <4660 (0x1234)> + [28] #xxxx.1.1.num.int <18 (0x12)> + [29] #xxxx.1.1.num.int <0 (0x0)> + [30] #0.0.nil + [31] #xxxx.1.1.num.bool <0 (0x0)> + [32] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <305419896 (0x12345678)> + [1] #xxxx.1.1.num.int <78934 (0x13456)> + [2] #xxxx.1.1.num.int <8364 (0x20ac)> + [3] #xxxx.1.1.num.int <8364 (0x20ac)> + [4] #xxxx.1.1.num.int <97 (0x61)> + [5] #xxxx.1.1.num.int <92 (0x5c)> + [6] #xxxx.1.1.num.int <39 (0x27)> + [7] #xxxx.1.1.num.int <9 (0x9)> + [8] #xxxx.1.1.num.int <10 (0xa)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [13] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [14] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <256 (0x100)> + [17] #xxxx.1.1.num.int <128 (0x80)> + [18] #xxxx.1.1.num.int <127 (0x7f)> + [19] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [20] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [21] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [22] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [23] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [24] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [25] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [26] #xxxx.1.1.num.int <305419896 (0x12345678)> + [27] #xxxx.1.1.num.int <1193046 (0x123456)> + [28] #xxxx.1.1.num.int <4660 (0x1234)> + [29] #xxxx.1.1.num.int <18 (0x12)> + [30] #xxxx.1.1.num.int <0 (0x0)> + [31] #0.0.nil + [32] #xxxx.1.1.num.bool <0 (0x0)> + [33] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "€"> + [1] #xxxx.1.1.num.int <305419896 (0x12345678)> + [2] #xxxx.1.1.num.int <78934 (0x13456)> + [3] #xxxx.1.1.num.int <8364 (0x20ac)> + [4] #xxxx.1.1.num.int <8364 (0x20ac)> + [5] #xxxx.1.1.num.int <97 (0x61)> + [6] #xxxx.1.1.num.int <92 (0x5c)> + [7] #xxxx.1.1.num.int <39 (0x27)> + [8] #xxxx.1.1.num.int <9 (0x9)> + [9] #xxxx.1.1.num.int <10 (0xa)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [14] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [15] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <256 (0x100)> + [18] #xxxx.1.1.num.int <128 (0x80)> + [19] #xxxx.1.1.num.int <127 (0x7f)> + [20] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [21] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [22] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [23] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [24] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [25] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [26] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [27] #xxxx.1.1.num.int <305419896 (0x12345678)> + [28] #xxxx.1.1.num.int <1193046 (0x123456)> + [29] #xxxx.1.1.num.int <4660 (0x1234)> + [30] #xxxx.1.1.num.int <18 (0x12)> + [31] #xxxx.1.1.num.int <0 (0x0)> + [32] #0.0.nil + [33] #xxxx.1.1.num.bool <0 (0x0)> + [34] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "€ XX X"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "€"> + [2] #xxxx.1.1.num.int <305419896 (0x12345678)> + [3] #xxxx.1.1.num.int <78934 (0x13456)> + [4] #xxxx.1.1.num.int <8364 (0x20ac)> + [5] #xxxx.1.1.num.int <8364 (0x20ac)> + [6] #xxxx.1.1.num.int <97 (0x61)> + [7] #xxxx.1.1.num.int <92 (0x5c)> + [8] #xxxx.1.1.num.int <39 (0x27)> + [9] #xxxx.1.1.num.int <9 (0x9)> + [10] #xxxx.1.1.num.int <10 (0xa)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [15] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [16] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <256 (0x100)> + [19] #xxxx.1.1.num.int <128 (0x80)> + [20] #xxxx.1.1.num.int <127 (0x7f)> + [21] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [22] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [23] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [24] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [25] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [26] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [27] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [28] #xxxx.1.1.num.int <305419896 (0x12345678)> + [29] #xxxx.1.1.num.int <1193046 (0x123456)> + [30] #xxxx.1.1.num.int <4660 (0x1234)> + [31] #xxxx.1.1.num.int <18 (0x12)> + [32] #xxxx.1.1.num.int <0 (0x0)> + [33] #0.0.nil + [34] #xxxx.1.1.num.bool <0 (0x0)> + [35] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "€ XX X"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "€"> + [3] #xxxx.1.1.num.int <305419896 (0x12345678)> + [4] #xxxx.1.1.num.int <78934 (0x13456)> + [5] #xxxx.1.1.num.int <8364 (0x20ac)> + [6] #xxxx.1.1.num.int <8364 (0x20ac)> + [7] #xxxx.1.1.num.int <97 (0x61)> + [8] #xxxx.1.1.num.int <92 (0x5c)> + [9] #xxxx.1.1.num.int <39 (0x27)> + [10] #xxxx.1.1.num.int <9 (0x9)> + [11] #xxxx.1.1.num.int <10 (0xa)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [16] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [17] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <256 (0x100)> + [20] #xxxx.1.1.num.int <128 (0x80)> + [21] #xxxx.1.1.num.int <127 (0x7f)> + [22] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [23] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [24] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [25] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [26] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [27] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [28] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [29] #xxxx.1.1.num.int <305419896 (0x12345678)> + [30] #xxxx.1.1.num.int <1193046 (0x123456)> + [31] #xxxx.1.1.num.int <4660 (0x1234)> + [32] #xxxx.1.1.num.int <18 (0x12)> + [33] #xxxx.1.1.num.int <0 (0x0)> + [34] #0.0.nil + [35] #xxxx.1.1.num.bool <0 (0x0)> + [36] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.5.mem.ro> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "€ XX X"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "€"> + [4] #xxxx.1.1.num.int <305419896 (0x12345678)> + [5] #xxxx.1.1.num.int <78934 (0x13456)> + [6] #xxxx.1.1.num.int <8364 (0x20ac)> + [7] #xxxx.1.1.num.int <8364 (0x20ac)> + [8] #xxxx.1.1.num.int <97 (0x61)> + [9] #xxxx.1.1.num.int <92 (0x5c)> + [10] #xxxx.1.1.num.int <39 (0x27)> + [11] #xxxx.1.1.num.int <9 (0x9)> + [12] #xxxx.1.1.num.int <10 (0xa)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [17] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [18] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <256 (0x100)> + [21] #xxxx.1.1.num.int <128 (0x80)> + [22] #xxxx.1.1.num.int <127 (0x7f)> + [23] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [24] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [25] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [26] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [27] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [28] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [29] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [30] #xxxx.1.1.num.int <305419896 (0x12345678)> + [31] #xxxx.1.1.num.int <1193046 (0x123456)> + [32] #xxxx.1.1.num.int <4660 (0x1234)> + [33] #xxxx.1.1.num.int <18 (0x12)> + [34] #xxxx.1.1.num.int <0 (0x0)> + [35] #0.0.nil + [36] #xxxx.1.1.num.bool <0 (0x0)> + [37] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [5] #xxxx.1.1.num.int <305419896 (0x12345678)> + [6] #xxxx.1.1.num.int <78934 (0x13456)> + [7] #xxxx.1.1.num.int <8364 (0x20ac)> + [8] #xxxx.1.1.num.int <8364 (0x20ac)> + [9] #xxxx.1.1.num.int <97 (0x61)> + [10] #xxxx.1.1.num.int <92 (0x5c)> + [11] #xxxx.1.1.num.int <39 (0x27)> + [12] #xxxx.1.1.num.int <9 (0x9)> + [13] #xxxx.1.1.num.int <10 (0xa)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [18] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [19] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <256 (0x100)> + [22] #xxxx.1.1.num.int <128 (0x80)> + [23] #xxxx.1.1.num.int <127 (0x7f)> + [24] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [25] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [26] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [27] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [28] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [29] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [30] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [31] #xxxx.1.1.num.int <305419896 (0x12345678)> + [32] #xxxx.1.1.num.int <1193046 (0x123456)> + [33] #xxxx.1.1.num.int <4660 (0x1234)> + [34] #xxxx.1.1.num.int <18 (0x12)> + [35] #xxxx.1.1.num.int <0 (0x0)> + [36] #0.0.nil + [37] #xxxx.1.1.num.bool <0 (0x0)> + [38] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [2] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [6] #xxxx.1.1.num.int <305419896 (0x12345678)> + [7] #xxxx.1.1.num.int <78934 (0x13456)> + [8] #xxxx.1.1.num.int <8364 (0x20ac)> + [9] #xxxx.1.1.num.int <8364 (0x20ac)> + [10] #xxxx.1.1.num.int <97 (0x61)> + [11] #xxxx.1.1.num.int <92 (0x5c)> + [12] #xxxx.1.1.num.int <39 (0x27)> + [13] #xxxx.1.1.num.int <9 (0x9)> + [14] #xxxx.1.1.num.int <10 (0xa)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [19] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [20] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <256 (0x100)> + [23] #xxxx.1.1.num.int <128 (0x80)> + [24] #xxxx.1.1.num.int <127 (0x7f)> + [25] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [26] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [27] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [28] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [29] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [30] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [31] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [32] #xxxx.1.1.num.int <305419896 (0x12345678)> + [33] #xxxx.1.1.num.int <1193046 (0x123456)> + [34] #xxxx.1.1.num.int <4660 (0x1234)> + [35] #xxxx.1.1.num.int <18 (0x12)> + [36] #xxxx.1.1.num.int <0 (0x0)> + [37] #0.0.nil + [38] #xxxx.1.1.num.bool <0 (0x0)> + [39] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [2] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [6] #xxxx.1.1.num.int <305419896 (0x12345678)> + [7] #xxxx.1.1.num.int <78934 (0x13456)> + [8] #xxxx.1.1.num.int <8364 (0x20ac)> + [9] #xxxx.1.1.num.int <8364 (0x20ac)> + [10] #xxxx.1.1.num.int <97 (0x61)> + [11] #xxxx.1.1.num.int <92 (0x5c)> + [12] #xxxx.1.1.num.int <39 (0x27)> + [13] #xxxx.1.1.num.int <9 (0x9)> + [14] #xxxx.1.1.num.int <10 (0xa)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [19] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [20] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <256 (0x100)> + [23] #xxxx.1.1.num.int <128 (0x80)> + [24] #xxxx.1.1.num.int <127 (0x7f)> + [25] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [26] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [27] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [28] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [29] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [30] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [31] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [32] #xxxx.1.1.num.int <305419896 (0x12345678)> + [33] #xxxx.1.1.num.int <1193046 (0x123456)> + [34] #xxxx.1.1.num.int <4660 (0x1234)> + [35] #xxxx.1.1.num.int <18 (0x12)> + [36] #xxxx.1.1.num.int <0 (0x0)> + [37] #0.0.nil + [38] #xxxx.1.1.num.bool <0 (0x0)> + [39] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [3] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [7] #xxxx.1.1.num.int <305419896 (0x12345678)> + [8] #xxxx.1.1.num.int <78934 (0x13456)> + [9] #xxxx.1.1.num.int <8364 (0x20ac)> + [10] #xxxx.1.1.num.int <8364 (0x20ac)> + [11] #xxxx.1.1.num.int <97 (0x61)> + [12] #xxxx.1.1.num.int <92 (0x5c)> + [13] #xxxx.1.1.num.int <39 (0x27)> + [14] #xxxx.1.1.num.int <9 (0x9)> + [15] #xxxx.1.1.num.int <10 (0xa)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [20] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [21] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <256 (0x100)> + [24] #xxxx.1.1.num.int <128 (0x80)> + [25] #xxxx.1.1.num.int <127 (0x7f)> + [26] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [27] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [28] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [29] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [30] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [31] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [32] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [33] #xxxx.1.1.num.int <305419896 (0x12345678)> + [34] #xxxx.1.1.num.int <1193046 (0x123456)> + [35] #xxxx.1.1.num.int <4660 (0x1234)> + [36] #xxxx.1.1.num.int <18 (0x12)> + [37] #xxxx.1.1.num.int <0 (0x0)> + [38] #0.0.nil + [39] #xxxx.1.1.num.bool <0 (0x0)> + [40] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.array + [3] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [4] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [8] #xxxx.1.1.num.int <305419896 (0x12345678)> + [9] #xxxx.1.1.num.int <78934 (0x13456)> + [10] #xxxx.1.1.num.int <8364 (0x20ac)> + [11] #xxxx.1.1.num.int <8364 (0x20ac)> + [12] #xxxx.1.1.num.int <97 (0x61)> + [13] #xxxx.1.1.num.int <92 (0x5c)> + [14] #xxxx.1.1.num.int <39 (0x27)> + [15] #xxxx.1.1.num.int <9 (0x9)> + [16] #xxxx.1.1.num.int <10 (0xa)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [21] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [22] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <256 (0x100)> + [25] #xxxx.1.1.num.int <128 (0x80)> + [26] #xxxx.1.1.num.int <127 (0x7f)> + [27] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [28] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [29] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [30] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [31] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [32] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [33] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [34] #xxxx.1.1.num.int <305419896 (0x12345678)> + [35] #xxxx.1.1.num.int <1193046 (0x123456)> + [36] #xxxx.1.1.num.int <4660 (0x1234)> + [37] #xxxx.1.1.num.int <18 (0x12)> + [38] #xxxx.1.1.num.int <0 (0x0)> + [39] #0.0.nil + [40] #xxxx.1.1.num.bool <0 (0x0)> + [41] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.array + [4] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [5] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [9] #xxxx.1.1.num.int <305419896 (0x12345678)> + [10] #xxxx.1.1.num.int <78934 (0x13456)> + [11] #xxxx.1.1.num.int <8364 (0x20ac)> + [12] #xxxx.1.1.num.int <8364 (0x20ac)> + [13] #xxxx.1.1.num.int <97 (0x61)> + [14] #xxxx.1.1.num.int <92 (0x5c)> + [15] #xxxx.1.1.num.int <39 (0x27)> + [16] #xxxx.1.1.num.int <9 (0x9)> + [17] #xxxx.1.1.num.int <10 (0xa)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [22] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [23] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [24] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #xxxx.1.1.num.int <256 (0x100)> + [26] #xxxx.1.1.num.int <128 (0x80)> + [27] #xxxx.1.1.num.int <127 (0x7f)> + [28] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [29] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [30] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [31] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [32] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [33] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [34] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [35] #xxxx.1.1.num.int <305419896 (0x12345678)> + [36] #xxxx.1.1.num.int <1193046 (0x123456)> + [37] #xxxx.1.1.num.int <4660 (0x1234)> + [38] #xxxx.1.1.num.int <18 (0x12)> + [39] #xxxx.1.1.num.int <0 (0x0)> + [40] #0.0.nil + [41] #xxxx.1.1.num.bool <0 (0x0)> + [42] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.array + [5] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [6] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [10] #xxxx.1.1.num.int <305419896 (0x12345678)> + [11] #xxxx.1.1.num.int <78934 (0x13456)> + [12] #xxxx.1.1.num.int <8364 (0x20ac)> + [13] #xxxx.1.1.num.int <8364 (0x20ac)> + [14] #xxxx.1.1.num.int <97 (0x61)> + [15] #xxxx.1.1.num.int <92 (0x5c)> + [16] #xxxx.1.1.num.int <39 (0x27)> + [17] #xxxx.1.1.num.int <9 (0x9)> + [18] #xxxx.1.1.num.int <10 (0xa)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [23] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [24] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [25] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #xxxx.1.1.num.int <256 (0x100)> + [27] #xxxx.1.1.num.int <128 (0x80)> + [28] #xxxx.1.1.num.int <127 (0x7f)> + [29] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [30] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [31] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [32] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [33] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [34] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [35] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [36] #xxxx.1.1.num.int <305419896 (0x12345678)> + [37] #xxxx.1.1.num.int <1193046 (0x123456)> + [38] #xxxx.1.1.num.int <4660 (0x1234)> + [39] #xxxx.1.1.num.int <18 (0x12)> + [40] #xxxx.1.1.num.int <0 (0x0)> + [41] #0.0.nil + [42] #xxxx.1.1.num.bool <0 (0x0)> + [43] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.array + [2] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [3] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [7] #xxxx.1.1.num.int <305419896 (0x12345678)> + [8] #xxxx.1.1.num.int <78934 (0x13456)> + [9] #xxxx.1.1.num.int <8364 (0x20ac)> + [10] #xxxx.1.1.num.int <8364 (0x20ac)> + [11] #xxxx.1.1.num.int <97 (0x61)> + [12] #xxxx.1.1.num.int <92 (0x5c)> + [13] #xxxx.1.1.num.int <39 (0x27)> + [14] #xxxx.1.1.num.int <9 (0x9)> + [15] #xxxx.1.1.num.int <10 (0xa)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [20] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [21] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <256 (0x100)> + [24] #xxxx.1.1.num.int <128 (0x80)> + [25] #xxxx.1.1.num.int <127 (0x7f)> + [26] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [27] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [28] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [29] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [30] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [31] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [32] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [33] #xxxx.1.1.num.int <305419896 (0x12345678)> + [34] #xxxx.1.1.num.int <1193046 (0x123456)> + [35] #xxxx.1.1.num.int <4660 (0x1234)> + [36] #xxxx.1.1.num.int <18 (0x12)> + [37] #xxxx.1.1.num.int <0 (0x0)> + [38] #0.0.nil + [39] #xxxx.1.1.num.bool <0 (0x0)> + [40] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.array + [3] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [4] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [8] #xxxx.1.1.num.int <305419896 (0x12345678)> + [9] #xxxx.1.1.num.int <78934 (0x13456)> + [10] #xxxx.1.1.num.int <8364 (0x20ac)> + [11] #xxxx.1.1.num.int <8364 (0x20ac)> + [12] #xxxx.1.1.num.int <97 (0x61)> + [13] #xxxx.1.1.num.int <92 (0x5c)> + [14] #xxxx.1.1.num.int <39 (0x27)> + [15] #xxxx.1.1.num.int <9 (0x9)> + [16] #xxxx.1.1.num.int <10 (0xa)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [21] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [22] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <256 (0x100)> + [25] #xxxx.1.1.num.int <128 (0x80)> + [26] #xxxx.1.1.num.int <127 (0x7f)> + [27] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [28] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [29] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [30] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [31] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [32] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [33] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [34] #xxxx.1.1.num.int <305419896 (0x12345678)> + [35] #xxxx.1.1.num.int <1193046 (0x123456)> + [36] #xxxx.1.1.num.int <4660 (0x1234)> + [37] #xxxx.1.1.num.int <18 (0x12)> + [38] #xxxx.1.1.num.int <0 (0x0)> + [39] #0.0.nil + [40] #xxxx.1.1.num.bool <0 (0x0)> + [41] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.array + [3] #xxxx.1.1.array + [4] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [5] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [9] #xxxx.1.1.num.int <305419896 (0x12345678)> + [10] #xxxx.1.1.num.int <78934 (0x13456)> + [11] #xxxx.1.1.num.int <8364 (0x20ac)> + [12] #xxxx.1.1.num.int <8364 (0x20ac)> + [13] #xxxx.1.1.num.int <97 (0x61)> + [14] #xxxx.1.1.num.int <92 (0x5c)> + [15] #xxxx.1.1.num.int <39 (0x27)> + [16] #xxxx.1.1.num.int <9 (0x9)> + [17] #xxxx.1.1.num.int <10 (0xa)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [22] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [23] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [24] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #xxxx.1.1.num.int <256 (0x100)> + [26] #xxxx.1.1.num.int <128 (0x80)> + [27] #xxxx.1.1.num.int <127 (0x7f)> + [28] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [29] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [30] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [31] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [32] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [33] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [34] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [35] #xxxx.1.1.num.int <305419896 (0x12345678)> + [36] #xxxx.1.1.num.int <1193046 (0x123456)> + [37] #xxxx.1.1.num.int <4660 (0x1234)> + [38] #xxxx.1.1.num.int <18 (0x12)> + [39] #xxxx.1.1.num.int <0 (0x0)> + [40] #0.0.nil + [41] #xxxx.1.1.num.bool <0 (0x0)> + [42] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.array + [4] #xxxx.1.1.array + [5] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [6] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [10] #xxxx.1.1.num.int <305419896 (0x12345678)> + [11] #xxxx.1.1.num.int <78934 (0x13456)> + [12] #xxxx.1.1.num.int <8364 (0x20ac)> + [13] #xxxx.1.1.num.int <8364 (0x20ac)> + [14] #xxxx.1.1.num.int <97 (0x61)> + [15] #xxxx.1.1.num.int <92 (0x5c)> + [16] #xxxx.1.1.num.int <39 (0x27)> + [17] #xxxx.1.1.num.int <9 (0x9)> + [18] #xxxx.1.1.num.int <10 (0xa)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [23] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [24] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [25] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #xxxx.1.1.num.int <256 (0x100)> + [27] #xxxx.1.1.num.int <128 (0x80)> + [28] #xxxx.1.1.num.int <127 (0x7f)> + [29] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [30] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [31] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [32] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [33] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [34] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [35] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [36] #xxxx.1.1.num.int <305419896 (0x12345678)> + [37] #xxxx.1.1.num.int <1193046 (0x123456)> + [38] #xxxx.1.1.num.int <4660 (0x1234)> + [39] #xxxx.1.1.num.int <18 (0x12)> + [40] #xxxx.1.1.num.int <0 (0x0)> + [41] #0.0.nil + [42] #xxxx.1.1.num.bool <0 (0x0)> + [43] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.3.num.prim <2 (0x2)> + [4] #xxxx.1.1.array + [5] #xxxx.1.1.array + [6] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [7] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [11] #xxxx.1.1.num.int <305419896 (0x12345678)> + [12] #xxxx.1.1.num.int <78934 (0x13456)> + [13] #xxxx.1.1.num.int <8364 (0x20ac)> + [14] #xxxx.1.1.num.int <8364 (0x20ac)> + [15] #xxxx.1.1.num.int <97 (0x61)> + [16] #xxxx.1.1.num.int <92 (0x5c)> + [17] #xxxx.1.1.num.int <39 (0x27)> + [18] #xxxx.1.1.num.int <9 (0x9)> + [19] #xxxx.1.1.num.int <10 (0xa)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [24] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [25] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [26] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #xxxx.1.1.num.int <256 (0x100)> + [28] #xxxx.1.1.num.int <128 (0x80)> + [29] #xxxx.1.1.num.int <127 (0x7f)> + [30] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [31] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [32] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [33] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [34] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [35] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [36] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [37] #xxxx.1.1.num.int <305419896 (0x12345678)> + [38] #xxxx.1.1.num.int <1193046 (0x123456)> + [39] #xxxx.1.1.num.int <4660 (0x1234)> + [40] #xxxx.1.1.num.int <18 (0x12)> + [41] #xxxx.1.1.num.int <0 (0x0)> + [42] #0.0.nil + [43] #xxxx.1.1.num.bool <0 (0x0)> + [44] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.3.num.prim <2 (0x2)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.3.num.prim <2 (0x2)> + [5] #xxxx.1.1.array + [6] #xxxx.1.1.array + [7] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [8] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [12] #xxxx.1.1.num.int <305419896 (0x12345678)> + [13] #xxxx.1.1.num.int <78934 (0x13456)> + [14] #xxxx.1.1.num.int <8364 (0x20ac)> + [15] #xxxx.1.1.num.int <8364 (0x20ac)> + [16] #xxxx.1.1.num.int <97 (0x61)> + [17] #xxxx.1.1.num.int <92 (0x5c)> + [18] #xxxx.1.1.num.int <39 (0x27)> + [19] #xxxx.1.1.num.int <9 (0x9)> + [20] #xxxx.1.1.num.int <10 (0xa)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #xxxx.1.1.num.int <256 (0x100)> + [29] #xxxx.1.1.num.int <128 (0x80)> + [30] #xxxx.1.1.num.int <127 (0x7f)> + [31] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [33] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [38] #xxxx.1.1.num.int <305419896 (0x12345678)> + [39] #xxxx.1.1.num.int <1193046 (0x123456)> + [40] #xxxx.1.1.num.int <4660 (0x1234)> + [41] #xxxx.1.1.num.int <18 (0x12)> + [42] #xxxx.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #xxxx.1.1.num.bool <0 (0x0)> + [45] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.3.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.array + [5] #xxxx.1.1.array + [6] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [7] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [11] #xxxx.1.1.num.int <305419896 (0x12345678)> + [12] #xxxx.1.1.num.int <78934 (0x13456)> + [13] #xxxx.1.1.num.int <8364 (0x20ac)> + [14] #xxxx.1.1.num.int <8364 (0x20ac)> + [15] #xxxx.1.1.num.int <97 (0x61)> + [16] #xxxx.1.1.num.int <92 (0x5c)> + [17] #xxxx.1.1.num.int <39 (0x27)> + [18] #xxxx.1.1.num.int <9 (0x9)> + [19] #xxxx.1.1.num.int <10 (0xa)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [24] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [25] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [26] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #xxxx.1.1.num.int <256 (0x100)> + [28] #xxxx.1.1.num.int <128 (0x80)> + [29] #xxxx.1.1.num.int <127 (0x7f)> + [30] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [31] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [32] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [33] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [34] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [35] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [36] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [37] #xxxx.1.1.num.int <305419896 (0x12345678)> + [38] #xxxx.1.1.num.int <1193046 (0x123456)> + [39] #xxxx.1.1.num.int <4660 (0x1234)> + [40] #xxxx.1.1.num.int <18 (0x12)> + [41] #xxxx.1.1.num.int <0 (0x0)> + [42] #0.0.nil + [43] #xxxx.1.1.num.bool <0 (0x0)> + [44] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.2.num.prim <2 (0x2)> + [5] #xxxx.1.1.array + [6] #xxxx.1.1.array + [7] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [8] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [12] #xxxx.1.1.num.int <305419896 (0x12345678)> + [13] #xxxx.1.1.num.int <78934 (0x13456)> + [14] #xxxx.1.1.num.int <8364 (0x20ac)> + [15] #xxxx.1.1.num.int <8364 (0x20ac)> + [16] #xxxx.1.1.num.int <97 (0x61)> + [17] #xxxx.1.1.num.int <92 (0x5c)> + [18] #xxxx.1.1.num.int <39 (0x27)> + [19] #xxxx.1.1.num.int <9 (0x9)> + [20] #xxxx.1.1.num.int <10 (0xa)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #xxxx.1.1.num.int <256 (0x100)> + [29] #xxxx.1.1.num.int <128 (0x80)> + [30] #xxxx.1.1.num.int <127 (0x7f)> + [31] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [33] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [38] #xxxx.1.1.num.int <305419896 (0x12345678)> + [39] #xxxx.1.1.num.int <1193046 (0x123456)> + [40] #xxxx.1.1.num.int <4660 (0x1234)> + [41] #xxxx.1.1.num.int <18 (0x12)> + [42] #xxxx.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #xxxx.1.1.num.bool <0 (0x0)> + [45] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.array + [2] #xxxx.1.1.array + [3] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [4] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [8] #xxxx.1.1.num.int <305419896 (0x12345678)> + [9] #xxxx.1.1.num.int <78934 (0x13456)> + [10] #xxxx.1.1.num.int <8364 (0x20ac)> + [11] #xxxx.1.1.num.int <8364 (0x20ac)> + [12] #xxxx.1.1.num.int <97 (0x61)> + [13] #xxxx.1.1.num.int <92 (0x5c)> + [14] #xxxx.1.1.num.int <39 (0x27)> + [15] #xxxx.1.1.num.int <9 (0x9)> + [16] #xxxx.1.1.num.int <10 (0xa)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [21] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [22] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <256 (0x100)> + [25] #xxxx.1.1.num.int <128 (0x80)> + [26] #xxxx.1.1.num.int <127 (0x7f)> + [27] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [28] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [29] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [30] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [31] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [32] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [33] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [34] #xxxx.1.1.num.int <305419896 (0x12345678)> + [35] #xxxx.1.1.num.int <1193046 (0x123456)> + [36] #xxxx.1.1.num.int <4660 (0x1234)> + [37] #xxxx.1.1.num.int <18 (0x12)> + [38] #xxxx.1.1.num.int <0 (0x0)> + [39] #0.0.nil + [40] #xxxx.1.1.num.bool <0 (0x0)> + [41] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.array + [3] #xxxx.1.1.array + [4] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [5] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [9] #xxxx.1.1.num.int <305419896 (0x12345678)> + [10] #xxxx.1.1.num.int <78934 (0x13456)> + [11] #xxxx.1.1.num.int <8364 (0x20ac)> + [12] #xxxx.1.1.num.int <8364 (0x20ac)> + [13] #xxxx.1.1.num.int <97 (0x61)> + [14] #xxxx.1.1.num.int <92 (0x5c)> + [15] #xxxx.1.1.num.int <39 (0x27)> + [16] #xxxx.1.1.num.int <9 (0x9)> + [17] #xxxx.1.1.num.int <10 (0xa)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [22] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [23] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [24] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #xxxx.1.1.num.int <256 (0x100)> + [26] #xxxx.1.1.num.int <128 (0x80)> + [27] #xxxx.1.1.num.int <127 (0x7f)> + [28] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [29] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [30] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [31] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [32] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [33] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [34] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [35] #xxxx.1.1.num.int <305419896 (0x12345678)> + [36] #xxxx.1.1.num.int <1193046 (0x123456)> + [37] #xxxx.1.1.num.int <4660 (0x1234)> + [38] #xxxx.1.1.num.int <18 (0x12)> + [39] #xxxx.1.1.num.int <0 (0x0)> + [40] #0.0.nil + [41] #xxxx.1.1.num.bool <0 (0x0)> + [42] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.array + [2] #xxxx.1.1.array + [3] #xxxx.1.1.array + [4] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [5] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [9] #xxxx.1.1.num.int <305419896 (0x12345678)> + [10] #xxxx.1.1.num.int <78934 (0x13456)> + [11] #xxxx.1.1.num.int <8364 (0x20ac)> + [12] #xxxx.1.1.num.int <8364 (0x20ac)> + [13] #xxxx.1.1.num.int <97 (0x61)> + [14] #xxxx.1.1.num.int <92 (0x5c)> + [15] #xxxx.1.1.num.int <39 (0x27)> + [16] #xxxx.1.1.num.int <9 (0x9)> + [17] #xxxx.1.1.num.int <10 (0xa)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [22] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [23] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [24] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #xxxx.1.1.num.int <256 (0x100)> + [26] #xxxx.1.1.num.int <128 (0x80)> + [27] #xxxx.1.1.num.int <127 (0x7f)> + [28] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [29] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [30] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [31] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [32] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [33] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [34] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [35] #xxxx.1.1.num.int <305419896 (0x12345678)> + [36] #xxxx.1.1.num.int <1193046 (0x123456)> + [37] #xxxx.1.1.num.int <4660 (0x1234)> + [38] #xxxx.1.1.num.int <18 (0x12)> + [39] #xxxx.1.1.num.int <0 (0x0)> + [40] #0.0.nil + [41] #xxxx.1.1.num.bool <0 (0x0)> + [42] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.hash + [2] #xxxx.1.1.array + [3] #xxxx.1.1.array + [4] #xxxx.1.1.array + [5] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [6] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€ XX X"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "€"> + [10] #xxxx.1.1.num.int <305419896 (0x12345678)> + [11] #xxxx.1.1.num.int <78934 (0x13456)> + [12] #xxxx.1.1.num.int <8364 (0x20ac)> + [13] #xxxx.1.1.num.int <8364 (0x20ac)> + [14] #xxxx.1.1.num.int <97 (0x61)> + [15] #xxxx.1.1.num.int <92 (0x5c)> + [16] #xxxx.1.1.num.int <39 (0x27)> + [17] #xxxx.1.1.num.int <9 (0x9)> + [18] #xxxx.1.1.num.int <10 (0xa)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [23] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [24] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [25] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #xxxx.1.1.num.int <256 (0x100)> + [27] #xxxx.1.1.num.int <128 (0x80)> + [28] #xxxx.1.1.num.int <127 (0x7f)> + [29] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [30] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [31] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [32] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [33] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [34] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [35] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [36] #xxxx.1.1.num.int <305419896 (0x12345678)> + [37] #xxxx.1.1.num.int <1193046 (0x123456)> + [38] #xxxx.1.1.num.int <4660 (0x1234)> + [39] #xxxx.1.1.num.int <18 (0x12)> + [40] #xxxx.1.1.num.int <0 (0x0)> + [41] #0.0.nil + [42] #xxxx.1.1.num.bool <0 (0x0)> + [43] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "a10"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.hash + [3] #xxxx.1.1.array + [4] #xxxx.1.1.array + [5] #xxxx.1.1.array + [6] #xxxx.1.1.mem.code.ro <#xxxx.1.7.mem.ro> + [7] #xxxx.1.1.mem.code.ro <#xxxx.1.7.mem.ro> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "€ XX X"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "€"> + [11] #xxxx.1.1.num.int <305419896 (0x12345678)> + [12] #xxxx.1.1.num.int <78934 (0x13456)> + [13] #xxxx.1.1.num.int <8364 (0x20ac)> + [14] #xxxx.1.1.num.int <8364 (0x20ac)> + [15] #xxxx.1.1.num.int <97 (0x61)> + [16] #xxxx.1.1.num.int <92 (0x5c)> + [17] #xxxx.1.1.num.int <39 (0x27)> + [18] #xxxx.1.1.num.int <9 (0x9)> + [19] #xxxx.1.1.num.int <10 (0xa)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [24] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [25] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [26] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #xxxx.1.1.num.int <256 (0x100)> + [28] #xxxx.1.1.num.int <128 (0x80)> + [29] #xxxx.1.1.num.int <127 (0x7f)> + [30] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [31] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [32] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [33] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [34] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [35] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [36] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [37] #xxxx.1.1.num.int <305419896 (0x12345678)> + [38] #xxxx.1.1.num.int <1193046 (0x123456)> + [39] #xxxx.1.1.num.int <4660 (0x1234)> + [40] #xxxx.1.1.num.int <18 (0x12)> + [41] #xxxx.1.1.num.int <0 (0x0)> + [42] #0.0.nil + [43] #xxxx.1.1.num.bool <0 (0x0)> + [44] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "a10"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.hash + [4] #xxxx.1.1.array + [5] #xxxx.1.1.array + [6] #xxxx.1.1.array + [7] #xxxx.1.1.mem.code.ro <#xxxx.1.7.mem.ro> + [8] #xxxx.1.1.mem.code.ro <#xxxx.1.7.mem.ro> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "€ XX X"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "€"> + [12] #xxxx.1.1.num.int <305419896 (0x12345678)> + [13] #xxxx.1.1.num.int <78934 (0x13456)> + [14] #xxxx.1.1.num.int <8364 (0x20ac)> + [15] #xxxx.1.1.num.int <8364 (0x20ac)> + [16] #xxxx.1.1.num.int <97 (0x61)> + [17] #xxxx.1.1.num.int <92 (0x5c)> + [18] #xxxx.1.1.num.int <39 (0x27)> + [19] #xxxx.1.1.num.int <9 (0x9)> + [20] #xxxx.1.1.num.int <10 (0xa)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #xxxx.1.1.num.int <256 (0x100)> + [29] #xxxx.1.1.num.int <128 (0x80)> + [30] #xxxx.1.1.num.int <127 (0x7f)> + [31] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [33] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [38] #xxxx.1.1.num.int <305419896 (0x12345678)> + [39] #xxxx.1.1.num.int <1193046 (0x123456)> + [40] #xxxx.1.1.num.int <4660 (0x1234)> + [41] #xxxx.1.1.num.int <18 (0x12)> + [42] #xxxx.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #xxxx.1.1.num.bool <0 (0x0)> + [45] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "a20"> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "a10"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.hash + [5] #xxxx.1.1.array + [6] #xxxx.1.1.array + [7] #xxxx.1.1.array + [8] #xxxx.1.1.mem.code.ro <#xxxx.1.8.mem.ro> + [9] #xxxx.1.1.mem.code.ro <#xxxx.1.8.mem.ro> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "€ XX X"> + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "€"> + [13] #xxxx.1.1.num.int <305419896 (0x12345678)> + [14] #xxxx.1.1.num.int <78934 (0x13456)> + [15] #xxxx.1.1.num.int <8364 (0x20ac)> + [16] #xxxx.1.1.num.int <8364 (0x20ac)> + [17] #xxxx.1.1.num.int <97 (0x61)> + [18] #xxxx.1.1.num.int <92 (0x5c)> + [19] #xxxx.1.1.num.int <39 (0x27)> + [20] #xxxx.1.1.num.int <9 (0x9)> + [21] #xxxx.1.1.num.int <10 (0xa)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [24] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [26] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [27] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [28] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [29] #xxxx.1.1.num.int <256 (0x100)> + [30] #xxxx.1.1.num.int <128 (0x80)> + [31] #xxxx.1.1.num.int <127 (0x7f)> + [32] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [33] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [34] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [35] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [36] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [37] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [38] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [39] #xxxx.1.1.num.int <305419896 (0x12345678)> + [40] #xxxx.1.1.num.int <1193046 (0x123456)> + [41] #xxxx.1.1.num.int <4660 (0x1234)> + [42] #xxxx.1.1.num.int <18 (0x12)> + [43] #xxxx.1.1.num.int <0 (0x0)> + [44] #0.0.nil + [45] #xxxx.1.1.num.bool <0 (0x0)> + [46] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "a20"> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "a10"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.hash + [6] #xxxx.1.1.array + [7] #xxxx.1.1.array + [8] #xxxx.1.1.array + [9] #xxxx.1.1.mem.code.ro <#xxxx.1.8.mem.ro> + [10] #xxxx.1.1.mem.code.ro <#xxxx.1.8.mem.ro> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "€ XX X"> + [13] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "€"> + [14] #xxxx.1.1.num.int <305419896 (0x12345678)> + [15] #xxxx.1.1.num.int <78934 (0x13456)> + [16] #xxxx.1.1.num.int <8364 (0x20ac)> + [17] #xxxx.1.1.num.int <8364 (0x20ac)> + [18] #xxxx.1.1.num.int <97 (0x61)> + [19] #xxxx.1.1.num.int <92 (0x5c)> + [20] #xxxx.1.1.num.int <39 (0x27)> + [21] #xxxx.1.1.num.int <9 (0x9)> + [22] #xxxx.1.1.num.int <10 (0xa)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [25] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [27] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [28] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [29] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [30] #xxxx.1.1.num.int <256 (0x100)> + [31] #xxxx.1.1.num.int <128 (0x80)> + [32] #xxxx.1.1.num.int <127 (0x7f)> + [33] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [34] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [35] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [36] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [37] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [38] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [39] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [40] #xxxx.1.1.num.int <305419896 (0x12345678)> + [41] #xxxx.1.1.num.int <1193046 (0x123456)> + [42] #xxxx.1.1.num.int <4660 (0x1234)> + [43] #xxxx.1.1.num.int <18 (0x12)> + [44] #xxxx.1.1.num.int <0 (0x0)> + [45] #0.0.nil + [46] #xxxx.1.1.num.bool <0 (0x0)> + [47] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.hash + [2] #xxxx.1.1.array + [3] #xxxx.1.1.array + [4] #xxxx.1.1.array + [5] #xxxx.1.1.mem.code.ro <#xxxx.1.8.mem.ro> + [6] #xxxx.1.1.mem.code.ro <#xxxx.1.8.mem.ro> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "€ XX X"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "€"> + [10] #xxxx.1.1.num.int <305419896 (0x12345678)> + [11] #xxxx.1.1.num.int <78934 (0x13456)> + [12] #xxxx.1.1.num.int <8364 (0x20ac)> + [13] #xxxx.1.1.num.int <8364 (0x20ac)> + [14] #xxxx.1.1.num.int <97 (0x61)> + [15] #xxxx.1.1.num.int <92 (0x5c)> + [16] #xxxx.1.1.num.int <39 (0x27)> + [17] #xxxx.1.1.num.int <9 (0x9)> + [18] #xxxx.1.1.num.int <10 (0xa)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [23] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [24] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [25] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #xxxx.1.1.num.int <256 (0x100)> + [27] #xxxx.1.1.num.int <128 (0x80)> + [28] #xxxx.1.1.num.int <127 (0x7f)> + [29] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [30] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [31] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [32] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [33] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [34] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [35] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [36] #xxxx.1.1.num.int <305419896 (0x12345678)> + [37] #xxxx.1.1.num.int <1193046 (0x123456)> + [38] #xxxx.1.1.num.int <4660 (0x1234)> + [39] #xxxx.1.1.num.int <18 (0x12)> + [40] #xxxx.1.1.num.int <0 (0x0)> + [41] #0.0.nil + [42] #xxxx.1.1.num.bool <0 (0x0)> + [43] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.hash + [2] #xxxx.1.1.hash + [3] #xxxx.1.1.array + [4] #xxxx.1.1.array + [5] #xxxx.1.1.array + [6] #xxxx.1.1.mem.code.ro <#xxxx.1.8.mem.ro> + [7] #xxxx.1.1.mem.code.ro <#xxxx.1.8.mem.ro> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "€ XX X"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "€"> + [11] #xxxx.1.1.num.int <305419896 (0x12345678)> + [12] #xxxx.1.1.num.int <78934 (0x13456)> + [13] #xxxx.1.1.num.int <8364 (0x20ac)> + [14] #xxxx.1.1.num.int <8364 (0x20ac)> + [15] #xxxx.1.1.num.int <97 (0x61)> + [16] #xxxx.1.1.num.int <92 (0x5c)> + [17] #xxxx.1.1.num.int <39 (0x27)> + [18] #xxxx.1.1.num.int <9 (0x9)> + [19] #xxxx.1.1.num.int <10 (0xa)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [24] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [25] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [26] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #xxxx.1.1.num.int <256 (0x100)> + [28] #xxxx.1.1.num.int <128 (0x80)> + [29] #xxxx.1.1.num.int <127 (0x7f)> + [30] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [31] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [32] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [33] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [34] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [35] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [36] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [37] #xxxx.1.1.num.int <305419896 (0x12345678)> + [38] #xxxx.1.1.num.int <1193046 (0x123456)> + [39] #xxxx.1.1.num.int <4660 (0x1234)> + [40] #xxxx.1.1.num.int <18 (0x12)> + [41] #xxxx.1.1.num.int <0 (0x0)> + [42] #0.0.nil + [43] #xxxx.1.1.num.bool <0 (0x0)> + [44] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "c10"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.hash + [3] #xxxx.1.1.hash + [4] #xxxx.1.1.array + [5] #xxxx.1.1.array + [6] #xxxx.1.1.array + [7] #xxxx.1.1.mem.code.ro <#xxxx.1.9.mem.ro> + [8] #xxxx.1.1.mem.code.ro <#xxxx.1.9.mem.ro> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "€ XX X"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "€"> + [12] #xxxx.1.1.num.int <305419896 (0x12345678)> + [13] #xxxx.1.1.num.int <78934 (0x13456)> + [14] #xxxx.1.1.num.int <8364 (0x20ac)> + [15] #xxxx.1.1.num.int <8364 (0x20ac)> + [16] #xxxx.1.1.num.int <97 (0x61)> + [17] #xxxx.1.1.num.int <92 (0x5c)> + [18] #xxxx.1.1.num.int <39 (0x27)> + [19] #xxxx.1.1.num.int <9 (0x9)> + [20] #xxxx.1.1.num.int <10 (0xa)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #xxxx.1.1.num.int <256 (0x100)> + [29] #xxxx.1.1.num.int <128 (0x80)> + [30] #xxxx.1.1.num.int <127 (0x7f)> + [31] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [33] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [38] #xxxx.1.1.num.int <305419896 (0x12345678)> + [39] #xxxx.1.1.num.int <1193046 (0x123456)> + [40] #xxxx.1.1.num.int <4660 (0x1234)> + [41] #xxxx.1.1.num.int <18 (0x12)> + [42] #xxxx.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #xxxx.1.1.num.bool <0 (0x0)> + [45] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "c10"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.hash + [4] #xxxx.1.1.hash + [5] #xxxx.1.1.array + [6] #xxxx.1.1.array + [7] #xxxx.1.1.array + [8] #xxxx.1.1.mem.code.ro <#xxxx.1.9.mem.ro> + [9] #xxxx.1.1.mem.code.ro <#xxxx.1.9.mem.ro> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "€ XX X"> + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "€"> + [13] #xxxx.1.1.num.int <305419896 (0x12345678)> + [14] #xxxx.1.1.num.int <78934 (0x13456)> + [15] #xxxx.1.1.num.int <8364 (0x20ac)> + [16] #xxxx.1.1.num.int <8364 (0x20ac)> + [17] #xxxx.1.1.num.int <97 (0x61)> + [18] #xxxx.1.1.num.int <92 (0x5c)> + [19] #xxxx.1.1.num.int <39 (0x27)> + [20] #xxxx.1.1.num.int <9 (0x9)> + [21] #xxxx.1.1.num.int <10 (0xa)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [24] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [26] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [27] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [28] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [29] #xxxx.1.1.num.int <256 (0x100)> + [30] #xxxx.1.1.num.int <128 (0x80)> + [31] #xxxx.1.1.num.int <127 (0x7f)> + [32] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [33] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [34] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [35] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [36] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [37] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [38] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [39] #xxxx.1.1.num.int <305419896 (0x12345678)> + [40] #xxxx.1.1.num.int <1193046 (0x123456)> + [41] #xxxx.1.1.num.int <4660 (0x1234)> + [42] #xxxx.1.1.num.int <18 (0x12)> + [43] #xxxx.1.1.num.int <0 (0x0)> + [44] #0.0.nil + [45] #xxxx.1.1.num.bool <0 (0x0)> + [46] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "c20"> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "c10"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.hash + [5] #xxxx.1.1.hash + [6] #xxxx.1.1.array + [7] #xxxx.1.1.array + [8] #xxxx.1.1.array + [9] #xxxx.1.1.mem.code.ro <#xxxx.1.10.mem.ro> + [10] #xxxx.1.1.mem.code.ro <#xxxx.1.10.mem.ro> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "€ XX X"> + [13] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "€"> + [14] #xxxx.1.1.num.int <305419896 (0x12345678)> + [15] #xxxx.1.1.num.int <78934 (0x13456)> + [16] #xxxx.1.1.num.int <8364 (0x20ac)> + [17] #xxxx.1.1.num.int <8364 (0x20ac)> + [18] #xxxx.1.1.num.int <97 (0x61)> + [19] #xxxx.1.1.num.int <92 (0x5c)> + [20] #xxxx.1.1.num.int <39 (0x27)> + [21] #xxxx.1.1.num.int <9 (0x9)> + [22] #xxxx.1.1.num.int <10 (0xa)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [25] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [27] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [28] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [29] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [30] #xxxx.1.1.num.int <256 (0x100)> + [31] #xxxx.1.1.num.int <128 (0x80)> + [32] #xxxx.1.1.num.int <127 (0x7f)> + [33] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [34] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [35] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [36] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [37] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [38] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [39] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [40] #xxxx.1.1.num.int <305419896 (0x12345678)> + [41] #xxxx.1.1.num.int <1193046 (0x123456)> + [42] #xxxx.1.1.num.int <4660 (0x1234)> + [43] #xxxx.1.1.num.int <18 (0x12)> + [44] #xxxx.1.1.num.int <0 (0x0)> + [45] #0.0.nil + [46] #xxxx.1.1.num.bool <0 (0x0)> + [47] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.hash + [2] #xxxx.1.1.hash + [3] #xxxx.1.1.array + [4] #xxxx.1.1.array + [5] #xxxx.1.1.array + [6] #xxxx.1.1.mem.code.ro <#xxxx.1.10.mem.ro> + [7] #xxxx.1.1.mem.code.ro <#xxxx.1.10.mem.ro> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "€ XX X"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "€"> + [11] #xxxx.1.1.num.int <305419896 (0x12345678)> + [12] #xxxx.1.1.num.int <78934 (0x13456)> + [13] #xxxx.1.1.num.int <8364 (0x20ac)> + [14] #xxxx.1.1.num.int <8364 (0x20ac)> + [15] #xxxx.1.1.num.int <97 (0x61)> + [16] #xxxx.1.1.num.int <92 (0x5c)> + [17] #xxxx.1.1.num.int <39 (0x27)> + [18] #xxxx.1.1.num.int <9 (0x9)> + [19] #xxxx.1.1.num.int <10 (0xa)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [24] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [25] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [26] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #xxxx.1.1.num.int <256 (0x100)> + [28] #xxxx.1.1.num.int <128 (0x80)> + [29] #xxxx.1.1.num.int <127 (0x7f)> + [30] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [31] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [32] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [33] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [34] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [35] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [36] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [37] #xxxx.1.1.num.int <305419896 (0x12345678)> + [38] #xxxx.1.1.num.int <1193046 (0x123456)> + [39] #xxxx.1.1.num.int <4660 (0x1234)> + [40] #xxxx.1.1.num.int <18 (0x12)> + [41] #xxxx.1.1.num.int <0 (0x0)> + [42] #0.0.nil + [43] #xxxx.1.1.num.bool <0 (0x0)> + [44] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.hash + [2] #xxxx.1.1.hash + [3] #xxxx.1.1.hash + [4] #xxxx.1.1.array + [5] #xxxx.1.1.array + [6] #xxxx.1.1.array + [7] #xxxx.1.1.mem.code.ro <#xxxx.1.10.mem.ro> + [8] #xxxx.1.1.mem.code.ro <#xxxx.1.10.mem.ro> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "€ XX X"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "€"> + [12] #xxxx.1.1.num.int <305419896 (0x12345678)> + [13] #xxxx.1.1.num.int <78934 (0x13456)> + [14] #xxxx.1.1.num.int <8364 (0x20ac)> + [15] #xxxx.1.1.num.int <8364 (0x20ac)> + [16] #xxxx.1.1.num.int <97 (0x61)> + [17] #xxxx.1.1.num.int <92 (0x5c)> + [18] #xxxx.1.1.num.int <39 (0x27)> + [19] #xxxx.1.1.num.int <9 (0x9)> + [20] #xxxx.1.1.num.int <10 (0xa)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #xxxx.1.1.num.int <256 (0x100)> + [29] #xxxx.1.1.num.int <128 (0x80)> + [30] #xxxx.1.1.num.int <127 (0x7f)> + [31] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [33] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [38] #xxxx.1.1.num.int <305419896 (0x12345678)> + [39] #xxxx.1.1.num.int <1193046 (0x123456)> + [40] #xxxx.1.1.num.int <4660 (0x1234)> + [41] #xxxx.1.1.num.int <18 (0x12)> + [42] #xxxx.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #xxxx.1.1.num.bool <0 (0x0)> + [45] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "a"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.hash + [3] #xxxx.1.1.hash + [4] #xxxx.1.1.hash + [5] #xxxx.1.1.array + [6] #xxxx.1.1.array + [7] #xxxx.1.1.array + [8] #xxxx.1.1.mem.code.ro <#xxxx.1.11.mem.ro> + [9] #xxxx.1.1.mem.code.ro <#xxxx.1.11.mem.ro> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "€ XX X"> + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "€"> + [13] #xxxx.1.1.num.int <305419896 (0x12345678)> + [14] #xxxx.1.1.num.int <78934 (0x13456)> + [15] #xxxx.1.1.num.int <8364 (0x20ac)> + [16] #xxxx.1.1.num.int <8364 (0x20ac)> + [17] #xxxx.1.1.num.int <97 (0x61)> + [18] #xxxx.1.1.num.int <92 (0x5c)> + [19] #xxxx.1.1.num.int <39 (0x27)> + [20] #xxxx.1.1.num.int <9 (0x9)> + [21] #xxxx.1.1.num.int <10 (0xa)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [24] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [26] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [27] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [28] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [29] #xxxx.1.1.num.int <256 (0x100)> + [30] #xxxx.1.1.num.int <128 (0x80)> + [31] #xxxx.1.1.num.int <127 (0x7f)> + [32] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [33] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [34] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [35] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [36] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [37] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [38] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [39] #xxxx.1.1.num.int <305419896 (0x12345678)> + [40] #xxxx.1.1.num.int <1193046 (0x123456)> + [41] #xxxx.1.1.num.int <4660 (0x1234)> + [42] #xxxx.1.1.num.int <18 (0x12)> + [43] #xxxx.1.1.num.int <0 (0x0)> + [44] #0.0.nil + [45] #xxxx.1.1.num.bool <0 (0x0)> + [46] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "a"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.hash + [4] #xxxx.1.1.hash + [5] #xxxx.1.1.hash + [6] #xxxx.1.1.array + [7] #xxxx.1.1.array + [8] #xxxx.1.1.array + [9] #xxxx.1.1.mem.code.ro <#xxxx.1.11.mem.ro> + [10] #xxxx.1.1.mem.code.ro <#xxxx.1.11.mem.ro> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "€ XX X"> + [13] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "€"> + [14] #xxxx.1.1.num.int <305419896 (0x12345678)> + [15] #xxxx.1.1.num.int <78934 (0x13456)> + [16] #xxxx.1.1.num.int <8364 (0x20ac)> + [17] #xxxx.1.1.num.int <8364 (0x20ac)> + [18] #xxxx.1.1.num.int <97 (0x61)> + [19] #xxxx.1.1.num.int <92 (0x5c)> + [20] #xxxx.1.1.num.int <39 (0x27)> + [21] #xxxx.1.1.num.int <9 (0x9)> + [22] #xxxx.1.1.num.int <10 (0xa)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [25] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [27] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [28] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [29] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [30] #xxxx.1.1.num.int <256 (0x100)> + [31] #xxxx.1.1.num.int <128 (0x80)> + [32] #xxxx.1.1.num.int <127 (0x7f)> + [33] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [34] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [35] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [36] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [37] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [38] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [39] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [40] #xxxx.1.1.num.int <305419896 (0x12345678)> + [41] #xxxx.1.1.num.int <1193046 (0x123456)> + [42] #xxxx.1.1.num.int <4660 (0x1234)> + [43] #xxxx.1.1.num.int <18 (0x12)> + [44] #xxxx.1.1.num.int <0 (0x0)> + [45] #0.0.nil + [46] #xxxx.1.1.num.bool <0 (0x0)> + [47] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "b"> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "a"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.hash + [5] #xxxx.1.1.hash + [6] #xxxx.1.1.hash + [7] #xxxx.1.1.array + [8] #xxxx.1.1.array + [9] #xxxx.1.1.array + [10] #xxxx.1.1.mem.code.ro <#xxxx.1.12.mem.ro> + [11] #xxxx.1.1.mem.code.ro <#xxxx.1.12.mem.ro> + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [13] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "€ XX X"> + [14] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "€"> + [15] #xxxx.1.1.num.int <305419896 (0x12345678)> + [16] #xxxx.1.1.num.int <78934 (0x13456)> + [17] #xxxx.1.1.num.int <8364 (0x20ac)> + [18] #xxxx.1.1.num.int <8364 (0x20ac)> + [19] #xxxx.1.1.num.int <97 (0x61)> + [20] #xxxx.1.1.num.int <92 (0x5c)> + [21] #xxxx.1.1.num.int <39 (0x27)> + [22] #xxxx.1.1.num.int <9 (0x9)> + [23] #xxxx.1.1.num.int <10 (0xa)> + [24] #xxxx.1.1.num.int <0 (0x0)> + [25] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [26] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [28] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [29] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [30] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [31] #xxxx.1.1.num.int <256 (0x100)> + [32] #xxxx.1.1.num.int <128 (0x80)> + [33] #xxxx.1.1.num.int <127 (0x7f)> + [34] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [35] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [36] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [37] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [38] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [39] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [40] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [41] #xxxx.1.1.num.int <305419896 (0x12345678)> + [42] #xxxx.1.1.num.int <1193046 (0x123456)> + [43] #xxxx.1.1.num.int <4660 (0x1234)> + [44] #xxxx.1.1.num.int <18 (0x12)> + [45] #xxxx.1.1.num.int <0 (0x0)> + [46] #0.0.nil + [47] #xxxx.1.1.num.bool <0 (0x0)> + [48] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "b"> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "a"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.hash + [6] #xxxx.1.1.hash + [7] #xxxx.1.1.hash + [8] #xxxx.1.1.array + [9] #xxxx.1.1.array + [10] #xxxx.1.1.array + [11] #xxxx.1.1.mem.code.ro <#xxxx.1.12.mem.ro> + [12] #xxxx.1.1.mem.code.ro <#xxxx.1.12.mem.ro> + [13] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [14] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "€ XX X"> + [15] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "€"> + [16] #xxxx.1.1.num.int <305419896 (0x12345678)> + [17] #xxxx.1.1.num.int <78934 (0x13456)> + [18] #xxxx.1.1.num.int <8364 (0x20ac)> + [19] #xxxx.1.1.num.int <8364 (0x20ac)> + [20] #xxxx.1.1.num.int <97 (0x61)> + [21] #xxxx.1.1.num.int <92 (0x5c)> + [22] #xxxx.1.1.num.int <39 (0x27)> + [23] #xxxx.1.1.num.int <9 (0x9)> + [24] #xxxx.1.1.num.int <10 (0xa)> + [25] #xxxx.1.1.num.int <0 (0x0)> + [26] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [27] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [29] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [30] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [31] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [32] #xxxx.1.1.num.int <256 (0x100)> + [33] #xxxx.1.1.num.int <128 (0x80)> + [34] #xxxx.1.1.num.int <127 (0x7f)> + [35] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [36] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [37] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [38] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [39] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [40] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [41] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [42] #xxxx.1.1.num.int <305419896 (0x12345678)> + [43] #xxxx.1.1.num.int <1193046 (0x123456)> + [44] #xxxx.1.1.num.int <4660 (0x1234)> + [45] #xxxx.1.1.num.int <18 (0x12)> + [46] #xxxx.1.1.num.int <0 (0x0)> + [47] #0.0.nil + [48] #xxxx.1.1.num.bool <0 (0x0)> + [49] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "c"> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "b"> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "a"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.hash + [7] #xxxx.1.1.hash + [8] #xxxx.1.1.hash + [9] #xxxx.1.1.array + [10] #xxxx.1.1.array + [11] #xxxx.1.1.array + [12] #xxxx.1.1.mem.code.ro <#xxxx.1.13.mem.ro> + [13] #xxxx.1.1.mem.code.ro <#xxxx.1.13.mem.ro> + [14] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [15] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "€ XX X"> + [16] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "€"> + [17] #xxxx.1.1.num.int <305419896 (0x12345678)> + [18] #xxxx.1.1.num.int <78934 (0x13456)> + [19] #xxxx.1.1.num.int <8364 (0x20ac)> + [20] #xxxx.1.1.num.int <8364 (0x20ac)> + [21] #xxxx.1.1.num.int <97 (0x61)> + [22] #xxxx.1.1.num.int <92 (0x5c)> + [23] #xxxx.1.1.num.int <39 (0x27)> + [24] #xxxx.1.1.num.int <9 (0x9)> + [25] #xxxx.1.1.num.int <10 (0xa)> + [26] #xxxx.1.1.num.int <0 (0x0)> + [27] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [28] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [29] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [30] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [31] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [32] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [33] #xxxx.1.1.num.int <256 (0x100)> + [34] #xxxx.1.1.num.int <128 (0x80)> + [35] #xxxx.1.1.num.int <127 (0x7f)> + [36] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [37] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [38] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [39] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [40] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [41] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [42] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [43] #xxxx.1.1.num.int <305419896 (0x12345678)> + [44] #xxxx.1.1.num.int <1193046 (0x123456)> + [45] #xxxx.1.1.num.int <4660 (0x1234)> + [46] #xxxx.1.1.num.int <18 (0x12)> + [47] #xxxx.1.1.num.int <0 (0x0)> + [48] #0.0.nil + [49] #xxxx.1.1.num.bool <0 (0x0)> + [50] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "c"> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "b"> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "a"> + [6] #xxxx.1.3.num.prim <4 (0x4)> + [7] #xxxx.1.1.hash + [8] #xxxx.1.1.hash + [9] #xxxx.1.1.hash + [10] #xxxx.1.1.array + [11] #xxxx.1.1.array + [12] #xxxx.1.1.array + [13] #xxxx.1.1.mem.code.ro <#xxxx.1.13.mem.ro> + [14] #xxxx.1.1.mem.code.ro <#xxxx.1.13.mem.ro> + [15] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [16] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "€ XX X"> + [17] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "€"> + [18] #xxxx.1.1.num.int <305419896 (0x12345678)> + [19] #xxxx.1.1.num.int <78934 (0x13456)> + [20] #xxxx.1.1.num.int <8364 (0x20ac)> + [21] #xxxx.1.1.num.int <8364 (0x20ac)> + [22] #xxxx.1.1.num.int <97 (0x61)> + [23] #xxxx.1.1.num.int <92 (0x5c)> + [24] #xxxx.1.1.num.int <39 (0x27)> + [25] #xxxx.1.1.num.int <9 (0x9)> + [26] #xxxx.1.1.num.int <10 (0xa)> + [27] #xxxx.1.1.num.int <0 (0x0)> + [28] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [29] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [30] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [31] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [32] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [33] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [34] #xxxx.1.1.num.int <256 (0x100)> + [35] #xxxx.1.1.num.int <128 (0x80)> + [36] #xxxx.1.1.num.int <127 (0x7f)> + [37] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [38] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [39] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [40] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [41] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [42] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [43] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [44] #xxxx.1.1.num.int <305419896 (0x12345678)> + [45] #xxxx.1.1.num.int <1193046 (0x123456)> + [46] #xxxx.1.1.num.int <4660 (0x1234)> + [47] #xxxx.1.1.num.int <18 (0x12)> + [48] #xxxx.1.1.num.int <0 (0x0)> + [49] #0.0.nil + [50] #xxxx.1.1.num.bool <0 (0x0)> + [51] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.13.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "d"> + [1] #xxxx.1.3.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "c"> + [3] #xxxx.1.1.num.int <2 (0x2)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "b"> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "a"> + [7] #xxxx.1.3.num.prim <4 (0x4)> + [8] #xxxx.1.1.hash + [9] #xxxx.1.1.hash + [10] #xxxx.1.1.hash + [11] #xxxx.1.1.array + [12] #xxxx.1.1.array + [13] #xxxx.1.1.array + [14] #xxxx.1.1.mem.code.ro <#xxxx.1.14.mem.ro> + [15] #xxxx.1.1.mem.code.ro <#xxxx.1.14.mem.ro> + [16] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [17] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "€ XX X"> + [18] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "€"> + [19] #xxxx.1.1.num.int <305419896 (0x12345678)> + [20] #xxxx.1.1.num.int <78934 (0x13456)> + [21] #xxxx.1.1.num.int <8364 (0x20ac)> + [22] #xxxx.1.1.num.int <8364 (0x20ac)> + [23] #xxxx.1.1.num.int <97 (0x61)> + [24] #xxxx.1.1.num.int <92 (0x5c)> + [25] #xxxx.1.1.num.int <39 (0x27)> + [26] #xxxx.1.1.num.int <9 (0x9)> + [27] #xxxx.1.1.num.int <10 (0xa)> + [28] #xxxx.1.1.num.int <0 (0x0)> + [29] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [30] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [31] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [32] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [33] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [34] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [35] #xxxx.1.1.num.int <256 (0x100)> + [36] #xxxx.1.1.num.int <128 (0x80)> + [37] #xxxx.1.1.num.int <127 (0x7f)> + [38] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [39] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [40] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [41] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [42] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [43] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [44] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [45] #xxxx.1.1.num.int <305419896 (0x12345678)> + [46] #xxxx.1.1.num.int <1193046 (0x123456)> + [47] #xxxx.1.1.num.int <4660 (0x1234)> + [48] #xxxx.1.1.num.int <18 (0x12)> + [49] #xxxx.1.1.num.int <0 (0x0)> + [50] #0.0.nil + [51] #xxxx.1.1.num.bool <0 (0x0)> + [52] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "d"> + [2] #xxxx.1.3.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "c"> + [4] #xxxx.1.1.num.int <2 (0x2)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "b"> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "a"> + [8] #xxxx.1.3.num.prim <4 (0x4)> + [9] #xxxx.1.1.hash + [10] #xxxx.1.1.hash + [11] #xxxx.1.1.hash + [12] #xxxx.1.1.array + [13] #xxxx.1.1.array + [14] #xxxx.1.1.array + [15] #xxxx.1.1.mem.code.ro <#xxxx.1.14.mem.ro> + [16] #xxxx.1.1.mem.code.ro <#xxxx.1.14.mem.ro> + [17] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [18] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "€ XX X"> + [19] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "€"> + [20] #xxxx.1.1.num.int <305419896 (0x12345678)> + [21] #xxxx.1.1.num.int <78934 (0x13456)> + [22] #xxxx.1.1.num.int <8364 (0x20ac)> + [23] #xxxx.1.1.num.int <8364 (0x20ac)> + [24] #xxxx.1.1.num.int <97 (0x61)> + [25] #xxxx.1.1.num.int <92 (0x5c)> + [26] #xxxx.1.1.num.int <39 (0x27)> + [27] #xxxx.1.1.num.int <9 (0x9)> + [28] #xxxx.1.1.num.int <10 (0xa)> + [29] #xxxx.1.1.num.int <0 (0x0)> + [30] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [31] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [32] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [33] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [34] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [35] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [36] #xxxx.1.1.num.int <256 (0x100)> + [37] #xxxx.1.1.num.int <128 (0x80)> + [38] #xxxx.1.1.num.int <127 (0x7f)> + [39] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [40] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [41] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [42] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [43] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [44] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [45] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [46] #xxxx.1.1.num.int <305419896 (0x12345678)> + [47] #xxxx.1.1.num.int <1193046 (0x123456)> + [48] #xxxx.1.1.num.int <4660 (0x1234)> + [49] #xxxx.1.1.num.int <18 (0x12)> + [50] #xxxx.1.1.num.int <0 (0x0)> + [51] #0.0.nil + [52] #xxxx.1.1.num.bool <0 (0x0)> + [53] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.3.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "c"> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "b"> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "a"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.hash + [8] #xxxx.1.1.hash + [9] #xxxx.1.1.hash + [10] #xxxx.1.1.array + [11] #xxxx.1.1.array + [12] #xxxx.1.1.array + [13] #xxxx.1.1.mem.code.ro <#xxxx.1.14.mem.ro> + [14] #xxxx.1.1.mem.code.ro <#xxxx.1.14.mem.ro> + [15] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [16] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "€ XX X"> + [17] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "€"> + [18] #xxxx.1.1.num.int <305419896 (0x12345678)> + [19] #xxxx.1.1.num.int <78934 (0x13456)> + [20] #xxxx.1.1.num.int <8364 (0x20ac)> + [21] #xxxx.1.1.num.int <8364 (0x20ac)> + [22] #xxxx.1.1.num.int <97 (0x61)> + [23] #xxxx.1.1.num.int <92 (0x5c)> + [24] #xxxx.1.1.num.int <39 (0x27)> + [25] #xxxx.1.1.num.int <9 (0x9)> + [26] #xxxx.1.1.num.int <10 (0xa)> + [27] #xxxx.1.1.num.int <0 (0x0)> + [28] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [29] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [30] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [31] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [32] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [33] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [34] #xxxx.1.1.num.int <256 (0x100)> + [35] #xxxx.1.1.num.int <128 (0x80)> + [36] #xxxx.1.1.num.int <127 (0x7f)> + [37] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [38] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [39] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [40] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [41] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [42] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [43] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [44] #xxxx.1.1.num.int <305419896 (0x12345678)> + [45] #xxxx.1.1.num.int <1193046 (0x123456)> + [46] #xxxx.1.1.num.int <4660 (0x1234)> + [47] #xxxx.1.1.num.int <18 (0x12)> + [48] #xxxx.1.1.num.int <0 (0x0)> + [49] #0.0.nil + [50] #xxxx.1.1.num.bool <0 (0x0)> + [51] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.hash + [2] #xxxx.1.1.hash + [3] #xxxx.1.1.hash + [4] #xxxx.1.1.array + [5] #xxxx.1.1.array + [6] #xxxx.1.1.array + [7] #xxxx.1.1.mem.code.ro <#xxxx.1.14.mem.ro> + [8] #xxxx.1.1.mem.code.ro <#xxxx.1.14.mem.ro> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "€ XX X"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "€"> + [12] #xxxx.1.1.num.int <305419896 (0x12345678)> + [13] #xxxx.1.1.num.int <78934 (0x13456)> + [14] #xxxx.1.1.num.int <8364 (0x20ac)> + [15] #xxxx.1.1.num.int <8364 (0x20ac)> + [16] #xxxx.1.1.num.int <97 (0x61)> + [17] #xxxx.1.1.num.int <92 (0x5c)> + [18] #xxxx.1.1.num.int <39 (0x27)> + [19] #xxxx.1.1.num.int <9 (0x9)> + [20] #xxxx.1.1.num.int <10 (0xa)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #xxxx.1.1.num.int <256 (0x100)> + [29] #xxxx.1.1.num.int <128 (0x80)> + [30] #xxxx.1.1.num.int <127 (0x7f)> + [31] #xxxx.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #xxxx.1.1.num.int <4294967294 (0xfffffffe)> + [33] #xxxx.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #xxxx.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #xxxx.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #xxxx.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #xxxx.1.1.num.int <78187493530 (0x123456789a)> + [38] #xxxx.1.1.num.int <305419896 (0x12345678)> + [39] #xxxx.1.1.num.int <1193046 (0x123456)> + [40] #xxxx.1.1.num.int <4660 (0x1234)> + [41] #xxxx.1.1.num.int <18 (0x12)> + [42] #xxxx.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #xxxx.1.1.num.bool <0 (0x0)> + [45] #xxxx.1.1.num.bool <1 (0x1)> diff --git a/tests/0000_constants/code.log.ref b/tests/0000_constants/code.log.ref new file mode 100644 index 0000000..e199474 --- /dev/null +++ b/tests/0000_constants/code.log.ref @@ -0,0 +1,141 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 84 entries (84 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 bool 12 true + 2 0x00009 bool 02 false + 3 0x0000a nil 00 nil + 5 4 0x0000b int 01 0 + 6 5 0x0000c int 81 12 0x12 + 7 6 0x0000e int 91 34 12 0x1234 + 8 7 0x00011 int a1 56 34 12 0x123456 + 9 8 0x00015 int b1 78 56 34 12 0x12345678 + 10 9 0x0001a int c1 9a 78 56 34 12 0x123456789a + 11 10 0x00020 int f1 f0 de bc 9a 78 56 34 0x123456789abcdef0 + 12 + 12 11 0x00029 int f1 10 21 43 65 87 a9 cb -0x123456789abcdef0 + ed + 13 12 0x00032 int f1 f0 de bc 9a 78 56 34 -0x6dcba98765432110 + 92 + 14 13 0x0003b int f1 10 21 43 65 87 a9 cb 0x6dcba98765432110 + 6d + 15 14 0x00044 int c1 fe ff ff ff 00 0xfffffffe + 16 15 0x0004a int c1 02 00 00 00 ff -0xfffffffe + 17 16 0x00050 int 81 7f 0x7f + 17 0x00052 int 91 80 00 0x80 + 18 0x00055 int 91 00 01 0x100 + 19 0x00058 int 81 ff -1 + 20 0x0005a int 81 fe -2 + 21 0x0005c int 81 80 -128 + 22 0x0005e int 91 7f ff -129 + 18 23 0x00061 int 81 ff -0x1 + 24 0x00063 int 91 02 ff -0xfe + 20 25 0x00066 int 01 '\x00' + 26 0x00067 int 81 0a '\n' + 27 0x00069 int 81 09 '\t' + 28 0x0006b int 81 27 '\'' + 29 0x0006d int 81 5c '\\' + 30 0x0006f int 81 61 'a' + 31 0x00071 int 91 ac 20 '\u20ac' + 21 32 0x00074 int 91 ac 20 '\u20ac' + 22 33 0x00077 int a1 56 34 01 '\U00013456' + 23 34 0x0007b int b1 78 56 34 12 '\U12345678' + 25 35 0x00080 str 37 e2 82 ac "€" + 26 36 0x00084 str 87 e2 82 ac 0a 58 58 0a "€\nXX\nX" + 58 + 27 37 0x0008d str d7 6e 01 31 32 33 34 35 "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834\n56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781\n2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678" + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 33 34 0a 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 33 34 35 36 37 38 + 31 32 33 34 35 36 37 38 + 31 0a 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 + 29 38 0x001fe code 16 { + 39 0x001ff prim 13 } + 30 40 0x00200 code 96 { + 41 0x00201 int 81 64 100 + 42 0x00203 int 91 c8 00 200 + 43 0x00206 int 91 2c 01 300 + 44 0x00209 prim 13 } + 32 45 0x0020a word 18 5b [ + 46 0x0020c word 18 5d ] + 33 47 0x0020e word 18 5b [ + 48 0x00210 int 81 0a 10 + 49 0x00212 int 81 14 20 + 50 0x00214 int 81 1e 30 + 51 0x00216 word 18 5d ] + 34 52 0x00218 word 18 5b [ + 53 0x0021a int 11 1 + 54 0x0021b int 21 2 + 55 0x0021c word 18 5b [ + 56 0x0021e int 31 3 + 57 0x0021f word 18 5d ] + 58 0x00221 int 41 4 + 59 0x00222 word 18 5d ] + 36 60 0x00224 word 18 28 ( + 61 0x00226 word 18 29 ) + 37 62 0x00228 word 18 28 ( + 63 0x0022a str 37 61 31 30 "a10" + 64 0x0022e int 81 64 100 + 65 0x00230 str 37 61 32 30 "a20" + 66 0x00234 int 91 c8 00 200 + 67 0x00237 word 18 29 ) + 38 68 0x00239 word 18 28 ( + 69 0x0023b str 37 63 31 30 "c10" + 70 0x0023f int 81 0a 10 + 71 0x00241 str 37 63 32 30 "c20" + 72 0x00245 word 18 29 ) + 39 73 0x00247 word 18 28 ( + 74 0x00249 str 17 61 "a" + 75 0x0024b int 11 1 + 76 0x0024c str 17 62 "b" + 77 0x0024e int 21 2 + 78 0x0024f str 17 63 "c" + 79 0x00251 word 18 28 ( + 80 0x00253 str 17 64 "d" + 81 0x00255 int 41 4 + 82 0x00256 word 18 29 ) + 83 0x00258 word 18 29 ) diff --git a/tests/0000_constants/code1.log.ref b/tests/0000_constants/code1.log.ref new file mode 100644 index 0000000..b850dad --- /dev/null +++ b/tests/0000_constants/code1.log.ref @@ -0,0 +1,141 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 84 entries (84 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 bool 12 true + 2 0x00009 bool 02 false + 3 0x0000a nil 00 nil + 5 4 0x0000b int 01 0 + 6 5 0x0000c int 81 12 0x12 + 7 6 0x0000e int 91 34 12 0x1234 + 8 7 0x00011 int a1 56 34 12 0x123456 + 9 8 0x00015 int b1 78 56 34 12 0x12345678 + 10 9 0x0001a int c1 9a 78 56 34 12 0x123456789a + 11 10 0x00020 int f1 f0 de bc 9a 78 56 34 0x123456789abcdef0 + 12 + 12 11 0x00029 int f1 10 21 43 65 87 a9 cb -0x123456789abcdef0 + ed + 13 12 0x00032 int f1 f0 de bc 9a 78 56 34 -0x6dcba98765432110 + 92 + 14 13 0x0003b int f1 10 21 43 65 87 a9 cb 0x6dcba98765432110 + 6d + 15 14 0x00044 int c1 fe ff ff ff 00 0xfffffffe + 16 15 0x0004a int c1 02 00 00 00 ff -0xfffffffe + 17 16 0x00050 int 81 7f 0x7f + 17 0x00052 int 91 80 00 0x80 + 18 0x00055 int 91 00 01 0x100 + 19 0x00058 int 81 ff -1 + 20 0x0005a int 81 fe -2 + 21 0x0005c int 81 80 -128 + 22 0x0005e int 91 7f ff -129 + 18 23 0x00061 int 81 ff -0x1 + 24 0x00063 int 91 02 ff -0xfe + 20 25 0x00066 int 01 '\x00' + 26 0x00067 int 81 0a '\n' + 27 0x00069 int 81 09 '\t' + 28 0x0006b int 81 27 '\'' + 29 0x0006d int 81 5c '\\' + 30 0x0006f int 81 61 'a' + 31 0x00071 int 91 ac 20 '\u20ac' + 21 32 0x00074 int 91 ac 20 '\u20ac' + 22 33 0x00077 int a1 56 34 01 '\U00013456' + 23 34 0x0007b int b1 78 56 34 12 '\U12345678' + 25 35 0x00080 str 37 e2 82 ac "€" + 26 36 0x00084 str 87 e2 82 ac 0a 58 58 0a "€\nXX\nX" + 58 + 27 37 0x0008d str d7 6e 01 31 32 33 34 35 "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834\n56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781\n2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678" + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 33 34 0a 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 33 34 35 36 37 38 + 31 32 33 34 35 36 37 38 + 31 0a 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 + 29 38 0x001fe code 16 { + 39 0x001ff prim 13 } + 30 40 0x00200 code 96 { + 41 0x00201 int 81 64 100 + 42 0x00203 int 91 c8 00 200 + 43 0x00206 int 91 2c 01 300 + 44 0x00209 prim 13 } + 32 45 0x0020a word 18 5b [ + 46 0x0020c word 18 5d ] + 33 47 0x0020e xref 44 [ + 48 0x0020f int 81 0a 10 + 49 0x00211 int 81 14 20 + 50 0x00213 int 81 1e 30 + 51 0x00215 word 18 5d ] + 34 52 0x00217 word 18 5b [ + 53 0x00219 int 11 1 + 54 0x0021a int 21 2 + 55 0x0021b word 18 5b [ + 56 0x0021d int 31 3 + 57 0x0021e word 18 5d ] + 58 0x00220 int 41 4 + 59 0x00221 word 18 5d ] + 36 60 0x00223 word 18 28 ( + 61 0x00225 word 18 29 ) + 37 62 0x00227 xref 44 ( + 63 0x00228 str 37 61 31 30 "a10" + 64 0x0022c int 81 64 100 + 65 0x0022e str 37 61 32 30 "a20" + 66 0x00232 int 91 c8 00 200 + 67 0x00235 word 18 29 ) + 38 68 0x00237 word 18 28 ( + 69 0x00239 str 37 63 31 30 "c10" + 70 0x0023d int 81 0a 10 + 71 0x0023f str 37 63 32 30 "c20" + 72 0x00243 word 18 29 ) + 39 73 0x00245 word 18 28 ( + 74 0x00247 str 17 61 "a" + 75 0x00249 int 11 1 + 76 0x0024a str 17 62 "b" + 77 0x0024c int 21 2 + 78 0x0024d str 17 63 "c" + 79 0x0024f word 18 28 ( + 80 0x00251 str 17 64 "d" + 81 0x00253 int 41 4 + 82 0x00254 word 18 29 ) + 83 0x00256 word 18 29 ) diff --git a/tests/0000_constants/code2.log.ref b/tests/0000_constants/code2.log.ref new file mode 100644 index 0000000..bb6609b --- /dev/null +++ b/tests/0000_constants/code2.log.ref @@ -0,0 +1,141 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 84 entries (84 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 bool 12 true + 2 0x00009 bool 02 false + 3 0x0000a nil 00 nil + 5 4 0x0000b int 01 0 + 6 5 0x0000c int 81 12 0x12 + 7 6 0x0000e int 91 34 12 0x1234 + 8 7 0x00011 int a1 56 34 12 0x123456 + 9 8 0x00015 int b1 78 56 34 12 0x12345678 + 10 9 0x0001a int c1 9a 78 56 34 12 0x123456789a + 11 10 0x00020 int f1 f0 de bc 9a 78 56 34 0x123456789abcdef0 + 12 + 12 11 0x00029 int f1 10 21 43 65 87 a9 cb -0x123456789abcdef0 + ed + 13 12 0x00032 int f1 f0 de bc 9a 78 56 34 -0x6dcba98765432110 + 92 + 14 13 0x0003b int f1 10 21 43 65 87 a9 cb 0x6dcba98765432110 + 6d + 15 14 0x00044 int c1 fe ff ff ff 00 0xfffffffe + 16 15 0x0004a int c1 02 00 00 00 ff -0xfffffffe + 17 16 0x00050 int 81 7f 0x7f + 17 0x00052 int 91 80 00 0x80 + 18 0x00055 int 91 00 01 0x100 + 19 0x00058 int 81 ff -1 + 20 0x0005a int 81 fe -2 + 21 0x0005c int 81 80 -128 + 22 0x0005e int 91 7f ff -129 + 18 23 0x00061 int 81 ff -0x1 + 24 0x00063 int 91 02 ff -0xfe + 20 25 0x00066 int 01 '\x00' + 26 0x00067 int 81 0a '\n' + 27 0x00069 int 81 09 '\t' + 28 0x0006b int 81 27 '\'' + 29 0x0006d int 81 5c '\\' + 30 0x0006f int 81 61 'a' + 31 0x00071 int 91 ac 20 '\u20ac' + 21 32 0x00074 int 91 ac 20 '\u20ac' + 22 33 0x00077 int a1 56 34 01 '\U00013456' + 23 34 0x0007b int b1 78 56 34 12 '\U12345678' + 25 35 0x00080 str 37 e2 82 ac "€" + 26 36 0x00084 str 87 e2 82 ac 0a 58 58 0a "€\nXX\nX" + 58 + 27 37 0x0008d str d7 6e 01 31 32 33 34 35 "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834\n56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781\n2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678" + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 31 32 33 34 35 + 36 37 38 33 34 0a 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 31 32 33 34 35 36 + 37 38 33 34 35 36 37 38 + 31 32 33 34 35 36 37 38 + 31 0a 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 31 32 33 34 35 36 37 + 38 + 29 38 0x001fe code 16 { + 39 0x001ff prim 13 } + 30 40 0x00200 code 96 { + 41 0x00201 int 81 64 100 + 42 0x00203 int 91 c8 00 200 + 43 0x00206 int 91 2c 01 300 + 44 0x00209 prim 13 } + 32 45 0x0020a prim 23 [ + 46 0x0020b prim 33 ] + 33 47 0x0020c prim 23 [ + 48 0x0020d int 81 0a 10 + 49 0x0020f int 81 14 20 + 50 0x00211 int 81 1e 30 + 51 0x00213 prim 33 ] + 34 52 0x00214 prim 23 [ + 53 0x00215 int 11 1 + 54 0x00216 int 21 2 + 55 0x00217 prim 23 [ + 56 0x00218 int 31 3 + 57 0x00219 prim 33 ] + 58 0x0021a int 41 4 + 59 0x0021b prim 33 ] + 36 60 0x0021c prim 43 ( + 61 0x0021d prim 53 ) + 37 62 0x0021e prim 43 ( + 63 0x0021f str 37 61 31 30 "a10" + 64 0x00223 int 81 64 100 + 65 0x00225 str 37 61 32 30 "a20" + 66 0x00229 int 91 c8 00 200 + 67 0x0022c prim 53 ) + 38 68 0x0022d prim 43 ( + 69 0x0022e str 37 63 31 30 "c10" + 70 0x00232 int 81 0a 10 + 71 0x00234 str 37 63 32 30 "c20" + 72 0x00238 prim 53 ) + 39 73 0x00239 prim 43 ( + 74 0x0023a str 17 61 "a" + 75 0x0023c int 11 1 + 76 0x0023d str 17 62 "b" + 77 0x0023f int 21 2 + 78 0x00240 str 17 63 "c" + 79 0x00242 prim 43 ( + 80 0x00243 str 17 64 "d" + 81 0x00245 int 41 4 + 82 0x00246 prim 53 ) + 83 0x00247 prim 53 ) diff --git a/tests/0000_constants/main.gs b/tests/0000_constants/main.gs new file mode 100644 index 0000000..af22675 --- /dev/null +++ b/tests/0000_constants/main.gs @@ -0,0 +1,42 @@ +# constant values + +true false nil + +0 +0x12 +0x1234 +0x123456 +0x12345678 +0x123456789a +0x123456789abcdef0 +-0x123456789abcdef0 +-0x6dcba98765432110 +0x6dcba98765432110 +0xfffffffe +-0xfffffffe +0x7f 0x80 0x100 -1 -2 -128 -129 +-0x1 -0xfe + +'\x00' '\n' '\t' '\'' '\\' 'a' '€' +'\u20ac' +'\U00013456' +'\U12345678' + +"€" +"€ +XX\nX" +"1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 +56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 +2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678" + +{ } +{ 100 200 300 } + +[ ] +[ 10 20 30 ] +[ 1 2 [ 3 ] 4 ] + +( ) +( "a10" 100 "a20" 200 ) +( "c10" 10 "c20" ) +( "a" 1 "b" 2 "c" ( "d" 4 ) ) diff --git a/tests/0000_constants/mem.log.ref b/tests/0000_constants/mem.log.ref new file mode 100644 index 0000000..2db7a44 --- /dev/null +++ b/tests/0000_constants/mem.log.ref @@ -0,0 +1,960 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 604] + 8: 227.01, 0x001d6cd0[ 72] + 9: 188.01, 0x001d6d20[ 56] + 10: 231.01, 0x001d6d60[ 20] + 11: 235.01, 0x001d6d7c[ 12] + 12: 237.01, 0x001d6d90[ 24] + 13: 243.01, 0x001d6db0[ 28] + 14: 247.01, 0x001d6dd4[ 28] + 15: 187.01, 0x001d6df8[ 224] + 16: 238.01, 0x001d6ee0[ 140] + 17: 255.01, 0x001d6f74[ 20] + 18: 256.01, 0x001d6f90[ 36] + 19: 0.00, 0x001d6fbc[14848068] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.14.mem.ro + 75 51 12 a9 42 7a ad 60 12 02 00 01 81 12 91 34 uQ..Bz.`.......4 + 12 a1 56 34 12 b1 78 56 34 12 c1 9a 78 56 34 12 ..V4..xV4...xV4. + f1 f0 de bc 9a 78 56 34 12 f1 10 21 43 65 87 a9 .....xV4...!Ce.. + cb ed f1 f0 de bc 9a 78 56 34 92 f1 10 21 43 65 .......xV4...!Ce + 87 a9 cb 6d c1 fe ff ff ff 00 c1 02 00 00 00 ff ...m............ + 81 7f 91 80 00 91 00 01 81 ff 81 fe 81 80 91 7f ................ + ff 81 ff 91 02 ff 01 81 0a 81 09 81 27 81 5c 81 ............'.\. + 61 91 ac 20 91 ac 20 a1 56 34 01 b1 78 56 34 12 a.. .. .V4..xV4. + 37 e2 82 ac 87 e2 82 ac 0a 58 58 0a 58 d7 6e 01 7........XX.X.n. + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 33 34 0a 35 36 37 38 31 32 33 34 35 36 37 38 31 34.5678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 33 34 35 36 37 38 31 32 33 2345678345678123 + 34 35 36 37 38 31 0a 32 33 34 35 36 37 38 31 32 456781.234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 32 3456781234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 32 3456781234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 32 3456781234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 32 3456781234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 32 3456781234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 16 13 34567812345678.. + 96 81 64 91 c8 00 91 2c 01 13 18 5b 18 5d 18 5b ..d....,...[.].[ + 81 0a 81 14 81 1e 18 5d 18 5b 11 21 18 5b 31 18 .......].[.!.[1. + 5d 41 18 5d 18 28 18 29 18 28 37 61 31 30 81 64 ]A.].(.).(7a10.d + 37 61 32 30 91 c8 00 18 29 18 28 37 63 31 30 81 7a20....).(7c10. + 0a 37 63 32 30 18 29 18 28 17 61 11 17 62 21 17 .7c20.).(.a..b!. + 63 18 28 17 64 41 18 29 18 29 c.(.dA.).) + #187.1.1.array + [ 0] #189.1.1.num.bool <1 (0x1)> + [ 1] #190.1.1.num.bool <0 (0x0)> + [ 2] #0.0.nil + [ 3] #191.1.1.num.int <0 (0x0)> + [ 4] #192.1.1.num.int <18 (0x12)> + [ 5] #193.1.1.num.int <4660 (0x1234)> + [ 6] #194.1.1.num.int <1193046 (0x123456)> + [ 7] #195.1.1.num.int <305419896 (0x12345678)> + [ 8] #196.1.1.num.int <78187493530 (0x123456789a)> + [ 9] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [10] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [11] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [12] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [13] #201.1.1.num.int <4294967294 (0xfffffffe)> + [14] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [15] #203.1.1.num.int <127 (0x7f)> + [16] #204.1.1.num.int <128 (0x80)> + [17] #205.1.1.num.int <256 (0x100)> + [18] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [20] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [21] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [22] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [24] #212.1.1.num.int <0 (0x0)> + [25] #213.1.1.num.int <10 (0xa)> + [26] #214.1.1.num.int <9 (0x9)> + [27] #215.1.1.num.int <39 (0x27)> + [28] #216.1.1.num.int <92 (0x5c)> + [29] #217.1.1.num.int <97 (0x61)> + [30] #218.1.1.num.int <8364 (0x20ac)> + [31] #219.1.1.num.int <8364 (0x20ac)> + [32] #220.1.1.num.int <78934 (0x13456)> + [33] #221.1.1.num.int <305419896 (0x12345678)> + [34] #222.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x81, size 3, "€"> + [35] #223.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x85, size 8, "€ XX X"> + [36] #224.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [37] #225.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x1ff, size 1> + [38] #226.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x201, size 9> + [39] #227.1.1.array + [40] #231.1.1.array + [41] #237.1.1.array + [42] #238.1.1.hash + [43] #243.1.1.hash + [44] #247.1.1.hash + [45] #256.1.1.hash + #188.1.1.ctx.func + type 17, ip 0x25a (0x25a) + code #186.1.14.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.num.bool <1 (0x1)> + #190.1.1.num.bool <0 (0x0)> + #191.1.1.num.int <0 (0x0)> + #192.1.1.num.int <18 (0x12)> + #193.1.1.num.int <4660 (0x1234)> + #194.1.1.num.int <1193046 (0x123456)> + #195.1.1.num.int <305419896 (0x12345678)> + #196.1.1.num.int <78187493530 (0x123456789a)> + #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + #201.1.1.num.int <4294967294 (0xfffffffe)> + #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + #203.1.1.num.int <127 (0x7f)> + #204.1.1.num.int <128 (0x80)> + #205.1.1.num.int <256 (0x100)> + #206.1.1.num.int <-1 (0xffffffffffffffff)> + #207.1.1.num.int <-2 (0xfffffffffffffffe)> + #208.1.1.num.int <-128 (0xffffffffffffff80)> + #209.1.1.num.int <-129 (0xffffffffffffff7f)> + #210.1.1.num.int <-1 (0xffffffffffffffff)> + #211.1.1.num.int <-254 (0xffffffffffffff02)> + #212.1.1.num.int <0 (0x0)> + #213.1.1.num.int <10 (0xa)> + #214.1.1.num.int <9 (0x9)> + #215.1.1.num.int <39 (0x27)> + #216.1.1.num.int <92 (0x5c)> + #217.1.1.num.int <97 (0x61)> + #218.1.1.num.int <8364 (0x20ac)> + #219.1.1.num.int <8364 (0x20ac)> + #220.1.1.num.int <78934 (0x13456)> + #221.1.1.num.int <305419896 (0x12345678)> + #222.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x81, size 3, "€"> + e2 82 ac ... + #223.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x85, size 8, "€ XX X"> + e2 82 ac 0a 58 58 0a 58 ....XX.X + #224.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 31 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 1234567812345678 + 33 34 0a 35 36 37 38 31 32 33 34 35 36 37 38 31 34.5678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 2345678123456781 + 32 33 34 35 36 37 38 33 34 35 36 37 38 31 32 33 2345678345678123 + 34 35 36 37 38 31 0a 32 33 34 35 36 37 38 31 32 456781.234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 32 3456781234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 32 3456781234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 32 3456781234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 32 3456781234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 31 32 3456781234567812 + 33 34 35 36 37 38 31 32 33 34 35 36 37 38 34567812345678 + #225.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x1ff, size 1> + 13 . + #226.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x201, size 9> + 81 64 91 c8 00 91 2c 01 13 .d....,.. + #227.1.1.array + #228.1.1.num.int <10 (0xa)> + #229.1.1.num.int <20 (0x14)> + #230.1.1.num.int <30 (0x1e)> + #231.1.1.array + [ 0] #228.1.1.num.int <10 (0xa)> + [ 1] #229.1.1.num.int <20 (0x14)> + [ 2] #230.1.1.num.int <30 (0x1e)> + #232.1.1.num.int <1 (0x1)> + #233.1.1.num.int <2 (0x2)> + #234.1.1.num.int <3 (0x3)> + #235.1.1.array + [ 0] #234.1.1.num.int <3 (0x3)> + #236.1.1.num.int <4 (0x4)> + #237.1.1.array + [ 0] #232.1.1.num.int <1 (0x1)> + [ 1] #233.1.1.num.int <2 (0x2)> + [ 2] #235.1.1.array + [ 3] #236.1.1.num.int <4 (0x4)> + #238.1.1.hash + #239.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x22b, size 3, "a10"> + 61 31 30 a10 + #240.1.1.num.int <100 (0x64)> + #241.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x231, size 3, "a20"> + 61 32 30 a20 + #242.1.1.num.int <200 (0xc8)> + #243.1.1.hash + #239.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x22b, size 3, "a10"> => #240.1.1.num.int <100 (0x64)> + #241.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x231, size 3, "a20"> => #242.1.1.num.int <200 (0xc8)> + #244.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x23c, size 3, "c10"> + 63 31 30 c10 + #245.1.1.num.int <10 (0xa)> + #246.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x242, size 3, "c20"> + 63 32 30 c20 + #247.1.1.hash + #244.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x23c, size 3, "c10"> => #245.1.1.num.int <10 (0xa)> + #246.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x242, size 3, "c20"> => #0.0.nil + #248.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x24a, size 1, "a"> + 61 a + #249.1.1.num.int <1 (0x1)> + #250.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x24d, size 1, "b"> + 62 b + #251.1.1.num.int <2 (0x2)> + #252.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x250, size 1, "c"> + 63 c + #253.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x254, size 1, "d"> + 64 d + #254.1.1.num.int <4 (0x4)> + #255.1.1.hash + #253.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x254, size 1, "d"> => #254.1.1.num.int <4 (0x4)> + #256.1.1.hash + #248.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x24a, size 1, "a"> => #249.1.1.num.int <1 (0x1)> + #250.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x24d, size 1, "b"> => #251.1.1.num.int <2 (0x2)> + #252.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x250, size 1, "c"> => #255.1.1.hash diff --git a/tests/0000_constants/screen.log.ref b/tests/0000_constants/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0000_constants/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0000_constants/trace.log.ref b/tests/0000_constants/trace.log.ref new file mode 100644 index 0000000..6b0a636 --- /dev/null +++ b/tests/0000_constants/trace.log.ref @@ -0,0 +1,2911 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x9, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.bool <0 (0x0)> + [1] #189.1.1.num.bool <1 (0x1)> +IP: #186:0xa, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #190.1.1.num.bool <0 (0x0)> + [2] #189.1.1.num.bool <1 (0x1)> +IP: #186:0xb, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <0 (0x0)> + [1] #0.0.nil + [2] #190.1.1.num.bool <0 (0x0)> + [3] #189.1.1.num.bool <1 (0x1)> +IP: #186:0xc, type 1, 18 (0x12) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <18 (0x12)> + [1] #191.1.1.num.int <0 (0x0)> + [2] #0.0.nil + [3] #190.1.1.num.bool <0 (0x0)> + [4] #189.1.1.num.bool <1 (0x1)> +IP: #186:0xe, type 1, 4660 (0x1234) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <4660 (0x1234)> + [1] #192.1.1.num.int <18 (0x12)> + [2] #191.1.1.num.int <0 (0x0)> + [3] #0.0.nil + [4] #190.1.1.num.bool <0 (0x0)> + [5] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x11, type 1, 1193046 (0x123456) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <1193046 (0x123456)> + [1] #193.1.1.num.int <4660 (0x1234)> + [2] #192.1.1.num.int <18 (0x12)> + [3] #191.1.1.num.int <0 (0x0)> + [4] #0.0.nil + [5] #190.1.1.num.bool <0 (0x0)> + [6] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x15, type 1, 305419896 (0x12345678) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <305419896 (0x12345678)> + [1] #194.1.1.num.int <1193046 (0x123456)> + [2] #193.1.1.num.int <4660 (0x1234)> + [3] #192.1.1.num.int <18 (0x12)> + [4] #191.1.1.num.int <0 (0x0)> + [5] #0.0.nil + [6] #190.1.1.num.bool <0 (0x0)> + [7] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x1a, type 1, 78187493530 (0x123456789a) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <78187493530 (0x123456789a)> + [1] #195.1.1.num.int <305419896 (0x12345678)> + [2] #194.1.1.num.int <1193046 (0x123456)> + [3] #193.1.1.num.int <4660 (0x1234)> + [4] #192.1.1.num.int <18 (0x12)> + [5] #191.1.1.num.int <0 (0x0)> + [6] #0.0.nil + [7] #190.1.1.num.bool <0 (0x0)> + [8] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x20, type 1, 1311768467463790320 (0x123456789abcdef0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [1] #196.1.1.num.int <78187493530 (0x123456789a)> + [2] #195.1.1.num.int <305419896 (0x12345678)> + [3] #194.1.1.num.int <1193046 (0x123456)> + [4] #193.1.1.num.int <4660 (0x1234)> + [5] #192.1.1.num.int <18 (0x12)> + [6] #191.1.1.num.int <0 (0x0)> + [7] #0.0.nil + [8] #190.1.1.num.bool <0 (0x0)> + [9] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x29, type 1, -1311768467463790320 (0xedcba98765432110) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [1] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [2] #196.1.1.num.int <78187493530 (0x123456789a)> + [3] #195.1.1.num.int <305419896 (0x12345678)> + [4] #194.1.1.num.int <1193046 (0x123456)> + [5] #193.1.1.num.int <4660 (0x1234)> + [6] #192.1.1.num.int <18 (0x12)> + [7] #191.1.1.num.int <0 (0x0)> + [8] #0.0.nil + [9] #190.1.1.num.bool <0 (0x0)> + [10] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x32, type 1, -7911603569390985488 (0x923456789abcdef0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [1] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [2] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [3] #196.1.1.num.int <78187493530 (0x123456789a)> + [4] #195.1.1.num.int <305419896 (0x12345678)> + [5] #194.1.1.num.int <1193046 (0x123456)> + [6] #193.1.1.num.int <4660 (0x1234)> + [7] #192.1.1.num.int <18 (0x12)> + [8] #191.1.1.num.int <0 (0x0)> + [9] #0.0.nil + [10] #190.1.1.num.bool <0 (0x0)> + [11] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x3b, type 1, 7911603569390985488 (0x6dcba98765432110) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [1] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [2] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [3] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [4] #196.1.1.num.int <78187493530 (0x123456789a)> + [5] #195.1.1.num.int <305419896 (0x12345678)> + [6] #194.1.1.num.int <1193046 (0x123456)> + [7] #193.1.1.num.int <4660 (0x1234)> + [8] #192.1.1.num.int <18 (0x12)> + [9] #191.1.1.num.int <0 (0x0)> + [10] #0.0.nil + [11] #190.1.1.num.bool <0 (0x0)> + [12] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x44, type 1, 4294967294 (0xfffffffe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <4294967294 (0xfffffffe)> + [1] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [2] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [3] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [4] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [5] #196.1.1.num.int <78187493530 (0x123456789a)> + [6] #195.1.1.num.int <305419896 (0x12345678)> + [7] #194.1.1.num.int <1193046 (0x123456)> + [8] #193.1.1.num.int <4660 (0x1234)> + [9] #192.1.1.num.int <18 (0x12)> + [10] #191.1.1.num.int <0 (0x0)> + [11] #0.0.nil + [12] #190.1.1.num.bool <0 (0x0)> + [13] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x4a, type 1, -4294967294 (0xffffffff00000002) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [1] #201.1.1.num.int <4294967294 (0xfffffffe)> + [2] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [3] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [4] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [5] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [6] #196.1.1.num.int <78187493530 (0x123456789a)> + [7] #195.1.1.num.int <305419896 (0x12345678)> + [8] #194.1.1.num.int <1193046 (0x123456)> + [9] #193.1.1.num.int <4660 (0x1234)> + [10] #192.1.1.num.int <18 (0x12)> + [11] #191.1.1.num.int <0 (0x0)> + [12] #0.0.nil + [13] #190.1.1.num.bool <0 (0x0)> + [14] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x50, type 1, 127 (0x7f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <127 (0x7f)> + [1] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [2] #201.1.1.num.int <4294967294 (0xfffffffe)> + [3] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [4] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [5] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [6] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [7] #196.1.1.num.int <78187493530 (0x123456789a)> + [8] #195.1.1.num.int <305419896 (0x12345678)> + [9] #194.1.1.num.int <1193046 (0x123456)> + [10] #193.1.1.num.int <4660 (0x1234)> + [11] #192.1.1.num.int <18 (0x12)> + [12] #191.1.1.num.int <0 (0x0)> + [13] #0.0.nil + [14] #190.1.1.num.bool <0 (0x0)> + [15] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x52, type 1, 128 (0x80) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <128 (0x80)> + [1] #203.1.1.num.int <127 (0x7f)> + [2] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [3] #201.1.1.num.int <4294967294 (0xfffffffe)> + [4] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [5] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [6] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [7] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [8] #196.1.1.num.int <78187493530 (0x123456789a)> + [9] #195.1.1.num.int <305419896 (0x12345678)> + [10] #194.1.1.num.int <1193046 (0x123456)> + [11] #193.1.1.num.int <4660 (0x1234)> + [12] #192.1.1.num.int <18 (0x12)> + [13] #191.1.1.num.int <0 (0x0)> + [14] #0.0.nil + [15] #190.1.1.num.bool <0 (0x0)> + [16] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x55, type 1, 256 (0x100) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <256 (0x100)> + [1] #204.1.1.num.int <128 (0x80)> + [2] #203.1.1.num.int <127 (0x7f)> + [3] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [4] #201.1.1.num.int <4294967294 (0xfffffffe)> + [5] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [6] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [7] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [8] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [9] #196.1.1.num.int <78187493530 (0x123456789a)> + [10] #195.1.1.num.int <305419896 (0x12345678)> + [11] #194.1.1.num.int <1193046 (0x123456)> + [12] #193.1.1.num.int <4660 (0x1234)> + [13] #192.1.1.num.int <18 (0x12)> + [14] #191.1.1.num.int <0 (0x0)> + [15] #0.0.nil + [16] #190.1.1.num.bool <0 (0x0)> + [17] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x58, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #205.1.1.num.int <256 (0x100)> + [2] #204.1.1.num.int <128 (0x80)> + [3] #203.1.1.num.int <127 (0x7f)> + [4] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [5] #201.1.1.num.int <4294967294 (0xfffffffe)> + [6] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [7] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [8] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [9] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [10] #196.1.1.num.int <78187493530 (0x123456789a)> + [11] #195.1.1.num.int <305419896 (0x12345678)> + [12] #194.1.1.num.int <1193046 (0x123456)> + [13] #193.1.1.num.int <4660 (0x1234)> + [14] #192.1.1.num.int <18 (0x12)> + [15] #191.1.1.num.int <0 (0x0)> + [16] #0.0.nil + [17] #190.1.1.num.bool <0 (0x0)> + [18] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x5a, type 1, -2 (0xfffffffffffffffe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #205.1.1.num.int <256 (0x100)> + [3] #204.1.1.num.int <128 (0x80)> + [4] #203.1.1.num.int <127 (0x7f)> + [5] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [6] #201.1.1.num.int <4294967294 (0xfffffffe)> + [7] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [8] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [9] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [10] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [11] #196.1.1.num.int <78187493530 (0x123456789a)> + [12] #195.1.1.num.int <305419896 (0x12345678)> + [13] #194.1.1.num.int <1193046 (0x123456)> + [14] #193.1.1.num.int <4660 (0x1234)> + [15] #192.1.1.num.int <18 (0x12)> + [16] #191.1.1.num.int <0 (0x0)> + [17] #0.0.nil + [18] #190.1.1.num.bool <0 (0x0)> + [19] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x5c, type 1, -128 (0xffffffffffffff80) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [1] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #205.1.1.num.int <256 (0x100)> + [4] #204.1.1.num.int <128 (0x80)> + [5] #203.1.1.num.int <127 (0x7f)> + [6] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [7] #201.1.1.num.int <4294967294 (0xfffffffe)> + [8] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [9] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [10] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [11] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [12] #196.1.1.num.int <78187493530 (0x123456789a)> + [13] #195.1.1.num.int <305419896 (0x12345678)> + [14] #194.1.1.num.int <1193046 (0x123456)> + [15] #193.1.1.num.int <4660 (0x1234)> + [16] #192.1.1.num.int <18 (0x12)> + [17] #191.1.1.num.int <0 (0x0)> + [18] #0.0.nil + [19] #190.1.1.num.bool <0 (0x0)> + [20] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x5e, type 1, -129 (0xffffffffffffff7f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [1] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [2] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #205.1.1.num.int <256 (0x100)> + [5] #204.1.1.num.int <128 (0x80)> + [6] #203.1.1.num.int <127 (0x7f)> + [7] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [8] #201.1.1.num.int <4294967294 (0xfffffffe)> + [9] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [10] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [11] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [12] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [13] #196.1.1.num.int <78187493530 (0x123456789a)> + [14] #195.1.1.num.int <305419896 (0x12345678)> + [15] #194.1.1.num.int <1193046 (0x123456)> + [16] #193.1.1.num.int <4660 (0x1234)> + [17] #192.1.1.num.int <18 (0x12)> + [18] #191.1.1.num.int <0 (0x0)> + [19] #0.0.nil + [20] #190.1.1.num.bool <0 (0x0)> + [21] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x61, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [2] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [3] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #205.1.1.num.int <256 (0x100)> + [6] #204.1.1.num.int <128 (0x80)> + [7] #203.1.1.num.int <127 (0x7f)> + [8] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [9] #201.1.1.num.int <4294967294 (0xfffffffe)> + [10] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [11] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [12] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [13] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [14] #196.1.1.num.int <78187493530 (0x123456789a)> + [15] #195.1.1.num.int <305419896 (0x12345678)> + [16] #194.1.1.num.int <1193046 (0x123456)> + [17] #193.1.1.num.int <4660 (0x1234)> + [18] #192.1.1.num.int <18 (0x12)> + [19] #191.1.1.num.int <0 (0x0)> + [20] #0.0.nil + [21] #190.1.1.num.bool <0 (0x0)> + [22] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x63, type 1, -254 (0xffffffffffffff02) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [1] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [3] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [4] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #205.1.1.num.int <256 (0x100)> + [7] #204.1.1.num.int <128 (0x80)> + [8] #203.1.1.num.int <127 (0x7f)> + [9] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [10] #201.1.1.num.int <4294967294 (0xfffffffe)> + [11] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [12] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [13] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [14] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [15] #196.1.1.num.int <78187493530 (0x123456789a)> + [16] #195.1.1.num.int <305419896 (0x12345678)> + [17] #194.1.1.num.int <1193046 (0x123456)> + [18] #193.1.1.num.int <4660 (0x1234)> + [19] #192.1.1.num.int <18 (0x12)> + [20] #191.1.1.num.int <0 (0x0)> + [21] #0.0.nil + [22] #190.1.1.num.bool <0 (0x0)> + [23] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x66, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.int <0 (0x0)> + [1] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [2] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [4] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [5] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #205.1.1.num.int <256 (0x100)> + [8] #204.1.1.num.int <128 (0x80)> + [9] #203.1.1.num.int <127 (0x7f)> + [10] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [11] #201.1.1.num.int <4294967294 (0xfffffffe)> + [12] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [13] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [14] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [15] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [16] #196.1.1.num.int <78187493530 (0x123456789a)> + [17] #195.1.1.num.int <305419896 (0x12345678)> + [18] #194.1.1.num.int <1193046 (0x123456)> + [19] #193.1.1.num.int <4660 (0x1234)> + [20] #192.1.1.num.int <18 (0x12)> + [21] #191.1.1.num.int <0 (0x0)> + [22] #0.0.nil + [23] #190.1.1.num.bool <0 (0x0)> + [24] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x67, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <10 (0xa)> + [1] #212.1.1.num.int <0 (0x0)> + [2] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [3] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [5] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [6] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #205.1.1.num.int <256 (0x100)> + [9] #204.1.1.num.int <128 (0x80)> + [10] #203.1.1.num.int <127 (0x7f)> + [11] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [12] #201.1.1.num.int <4294967294 (0xfffffffe)> + [13] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [14] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [15] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [16] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [17] #196.1.1.num.int <78187493530 (0x123456789a)> + [18] #195.1.1.num.int <305419896 (0x12345678)> + [19] #194.1.1.num.int <1193046 (0x123456)> + [20] #193.1.1.num.int <4660 (0x1234)> + [21] #192.1.1.num.int <18 (0x12)> + [22] #191.1.1.num.int <0 (0x0)> + [23] #0.0.nil + [24] #190.1.1.num.bool <0 (0x0)> + [25] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x69, type 1, 9 (0x9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.num.int <9 (0x9)> + [1] #213.1.1.num.int <10 (0xa)> + [2] #212.1.1.num.int <0 (0x0)> + [3] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [4] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [6] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [7] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #205.1.1.num.int <256 (0x100)> + [10] #204.1.1.num.int <128 (0x80)> + [11] #203.1.1.num.int <127 (0x7f)> + [12] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [13] #201.1.1.num.int <4294967294 (0xfffffffe)> + [14] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [15] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [16] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [17] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [18] #196.1.1.num.int <78187493530 (0x123456789a)> + [19] #195.1.1.num.int <305419896 (0x12345678)> + [20] #194.1.1.num.int <1193046 (0x123456)> + [21] #193.1.1.num.int <4660 (0x1234)> + [22] #192.1.1.num.int <18 (0x12)> + [23] #191.1.1.num.int <0 (0x0)> + [24] #0.0.nil + [25] #190.1.1.num.bool <0 (0x0)> + [26] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x6b, type 1, 39 (0x27) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <39 (0x27)> + [1] #214.1.1.num.int <9 (0x9)> + [2] #213.1.1.num.int <10 (0xa)> + [3] #212.1.1.num.int <0 (0x0)> + [4] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [5] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [7] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [8] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #205.1.1.num.int <256 (0x100)> + [11] #204.1.1.num.int <128 (0x80)> + [12] #203.1.1.num.int <127 (0x7f)> + [13] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [14] #201.1.1.num.int <4294967294 (0xfffffffe)> + [15] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [16] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [17] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [18] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [19] #196.1.1.num.int <78187493530 (0x123456789a)> + [20] #195.1.1.num.int <305419896 (0x12345678)> + [21] #194.1.1.num.int <1193046 (0x123456)> + [22] #193.1.1.num.int <4660 (0x1234)> + [23] #192.1.1.num.int <18 (0x12)> + [24] #191.1.1.num.int <0 (0x0)> + [25] #0.0.nil + [26] #190.1.1.num.bool <0 (0x0)> + [27] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x6d, type 1, 92 (0x5c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <92 (0x5c)> + [1] #215.1.1.num.int <39 (0x27)> + [2] #214.1.1.num.int <9 (0x9)> + [3] #213.1.1.num.int <10 (0xa)> + [4] #212.1.1.num.int <0 (0x0)> + [5] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [6] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [8] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [9] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #205.1.1.num.int <256 (0x100)> + [12] #204.1.1.num.int <128 (0x80)> + [13] #203.1.1.num.int <127 (0x7f)> + [14] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [15] #201.1.1.num.int <4294967294 (0xfffffffe)> + [16] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [17] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [18] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [19] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [20] #196.1.1.num.int <78187493530 (0x123456789a)> + [21] #195.1.1.num.int <305419896 (0x12345678)> + [22] #194.1.1.num.int <1193046 (0x123456)> + [23] #193.1.1.num.int <4660 (0x1234)> + [24] #192.1.1.num.int <18 (0x12)> + [25] #191.1.1.num.int <0 (0x0)> + [26] #0.0.nil + [27] #190.1.1.num.bool <0 (0x0)> + [28] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x6f, type 1, 97 (0x61) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <97 (0x61)> + [1] #216.1.1.num.int <92 (0x5c)> + [2] #215.1.1.num.int <39 (0x27)> + [3] #214.1.1.num.int <9 (0x9)> + [4] #213.1.1.num.int <10 (0xa)> + [5] #212.1.1.num.int <0 (0x0)> + [6] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [7] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [9] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [10] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #205.1.1.num.int <256 (0x100)> + [13] #204.1.1.num.int <128 (0x80)> + [14] #203.1.1.num.int <127 (0x7f)> + [15] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [16] #201.1.1.num.int <4294967294 (0xfffffffe)> + [17] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [18] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [19] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [20] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [21] #196.1.1.num.int <78187493530 (0x123456789a)> + [22] #195.1.1.num.int <305419896 (0x12345678)> + [23] #194.1.1.num.int <1193046 (0x123456)> + [24] #193.1.1.num.int <4660 (0x1234)> + [25] #192.1.1.num.int <18 (0x12)> + [26] #191.1.1.num.int <0 (0x0)> + [27] #0.0.nil + [28] #190.1.1.num.bool <0 (0x0)> + [29] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x71, type 1, 8364 (0x20ac) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.int <8364 (0x20ac)> + [1] #217.1.1.num.int <97 (0x61)> + [2] #216.1.1.num.int <92 (0x5c)> + [3] #215.1.1.num.int <39 (0x27)> + [4] #214.1.1.num.int <9 (0x9)> + [5] #213.1.1.num.int <10 (0xa)> + [6] #212.1.1.num.int <0 (0x0)> + [7] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [8] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [10] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [11] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #205.1.1.num.int <256 (0x100)> + [14] #204.1.1.num.int <128 (0x80)> + [15] #203.1.1.num.int <127 (0x7f)> + [16] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [17] #201.1.1.num.int <4294967294 (0xfffffffe)> + [18] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [19] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [20] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [21] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [22] #196.1.1.num.int <78187493530 (0x123456789a)> + [23] #195.1.1.num.int <305419896 (0x12345678)> + [24] #194.1.1.num.int <1193046 (0x123456)> + [25] #193.1.1.num.int <4660 (0x1234)> + [26] #192.1.1.num.int <18 (0x12)> + [27] #191.1.1.num.int <0 (0x0)> + [28] #0.0.nil + [29] #190.1.1.num.bool <0 (0x0)> + [30] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x74, type 1, 8364 (0x20ac) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.int <8364 (0x20ac)> + [1] #218.1.1.num.int <8364 (0x20ac)> + [2] #217.1.1.num.int <97 (0x61)> + [3] #216.1.1.num.int <92 (0x5c)> + [4] #215.1.1.num.int <39 (0x27)> + [5] #214.1.1.num.int <9 (0x9)> + [6] #213.1.1.num.int <10 (0xa)> + [7] #212.1.1.num.int <0 (0x0)> + [8] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [9] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [11] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [12] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #205.1.1.num.int <256 (0x100)> + [15] #204.1.1.num.int <128 (0x80)> + [16] #203.1.1.num.int <127 (0x7f)> + [17] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [18] #201.1.1.num.int <4294967294 (0xfffffffe)> + [19] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [20] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [21] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [22] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [23] #196.1.1.num.int <78187493530 (0x123456789a)> + [24] #195.1.1.num.int <305419896 (0x12345678)> + [25] #194.1.1.num.int <1193046 (0x123456)> + [26] #193.1.1.num.int <4660 (0x1234)> + [27] #192.1.1.num.int <18 (0x12)> + [28] #191.1.1.num.int <0 (0x0)> + [29] #0.0.nil + [30] #190.1.1.num.bool <0 (0x0)> + [31] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x77, type 1, 78934 (0x13456) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.num.int <78934 (0x13456)> + [1] #219.1.1.num.int <8364 (0x20ac)> + [2] #218.1.1.num.int <8364 (0x20ac)> + [3] #217.1.1.num.int <97 (0x61)> + [4] #216.1.1.num.int <92 (0x5c)> + [5] #215.1.1.num.int <39 (0x27)> + [6] #214.1.1.num.int <9 (0x9)> + [7] #213.1.1.num.int <10 (0xa)> + [8] #212.1.1.num.int <0 (0x0)> + [9] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [10] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [12] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [13] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #205.1.1.num.int <256 (0x100)> + [16] #204.1.1.num.int <128 (0x80)> + [17] #203.1.1.num.int <127 (0x7f)> + [18] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [19] #201.1.1.num.int <4294967294 (0xfffffffe)> + [20] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [21] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [22] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [23] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [24] #196.1.1.num.int <78187493530 (0x123456789a)> + [25] #195.1.1.num.int <305419896 (0x12345678)> + [26] #194.1.1.num.int <1193046 (0x123456)> + [27] #193.1.1.num.int <4660 (0x1234)> + [28] #192.1.1.num.int <18 (0x12)> + [29] #191.1.1.num.int <0 (0x0)> + [30] #0.0.nil + [31] #190.1.1.num.bool <0 (0x0)> + [32] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x7b, type 1, 305419896 (0x12345678) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.int <305419896 (0x12345678)> + [1] #220.1.1.num.int <78934 (0x13456)> + [2] #219.1.1.num.int <8364 (0x20ac)> + [3] #218.1.1.num.int <8364 (0x20ac)> + [4] #217.1.1.num.int <97 (0x61)> + [5] #216.1.1.num.int <92 (0x5c)> + [6] #215.1.1.num.int <39 (0x27)> + [7] #214.1.1.num.int <9 (0x9)> + [8] #213.1.1.num.int <10 (0xa)> + [9] #212.1.1.num.int <0 (0x0)> + [10] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [11] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [13] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [14] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #205.1.1.num.int <256 (0x100)> + [17] #204.1.1.num.int <128 (0x80)> + [18] #203.1.1.num.int <127 (0x7f)> + [19] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [20] #201.1.1.num.int <4294967294 (0xfffffffe)> + [21] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [22] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [23] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [24] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [25] #196.1.1.num.int <78187493530 (0x123456789a)> + [26] #195.1.1.num.int <305419896 (0x12345678)> + [27] #194.1.1.num.int <1193046 (0x123456)> + [28] #193.1.1.num.int <4660 (0x1234)> + [29] #192.1.1.num.int <18 (0x12)> + [30] #191.1.1.num.int <0 (0x0)> + [31] #0.0.nil + [32] #190.1.1.num.bool <0 (0x0)> + [33] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x80, type 7, 129[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x81, size 3, "€"> + [1] #221.1.1.num.int <305419896 (0x12345678)> + [2] #220.1.1.num.int <78934 (0x13456)> + [3] #219.1.1.num.int <8364 (0x20ac)> + [4] #218.1.1.num.int <8364 (0x20ac)> + [5] #217.1.1.num.int <97 (0x61)> + [6] #216.1.1.num.int <92 (0x5c)> + [7] #215.1.1.num.int <39 (0x27)> + [8] #214.1.1.num.int <9 (0x9)> + [9] #213.1.1.num.int <10 (0xa)> + [10] #212.1.1.num.int <0 (0x0)> + [11] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [12] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [14] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [15] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #205.1.1.num.int <256 (0x100)> + [18] #204.1.1.num.int <128 (0x80)> + [19] #203.1.1.num.int <127 (0x7f)> + [20] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [21] #201.1.1.num.int <4294967294 (0xfffffffe)> + [22] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [23] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [24] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [25] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [26] #196.1.1.num.int <78187493530 (0x123456789a)> + [27] #195.1.1.num.int <305419896 (0x12345678)> + [28] #194.1.1.num.int <1193046 (0x123456)> + [29] #193.1.1.num.int <4660 (0x1234)> + [30] #192.1.1.num.int <18 (0x12)> + [31] #191.1.1.num.int <0 (0x0)> + [32] #0.0.nil + [33] #190.1.1.num.bool <0 (0x0)> + [34] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x84, type 7, 133[8] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x85, size 8, "€ XX X"> + [1] #222.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x81, size 3, "€"> + [2] #221.1.1.num.int <305419896 (0x12345678)> + [3] #220.1.1.num.int <78934 (0x13456)> + [4] #219.1.1.num.int <8364 (0x20ac)> + [5] #218.1.1.num.int <8364 (0x20ac)> + [6] #217.1.1.num.int <97 (0x61)> + [7] #216.1.1.num.int <92 (0x5c)> + [8] #215.1.1.num.int <39 (0x27)> + [9] #214.1.1.num.int <9 (0x9)> + [10] #213.1.1.num.int <10 (0xa)> + [11] #212.1.1.num.int <0 (0x0)> + [12] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [13] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [15] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [16] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #205.1.1.num.int <256 (0x100)> + [19] #204.1.1.num.int <128 (0x80)> + [20] #203.1.1.num.int <127 (0x7f)> + [21] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [22] #201.1.1.num.int <4294967294 (0xfffffffe)> + [23] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [24] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [25] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [26] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [27] #196.1.1.num.int <78187493530 (0x123456789a)> + [28] #195.1.1.num.int <305419896 (0x12345678)> + [29] #194.1.1.num.int <1193046 (0x123456)> + [30] #193.1.1.num.int <4660 (0x1234)> + [31] #192.1.1.num.int <18 (0x12)> + [32] #191.1.1.num.int <0 (0x0)> + [33] #0.0.nil + [34] #190.1.1.num.bool <0 (0x0)> + [35] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x8d, type 7, 144[366] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [1] #223.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x85, size 8, "€ XX X"> + [2] #222.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x81, size 3, "€"> + [3] #221.1.1.num.int <305419896 (0x12345678)> + [4] #220.1.1.num.int <78934 (0x13456)> + [5] #219.1.1.num.int <8364 (0x20ac)> + [6] #218.1.1.num.int <8364 (0x20ac)> + [7] #217.1.1.num.int <97 (0x61)> + [8] #216.1.1.num.int <92 (0x5c)> + [9] #215.1.1.num.int <39 (0x27)> + [10] #214.1.1.num.int <9 (0x9)> + [11] #213.1.1.num.int <10 (0xa)> + [12] #212.1.1.num.int <0 (0x0)> + [13] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [14] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [16] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [17] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #205.1.1.num.int <256 (0x100)> + [20] #204.1.1.num.int <128 (0x80)> + [21] #203.1.1.num.int <127 (0x7f)> + [22] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [23] #201.1.1.num.int <4294967294 (0xfffffffe)> + [24] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [25] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [26] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [27] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [28] #196.1.1.num.int <78187493530 (0x123456789a)> + [29] #195.1.1.num.int <305419896 (0x12345678)> + [30] #194.1.1.num.int <1193046 (0x123456)> + [31] #193.1.1.num.int <4660 (0x1234)> + [32] #192.1.1.num.int <18 (0x12)> + [33] #191.1.1.num.int <0 (0x0)> + [34] #0.0.nil + [35] #190.1.1.num.bool <0 (0x0)> + [36] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x1fe, type 6, 511[1] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x1ff, size 1> + [1] #224.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [2] #223.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x85, size 8, "€ XX X"> + [3] #222.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x81, size 3, "€"> + [4] #221.1.1.num.int <305419896 (0x12345678)> + [5] #220.1.1.num.int <78934 (0x13456)> + [6] #219.1.1.num.int <8364 (0x20ac)> + [7] #218.1.1.num.int <8364 (0x20ac)> + [8] #217.1.1.num.int <97 (0x61)> + [9] #216.1.1.num.int <92 (0x5c)> + [10] #215.1.1.num.int <39 (0x27)> + [11] #214.1.1.num.int <9 (0x9)> + [12] #213.1.1.num.int <10 (0xa)> + [13] #212.1.1.num.int <0 (0x0)> + [14] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [15] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [17] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [18] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #205.1.1.num.int <256 (0x100)> + [21] #204.1.1.num.int <128 (0x80)> + [22] #203.1.1.num.int <127 (0x7f)> + [23] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [24] #201.1.1.num.int <4294967294 (0xfffffffe)> + [25] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [26] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [27] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [28] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [29] #196.1.1.num.int <78187493530 (0x123456789a)> + [30] #195.1.1.num.int <305419896 (0x12345678)> + [31] #194.1.1.num.int <1193046 (0x123456)> + [32] #193.1.1.num.int <4660 (0x1234)> + [33] #192.1.1.num.int <18 (0x12)> + [34] #191.1.1.num.int <0 (0x0)> + [35] #0.0.nil + [36] #190.1.1.num.bool <0 (0x0)> + [37] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x200, type 6, 513[9] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [1] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [2] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [3] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [4] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [5] #221.1.1.num.int <305419896 (0x12345678)> + [6] #220.1.1.num.int <78934 (0x13456)> + [7] #219.1.1.num.int <8364 (0x20ac)> + [8] #218.1.1.num.int <8364 (0x20ac)> + [9] #217.1.1.num.int <97 (0x61)> + [10] #216.1.1.num.int <92 (0x5c)> + [11] #215.1.1.num.int <39 (0x27)> + [12] #214.1.1.num.int <9 (0x9)> + [13] #213.1.1.num.int <10 (0xa)> + [14] #212.1.1.num.int <0 (0x0)> + [15] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [16] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [18] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [19] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [20] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #205.1.1.num.int <256 (0x100)> + [22] #204.1.1.num.int <128 (0x80)> + [23] #203.1.1.num.int <127 (0x7f)> + [24] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [25] #201.1.1.num.int <4294967294 (0xfffffffe)> + [26] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [27] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [28] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [29] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [30] #196.1.1.num.int <78187493530 (0x123456789a)> + [31] #195.1.1.num.int <305419896 (0x12345678)> + [32] #194.1.1.num.int <1193046 (0x123456)> + [33] #193.1.1.num.int <4660 (0x1234)> + [34] #192.1.1.num.int <18 (0x12)> + [35] #191.1.1.num.int <0 (0x0)> + [36] #0.0.nil + [37] #190.1.1.num.bool <0 (0x0)> + [38] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x20a, type 8, 523[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [2] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [3] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [4] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [5] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [6] #221.1.1.num.int <305419896 (0x12345678)> + [7] #220.1.1.num.int <78934 (0x13456)> + [8] #219.1.1.num.int <8364 (0x20ac)> + [9] #218.1.1.num.int <8364 (0x20ac)> + [10] #217.1.1.num.int <97 (0x61)> + [11] #216.1.1.num.int <92 (0x5c)> + [12] #215.1.1.num.int <39 (0x27)> + [13] #214.1.1.num.int <9 (0x9)> + [14] #213.1.1.num.int <10 (0xa)> + [15] #212.1.1.num.int <0 (0x0)> + [16] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [17] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [19] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [20] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [21] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #205.1.1.num.int <256 (0x100)> + [23] #204.1.1.num.int <128 (0x80)> + [24] #203.1.1.num.int <127 (0x7f)> + [25] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [26] #201.1.1.num.int <4294967294 (0xfffffffe)> + [27] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [28] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [29] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [30] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [31] #196.1.1.num.int <78187493530 (0x123456789a)> + [32] #195.1.1.num.int <305419896 (0x12345678)> + [33] #194.1.1.num.int <1193046 (0x123456)> + [34] #193.1.1.num.int <4660 (0x1234)> + [35] #192.1.1.num.int <18 (0x12)> + [36] #191.1.1.num.int <0 (0x0)> + [37] #0.0.nil + [38] #190.1.1.num.bool <0 (0x0)> + [39] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x20c, type 8, 525[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.array + [1] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [2] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [3] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [4] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [5] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [6] #221.1.1.num.int <305419896 (0x12345678)> + [7] #220.1.1.num.int <78934 (0x13456)> + [8] #219.1.1.num.int <8364 (0x20ac)> + [9] #218.1.1.num.int <8364 (0x20ac)> + [10] #217.1.1.num.int <97 (0x61)> + [11] #216.1.1.num.int <92 (0x5c)> + [12] #215.1.1.num.int <39 (0x27)> + [13] #214.1.1.num.int <9 (0x9)> + [14] #213.1.1.num.int <10 (0xa)> + [15] #212.1.1.num.int <0 (0x0)> + [16] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [17] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [19] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [20] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [21] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #205.1.1.num.int <256 (0x100)> + [23] #204.1.1.num.int <128 (0x80)> + [24] #203.1.1.num.int <127 (0x7f)> + [25] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [26] #201.1.1.num.int <4294967294 (0xfffffffe)> + [27] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [28] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [29] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [30] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [31] #196.1.1.num.int <78187493530 (0x123456789a)> + [32] #195.1.1.num.int <305419896 (0x12345678)> + [33] #194.1.1.num.int <1193046 (0x123456)> + [34] #193.1.1.num.int <4660 (0x1234)> + [35] #192.1.1.num.int <18 (0x12)> + [36] #191.1.1.num.int <0 (0x0)> + [37] #0.0.nil + [38] #190.1.1.num.bool <0 (0x0)> + [39] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x20e, type 8, 527[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #227.1.1.array + [2] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [3] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [4] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [5] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [6] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [7] #221.1.1.num.int <305419896 (0x12345678)> + [8] #220.1.1.num.int <78934 (0x13456)> + [9] #219.1.1.num.int <8364 (0x20ac)> + [10] #218.1.1.num.int <8364 (0x20ac)> + [11] #217.1.1.num.int <97 (0x61)> + [12] #216.1.1.num.int <92 (0x5c)> + [13] #215.1.1.num.int <39 (0x27)> + [14] #214.1.1.num.int <9 (0x9)> + [15] #213.1.1.num.int <10 (0xa)> + [16] #212.1.1.num.int <0 (0x0)> + [17] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [18] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [20] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [21] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [22] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #205.1.1.num.int <256 (0x100)> + [24] #204.1.1.num.int <128 (0x80)> + [25] #203.1.1.num.int <127 (0x7f)> + [26] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [27] #201.1.1.num.int <4294967294 (0xfffffffe)> + [28] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [29] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [30] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [31] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [32] #196.1.1.num.int <78187493530 (0x123456789a)> + [33] #195.1.1.num.int <305419896 (0x12345678)> + [34] #194.1.1.num.int <1193046 (0x123456)> + [35] #193.1.1.num.int <4660 (0x1234)> + [36] #192.1.1.num.int <18 (0x12)> + [37] #191.1.1.num.int <0 (0x0)> + [38] #0.0.nil + [39] #190.1.1.num.bool <0 (0x0)> + [40] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x210, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <10 (0xa)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #227.1.1.array + [3] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [4] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [5] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [6] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [7] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [8] #221.1.1.num.int <305419896 (0x12345678)> + [9] #220.1.1.num.int <78934 (0x13456)> + [10] #219.1.1.num.int <8364 (0x20ac)> + [11] #218.1.1.num.int <8364 (0x20ac)> + [12] #217.1.1.num.int <97 (0x61)> + [13] #216.1.1.num.int <92 (0x5c)> + [14] #215.1.1.num.int <39 (0x27)> + [15] #214.1.1.num.int <9 (0x9)> + [16] #213.1.1.num.int <10 (0xa)> + [17] #212.1.1.num.int <0 (0x0)> + [18] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [19] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [21] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [22] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [23] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #205.1.1.num.int <256 (0x100)> + [25] #204.1.1.num.int <128 (0x80)> + [26] #203.1.1.num.int <127 (0x7f)> + [27] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [28] #201.1.1.num.int <4294967294 (0xfffffffe)> + [29] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [30] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [31] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [32] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [33] #196.1.1.num.int <78187493530 (0x123456789a)> + [34] #195.1.1.num.int <305419896 (0x12345678)> + [35] #194.1.1.num.int <1193046 (0x123456)> + [36] #193.1.1.num.int <4660 (0x1234)> + [37] #192.1.1.num.int <18 (0x12)> + [38] #191.1.1.num.int <0 (0x0)> + [39] #0.0.nil + [40] #190.1.1.num.bool <0 (0x0)> + [41] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x212, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <20 (0x14)> + [1] #228.1.1.num.int <10 (0xa)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #227.1.1.array + [4] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [5] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [6] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [7] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [8] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [9] #221.1.1.num.int <305419896 (0x12345678)> + [10] #220.1.1.num.int <78934 (0x13456)> + [11] #219.1.1.num.int <8364 (0x20ac)> + [12] #218.1.1.num.int <8364 (0x20ac)> + [13] #217.1.1.num.int <97 (0x61)> + [14] #216.1.1.num.int <92 (0x5c)> + [15] #215.1.1.num.int <39 (0x27)> + [16] #214.1.1.num.int <9 (0x9)> + [17] #213.1.1.num.int <10 (0xa)> + [18] #212.1.1.num.int <0 (0x0)> + [19] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [20] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [22] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [23] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [24] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #205.1.1.num.int <256 (0x100)> + [26] #204.1.1.num.int <128 (0x80)> + [27] #203.1.1.num.int <127 (0x7f)> + [28] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [29] #201.1.1.num.int <4294967294 (0xfffffffe)> + [30] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [31] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [32] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [33] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [34] #196.1.1.num.int <78187493530 (0x123456789a)> + [35] #195.1.1.num.int <305419896 (0x12345678)> + [36] #194.1.1.num.int <1193046 (0x123456)> + [37] #193.1.1.num.int <4660 (0x1234)> + [38] #192.1.1.num.int <18 (0x12)> + [39] #191.1.1.num.int <0 (0x0)> + [40] #0.0.nil + [41] #190.1.1.num.bool <0 (0x0)> + [42] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x214, type 1, 30 (0x1e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.num.int <30 (0x1e)> + [1] #229.1.1.num.int <20 (0x14)> + [2] #228.1.1.num.int <10 (0xa)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #227.1.1.array + [5] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [6] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [7] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [8] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [9] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [10] #221.1.1.num.int <305419896 (0x12345678)> + [11] #220.1.1.num.int <78934 (0x13456)> + [12] #219.1.1.num.int <8364 (0x20ac)> + [13] #218.1.1.num.int <8364 (0x20ac)> + [14] #217.1.1.num.int <97 (0x61)> + [15] #216.1.1.num.int <92 (0x5c)> + [16] #215.1.1.num.int <39 (0x27)> + [17] #214.1.1.num.int <9 (0x9)> + [18] #213.1.1.num.int <10 (0xa)> + [19] #212.1.1.num.int <0 (0x0)> + [20] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [21] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [23] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [24] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [25] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #205.1.1.num.int <256 (0x100)> + [27] #204.1.1.num.int <128 (0x80)> + [28] #203.1.1.num.int <127 (0x7f)> + [29] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [30] #201.1.1.num.int <4294967294 (0xfffffffe)> + [31] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [32] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [33] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [34] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [35] #196.1.1.num.int <78187493530 (0x123456789a)> + [36] #195.1.1.num.int <305419896 (0x12345678)> + [37] #194.1.1.num.int <1193046 (0x123456)> + [38] #193.1.1.num.int <4660 (0x1234)> + [39] #192.1.1.num.int <18 (0x12)> + [40] #191.1.1.num.int <0 (0x0)> + [41] #0.0.nil + [42] #190.1.1.num.bool <0 (0x0)> + [43] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x216, type 8, 535[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.array + [1] #227.1.1.array + [2] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [3] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [4] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [5] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [6] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [7] #221.1.1.num.int <305419896 (0x12345678)> + [8] #220.1.1.num.int <78934 (0x13456)> + [9] #219.1.1.num.int <8364 (0x20ac)> + [10] #218.1.1.num.int <8364 (0x20ac)> + [11] #217.1.1.num.int <97 (0x61)> + [12] #216.1.1.num.int <92 (0x5c)> + [13] #215.1.1.num.int <39 (0x27)> + [14] #214.1.1.num.int <9 (0x9)> + [15] #213.1.1.num.int <10 (0xa)> + [16] #212.1.1.num.int <0 (0x0)> + [17] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [18] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [20] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [21] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [22] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #205.1.1.num.int <256 (0x100)> + [24] #204.1.1.num.int <128 (0x80)> + [25] #203.1.1.num.int <127 (0x7f)> + [26] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [27] #201.1.1.num.int <4294967294 (0xfffffffe)> + [28] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [29] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [30] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [31] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [32] #196.1.1.num.int <78187493530 (0x123456789a)> + [33] #195.1.1.num.int <305419896 (0x12345678)> + [34] #194.1.1.num.int <1193046 (0x123456)> + [35] #193.1.1.num.int <4660 (0x1234)> + [36] #192.1.1.num.int <18 (0x12)> + [37] #191.1.1.num.int <0 (0x0)> + [38] #0.0.nil + [39] #190.1.1.num.bool <0 (0x0)> + [40] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x218, type 8, 537[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #231.1.1.array + [2] #227.1.1.array + [3] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [4] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [5] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [6] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [7] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [8] #221.1.1.num.int <305419896 (0x12345678)> + [9] #220.1.1.num.int <78934 (0x13456)> + [10] #219.1.1.num.int <8364 (0x20ac)> + [11] #218.1.1.num.int <8364 (0x20ac)> + [12] #217.1.1.num.int <97 (0x61)> + [13] #216.1.1.num.int <92 (0x5c)> + [14] #215.1.1.num.int <39 (0x27)> + [15] #214.1.1.num.int <9 (0x9)> + [16] #213.1.1.num.int <10 (0xa)> + [17] #212.1.1.num.int <0 (0x0)> + [18] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [19] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [21] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [22] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [23] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #205.1.1.num.int <256 (0x100)> + [25] #204.1.1.num.int <128 (0x80)> + [26] #203.1.1.num.int <127 (0x7f)> + [27] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [28] #201.1.1.num.int <4294967294 (0xfffffffe)> + [29] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [30] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [31] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [32] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [33] #196.1.1.num.int <78187493530 (0x123456789a)> + [34] #195.1.1.num.int <305419896 (0x12345678)> + [35] #194.1.1.num.int <1193046 (0x123456)> + [36] #193.1.1.num.int <4660 (0x1234)> + [37] #192.1.1.num.int <18 (0x12)> + [38] #191.1.1.num.int <0 (0x0)> + [39] #0.0.nil + [40] #190.1.1.num.bool <0 (0x0)> + [41] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x21a, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #231.1.1.array + [3] #227.1.1.array + [4] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [5] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [6] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [7] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [8] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [9] #221.1.1.num.int <305419896 (0x12345678)> + [10] #220.1.1.num.int <78934 (0x13456)> + [11] #219.1.1.num.int <8364 (0x20ac)> + [12] #218.1.1.num.int <8364 (0x20ac)> + [13] #217.1.1.num.int <97 (0x61)> + [14] #216.1.1.num.int <92 (0x5c)> + [15] #215.1.1.num.int <39 (0x27)> + [16] #214.1.1.num.int <9 (0x9)> + [17] #213.1.1.num.int <10 (0xa)> + [18] #212.1.1.num.int <0 (0x0)> + [19] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [20] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [22] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [23] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [24] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #205.1.1.num.int <256 (0x100)> + [26] #204.1.1.num.int <128 (0x80)> + [27] #203.1.1.num.int <127 (0x7f)> + [28] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [29] #201.1.1.num.int <4294967294 (0xfffffffe)> + [30] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [31] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [32] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [33] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [34] #196.1.1.num.int <78187493530 (0x123456789a)> + [35] #195.1.1.num.int <305419896 (0x12345678)> + [36] #194.1.1.num.int <1193046 (0x123456)> + [37] #193.1.1.num.int <4660 (0x1234)> + [38] #192.1.1.num.int <18 (0x12)> + [39] #191.1.1.num.int <0 (0x0)> + [40] #0.0.nil + [41] #190.1.1.num.bool <0 (0x0)> + [42] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x21b, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.num.int <2 (0x2)> + [1] #232.1.1.num.int <1 (0x1)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #231.1.1.array + [4] #227.1.1.array + [5] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [6] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [7] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [8] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [9] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [10] #221.1.1.num.int <305419896 (0x12345678)> + [11] #220.1.1.num.int <78934 (0x13456)> + [12] #219.1.1.num.int <8364 (0x20ac)> + [13] #218.1.1.num.int <8364 (0x20ac)> + [14] #217.1.1.num.int <97 (0x61)> + [15] #216.1.1.num.int <92 (0x5c)> + [16] #215.1.1.num.int <39 (0x27)> + [17] #214.1.1.num.int <9 (0x9)> + [18] #213.1.1.num.int <10 (0xa)> + [19] #212.1.1.num.int <0 (0x0)> + [20] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [21] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [23] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [24] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [25] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #205.1.1.num.int <256 (0x100)> + [27] #204.1.1.num.int <128 (0x80)> + [28] #203.1.1.num.int <127 (0x7f)> + [29] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [30] #201.1.1.num.int <4294967294 (0xfffffffe)> + [31] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [32] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [33] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [34] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [35] #196.1.1.num.int <78187493530 (0x123456789a)> + [36] #195.1.1.num.int <305419896 (0x12345678)> + [37] #194.1.1.num.int <1193046 (0x123456)> + [38] #193.1.1.num.int <4660 (0x1234)> + [39] #192.1.1.num.int <18 (0x12)> + [40] #191.1.1.num.int <0 (0x0)> + [41] #0.0.nil + [42] #190.1.1.num.bool <0 (0x0)> + [43] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x21c, type 8, 541[1] +GC: ++#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.3.num.prim <2 (0x2)> + [1] #233.1.1.num.int <2 (0x2)> + [2] #232.1.1.num.int <1 (0x1)> + [3] #9.1.3.num.prim <2 (0x2)> + [4] #231.1.1.array + [5] #227.1.1.array + [6] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [7] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [8] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [9] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [10] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [11] #221.1.1.num.int <305419896 (0x12345678)> + [12] #220.1.1.num.int <78934 (0x13456)> + [13] #219.1.1.num.int <8364 (0x20ac)> + [14] #218.1.1.num.int <8364 (0x20ac)> + [15] #217.1.1.num.int <97 (0x61)> + [16] #216.1.1.num.int <92 (0x5c)> + [17] #215.1.1.num.int <39 (0x27)> + [18] #214.1.1.num.int <9 (0x9)> + [19] #213.1.1.num.int <10 (0xa)> + [20] #212.1.1.num.int <0 (0x0)> + [21] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [22] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [24] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [25] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [26] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #205.1.1.num.int <256 (0x100)> + [28] #204.1.1.num.int <128 (0x80)> + [29] #203.1.1.num.int <127 (0x7f)> + [30] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [31] #201.1.1.num.int <4294967294 (0xfffffffe)> + [32] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [33] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [34] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [35] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [36] #196.1.1.num.int <78187493530 (0x123456789a)> + [37] #195.1.1.num.int <305419896 (0x12345678)> + [38] #194.1.1.num.int <1193046 (0x123456)> + [39] #193.1.1.num.int <4660 (0x1234)> + [40] #192.1.1.num.int <18 (0x12)> + [41] #191.1.1.num.int <0 (0x0)> + [42] #0.0.nil + [43] #190.1.1.num.bool <0 (0x0)> + [44] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x21e, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.int <3 (0x3)> + [1] #9.1.3.num.prim <2 (0x2)> + [2] #233.1.1.num.int <2 (0x2)> + [3] #232.1.1.num.int <1 (0x1)> + [4] #9.1.3.num.prim <2 (0x2)> + [5] #231.1.1.array + [6] #227.1.1.array + [7] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [8] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [9] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [11] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [12] #221.1.1.num.int <305419896 (0x12345678)> + [13] #220.1.1.num.int <78934 (0x13456)> + [14] #219.1.1.num.int <8364 (0x20ac)> + [15] #218.1.1.num.int <8364 (0x20ac)> + [16] #217.1.1.num.int <97 (0x61)> + [17] #216.1.1.num.int <92 (0x5c)> + [18] #215.1.1.num.int <39 (0x27)> + [19] #214.1.1.num.int <9 (0x9)> + [20] #213.1.1.num.int <10 (0xa)> + [21] #212.1.1.num.int <0 (0x0)> + [22] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #205.1.1.num.int <256 (0x100)> + [29] #204.1.1.num.int <128 (0x80)> + [30] #203.1.1.num.int <127 (0x7f)> + [31] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #201.1.1.num.int <4294967294 (0xfffffffe)> + [33] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #196.1.1.num.int <78187493530 (0x123456789a)> + [38] #195.1.1.num.int <305419896 (0x12345678)> + [39] #194.1.1.num.int <1193046 (0x123456)> + [40] #193.1.1.num.int <4660 (0x1234)> + [41] #192.1.1.num.int <18 (0x12)> + [42] #191.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #190.1.1.num.bool <0 (0x0)> + [45] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x21f, type 8, 544[1] +GC: --#9.1.3.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.array + [1] #233.1.1.num.int <2 (0x2)> + [2] #232.1.1.num.int <1 (0x1)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #231.1.1.array + [5] #227.1.1.array + [6] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [7] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [8] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [9] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [10] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [11] #221.1.1.num.int <305419896 (0x12345678)> + [12] #220.1.1.num.int <78934 (0x13456)> + [13] #219.1.1.num.int <8364 (0x20ac)> + [14] #218.1.1.num.int <8364 (0x20ac)> + [15] #217.1.1.num.int <97 (0x61)> + [16] #216.1.1.num.int <92 (0x5c)> + [17] #215.1.1.num.int <39 (0x27)> + [18] #214.1.1.num.int <9 (0x9)> + [19] #213.1.1.num.int <10 (0xa)> + [20] #212.1.1.num.int <0 (0x0)> + [21] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [22] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [24] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [25] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [26] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #205.1.1.num.int <256 (0x100)> + [28] #204.1.1.num.int <128 (0x80)> + [29] #203.1.1.num.int <127 (0x7f)> + [30] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [31] #201.1.1.num.int <4294967294 (0xfffffffe)> + [32] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [33] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [34] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [35] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [36] #196.1.1.num.int <78187493530 (0x123456789a)> + [37] #195.1.1.num.int <305419896 (0x12345678)> + [38] #194.1.1.num.int <1193046 (0x123456)> + [39] #193.1.1.num.int <4660 (0x1234)> + [40] #192.1.1.num.int <18 (0x12)> + [41] #191.1.1.num.int <0 (0x0)> + [42] #0.0.nil + [43] #190.1.1.num.bool <0 (0x0)> + [44] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x221, type 1, 4 (0x4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <4 (0x4)> + [1] #235.1.1.array + [2] #233.1.1.num.int <2 (0x2)> + [3] #232.1.1.num.int <1 (0x1)> + [4] #9.1.2.num.prim <2 (0x2)> + [5] #231.1.1.array + [6] #227.1.1.array + [7] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [8] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [9] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [11] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [12] #221.1.1.num.int <305419896 (0x12345678)> + [13] #220.1.1.num.int <78934 (0x13456)> + [14] #219.1.1.num.int <8364 (0x20ac)> + [15] #218.1.1.num.int <8364 (0x20ac)> + [16] #217.1.1.num.int <97 (0x61)> + [17] #216.1.1.num.int <92 (0x5c)> + [18] #215.1.1.num.int <39 (0x27)> + [19] #214.1.1.num.int <9 (0x9)> + [20] #213.1.1.num.int <10 (0xa)> + [21] #212.1.1.num.int <0 (0x0)> + [22] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #205.1.1.num.int <256 (0x100)> + [29] #204.1.1.num.int <128 (0x80)> + [30] #203.1.1.num.int <127 (0x7f)> + [31] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #201.1.1.num.int <4294967294 (0xfffffffe)> + [33] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #196.1.1.num.int <78187493530 (0x123456789a)> + [38] #195.1.1.num.int <305419896 (0x12345678)> + [39] #194.1.1.num.int <1193046 (0x123456)> + [40] #193.1.1.num.int <4660 (0x1234)> + [41] #192.1.1.num.int <18 (0x12)> + [42] #191.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #190.1.1.num.bool <0 (0x0)> + [45] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x222, type 8, 547[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.array + [1] #231.1.1.array + [2] #227.1.1.array + [3] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [4] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [5] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [6] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [7] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [8] #221.1.1.num.int <305419896 (0x12345678)> + [9] #220.1.1.num.int <78934 (0x13456)> + [10] #219.1.1.num.int <8364 (0x20ac)> + [11] #218.1.1.num.int <8364 (0x20ac)> + [12] #217.1.1.num.int <97 (0x61)> + [13] #216.1.1.num.int <92 (0x5c)> + [14] #215.1.1.num.int <39 (0x27)> + [15] #214.1.1.num.int <9 (0x9)> + [16] #213.1.1.num.int <10 (0xa)> + [17] #212.1.1.num.int <0 (0x0)> + [18] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [19] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [21] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [22] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [23] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #205.1.1.num.int <256 (0x100)> + [25] #204.1.1.num.int <128 (0x80)> + [26] #203.1.1.num.int <127 (0x7f)> + [27] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [28] #201.1.1.num.int <4294967294 (0xfffffffe)> + [29] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [30] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [31] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [32] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [33] #196.1.1.num.int <78187493530 (0x123456789a)> + [34] #195.1.1.num.int <305419896 (0x12345678)> + [35] #194.1.1.num.int <1193046 (0x123456)> + [36] #193.1.1.num.int <4660 (0x1234)> + [37] #192.1.1.num.int <18 (0x12)> + [38] #191.1.1.num.int <0 (0x0)> + [39] #0.0.nil + [40] #190.1.1.num.bool <0 (0x0)> + [41] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x224, type 8, 549[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #237.1.1.array + [2] #231.1.1.array + [3] #227.1.1.array + [4] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [5] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [6] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [7] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [8] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [9] #221.1.1.num.int <305419896 (0x12345678)> + [10] #220.1.1.num.int <78934 (0x13456)> + [11] #219.1.1.num.int <8364 (0x20ac)> + [12] #218.1.1.num.int <8364 (0x20ac)> + [13] #217.1.1.num.int <97 (0x61)> + [14] #216.1.1.num.int <92 (0x5c)> + [15] #215.1.1.num.int <39 (0x27)> + [16] #214.1.1.num.int <9 (0x9)> + [17] #213.1.1.num.int <10 (0xa)> + [18] #212.1.1.num.int <0 (0x0)> + [19] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [20] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [22] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [23] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [24] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #205.1.1.num.int <256 (0x100)> + [26] #204.1.1.num.int <128 (0x80)> + [27] #203.1.1.num.int <127 (0x7f)> + [28] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [29] #201.1.1.num.int <4294967294 (0xfffffffe)> + [30] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [31] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [32] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [33] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [34] #196.1.1.num.int <78187493530 (0x123456789a)> + [35] #195.1.1.num.int <305419896 (0x12345678)> + [36] #194.1.1.num.int <1193046 (0x123456)> + [37] #193.1.1.num.int <4660 (0x1234)> + [38] #192.1.1.num.int <18 (0x12)> + [39] #191.1.1.num.int <0 (0x0)> + [40] #0.0.nil + [41] #190.1.1.num.bool <0 (0x0)> + [42] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x226, type 8, 551[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.hash + [1] #237.1.1.array + [2] #231.1.1.array + [3] #227.1.1.array + [4] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [5] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [6] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [7] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [8] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [9] #221.1.1.num.int <305419896 (0x12345678)> + [10] #220.1.1.num.int <78934 (0x13456)> + [11] #219.1.1.num.int <8364 (0x20ac)> + [12] #218.1.1.num.int <8364 (0x20ac)> + [13] #217.1.1.num.int <97 (0x61)> + [14] #216.1.1.num.int <92 (0x5c)> + [15] #215.1.1.num.int <39 (0x27)> + [16] #214.1.1.num.int <9 (0x9)> + [17] #213.1.1.num.int <10 (0xa)> + [18] #212.1.1.num.int <0 (0x0)> + [19] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [20] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [22] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [23] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [24] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #205.1.1.num.int <256 (0x100)> + [26] #204.1.1.num.int <128 (0x80)> + [27] #203.1.1.num.int <127 (0x7f)> + [28] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [29] #201.1.1.num.int <4294967294 (0xfffffffe)> + [30] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [31] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [32] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [33] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [34] #196.1.1.num.int <78187493530 (0x123456789a)> + [35] #195.1.1.num.int <305419896 (0x12345678)> + [36] #194.1.1.num.int <1193046 (0x123456)> + [37] #193.1.1.num.int <4660 (0x1234)> + [38] #192.1.1.num.int <18 (0x12)> + [39] #191.1.1.num.int <0 (0x0)> + [40] #0.0.nil + [41] #190.1.1.num.bool <0 (0x0)> + [42] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x228, type 8, 553[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #238.1.1.hash + [2] #237.1.1.array + [3] #231.1.1.array + [4] #227.1.1.array + [5] #226.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x201, size 9> + [6] #225.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x1ff, size 1> + [7] #224.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [8] #223.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x85, size 8, "€ XX X"> + [9] #222.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x81, size 3, "€"> + [10] #221.1.1.num.int <305419896 (0x12345678)> + [11] #220.1.1.num.int <78934 (0x13456)> + [12] #219.1.1.num.int <8364 (0x20ac)> + [13] #218.1.1.num.int <8364 (0x20ac)> + [14] #217.1.1.num.int <97 (0x61)> + [15] #216.1.1.num.int <92 (0x5c)> + [16] #215.1.1.num.int <39 (0x27)> + [17] #214.1.1.num.int <9 (0x9)> + [18] #213.1.1.num.int <10 (0xa)> + [19] #212.1.1.num.int <0 (0x0)> + [20] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [21] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [23] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [24] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [25] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #205.1.1.num.int <256 (0x100)> + [27] #204.1.1.num.int <128 (0x80)> + [28] #203.1.1.num.int <127 (0x7f)> + [29] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [30] #201.1.1.num.int <4294967294 (0xfffffffe)> + [31] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [32] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [33] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [34] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [35] #196.1.1.num.int <78187493530 (0x123456789a)> + [36] #195.1.1.num.int <305419896 (0x12345678)> + [37] #194.1.1.num.int <1193046 (0x123456)> + [38] #193.1.1.num.int <4660 (0x1234)> + [39] #192.1.1.num.int <18 (0x12)> + [40] #191.1.1.num.int <0 (0x0)> + [41] #0.0.nil + [42] #190.1.1.num.bool <0 (0x0)> + [43] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x22a, type 7, 555[3] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x22b, size 3, "a10"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #238.1.1.hash + [3] #237.1.1.array + [4] #231.1.1.array + [5] #227.1.1.array + [6] #226.1.1.mem.code.ro <#186.1.7.mem.ro, ofs 0x201, size 9> + [7] #225.1.1.mem.code.ro <#186.1.7.mem.ro, ofs 0x1ff, size 1> + [8] #224.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [9] #223.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x85, size 8, "€ XX X"> + [10] #222.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x81, size 3, "€"> + [11] #221.1.1.num.int <305419896 (0x12345678)> + [12] #220.1.1.num.int <78934 (0x13456)> + [13] #219.1.1.num.int <8364 (0x20ac)> + [14] #218.1.1.num.int <8364 (0x20ac)> + [15] #217.1.1.num.int <97 (0x61)> + [16] #216.1.1.num.int <92 (0x5c)> + [17] #215.1.1.num.int <39 (0x27)> + [18] #214.1.1.num.int <9 (0x9)> + [19] #213.1.1.num.int <10 (0xa)> + [20] #212.1.1.num.int <0 (0x0)> + [21] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [22] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [24] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [25] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [26] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #205.1.1.num.int <256 (0x100)> + [28] #204.1.1.num.int <128 (0x80)> + [29] #203.1.1.num.int <127 (0x7f)> + [30] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [31] #201.1.1.num.int <4294967294 (0xfffffffe)> + [32] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [33] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [34] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [35] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [36] #196.1.1.num.int <78187493530 (0x123456789a)> + [37] #195.1.1.num.int <305419896 (0x12345678)> + [38] #194.1.1.num.int <1193046 (0x123456)> + [39] #193.1.1.num.int <4660 (0x1234)> + [40] #192.1.1.num.int <18 (0x12)> + [41] #191.1.1.num.int <0 (0x0)> + [42] #0.0.nil + [43] #190.1.1.num.bool <0 (0x0)> + [44] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x22e, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.num.int <100 (0x64)> + [1] #239.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x22b, size 3, "a10"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #238.1.1.hash + [4] #237.1.1.array + [5] #231.1.1.array + [6] #227.1.1.array + [7] #226.1.1.mem.code.ro <#186.1.7.mem.ro, ofs 0x201, size 9> + [8] #225.1.1.mem.code.ro <#186.1.7.mem.ro, ofs 0x1ff, size 1> + [9] #224.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #223.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x85, size 8, "€ XX X"> + [11] #222.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x81, size 3, "€"> + [12] #221.1.1.num.int <305419896 (0x12345678)> + [13] #220.1.1.num.int <78934 (0x13456)> + [14] #219.1.1.num.int <8364 (0x20ac)> + [15] #218.1.1.num.int <8364 (0x20ac)> + [16] #217.1.1.num.int <97 (0x61)> + [17] #216.1.1.num.int <92 (0x5c)> + [18] #215.1.1.num.int <39 (0x27)> + [19] #214.1.1.num.int <9 (0x9)> + [20] #213.1.1.num.int <10 (0xa)> + [21] #212.1.1.num.int <0 (0x0)> + [22] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #205.1.1.num.int <256 (0x100)> + [29] #204.1.1.num.int <128 (0x80)> + [30] #203.1.1.num.int <127 (0x7f)> + [31] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #201.1.1.num.int <4294967294 (0xfffffffe)> + [33] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #196.1.1.num.int <78187493530 (0x123456789a)> + [38] #195.1.1.num.int <305419896 (0x12345678)> + [39] #194.1.1.num.int <1193046 (0x123456)> + [40] #193.1.1.num.int <4660 (0x1234)> + [41] #192.1.1.num.int <18 (0x12)> + [42] #191.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #190.1.1.num.bool <0 (0x0)> + [45] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x230, type 7, 561[3] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x231, size 3, "a20"> + [1] #240.1.1.num.int <100 (0x64)> + [2] #239.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x22b, size 3, "a10"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #238.1.1.hash + [5] #237.1.1.array + [6] #231.1.1.array + [7] #227.1.1.array + [8] #226.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x201, size 9> + [9] #225.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x1ff, size 1> + [10] #224.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [11] #223.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x85, size 8, "€ XX X"> + [12] #222.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x81, size 3, "€"> + [13] #221.1.1.num.int <305419896 (0x12345678)> + [14] #220.1.1.num.int <78934 (0x13456)> + [15] #219.1.1.num.int <8364 (0x20ac)> + [16] #218.1.1.num.int <8364 (0x20ac)> + [17] #217.1.1.num.int <97 (0x61)> + [18] #216.1.1.num.int <92 (0x5c)> + [19] #215.1.1.num.int <39 (0x27)> + [20] #214.1.1.num.int <9 (0x9)> + [21] #213.1.1.num.int <10 (0xa)> + [22] #212.1.1.num.int <0 (0x0)> + [23] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [24] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [26] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [27] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [28] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [29] #205.1.1.num.int <256 (0x100)> + [30] #204.1.1.num.int <128 (0x80)> + [31] #203.1.1.num.int <127 (0x7f)> + [32] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [33] #201.1.1.num.int <4294967294 (0xfffffffe)> + [34] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [35] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [36] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [37] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [38] #196.1.1.num.int <78187493530 (0x123456789a)> + [39] #195.1.1.num.int <305419896 (0x12345678)> + [40] #194.1.1.num.int <1193046 (0x123456)> + [41] #193.1.1.num.int <4660 (0x1234)> + [42] #192.1.1.num.int <18 (0x12)> + [43] #191.1.1.num.int <0 (0x0)> + [44] #0.0.nil + [45] #190.1.1.num.bool <0 (0x0)> + [46] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x234, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <200 (0xc8)> + [1] #241.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x231, size 3, "a20"> + [2] #240.1.1.num.int <100 (0x64)> + [3] #239.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x22b, size 3, "a10"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #238.1.1.hash + [6] #237.1.1.array + [7] #231.1.1.array + [8] #227.1.1.array + [9] #226.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x201, size 9> + [10] #225.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x1ff, size 1> + [11] #224.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [12] #223.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x85, size 8, "€ XX X"> + [13] #222.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x81, size 3, "€"> + [14] #221.1.1.num.int <305419896 (0x12345678)> + [15] #220.1.1.num.int <78934 (0x13456)> + [16] #219.1.1.num.int <8364 (0x20ac)> + [17] #218.1.1.num.int <8364 (0x20ac)> + [18] #217.1.1.num.int <97 (0x61)> + [19] #216.1.1.num.int <92 (0x5c)> + [20] #215.1.1.num.int <39 (0x27)> + [21] #214.1.1.num.int <9 (0x9)> + [22] #213.1.1.num.int <10 (0xa)> + [23] #212.1.1.num.int <0 (0x0)> + [24] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [25] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [27] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [28] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [29] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [30] #205.1.1.num.int <256 (0x100)> + [31] #204.1.1.num.int <128 (0x80)> + [32] #203.1.1.num.int <127 (0x7f)> + [33] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [34] #201.1.1.num.int <4294967294 (0xfffffffe)> + [35] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [36] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [37] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [38] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [39] #196.1.1.num.int <78187493530 (0x123456789a)> + [40] #195.1.1.num.int <305419896 (0x12345678)> + [41] #194.1.1.num.int <1193046 (0x123456)> + [42] #193.1.1.num.int <4660 (0x1234)> + [43] #192.1.1.num.int <18 (0x12)> + [44] #191.1.1.num.int <0 (0x0)> + [45] #0.0.nil + [46] #190.1.1.num.bool <0 (0x0)> + [47] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x237, type 8, 568[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.hash + [1] #238.1.1.hash + [2] #237.1.1.array + [3] #231.1.1.array + [4] #227.1.1.array + [5] #226.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x201, size 9> + [6] #225.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x1ff, size 1> + [7] #224.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [8] #223.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x85, size 8, "€ XX X"> + [9] #222.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x81, size 3, "€"> + [10] #221.1.1.num.int <305419896 (0x12345678)> + [11] #220.1.1.num.int <78934 (0x13456)> + [12] #219.1.1.num.int <8364 (0x20ac)> + [13] #218.1.1.num.int <8364 (0x20ac)> + [14] #217.1.1.num.int <97 (0x61)> + [15] #216.1.1.num.int <92 (0x5c)> + [16] #215.1.1.num.int <39 (0x27)> + [17] #214.1.1.num.int <9 (0x9)> + [18] #213.1.1.num.int <10 (0xa)> + [19] #212.1.1.num.int <0 (0x0)> + [20] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [21] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [23] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [24] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [25] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #205.1.1.num.int <256 (0x100)> + [27] #204.1.1.num.int <128 (0x80)> + [28] #203.1.1.num.int <127 (0x7f)> + [29] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [30] #201.1.1.num.int <4294967294 (0xfffffffe)> + [31] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [32] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [33] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [34] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [35] #196.1.1.num.int <78187493530 (0x123456789a)> + [36] #195.1.1.num.int <305419896 (0x12345678)> + [37] #194.1.1.num.int <1193046 (0x123456)> + [38] #193.1.1.num.int <4660 (0x1234)> + [39] #192.1.1.num.int <18 (0x12)> + [40] #191.1.1.num.int <0 (0x0)> + [41] #0.0.nil + [42] #190.1.1.num.bool <0 (0x0)> + [43] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x239, type 8, 570[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #243.1.1.hash + [2] #238.1.1.hash + [3] #237.1.1.array + [4] #231.1.1.array + [5] #227.1.1.array + [6] #226.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x201, size 9> + [7] #225.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x1ff, size 1> + [8] #224.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [9] #223.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x85, size 8, "€ XX X"> + [10] #222.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x81, size 3, "€"> + [11] #221.1.1.num.int <305419896 (0x12345678)> + [12] #220.1.1.num.int <78934 (0x13456)> + [13] #219.1.1.num.int <8364 (0x20ac)> + [14] #218.1.1.num.int <8364 (0x20ac)> + [15] #217.1.1.num.int <97 (0x61)> + [16] #216.1.1.num.int <92 (0x5c)> + [17] #215.1.1.num.int <39 (0x27)> + [18] #214.1.1.num.int <9 (0x9)> + [19] #213.1.1.num.int <10 (0xa)> + [20] #212.1.1.num.int <0 (0x0)> + [21] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [22] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [24] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [25] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [26] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #205.1.1.num.int <256 (0x100)> + [28] #204.1.1.num.int <128 (0x80)> + [29] #203.1.1.num.int <127 (0x7f)> + [30] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [31] #201.1.1.num.int <4294967294 (0xfffffffe)> + [32] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [33] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [34] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [35] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [36] #196.1.1.num.int <78187493530 (0x123456789a)> + [37] #195.1.1.num.int <305419896 (0x12345678)> + [38] #194.1.1.num.int <1193046 (0x123456)> + [39] #193.1.1.num.int <4660 (0x1234)> + [40] #192.1.1.num.int <18 (0x12)> + [41] #191.1.1.num.int <0 (0x0)> + [42] #0.0.nil + [43] #190.1.1.num.bool <0 (0x0)> + [44] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x23b, type 7, 572[3] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x23c, size 3, "c10"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #243.1.1.hash + [3] #238.1.1.hash + [4] #237.1.1.array + [5] #231.1.1.array + [6] #227.1.1.array + [7] #226.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0x201, size 9> + [8] #225.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0x1ff, size 1> + [9] #224.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #223.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x85, size 8, "€ XX X"> + [11] #222.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x81, size 3, "€"> + [12] #221.1.1.num.int <305419896 (0x12345678)> + [13] #220.1.1.num.int <78934 (0x13456)> + [14] #219.1.1.num.int <8364 (0x20ac)> + [15] #218.1.1.num.int <8364 (0x20ac)> + [16] #217.1.1.num.int <97 (0x61)> + [17] #216.1.1.num.int <92 (0x5c)> + [18] #215.1.1.num.int <39 (0x27)> + [19] #214.1.1.num.int <9 (0x9)> + [20] #213.1.1.num.int <10 (0xa)> + [21] #212.1.1.num.int <0 (0x0)> + [22] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #205.1.1.num.int <256 (0x100)> + [29] #204.1.1.num.int <128 (0x80)> + [30] #203.1.1.num.int <127 (0x7f)> + [31] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #201.1.1.num.int <4294967294 (0xfffffffe)> + [33] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #196.1.1.num.int <78187493530 (0x123456789a)> + [38] #195.1.1.num.int <305419896 (0x12345678)> + [39] #194.1.1.num.int <1193046 (0x123456)> + [40] #193.1.1.num.int <4660 (0x1234)> + [41] #192.1.1.num.int <18 (0x12)> + [42] #191.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #190.1.1.num.bool <0 (0x0)> + [45] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x23f, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.num.int <10 (0xa)> + [1] #244.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x23c, size 3, "c10"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #243.1.1.hash + [4] #238.1.1.hash + [5] #237.1.1.array + [6] #231.1.1.array + [7] #227.1.1.array + [8] #226.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0x201, size 9> + [9] #225.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0x1ff, size 1> + [10] #224.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [11] #223.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x85, size 8, "€ XX X"> + [12] #222.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x81, size 3, "€"> + [13] #221.1.1.num.int <305419896 (0x12345678)> + [14] #220.1.1.num.int <78934 (0x13456)> + [15] #219.1.1.num.int <8364 (0x20ac)> + [16] #218.1.1.num.int <8364 (0x20ac)> + [17] #217.1.1.num.int <97 (0x61)> + [18] #216.1.1.num.int <92 (0x5c)> + [19] #215.1.1.num.int <39 (0x27)> + [20] #214.1.1.num.int <9 (0x9)> + [21] #213.1.1.num.int <10 (0xa)> + [22] #212.1.1.num.int <0 (0x0)> + [23] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [24] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [26] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [27] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [28] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [29] #205.1.1.num.int <256 (0x100)> + [30] #204.1.1.num.int <128 (0x80)> + [31] #203.1.1.num.int <127 (0x7f)> + [32] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [33] #201.1.1.num.int <4294967294 (0xfffffffe)> + [34] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [35] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [36] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [37] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [38] #196.1.1.num.int <78187493530 (0x123456789a)> + [39] #195.1.1.num.int <305419896 (0x12345678)> + [40] #194.1.1.num.int <1193046 (0x123456)> + [41] #193.1.1.num.int <4660 (0x1234)> + [42] #192.1.1.num.int <18 (0x12)> + [43] #191.1.1.num.int <0 (0x0)> + [44] #0.0.nil + [45] #190.1.1.num.bool <0 (0x0)> + [46] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x241, type 7, 578[3] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x242, size 3, "c20"> + [1] #245.1.1.num.int <10 (0xa)> + [2] #244.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x23c, size 3, "c10"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #243.1.1.hash + [5] #238.1.1.hash + [6] #237.1.1.array + [7] #231.1.1.array + [8] #227.1.1.array + [9] #226.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x201, size 9> + [10] #225.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x1ff, size 1> + [11] #224.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [12] #223.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x85, size 8, "€ XX X"> + [13] #222.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x81, size 3, "€"> + [14] #221.1.1.num.int <305419896 (0x12345678)> + [15] #220.1.1.num.int <78934 (0x13456)> + [16] #219.1.1.num.int <8364 (0x20ac)> + [17] #218.1.1.num.int <8364 (0x20ac)> + [18] #217.1.1.num.int <97 (0x61)> + [19] #216.1.1.num.int <92 (0x5c)> + [20] #215.1.1.num.int <39 (0x27)> + [21] #214.1.1.num.int <9 (0x9)> + [22] #213.1.1.num.int <10 (0xa)> + [23] #212.1.1.num.int <0 (0x0)> + [24] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [25] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [27] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [28] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [29] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [30] #205.1.1.num.int <256 (0x100)> + [31] #204.1.1.num.int <128 (0x80)> + [32] #203.1.1.num.int <127 (0x7f)> + [33] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [34] #201.1.1.num.int <4294967294 (0xfffffffe)> + [35] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [36] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [37] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [38] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [39] #196.1.1.num.int <78187493530 (0x123456789a)> + [40] #195.1.1.num.int <305419896 (0x12345678)> + [41] #194.1.1.num.int <1193046 (0x123456)> + [42] #193.1.1.num.int <4660 (0x1234)> + [43] #192.1.1.num.int <18 (0x12)> + [44] #191.1.1.num.int <0 (0x0)> + [45] #0.0.nil + [46] #190.1.1.num.bool <0 (0x0)> + [47] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x245, type 8, 582[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.1.1.hash + [1] #243.1.1.hash + [2] #238.1.1.hash + [3] #237.1.1.array + [4] #231.1.1.array + [5] #227.1.1.array + [6] #226.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x201, size 9> + [7] #225.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x1ff, size 1> + [8] #224.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [9] #223.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x85, size 8, "€ XX X"> + [10] #222.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x81, size 3, "€"> + [11] #221.1.1.num.int <305419896 (0x12345678)> + [12] #220.1.1.num.int <78934 (0x13456)> + [13] #219.1.1.num.int <8364 (0x20ac)> + [14] #218.1.1.num.int <8364 (0x20ac)> + [15] #217.1.1.num.int <97 (0x61)> + [16] #216.1.1.num.int <92 (0x5c)> + [17] #215.1.1.num.int <39 (0x27)> + [18] #214.1.1.num.int <9 (0x9)> + [19] #213.1.1.num.int <10 (0xa)> + [20] #212.1.1.num.int <0 (0x0)> + [21] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [22] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [24] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [25] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [26] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #205.1.1.num.int <256 (0x100)> + [28] #204.1.1.num.int <128 (0x80)> + [29] #203.1.1.num.int <127 (0x7f)> + [30] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [31] #201.1.1.num.int <4294967294 (0xfffffffe)> + [32] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [33] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [34] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [35] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [36] #196.1.1.num.int <78187493530 (0x123456789a)> + [37] #195.1.1.num.int <305419896 (0x12345678)> + [38] #194.1.1.num.int <1193046 (0x123456)> + [39] #193.1.1.num.int <4660 (0x1234)> + [40] #192.1.1.num.int <18 (0x12)> + [41] #191.1.1.num.int <0 (0x0)> + [42] #0.0.nil + [43] #190.1.1.num.bool <0 (0x0)> + [44] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x247, type 8, 584[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #247.1.1.hash + [2] #243.1.1.hash + [3] #238.1.1.hash + [4] #237.1.1.array + [5] #231.1.1.array + [6] #227.1.1.array + [7] #226.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x201, size 9> + [8] #225.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x1ff, size 1> + [9] #224.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #223.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x85, size 8, "€ XX X"> + [11] #222.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x81, size 3, "€"> + [12] #221.1.1.num.int <305419896 (0x12345678)> + [13] #220.1.1.num.int <78934 (0x13456)> + [14] #219.1.1.num.int <8364 (0x20ac)> + [15] #218.1.1.num.int <8364 (0x20ac)> + [16] #217.1.1.num.int <97 (0x61)> + [17] #216.1.1.num.int <92 (0x5c)> + [18] #215.1.1.num.int <39 (0x27)> + [19] #214.1.1.num.int <9 (0x9)> + [20] #213.1.1.num.int <10 (0xa)> + [21] #212.1.1.num.int <0 (0x0)> + [22] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #205.1.1.num.int <256 (0x100)> + [29] #204.1.1.num.int <128 (0x80)> + [30] #203.1.1.num.int <127 (0x7f)> + [31] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #201.1.1.num.int <4294967294 (0xfffffffe)> + [33] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #196.1.1.num.int <78187493530 (0x123456789a)> + [38] #195.1.1.num.int <305419896 (0x12345678)> + [39] #194.1.1.num.int <1193046 (0x123456)> + [40] #193.1.1.num.int <4660 (0x1234)> + [41] #192.1.1.num.int <18 (0x12)> + [42] #191.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #190.1.1.num.bool <0 (0x0)> + [45] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x249, type 7, 586[1] +GC: ++#186.1.10.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #248.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x24a, size 1, "a"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #247.1.1.hash + [3] #243.1.1.hash + [4] #238.1.1.hash + [5] #237.1.1.array + [6] #231.1.1.array + [7] #227.1.1.array + [8] #226.1.1.mem.code.ro <#186.1.11.mem.ro, ofs 0x201, size 9> + [9] #225.1.1.mem.code.ro <#186.1.11.mem.ro, ofs 0x1ff, size 1> + [10] #224.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [11] #223.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x85, size 8, "€ XX X"> + [12] #222.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x81, size 3, "€"> + [13] #221.1.1.num.int <305419896 (0x12345678)> + [14] #220.1.1.num.int <78934 (0x13456)> + [15] #219.1.1.num.int <8364 (0x20ac)> + [16] #218.1.1.num.int <8364 (0x20ac)> + [17] #217.1.1.num.int <97 (0x61)> + [18] #216.1.1.num.int <92 (0x5c)> + [19] #215.1.1.num.int <39 (0x27)> + [20] #214.1.1.num.int <9 (0x9)> + [21] #213.1.1.num.int <10 (0xa)> + [22] #212.1.1.num.int <0 (0x0)> + [23] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [24] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [26] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [27] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [28] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [29] #205.1.1.num.int <256 (0x100)> + [30] #204.1.1.num.int <128 (0x80)> + [31] #203.1.1.num.int <127 (0x7f)> + [32] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [33] #201.1.1.num.int <4294967294 (0xfffffffe)> + [34] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [35] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [36] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [37] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [38] #196.1.1.num.int <78187493530 (0x123456789a)> + [39] #195.1.1.num.int <305419896 (0x12345678)> + [40] #194.1.1.num.int <1193046 (0x123456)> + [41] #193.1.1.num.int <4660 (0x1234)> + [42] #192.1.1.num.int <18 (0x12)> + [43] #191.1.1.num.int <0 (0x0)> + [44] #0.0.nil + [45] #190.1.1.num.bool <0 (0x0)> + [46] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x24b, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #249.1.1.num.int <1 (0x1)> + [1] #248.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x24a, size 1, "a"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #247.1.1.hash + [4] #243.1.1.hash + [5] #238.1.1.hash + [6] #237.1.1.array + [7] #231.1.1.array + [8] #227.1.1.array + [9] #226.1.1.mem.code.ro <#186.1.11.mem.ro, ofs 0x201, size 9> + [10] #225.1.1.mem.code.ro <#186.1.11.mem.ro, ofs 0x1ff, size 1> + [11] #224.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [12] #223.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x85, size 8, "€ XX X"> + [13] #222.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x81, size 3, "€"> + [14] #221.1.1.num.int <305419896 (0x12345678)> + [15] #220.1.1.num.int <78934 (0x13456)> + [16] #219.1.1.num.int <8364 (0x20ac)> + [17] #218.1.1.num.int <8364 (0x20ac)> + [18] #217.1.1.num.int <97 (0x61)> + [19] #216.1.1.num.int <92 (0x5c)> + [20] #215.1.1.num.int <39 (0x27)> + [21] #214.1.1.num.int <9 (0x9)> + [22] #213.1.1.num.int <10 (0xa)> + [23] #212.1.1.num.int <0 (0x0)> + [24] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [25] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [26] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [27] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [28] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [29] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [30] #205.1.1.num.int <256 (0x100)> + [31] #204.1.1.num.int <128 (0x80)> + [32] #203.1.1.num.int <127 (0x7f)> + [33] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [34] #201.1.1.num.int <4294967294 (0xfffffffe)> + [35] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [36] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [37] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [38] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [39] #196.1.1.num.int <78187493530 (0x123456789a)> + [40] #195.1.1.num.int <305419896 (0x12345678)> + [41] #194.1.1.num.int <1193046 (0x123456)> + [42] #193.1.1.num.int <4660 (0x1234)> + [43] #192.1.1.num.int <18 (0x12)> + [44] #191.1.1.num.int <0 (0x0)> + [45] #0.0.nil + [46] #190.1.1.num.bool <0 (0x0)> + [47] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x24c, type 7, 589[1] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #250.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x24d, size 1, "b"> + [1] #249.1.1.num.int <1 (0x1)> + [2] #248.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x24a, size 1, "a"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #247.1.1.hash + [5] #243.1.1.hash + [6] #238.1.1.hash + [7] #237.1.1.array + [8] #231.1.1.array + [9] #227.1.1.array + [10] #226.1.1.mem.code.ro <#186.1.12.mem.ro, ofs 0x201, size 9> + [11] #225.1.1.mem.code.ro <#186.1.12.mem.ro, ofs 0x1ff, size 1> + [12] #224.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [13] #223.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x85, size 8, "€ XX X"> + [14] #222.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x81, size 3, "€"> + [15] #221.1.1.num.int <305419896 (0x12345678)> + [16] #220.1.1.num.int <78934 (0x13456)> + [17] #219.1.1.num.int <8364 (0x20ac)> + [18] #218.1.1.num.int <8364 (0x20ac)> + [19] #217.1.1.num.int <97 (0x61)> + [20] #216.1.1.num.int <92 (0x5c)> + [21] #215.1.1.num.int <39 (0x27)> + [22] #214.1.1.num.int <9 (0x9)> + [23] #213.1.1.num.int <10 (0xa)> + [24] #212.1.1.num.int <0 (0x0)> + [25] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [26] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [27] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [28] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [29] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [30] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [31] #205.1.1.num.int <256 (0x100)> + [32] #204.1.1.num.int <128 (0x80)> + [33] #203.1.1.num.int <127 (0x7f)> + [34] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [35] #201.1.1.num.int <4294967294 (0xfffffffe)> + [36] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [37] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [38] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [39] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [40] #196.1.1.num.int <78187493530 (0x123456789a)> + [41] #195.1.1.num.int <305419896 (0x12345678)> + [42] #194.1.1.num.int <1193046 (0x123456)> + [43] #193.1.1.num.int <4660 (0x1234)> + [44] #192.1.1.num.int <18 (0x12)> + [45] #191.1.1.num.int <0 (0x0)> + [46] #0.0.nil + [47] #190.1.1.num.bool <0 (0x0)> + [48] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x24e, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #251.1.1.num.int <2 (0x2)> + [1] #250.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x24d, size 1, "b"> + [2] #249.1.1.num.int <1 (0x1)> + [3] #248.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x24a, size 1, "a"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #247.1.1.hash + [6] #243.1.1.hash + [7] #238.1.1.hash + [8] #237.1.1.array + [9] #231.1.1.array + [10] #227.1.1.array + [11] #226.1.1.mem.code.ro <#186.1.12.mem.ro, ofs 0x201, size 9> + [12] #225.1.1.mem.code.ro <#186.1.12.mem.ro, ofs 0x1ff, size 1> + [13] #224.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [14] #223.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x85, size 8, "€ XX X"> + [15] #222.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x81, size 3, "€"> + [16] #221.1.1.num.int <305419896 (0x12345678)> + [17] #220.1.1.num.int <78934 (0x13456)> + [18] #219.1.1.num.int <8364 (0x20ac)> + [19] #218.1.1.num.int <8364 (0x20ac)> + [20] #217.1.1.num.int <97 (0x61)> + [21] #216.1.1.num.int <92 (0x5c)> + [22] #215.1.1.num.int <39 (0x27)> + [23] #214.1.1.num.int <9 (0x9)> + [24] #213.1.1.num.int <10 (0xa)> + [25] #212.1.1.num.int <0 (0x0)> + [26] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [27] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [29] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [30] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [31] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [32] #205.1.1.num.int <256 (0x100)> + [33] #204.1.1.num.int <128 (0x80)> + [34] #203.1.1.num.int <127 (0x7f)> + [35] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [36] #201.1.1.num.int <4294967294 (0xfffffffe)> + [37] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [38] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [39] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [40] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [41] #196.1.1.num.int <78187493530 (0x123456789a)> + [42] #195.1.1.num.int <305419896 (0x12345678)> + [43] #194.1.1.num.int <1193046 (0x123456)> + [44] #193.1.1.num.int <4660 (0x1234)> + [45] #192.1.1.num.int <18 (0x12)> + [46] #191.1.1.num.int <0 (0x0)> + [47] #0.0.nil + [48] #190.1.1.num.bool <0 (0x0)> + [49] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x24f, type 7, 592[1] +GC: ++#186.1.12.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #252.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x250, size 1, "c"> + [1] #251.1.1.num.int <2 (0x2)> + [2] #250.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x24d, size 1, "b"> + [3] #249.1.1.num.int <1 (0x1)> + [4] #248.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x24a, size 1, "a"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #247.1.1.hash + [7] #243.1.1.hash + [8] #238.1.1.hash + [9] #237.1.1.array + [10] #231.1.1.array + [11] #227.1.1.array + [12] #226.1.1.mem.code.ro <#186.1.13.mem.ro, ofs 0x201, size 9> + [13] #225.1.1.mem.code.ro <#186.1.13.mem.ro, ofs 0x1ff, size 1> + [14] #224.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [15] #223.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x85, size 8, "€ XX X"> + [16] #222.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x81, size 3, "€"> + [17] #221.1.1.num.int <305419896 (0x12345678)> + [18] #220.1.1.num.int <78934 (0x13456)> + [19] #219.1.1.num.int <8364 (0x20ac)> + [20] #218.1.1.num.int <8364 (0x20ac)> + [21] #217.1.1.num.int <97 (0x61)> + [22] #216.1.1.num.int <92 (0x5c)> + [23] #215.1.1.num.int <39 (0x27)> + [24] #214.1.1.num.int <9 (0x9)> + [25] #213.1.1.num.int <10 (0xa)> + [26] #212.1.1.num.int <0 (0x0)> + [27] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [28] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [29] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [30] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [31] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [32] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [33] #205.1.1.num.int <256 (0x100)> + [34] #204.1.1.num.int <128 (0x80)> + [35] #203.1.1.num.int <127 (0x7f)> + [36] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [37] #201.1.1.num.int <4294967294 (0xfffffffe)> + [38] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [39] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [40] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [41] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [42] #196.1.1.num.int <78187493530 (0x123456789a)> + [43] #195.1.1.num.int <305419896 (0x12345678)> + [44] #194.1.1.num.int <1193046 (0x123456)> + [45] #193.1.1.num.int <4660 (0x1234)> + [46] #192.1.1.num.int <18 (0x12)> + [47] #191.1.1.num.int <0 (0x0)> + [48] #0.0.nil + [49] #190.1.1.num.bool <0 (0x0)> + [50] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x251, type 8, 594[1] +GC: ++#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.3.num.prim <4 (0x4)> + [1] #252.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x250, size 1, "c"> + [2] #251.1.1.num.int <2 (0x2)> + [3] #250.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x24d, size 1, "b"> + [4] #249.1.1.num.int <1 (0x1)> + [5] #248.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x24a, size 1, "a"> + [6] #13.1.3.num.prim <4 (0x4)> + [7] #247.1.1.hash + [8] #243.1.1.hash + [9] #238.1.1.hash + [10] #237.1.1.array + [11] #231.1.1.array + [12] #227.1.1.array + [13] #226.1.1.mem.code.ro <#186.1.13.mem.ro, ofs 0x201, size 9> + [14] #225.1.1.mem.code.ro <#186.1.13.mem.ro, ofs 0x1ff, size 1> + [15] #224.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [16] #223.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x85, size 8, "€ XX X"> + [17] #222.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x81, size 3, "€"> + [18] #221.1.1.num.int <305419896 (0x12345678)> + [19] #220.1.1.num.int <78934 (0x13456)> + [20] #219.1.1.num.int <8364 (0x20ac)> + [21] #218.1.1.num.int <8364 (0x20ac)> + [22] #217.1.1.num.int <97 (0x61)> + [23] #216.1.1.num.int <92 (0x5c)> + [24] #215.1.1.num.int <39 (0x27)> + [25] #214.1.1.num.int <9 (0x9)> + [26] #213.1.1.num.int <10 (0xa)> + [27] #212.1.1.num.int <0 (0x0)> + [28] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [29] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [30] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [31] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [32] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [33] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [34] #205.1.1.num.int <256 (0x100)> + [35] #204.1.1.num.int <128 (0x80)> + [36] #203.1.1.num.int <127 (0x7f)> + [37] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [38] #201.1.1.num.int <4294967294 (0xfffffffe)> + [39] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [40] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [41] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [42] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [43] #196.1.1.num.int <78187493530 (0x123456789a)> + [44] #195.1.1.num.int <305419896 (0x12345678)> + [45] #194.1.1.num.int <1193046 (0x123456)> + [46] #193.1.1.num.int <4660 (0x1234)> + [47] #192.1.1.num.int <18 (0x12)> + [48] #191.1.1.num.int <0 (0x0)> + [49] #0.0.nil + [50] #190.1.1.num.bool <0 (0x0)> + [51] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x253, type 7, 596[1] +GC: ++#186.1.13.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #253.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x254, size 1, "d"> + [1] #13.1.3.num.prim <4 (0x4)> + [2] #252.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x250, size 1, "c"> + [3] #251.1.1.num.int <2 (0x2)> + [4] #250.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x24d, size 1, "b"> + [5] #249.1.1.num.int <1 (0x1)> + [6] #248.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x24a, size 1, "a"> + [7] #13.1.3.num.prim <4 (0x4)> + [8] #247.1.1.hash + [9] #243.1.1.hash + [10] #238.1.1.hash + [11] #237.1.1.array + [12] #231.1.1.array + [13] #227.1.1.array + [14] #226.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x201, size 9> + [15] #225.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x1ff, size 1> + [16] #224.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [17] #223.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x85, size 8, "€ XX X"> + [18] #222.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x81, size 3, "€"> + [19] #221.1.1.num.int <305419896 (0x12345678)> + [20] #220.1.1.num.int <78934 (0x13456)> + [21] #219.1.1.num.int <8364 (0x20ac)> + [22] #218.1.1.num.int <8364 (0x20ac)> + [23] #217.1.1.num.int <97 (0x61)> + [24] #216.1.1.num.int <92 (0x5c)> + [25] #215.1.1.num.int <39 (0x27)> + [26] #214.1.1.num.int <9 (0x9)> + [27] #213.1.1.num.int <10 (0xa)> + [28] #212.1.1.num.int <0 (0x0)> + [29] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [30] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [31] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [32] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [33] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [34] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [35] #205.1.1.num.int <256 (0x100)> + [36] #204.1.1.num.int <128 (0x80)> + [37] #203.1.1.num.int <127 (0x7f)> + [38] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [39] #201.1.1.num.int <4294967294 (0xfffffffe)> + [40] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [41] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [42] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [43] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [44] #196.1.1.num.int <78187493530 (0x123456789a)> + [45] #195.1.1.num.int <305419896 (0x12345678)> + [46] #194.1.1.num.int <1193046 (0x123456)> + [47] #193.1.1.num.int <4660 (0x1234)> + [48] #192.1.1.num.int <18 (0x12)> + [49] #191.1.1.num.int <0 (0x0)> + [50] #0.0.nil + [51] #190.1.1.num.bool <0 (0x0)> + [52] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x255, type 1, 4 (0x4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #254.1.1.num.int <4 (0x4)> + [1] #253.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x254, size 1, "d"> + [2] #13.1.3.num.prim <4 (0x4)> + [3] #252.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x250, size 1, "c"> + [4] #251.1.1.num.int <2 (0x2)> + [5] #250.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x24d, size 1, "b"> + [6] #249.1.1.num.int <1 (0x1)> + [7] #248.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x24a, size 1, "a"> + [8] #13.1.3.num.prim <4 (0x4)> + [9] #247.1.1.hash + [10] #243.1.1.hash + [11] #238.1.1.hash + [12] #237.1.1.array + [13] #231.1.1.array + [14] #227.1.1.array + [15] #226.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x201, size 9> + [16] #225.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x1ff, size 1> + [17] #224.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [18] #223.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x85, size 8, "€ XX X"> + [19] #222.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x81, size 3, "€"> + [20] #221.1.1.num.int <305419896 (0x12345678)> + [21] #220.1.1.num.int <78934 (0x13456)> + [22] #219.1.1.num.int <8364 (0x20ac)> + [23] #218.1.1.num.int <8364 (0x20ac)> + [24] #217.1.1.num.int <97 (0x61)> + [25] #216.1.1.num.int <92 (0x5c)> + [26] #215.1.1.num.int <39 (0x27)> + [27] #214.1.1.num.int <9 (0x9)> + [28] #213.1.1.num.int <10 (0xa)> + [29] #212.1.1.num.int <0 (0x0)> + [30] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [31] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [32] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [33] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [34] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [35] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [36] #205.1.1.num.int <256 (0x100)> + [37] #204.1.1.num.int <128 (0x80)> + [38] #203.1.1.num.int <127 (0x7f)> + [39] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [40] #201.1.1.num.int <4294967294 (0xfffffffe)> + [41] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [42] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [43] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [44] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [45] #196.1.1.num.int <78187493530 (0x123456789a)> + [46] #195.1.1.num.int <305419896 (0x12345678)> + [47] #194.1.1.num.int <1193046 (0x123456)> + [48] #193.1.1.num.int <4660 (0x1234)> + [49] #192.1.1.num.int <18 (0x12)> + [50] #191.1.1.num.int <0 (0x0)> + [51] #0.0.nil + [52] #190.1.1.num.bool <0 (0x0)> + [53] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x256, type 8, 599[1] +GC: --#13.1.3.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.1.1.hash + [1] #252.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x250, size 1, "c"> + [2] #251.1.1.num.int <2 (0x2)> + [3] #250.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x24d, size 1, "b"> + [4] #249.1.1.num.int <1 (0x1)> + [5] #248.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x24a, size 1, "a"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #247.1.1.hash + [8] #243.1.1.hash + [9] #238.1.1.hash + [10] #237.1.1.array + [11] #231.1.1.array + [12] #227.1.1.array + [13] #226.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x201, size 9> + [14] #225.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x1ff, size 1> + [15] #224.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [16] #223.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x85, size 8, "€ XX X"> + [17] #222.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x81, size 3, "€"> + [18] #221.1.1.num.int <305419896 (0x12345678)> + [19] #220.1.1.num.int <78934 (0x13456)> + [20] #219.1.1.num.int <8364 (0x20ac)> + [21] #218.1.1.num.int <8364 (0x20ac)> + [22] #217.1.1.num.int <97 (0x61)> + [23] #216.1.1.num.int <92 (0x5c)> + [24] #215.1.1.num.int <39 (0x27)> + [25] #214.1.1.num.int <9 (0x9)> + [26] #213.1.1.num.int <10 (0xa)> + [27] #212.1.1.num.int <0 (0x0)> + [28] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [29] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [30] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [31] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [32] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [33] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [34] #205.1.1.num.int <256 (0x100)> + [35] #204.1.1.num.int <128 (0x80)> + [36] #203.1.1.num.int <127 (0x7f)> + [37] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [38] #201.1.1.num.int <4294967294 (0xfffffffe)> + [39] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [40] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [41] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [42] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [43] #196.1.1.num.int <78187493530 (0x123456789a)> + [44] #195.1.1.num.int <305419896 (0x12345678)> + [45] #194.1.1.num.int <1193046 (0x123456)> + [46] #193.1.1.num.int <4660 (0x1234)> + [47] #192.1.1.num.int <18 (0x12)> + [48] #191.1.1.num.int <0 (0x0)> + [49] #0.0.nil + [50] #190.1.1.num.bool <0 (0x0)> + [51] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x258, type 8, 601[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.1.1.hash + [1] #247.1.1.hash + [2] #243.1.1.hash + [3] #238.1.1.hash + [4] #237.1.1.array + [5] #231.1.1.array + [6] #227.1.1.array + [7] #226.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x201, size 9> + [8] #225.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x1ff, size 1> + [9] #224.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x90, size 366, "1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567834 56781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678345678123456781 2345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678"> + [10] #223.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x85, size 8, "€ XX X"> + [11] #222.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x81, size 3, "€"> + [12] #221.1.1.num.int <305419896 (0x12345678)> + [13] #220.1.1.num.int <78934 (0x13456)> + [14] #219.1.1.num.int <8364 (0x20ac)> + [15] #218.1.1.num.int <8364 (0x20ac)> + [16] #217.1.1.num.int <97 (0x61)> + [17] #216.1.1.num.int <92 (0x5c)> + [18] #215.1.1.num.int <39 (0x27)> + [19] #214.1.1.num.int <9 (0x9)> + [20] #213.1.1.num.int <10 (0xa)> + [21] #212.1.1.num.int <0 (0x0)> + [22] #211.1.1.num.int <-254 (0xffffffffffffff02)> + [23] #210.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [25] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [26] #207.1.1.num.int <-2 (0xfffffffffffffffe)> + [27] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #205.1.1.num.int <256 (0x100)> + [29] #204.1.1.num.int <128 (0x80)> + [30] #203.1.1.num.int <127 (0x7f)> + [31] #202.1.1.num.int <-4294967294 (0xffffffff00000002)> + [32] #201.1.1.num.int <4294967294 (0xfffffffe)> + [33] #200.1.1.num.int <7911603569390985488 (0x6dcba98765432110)> + [34] #199.1.1.num.int <-7911603569390985488 (0x923456789abcdef0)> + [35] #198.1.1.num.int <-1311768467463790320 (0xedcba98765432110)> + [36] #197.1.1.num.int <1311768467463790320 (0x123456789abcdef0)> + [37] #196.1.1.num.int <78187493530 (0x123456789a)> + [38] #195.1.1.num.int <305419896 (0x12345678)> + [39] #194.1.1.num.int <1193046 (0x123456)> + [40] #193.1.1.num.int <4660 (0x1234)> + [41] #192.1.1.num.int <18 (0x12)> + [42] #191.1.1.num.int <0 (0x0)> + [43] #0.0.nil + [44] #190.1.1.num.bool <0 (0x0)> + [45] #189.1.1.num.bool <1 (0x1)> diff --git a/tests/0001_prim_def_scalar/basic.log.ref b/tests/0001_prim_def_scalar/basic.log.ref new file mode 100644 index 0000000..f5f6d53 --- /dev/null +++ b/tests/0001_prim_def_scalar/basic.log.ref @@ -0,0 +1,26 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <100 (0x64)> diff --git a/tests/0001_prim_def_scalar/code.log.ref b/tests/0001_prim_def_scalar/code.log.ref new file mode 100644 index 0000000..90bdad9 --- /dev/null +++ b/tests/0001_prim_def_scalar/code.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c int 81 64 100 + 3 0x0000e word 38 64 65 66 def + 4 4 0x00012 word 38 66 6f 6f foo diff --git a/tests/0001_prim_def_scalar/code1.log.ref b/tests/0001_prim_def_scalar/code1.log.ref new file mode 100644 index 0000000..90bdad9 --- /dev/null +++ b/tests/0001_prim_def_scalar/code1.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c int 81 64 100 + 3 0x0000e word 38 64 65 66 def + 4 4 0x00012 word 38 66 6f 6f foo diff --git a/tests/0001_prim_def_scalar/code2.log.ref b/tests/0001_prim_def_scalar/code2.log.ref new file mode 100644 index 0000000..79fba5f --- /dev/null +++ b/tests/0001_prim_def_scalar/code2.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c int 81 64 100 + 3 0x0000e prim 63 def + 4 4 0x0000f word 38 66 6f 6f foo diff --git a/tests/0001_prim_def_scalar/main.gs b/tests/0001_prim_def_scalar/main.gs new file mode 100644 index 0000000..613664f --- /dev/null +++ b/tests/0001_prim_def_scalar/main.gs @@ -0,0 +1,4 @@ +# variable definition with scalar value + +/foo 100 def +foo diff --git a/tests/0001_prim_def_scalar/mem.log.ref b/tests/0001_prim_def_scalar/mem.log.ref new file mode 100644 index 0000000..4d2dd1f --- /dev/null +++ b/tests/0001_prim_def_scalar/mem.log.ref @@ -0,0 +1,755 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 24] + 8: 187.01, 0x001d6a8c[ 72] + 9: 188.01, 0x001d6adc[ 56] + 10: 0.00, 0x001d6b1c[14849252] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> => #190.1.2.num.int <100 (0x64)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.2.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 81 64 38 64 uQ..Bz.`9foo.d8d + 65 66 38 66 6f 6f ef8foo + #187.1.1.array + [ 0] #190.1.2.num.int <100 (0x64)> + #188.1.1.ctx.func + type 17, ip 0x16 (0x16) + code #186.1.2.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.2.num.int <100 (0x64)> diff --git a/tests/0001_prim_def_scalar/screen.log.ref b/tests/0001_prim_def_scalar/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0001_prim_def_scalar/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0001_prim_def_scalar/trace.log.ref b/tests/0001_prim_def_scalar/trace.log.ref new file mode 100644 index 0000000..9d3fd8a --- /dev/null +++ b/tests/0001_prim_def_scalar/trace.log.ref @@ -0,0 +1,31 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <100 (0x64)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 8, 15[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.num.int +GC: --#190.1.2.num.int +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x12, type 8, 19[3] +GC: ++#190.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <100 (0x64)> diff --git a/tests/0002_prim_def_array/basic.log.ref b/tests/0002_prim_def_array/basic.log.ref new file mode 100644 index 0000000..429fe83 --- /dev/null +++ b/tests/0002_prim_def_array/basic.log.ref @@ -0,0 +1,73 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> + [4] #xxxx.1.2.num.prim <2 (0x2)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <50 (0x32)> + [1] #xxxx.1.1.num.int <40 (0x28)> + [2] #xxxx.1.1.num.int <30 (0x1e)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> + [5] #xxxx.1.2.num.prim <2 (0x2)> + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array diff --git a/tests/0002_prim_def_array/code.log.ref b/tests/0002_prim_def_array/code.log.ref new file mode 100644 index 0000000..16bcfb9 --- /dev/null +++ b/tests/0002_prim_def_array/code.log.ref @@ -0,0 +1,17 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 11 entries (11 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 5b [ + 3 0x0000e int 81 0a 10 + 4 0x00010 int 81 14 20 + 5 0x00012 int 81 1e 30 + 6 0x00014 int 81 28 40 + 7 0x00016 int 81 32 50 + 8 0x00018 word 18 5d ] + 9 0x0001a word 38 64 65 66 def + 4 10 0x0001e word 38 66 6f 6f foo diff --git a/tests/0002_prim_def_array/code1.log.ref b/tests/0002_prim_def_array/code1.log.ref new file mode 100644 index 0000000..16bcfb9 --- /dev/null +++ b/tests/0002_prim_def_array/code1.log.ref @@ -0,0 +1,17 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 11 entries (11 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 5b [ + 3 0x0000e int 81 0a 10 + 4 0x00010 int 81 14 20 + 5 0x00012 int 81 1e 30 + 6 0x00014 int 81 28 40 + 7 0x00016 int 81 32 50 + 8 0x00018 word 18 5d ] + 9 0x0001a word 38 64 65 66 def + 4 10 0x0001e word 38 66 6f 6f foo diff --git a/tests/0002_prim_def_array/code2.log.ref b/tests/0002_prim_def_array/code2.log.ref new file mode 100644 index 0000000..075cb2a --- /dev/null +++ b/tests/0002_prim_def_array/code2.log.ref @@ -0,0 +1,17 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 11 entries (11 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c prim 23 [ + 3 0x0000d int 81 0a 10 + 4 0x0000f int 81 14 20 + 5 0x00011 int 81 1e 30 + 6 0x00013 int 81 28 40 + 7 0x00015 int 81 32 50 + 8 0x00017 prim 33 ] + 9 0x00018 prim 63 def + 4 10 0x00019 word 38 66 6f 6f foo diff --git a/tests/0002_prim_def_array/main.gs b/tests/0002_prim_def_array/main.gs new file mode 100644 index 0000000..7d291fb --- /dev/null +++ b/tests/0002_prim_def_array/main.gs @@ -0,0 +1,4 @@ +# variable definition with array + +/foo [ 10 20 30 40 50 ] def +foo diff --git a/tests/0002_prim_def_array/mem.log.ref b/tests/0002_prim_def_array/mem.log.ref new file mode 100644 index 0000000..16022f1 --- /dev/null +++ b/tests/0002_prim_def_array/mem.log.ref @@ -0,0 +1,767 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 36] + 8: 187.01, 0x001d6a98[ 72] + 9: 188.01, 0x001d6ae8[ 56] + 10: 195.01, 0x001d6b28[ 28] + 11: 0.00, 0x001d6b4c[14849204] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> => #195.1.2.array + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.2.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 18 5b 81 0a uQ..Bz.`9foo.[.. + 81 14 81 1e 81 28 81 32 18 5d 38 64 65 66 38 66 .....(.2.]8def8f + 6f 6f oo + #187.1.1.array + [ 0] #195.1.2.array + #188.1.1.ctx.func + type 17, ip 0x22 (0x22) + code #186.1.2.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.num.int <10 (0xa)> + #191.1.1.num.int <20 (0x14)> + #192.1.1.num.int <30 (0x1e)> + #193.1.1.num.int <40 (0x28)> + #194.1.1.num.int <50 (0x32)> + #195.1.2.array + [ 0] #190.1.1.num.int <10 (0xa)> + [ 1] #191.1.1.num.int <20 (0x14)> + [ 2] #192.1.1.num.int <30 (0x1e)> + [ 3] #193.1.1.num.int <40 (0x28)> + [ 4] #194.1.1.num.int <50 (0x32)> diff --git a/tests/0002_prim_def_array/screen.log.ref b/tests/0002_prim_def_array/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0002_prim_def_array/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0002_prim_def_array/trace.log.ref b/tests/0002_prim_def_array/trace.log.ref new file mode 100644 index 0000000..744e590 --- /dev/null +++ b/tests/0002_prim_def_array/trace.log.ref @@ -0,0 +1,84 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 8, 13[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <10 (0xa)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x10, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <20 (0x14)> + [1] #190.1.1.num.int <10 (0xa)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x12, type 1, 30 (0x1e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <30 (0x1e)> + [1] #191.1.1.num.int <20 (0x14)> + [2] #190.1.1.num.int <10 (0xa)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x14, type 1, 40 (0x28) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <40 (0x28)> + [1] #192.1.1.num.int <30 (0x1e)> + [2] #191.1.1.num.int <20 (0x14)> + [3] #190.1.1.num.int <10 (0xa)> + [4] #9.1.2.num.prim <2 (0x2)> + [5] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x16, type 1, 50 (0x32) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <50 (0x32)> + [1] #193.1.1.num.int <40 (0x28)> + [2] #192.1.1.num.int <30 (0x1e)> + [3] #191.1.1.num.int <20 (0x14)> + [4] #190.1.1.num.int <10 (0xa)> + [5] #9.1.2.num.prim <2 (0x2)> + [6] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x18, type 8, 25[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.array + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1a, type 8, 27[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#195.1.1.array +GC: --#195.1.2.array +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1e, type 8, 31[3] +GC: ++#195.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.array diff --git a/tests/0003_prim_def_hash/basic.log.ref b/tests/0003_prim_def_hash/basic.log.ref new file mode 100644 index 0000000..966b6ba --- /dev/null +++ b/tests/0003_prim_def_hash/basic.log.ref @@ -0,0 +1,87 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "bar_01"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "bar_01"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bar_02"> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bar_01"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bar_02"> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bar_01"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bar_03"> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bar_02"> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bar_01"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bar_03"> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bar_02"> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bar_01"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash diff --git a/tests/0003_prim_def_hash/code.log.ref b/tests/0003_prim_def_hash/code.log.ref new file mode 100644 index 0000000..d1b9c32 --- /dev/null +++ b/tests/0003_prim_def_hash/code.log.ref @@ -0,0 +1,18 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 12 entries (12 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 67 62 61 72 5f 30 31 "bar_01" + 4 0x00015 int 81 64 100 + 5 0x00017 str 67 62 61 72 5f 30 32 "bar_02" + 6 0x0001e int 91 c8 00 200 + 7 0x00021 str 67 62 61 72 5f 30 33 "bar_03" + 8 0x00028 int 91 2c 01 300 + 9 0x0002b word 18 29 ) + 10 0x0002d word 38 64 65 66 def + 4 11 0x00031 word 38 66 6f 6f foo diff --git a/tests/0003_prim_def_hash/code1.log.ref b/tests/0003_prim_def_hash/code1.log.ref new file mode 100644 index 0000000..d1b9c32 --- /dev/null +++ b/tests/0003_prim_def_hash/code1.log.ref @@ -0,0 +1,18 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 12 entries (12 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 67 62 61 72 5f 30 31 "bar_01" + 4 0x00015 int 81 64 100 + 5 0x00017 str 67 62 61 72 5f 30 32 "bar_02" + 6 0x0001e int 91 c8 00 200 + 7 0x00021 str 67 62 61 72 5f 30 33 "bar_03" + 8 0x00028 int 91 2c 01 300 + 9 0x0002b word 18 29 ) + 10 0x0002d word 38 64 65 66 def + 4 11 0x00031 word 38 66 6f 6f foo diff --git a/tests/0003_prim_def_hash/code2.log.ref b/tests/0003_prim_def_hash/code2.log.ref new file mode 100644 index 0000000..a468b7c --- /dev/null +++ b/tests/0003_prim_def_hash/code2.log.ref @@ -0,0 +1,18 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 12 entries (12 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c prim 43 ( + 3 0x0000d str 67 62 61 72 5f 30 31 "bar_01" + 4 0x00014 int 81 64 100 + 5 0x00016 str 67 62 61 72 5f 30 32 "bar_02" + 6 0x0001d int 91 c8 00 200 + 7 0x00020 str 67 62 61 72 5f 30 33 "bar_03" + 8 0x00027 int 91 2c 01 300 + 9 0x0002a prim 53 ) + 10 0x0002b prim 63 def + 4 11 0x0002c word 38 66 6f 6f foo diff --git a/tests/0003_prim_def_hash/main.gs b/tests/0003_prim_def_hash/main.gs new file mode 100644 index 0000000..b0949ea --- /dev/null +++ b/tests/0003_prim_def_hash/main.gs @@ -0,0 +1,4 @@ +# variable definition with hash + +/foo ( "bar_01" 100 "bar_02" 200 "bar_03" 300 ) def +foo diff --git a/tests/0003_prim_def_hash/mem.log.ref b/tests/0003_prim_def_hash/mem.log.ref new file mode 100644 index 0000000..ea25692 --- /dev/null +++ b/tests/0003_prim_def_hash/mem.log.ref @@ -0,0 +1,770 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 56] + 8: 187.01, 0x001d6aac[ 72] + 9: 188.01, 0x001d6afc[ 56] + 10: 196.01, 0x001d6b3c[ 36] + 11: 0.00, 0x001d6b68[14849176] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> => #196.1.2.hash + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.5.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 18 28 67 62 uQ..Bz.`9foo.(gb + 61 72 5f 30 31 81 64 67 62 61 72 5f 30 32 91 c8 ar_01.dgbar_02.. + 00 67 62 61 72 5f 30 33 91 2c 01 18 29 38 64 65 .gbar_03.,..)8de + 66 38 66 6f 6f f8foo + #187.1.1.array + [ 0] #196.1.2.hash + #188.1.1.ctx.func + type 17, ip 0x35 (0x35) + code #186.1.5.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 6, "bar_01"> + 62 61 72 5f 30 31 bar_01 + #191.1.1.num.int <100 (0x64)> + #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x18, size 6, "bar_02"> + 62 61 72 5f 30 32 bar_02 + #193.1.1.num.int <200 (0xc8)> + #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x22, size 6, "bar_03"> + 62 61 72 5f 30 33 bar_03 + #195.1.1.num.int <300 (0x12c)> + #196.1.2.hash + #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 6, "bar_01"> => #191.1.1.num.int <100 (0x64)> + #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x18, size 6, "bar_02"> => #193.1.1.num.int <200 (0xc8)> + #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x22, size 6, "bar_03"> => #195.1.1.num.int <300 (0x12c)> diff --git a/tests/0003_prim_def_hash/screen.log.ref b/tests/0003_prim_def_hash/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0003_prim_def_hash/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0003_prim_def_hash/trace.log.ref b/tests/0003_prim_def_hash/trace.log.ref new file mode 100644 index 0000000..5a87103 --- /dev/null +++ b/tests/0003_prim_def_hash/trace.log.ref @@ -0,0 +1,99 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 8, 13[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 7, 15[6] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 6, "bar_01"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x15, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <100 (0x64)> + [1] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 6, "bar_01"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x17, type 7, 24[6] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x18, size 6, "bar_02"> + [1] #191.1.1.num.int <100 (0x64)> + [2] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 6, "bar_01"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1e, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <200 (0xc8)> + [1] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x18, size 6, "bar_02"> + [2] #191.1.1.num.int <100 (0x64)> + [3] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 6, "bar_01"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x21, type 7, 34[6] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x22, size 6, "bar_03"> + [1] #193.1.1.num.int <200 (0xc8)> + [2] #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x18, size 6, "bar_02"> + [3] #191.1.1.num.int <100 (0x64)> + [4] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 6, "bar_01"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x28, type 1, 300 (0x12c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <300 (0x12c)> + [1] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x22, size 6, "bar_03"> + [2] #193.1.1.num.int <200 (0xc8)> + [3] #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x18, size 6, "bar_02"> + [4] #191.1.1.num.int <100 (0x64)> + [5] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 6, "bar_01"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x2b, type 8, 44[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.hash + [1] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x2d, type 8, 46[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#196.1.1.hash +GC: --#196.1.2.hash +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x31, type 8, 50[3] +GC: ++#196.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.2.hash diff --git a/tests/0004_prim_def_code/basic.log.ref b/tests/0004_prim_def_code/basic.log.ref new file mode 100644 index 0000000..bc4db5b --- /dev/null +++ b/tests/0004_prim_def_code/basic.log.ref @@ -0,0 +1,40 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> diff --git a/tests/0004_prim_def_code/code.log.ref b/tests/0004_prim_def_code/code.log.ref new file mode 100644 index 0000000..8a65e99 --- /dev/null +++ b/tests/0004_prim_def_code/code.log.ref @@ -0,0 +1,13 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 7 entries (7 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c code 36 { + 3 0x0000d int 81 64 100 + 4 0x0000f prim 13 } + 5 0x00010 word 38 64 65 66 def + 4 6 0x00014 word 38 66 6f 6f foo diff --git a/tests/0004_prim_def_code/code1.log.ref b/tests/0004_prim_def_code/code1.log.ref new file mode 100644 index 0000000..8a65e99 --- /dev/null +++ b/tests/0004_prim_def_code/code1.log.ref @@ -0,0 +1,13 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 7 entries (7 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c code 36 { + 3 0x0000d int 81 64 100 + 4 0x0000f prim 13 } + 5 0x00010 word 38 64 65 66 def + 4 6 0x00014 word 38 66 6f 6f foo diff --git a/tests/0004_prim_def_code/code2.log.ref b/tests/0004_prim_def_code/code2.log.ref new file mode 100644 index 0000000..e860886 --- /dev/null +++ b/tests/0004_prim_def_code/code2.log.ref @@ -0,0 +1,13 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 7 entries (7 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c code 36 { + 3 0x0000d int 81 64 100 + 4 0x0000f prim 13 } + 5 0x00010 prim 63 def + 4 6 0x00011 word 38 66 6f 6f foo diff --git a/tests/0004_prim_def_code/main.gs b/tests/0004_prim_def_code/main.gs new file mode 100644 index 0000000..c25776e --- /dev/null +++ b/tests/0004_prim_def_code/main.gs @@ -0,0 +1,4 @@ +# variable definition with code + +/foo { 100 } def +foo diff --git a/tests/0004_prim_def_code/mem.log.ref b/tests/0004_prim_def_code/mem.log.ref new file mode 100644 index 0000000..e869ba3 --- /dev/null +++ b/tests/0004_prim_def_code/mem.log.ref @@ -0,0 +1,760 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 24] + 8: 187.01, 0x001d6a8c[ 72] + 9: 188.01, 0x001d6adc[ 56] + 10: 0.00, 0x001d6b1c[ 56] + 11: 193.01, 0x001d6b5c[ 72] + 12: 0.00, 0x001d6bac[14849108] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> => #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xd, size 3> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.3.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 36 81 64 13 uQ..Bz.`9foo6.d. + 38 64 65 66 38 66 6f 6f 8def8foo + #187.1.1.array + [ 0] #192.1.1.num.int <100 (0x64)> + #188.1.1.ctx.func + type 17, ip 0x18 (0x18) + code #186.1.3.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xd, size 3> + 81 64 13 .d. + #192.1.1.num.int <100 (0x64)> + #193.1.1.array diff --git a/tests/0004_prim_def_code/screen.log.ref b/tests/0004_prim_def_code/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0004_prim_def_code/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0004_prim_def_code/trace.log.ref b/tests/0004_prim_def_code/trace.log.ref new file mode 100644 index 0000000..9411c9c --- /dev/null +++ b/tests/0004_prim_def_code/trace.log.ref @@ -0,0 +1,47 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 6, 13[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xd, size 3> + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x10, type 8, 17[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.mem.code.ro +GC: --#190.1.2.mem.code.ro +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x14, type 8, 21[3] +GC: ++#190.1.1.mem.code.ro +== backtrace == + [0] #191.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #190:0x0, type 1, 100 (0x64) +== backtrace == + [0] #191.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <100 (0x64)> +IP: #190:0x2, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#191.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#190.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <100 (0x64)> diff --git a/tests/0005_if_ifelse/basic.log.ref b/tests/0005_if_ifelse/basic.log.ref new file mode 100644 index 0000000..a8cbc71 --- /dev/null +++ b/tests/0005_if_ifelse/basic.log.ref @@ -0,0 +1,674 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #0.0.nil + [2] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10041 (0x2739)> + [1] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10041 (0x2739)> + [1] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.int <10041 (0x2739)> + [2] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.int <10041 (0x2739)> + [3] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.int <10041 (0x2739)> + [4] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10041 (0x2739)> + [1] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10052 (0x2744)> + [1] #xxxx.1.1.num.int <10041 (0x2739)> + [2] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10052 (0x2744)> + [1] #xxxx.1.1.num.int <10041 (0x2739)> + [2] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.int <10052 (0x2744)> + [2] #xxxx.1.1.num.int <10041 (0x2739)> + [3] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #0.0.nil + [2] #xxxx.1.1.num.int <10052 (0x2744)> + [3] #xxxx.1.1.num.int <10041 (0x2739)> + [4] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #0.0.nil + [3] #xxxx.1.1.num.int <10052 (0x2744)> + [4] #xxxx.1.1.num.int <10041 (0x2739)> + [5] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10052 (0x2744)> + [1] #xxxx.1.1.num.int <10041 (0x2739)> + [2] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10062 (0x274e)> + [1] #xxxx.1.1.num.int <10052 (0x2744)> + [2] #xxxx.1.1.num.int <10041 (0x2739)> + [3] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10062 (0x274e)> + [1] #xxxx.1.1.num.int <10052 (0x2744)> + [2] #xxxx.1.1.num.int <10041 (0x2739)> + [3] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.int <10062 (0x274e)> + [2] #xxxx.1.1.num.int <10052 (0x2744)> + [3] #xxxx.1.1.num.int <10041 (0x2739)> + [4] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.int <10062 (0x274e)> + [3] #xxxx.1.1.num.int <10052 (0x2744)> + [4] #xxxx.1.1.num.int <10041 (0x2739)> + [5] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, ""> + [3] #xxxx.1.1.num.int <10062 (0x274e)> + [4] #xxxx.1.1.num.int <10052 (0x2744)> + [5] #xxxx.1.1.num.int <10041 (0x2739)> + [6] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.4.mem.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10062 (0x274e)> + [1] #xxxx.1.1.num.int <10052 (0x2744)> + [2] #xxxx.1.1.num.int <10041 (0x2739)> + [3] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10071 (0x2757)> + [1] #xxxx.1.1.num.int <10062 (0x274e)> + [2] #xxxx.1.1.num.int <10052 (0x2744)> + [3] #xxxx.1.1.num.int <10041 (0x2739)> + [4] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10071 (0x2757)> + [1] #xxxx.1.1.num.int <10062 (0x274e)> + [2] #xxxx.1.1.num.int <10052 (0x2744)> + [3] #xxxx.1.1.num.int <10041 (0x2739)> + [4] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.int <10071 (0x2757)> + [2] #xxxx.1.1.num.int <10062 (0x274e)> + [3] #xxxx.1.1.num.int <10052 (0x2744)> + [4] #xxxx.1.1.num.int <10041 (0x2739)> + [5] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.num.int <10071 (0x2757)> + [3] #xxxx.1.1.num.int <10062 (0x274e)> + [4] #xxxx.1.1.num.int <10052 (0x2744)> + [5] #xxxx.1.1.num.int <10041 (0x2739)> + [6] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.int <10071 (0x2757)> + [2] #xxxx.1.1.num.int <10062 (0x274e)> + [3] #xxxx.1.1.num.int <10052 (0x2744)> + [4] #xxxx.1.1.num.int <10041 (0x2739)> + [5] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.int <10071 (0x2757)> + [3] #xxxx.1.1.num.int <10062 (0x274e)> + [4] #xxxx.1.1.num.int <10052 (0x2744)> + [5] #xxxx.1.1.num.int <10041 (0x2739)> + [6] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #xxxx.1.1.array + [3] #xxxx.1.1.num.int <10071 (0x2757)> + [4] #xxxx.1.1.num.int <10062 (0x274e)> + [5] #xxxx.1.1.num.int <10052 (0x2744)> + [6] #xxxx.1.1.num.int <10041 (0x2739)> + [7] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10071 (0x2757)> + [1] #xxxx.1.1.num.int <10062 (0x274e)> + [2] #xxxx.1.1.num.int <10052 (0x2744)> + [3] #xxxx.1.1.num.int <10041 (0x2739)> + [4] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10081 (0x2761)> + [1] #xxxx.1.1.num.int <10071 (0x2757)> + [2] #xxxx.1.1.num.int <10062 (0x274e)> + [3] #xxxx.1.1.num.int <10052 (0x2744)> + [4] #xxxx.1.1.num.int <10041 (0x2739)> + [5] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10081 (0x2761)> + [1] #xxxx.1.1.num.int <10071 (0x2757)> + [2] #xxxx.1.1.num.int <10062 (0x274e)> + [3] #xxxx.1.1.num.int <10052 (0x2744)> + [4] #xxxx.1.1.num.int <10041 (0x2739)> + [5] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.num.int <10081 (0x2761)> + [2] #xxxx.1.1.num.int <10071 (0x2757)> + [3] #xxxx.1.1.num.int <10062 (0x274e)> + [4] #xxxx.1.1.num.int <10052 (0x2744)> + [5] #xxxx.1.1.num.int <10041 (0x2739)> + [6] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "a"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.num.int <10081 (0x2761)> + [3] #xxxx.1.1.num.int <10071 (0x2757)> + [4] #xxxx.1.1.num.int <10062 (0x274e)> + [5] #xxxx.1.1.num.int <10052 (0x2744)> + [6] #xxxx.1.1.num.int <10041 (0x2739)> + [7] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "a"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.num.int <10081 (0x2761)> + [4] #xxxx.1.1.num.int <10071 (0x2757)> + [5] #xxxx.1.1.num.int <10062 (0x274e)> + [6] #xxxx.1.1.num.int <10052 (0x2744)> + [7] #xxxx.1.1.num.int <10041 (0x2739)> + [8] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.num.int <10081 (0x2761)> + [2] #xxxx.1.1.num.int <10071 (0x2757)> + [3] #xxxx.1.1.num.int <10062 (0x274e)> + [4] #xxxx.1.1.num.int <10052 (0x2744)> + [5] #xxxx.1.1.num.int <10041 (0x2739)> + [6] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.hash + [2] #xxxx.1.1.num.int <10081 (0x2761)> + [3] #xxxx.1.1.num.int <10071 (0x2757)> + [4] #xxxx.1.1.num.int <10062 (0x274e)> + [5] #xxxx.1.1.num.int <10052 (0x2744)> + [6] #xxxx.1.1.num.int <10041 (0x2739)> + [7] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [2] #xxxx.1.1.hash + [3] #xxxx.1.1.num.int <10081 (0x2761)> + [4] #xxxx.1.1.num.int <10071 (0x2757)> + [5] #xxxx.1.1.num.int <10062 (0x274e)> + [6] #xxxx.1.1.num.int <10052 (0x2744)> + [7] #xxxx.1.1.num.int <10041 (0x2739)> + [8] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.4.mem.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10081 (0x2761)> + [1] #xxxx.1.1.num.int <10071 (0x2757)> + [2] #xxxx.1.1.num.int <10062 (0x274e)> + [3] #xxxx.1.1.num.int <10052 (0x2744)> + [4] #xxxx.1.1.num.int <10041 (0x2739)> + [5] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10091 (0x276b)> + [1] #xxxx.1.1.num.int <10081 (0x2761)> + [2] #xxxx.1.1.num.int <10071 (0x2757)> + [3] #xxxx.1.1.num.int <10062 (0x274e)> + [4] #xxxx.1.1.num.int <10052 (0x2744)> + [5] #xxxx.1.1.num.int <10041 (0x2739)> + [6] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10091 (0x276b)> + [1] #xxxx.1.1.num.int <10081 (0x2761)> + [2] #xxxx.1.1.num.int <10071 (0x2757)> + [3] #xxxx.1.1.num.int <10062 (0x274e)> + [4] #xxxx.1.1.num.int <10052 (0x2744)> + [5] #xxxx.1.1.num.int <10041 (0x2739)> + [6] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <10091 (0x276b)> + [2] #xxxx.1.1.num.int <10081 (0x2761)> + [3] #xxxx.1.1.num.int <10071 (0x2757)> + [4] #xxxx.1.1.num.int <10062 (0x274e)> + [5] #xxxx.1.1.num.int <10052 (0x2744)> + [6] #xxxx.1.1.num.int <10041 (0x2739)> + [7] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #xxxx.1.1.num.int <10091 (0x276b)> + [3] #xxxx.1.1.num.int <10081 (0x2761)> + [4] #xxxx.1.1.num.int <10071 (0x2757)> + [5] #xxxx.1.1.num.int <10062 (0x274e)> + [6] #xxxx.1.1.num.int <10052 (0x2744)> + [7] #xxxx.1.1.num.int <10041 (0x2739)> + [8] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [2] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [3] #xxxx.1.1.num.int <10091 (0x276b)> + [4] #xxxx.1.1.num.int <10081 (0x2761)> + [5] #xxxx.1.1.num.int <10071 (0x2757)> + [6] #xxxx.1.1.num.int <10062 (0x274e)> + [7] #xxxx.1.1.num.int <10052 (0x2744)> + [8] #xxxx.1.1.num.int <10041 (0x2739)> + [9] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.4.mem.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10091 (0x276b)> + [1] #xxxx.1.1.num.int <10081 (0x2761)> + [2] #xxxx.1.1.num.int <10071 (0x2757)> + [3] #xxxx.1.1.num.int <10062 (0x274e)> + [4] #xxxx.1.1.num.int <10052 (0x2744)> + [5] #xxxx.1.1.num.int <10041 (0x2739)> + [6] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100101 (0x18705)> + [1] #xxxx.1.1.num.int <10091 (0x276b)> + [2] #xxxx.1.1.num.int <10081 (0x2761)> + [3] #xxxx.1.1.num.int <10071 (0x2757)> + [4] #xxxx.1.1.num.int <10062 (0x274e)> + [5] #xxxx.1.1.num.int <10052 (0x2744)> + [6] #xxxx.1.1.num.int <10041 (0x2739)> + [7] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100101 (0x18705)> + [1] #xxxx.1.1.num.int <10091 (0x276b)> + [2] #xxxx.1.1.num.int <10081 (0x2761)> + [3] #xxxx.1.1.num.int <10071 (0x2757)> + [4] #xxxx.1.1.num.int <10062 (0x274e)> + [5] #xxxx.1.1.num.int <10052 (0x2744)> + [6] #xxxx.1.1.num.int <10041 (0x2739)> + [7] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> + [1] #xxxx.1.1.num.int <100101 (0x18705)> + [2] #xxxx.1.1.num.int <10091 (0x276b)> + [3] #xxxx.1.1.num.int <10081 (0x2761)> + [4] #xxxx.1.1.num.int <10071 (0x2757)> + [5] #xxxx.1.1.num.int <10062 (0x274e)> + [6] #xxxx.1.1.num.int <10052 (0x2744)> + [7] #xxxx.1.1.num.int <10041 (0x2739)> + [8] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> + [2] #xxxx.1.1.num.int <100101 (0x18705)> + [3] #xxxx.1.1.num.int <10091 (0x276b)> + [4] #xxxx.1.1.num.int <10081 (0x2761)> + [5] #xxxx.1.1.num.int <10071 (0x2757)> + [6] #xxxx.1.1.num.int <10062 (0x274e)> + [7] #xxxx.1.1.num.int <10052 (0x2744)> + [8] #xxxx.1.1.num.int <10041 (0x2739)> + [9] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> + [3] #xxxx.1.1.num.int <100101 (0x18705)> + [4] #xxxx.1.1.num.int <10091 (0x276b)> + [5] #xxxx.1.1.num.int <10081 (0x2761)> + [6] #xxxx.1.1.num.int <10071 (0x2757)> + [7] #xxxx.1.1.num.int <10062 (0x274e)> + [8] #xxxx.1.1.num.int <10052 (0x2744)> + [9] #xxxx.1.1.num.int <10041 (0x2739)> + [10] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.4.mem.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100101 (0x18705)> + [1] #xxxx.1.1.num.int <10091 (0x276b)> + [2] #xxxx.1.1.num.int <10081 (0x2761)> + [3] #xxxx.1.1.num.int <10071 (0x2757)> + [4] #xxxx.1.1.num.int <10062 (0x274e)> + [5] #xxxx.1.1.num.int <10052 (0x2744)> + [6] #xxxx.1.1.num.int <10041 (0x2739)> + [7] #xxxx.1.1.num.int <1001 (0x3e9)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100111 (0x1870f)> + [1] #xxxx.1.1.num.int <100101 (0x18705)> + [2] #xxxx.1.1.num.int <10091 (0x276b)> + [3] #xxxx.1.1.num.int <10081 (0x2761)> + [4] #xxxx.1.1.num.int <10071 (0x2757)> + [5] #xxxx.1.1.num.int <10062 (0x274e)> + [6] #xxxx.1.1.num.int <10052 (0x2744)> + [7] #xxxx.1.1.num.int <10041 (0x2739)> + [8] #xxxx.1.1.num.int <1001 (0x3e9)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100111 (0x1870f)> + [1] #xxxx.1.1.num.int <100101 (0x18705)> + [2] #xxxx.1.1.num.int <10091 (0x276b)> + [3] #xxxx.1.1.num.int <10081 (0x2761)> + [4] #xxxx.1.1.num.int <10071 (0x2757)> + [5] #xxxx.1.1.num.int <10062 (0x274e)> + [6] #xxxx.1.1.num.int <10052 (0x2744)> + [7] #xxxx.1.1.num.int <10041 (0x2739)> + [8] #xxxx.1.1.num.int <1001 (0x3e9)> diff --git a/tests/0005_if_ifelse/code.log.ref b/tests/0005_if_ifelse/code.log.ref new file mode 100644 index 0000000..8587cc5 --- /dev/null +++ b/tests/0005_if_ifelse/code.log.ref @@ -0,0 +1,93 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 87 entries (87 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 code 46 { + 3 0x0000a int 91 e9 03 1001 + 4 0x0000d prim 13 } + 5 0x0000e word 28 69 66 if + 2 6 0x00011 bool 02 false + 7 0x00012 code 46 { + 8 0x00013 int 91 ea 03 1002 + 9 0x00016 prim 13 } + 10 0x00017 word 28 69 66 if + 3 11 0x0001a nil 00 nil + 12 0x0001b code 46 { + 13 0x0001c int 91 eb 03 1003 + 14 0x0001f prim 13 } + 15 0x00020 word 28 69 66 if + 4 16 0x00023 bool 12 true + 17 0x00024 code 46 { + 18 0x00025 int 91 39 27 10041 + 19 0x00028 prim 13 } + 20 0x00029 code 46 { + 21 0x0002a int 91 3a 27 10042 + 22 0x0002d prim 13 } + 23 0x0002e word 68 69 66 65 6c 73 65 ifelse + 5 24 0x00035 bool 02 false + 25 0x00036 code 46 { + 26 0x00037 int 91 43 27 10051 + 27 0x0003a prim 13 } + 28 0x0003b code 46 { + 29 0x0003c int 91 44 27 10052 + 30 0x0003f prim 13 } + 31 0x00040 word 68 69 66 65 6c 73 65 ifelse + 6 32 0x00047 nil 00 nil + 33 0x00048 code 46 { + 34 0x00049 int 91 4d 27 10061 + 35 0x0004c prim 13 } + 36 0x0004d code 46 { + 37 0x0004e int 91 4e 27 10062 + 38 0x00051 prim 13 } + 39 0x00052 word 68 69 66 65 6c 73 65 ifelse + 7 40 0x00059 str 07 "" + 41 0x0005a code 46 { + 42 0x0005b int 91 57 27 10071 + 43 0x0005e prim 13 } + 44 0x0005f code 46 { + 45 0x00060 int 91 58 27 10072 + 46 0x00063 prim 13 } + 47 0x00064 word 68 69 66 65 6c 73 65 ifelse + 8 48 0x0006b word 18 5b [ + 49 0x0006d int 11 1 + 50 0x0006e word 18 5d ] + 51 0x00070 code 46 { + 52 0x00071 int 91 61 27 10081 + 53 0x00074 prim 13 } + 54 0x00075 code 46 { + 55 0x00076 int 91 62 27 10082 + 56 0x00079 prim 13 } + 57 0x0007a word 68 69 66 65 6c 73 65 ifelse + 9 58 0x00081 word 18 28 ( + 59 0x00083 str 17 61 "a" + 60 0x00085 int 21 2 + 61 0x00086 word 18 29 ) + 62 0x00088 code 46 { + 63 0x00089 int 91 6b 27 10091 + 64 0x0008c prim 13 } + 65 0x0008d code 46 { + 66 0x0008e int 91 6c 27 10092 + 67 0x00091 prim 13 } + 68 0x00092 word 68 69 66 65 6c 73 65 ifelse + 10 69 0x00099 code 26 { + 70 0x0009a int 11 1 + 71 0x0009b prim 13 } + 72 0x0009c code 56 { + 73 0x0009d int a1 05 87 01 100101 + 74 0x000a1 prim 13 } + 75 0x000a2 code 56 { + 76 0x000a3 int a1 06 87 01 100102 + 77 0x000a7 prim 13 } + 78 0x000a8 word 68 69 66 65 6c 73 65 ifelse + 11 79 0x000af ref 39 66 6f 6f /foo + 80 0x000b3 code 56 { + 81 0x000b4 int a1 0f 87 01 100111 + 82 0x000b8 prim 13 } + 83 0x000b9 code 56 { + 84 0x000ba int a1 10 87 01 100112 + 85 0x000be prim 13 } + 86 0x000bf word 68 69 66 65 6c 73 65 ifelse diff --git a/tests/0005_if_ifelse/code1.log.ref b/tests/0005_if_ifelse/code1.log.ref new file mode 100644 index 0000000..548fb12 --- /dev/null +++ b/tests/0005_if_ifelse/code1.log.ref @@ -0,0 +1,93 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 87 entries (87 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 code 46 { + 3 0x0000a int 91 e9 03 1001 + 4 0x0000d prim 13 } + 5 0x0000e word 28 69 66 if + 2 6 0x00011 bool 02 false + 7 0x00012 code 46 { + 8 0x00013 int 91 ea 03 1002 + 9 0x00016 prim 13 } + 10 0x00017 xref 84 09 if + 3 11 0x00019 nil 00 nil + 12 0x0001a code 46 { + 13 0x0001b int 91 eb 03 1003 + 14 0x0001e prim 13 } + 15 0x0001f xref 84 11 if + 4 16 0x00021 bool 12 true + 17 0x00022 code 46 { + 18 0x00023 int 91 39 27 10041 + 19 0x00026 prim 13 } + 20 0x00027 code 46 { + 21 0x00028 int 91 3a 27 10042 + 22 0x0002b prim 13 } + 23 0x0002c word 68 69 66 65 6c 73 65 ifelse + 5 24 0x00033 bool 02 false + 25 0x00034 code 46 { + 26 0x00035 int 91 43 27 10051 + 27 0x00038 prim 13 } + 28 0x00039 code 46 { + 29 0x0003a int 91 44 27 10052 + 30 0x0003d prim 13 } + 31 0x0003e xref 84 12 ifelse + 6 32 0x00040 nil 00 nil + 33 0x00041 code 46 { + 34 0x00042 int 91 4d 27 10061 + 35 0x00045 prim 13 } + 36 0x00046 code 46 { + 37 0x00047 int 91 4e 27 10062 + 38 0x0004a prim 13 } + 39 0x0004b xref 84 1f ifelse + 7 40 0x0004d str 07 "" + 41 0x0004e code 46 { + 42 0x0004f int 91 57 27 10071 + 43 0x00052 prim 13 } + 44 0x00053 code 46 { + 45 0x00054 int 91 58 27 10072 + 46 0x00057 prim 13 } + 47 0x00058 xref 84 2c ifelse + 8 48 0x0005a word 18 5b [ + 49 0x0005c int 11 1 + 50 0x0005d word 18 5d ] + 51 0x0005f code 46 { + 52 0x00060 int 91 61 27 10081 + 53 0x00063 prim 13 } + 54 0x00064 code 46 { + 55 0x00065 int 91 62 27 10082 + 56 0x00068 prim 13 } + 57 0x00069 xref 84 3d ifelse + 9 58 0x0006b word 18 28 ( + 59 0x0006d str 17 61 "a" + 60 0x0006f int 21 2 + 61 0x00070 word 18 29 ) + 62 0x00072 code 46 { + 63 0x00073 int 91 6b 27 10091 + 64 0x00076 prim 13 } + 65 0x00077 code 46 { + 66 0x00078 int 91 6c 27 10092 + 67 0x0007b prim 13 } + 68 0x0007c xref 84 50 ifelse + 10 69 0x0007e code 26 { + 70 0x0007f int 11 1 + 71 0x00080 prim 13 } + 72 0x00081 code 56 { + 73 0x00082 int a1 05 87 01 100101 + 74 0x00086 prim 13 } + 75 0x00087 code 56 { + 76 0x00088 int a1 06 87 01 100102 + 77 0x0008c prim 13 } + 78 0x0008d xref 84 61 ifelse + 11 79 0x0008f ref 39 66 6f 6f /foo + 80 0x00093 code 56 { + 81 0x00094 int a1 0f 87 01 100111 + 82 0x00098 prim 13 } + 83 0x00099 code 56 { + 84 0x0009a int a1 10 87 01 100112 + 85 0x0009e prim 13 } + 86 0x0009f xref 84 73 ifelse diff --git a/tests/0005_if_ifelse/code2.log.ref b/tests/0005_if_ifelse/code2.log.ref new file mode 100644 index 0000000..22ff164 --- /dev/null +++ b/tests/0005_if_ifelse/code2.log.ref @@ -0,0 +1,93 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 87 entries (87 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 code 46 { + 3 0x0000a int 91 e9 03 1001 + 4 0x0000d prim 13 } + 5 0x0000e prim 83 09 if + 2 6 0x00010 bool 02 false + 7 0x00011 code 46 { + 8 0x00012 int 91 ea 03 1002 + 9 0x00015 prim 13 } + 10 0x00016 prim 83 09 if + 3 11 0x00018 nil 00 nil + 12 0x00019 code 46 { + 13 0x0001a int 91 eb 03 1003 + 14 0x0001d prim 13 } + 15 0x0001e prim 83 09 if + 4 16 0x00020 bool 12 true + 17 0x00021 code 46 { + 18 0x00022 int 91 39 27 10041 + 19 0x00025 prim 13 } + 20 0x00026 code 46 { + 21 0x00027 int 91 3a 27 10042 + 22 0x0002a prim 13 } + 23 0x0002b prim 83 0a ifelse + 5 24 0x0002d bool 02 false + 25 0x0002e code 46 { + 26 0x0002f int 91 43 27 10051 + 27 0x00032 prim 13 } + 28 0x00033 code 46 { + 29 0x00034 int 91 44 27 10052 + 30 0x00037 prim 13 } + 31 0x00038 prim 83 0a ifelse + 6 32 0x0003a nil 00 nil + 33 0x0003b code 46 { + 34 0x0003c int 91 4d 27 10061 + 35 0x0003f prim 13 } + 36 0x00040 code 46 { + 37 0x00041 int 91 4e 27 10062 + 38 0x00044 prim 13 } + 39 0x00045 prim 83 0a ifelse + 7 40 0x00047 str 07 "" + 41 0x00048 code 46 { + 42 0x00049 int 91 57 27 10071 + 43 0x0004c prim 13 } + 44 0x0004d code 46 { + 45 0x0004e int 91 58 27 10072 + 46 0x00051 prim 13 } + 47 0x00052 prim 83 0a ifelse + 8 48 0x00054 prim 23 [ + 49 0x00055 int 11 1 + 50 0x00056 prim 33 ] + 51 0x00057 code 46 { + 52 0x00058 int 91 61 27 10081 + 53 0x0005b prim 13 } + 54 0x0005c code 46 { + 55 0x0005d int 91 62 27 10082 + 56 0x00060 prim 13 } + 57 0x00061 prim 83 0a ifelse + 9 58 0x00063 prim 43 ( + 59 0x00064 str 17 61 "a" + 60 0x00066 int 21 2 + 61 0x00067 prim 53 ) + 62 0x00068 code 46 { + 63 0x00069 int 91 6b 27 10091 + 64 0x0006c prim 13 } + 65 0x0006d code 46 { + 66 0x0006e int 91 6c 27 10092 + 67 0x00071 prim 13 } + 68 0x00072 prim 83 0a ifelse + 10 69 0x00074 code 26 { + 70 0x00075 int 11 1 + 71 0x00076 prim 13 } + 72 0x00077 code 56 { + 73 0x00078 int a1 05 87 01 100101 + 74 0x0007c prim 13 } + 75 0x0007d code 56 { + 76 0x0007e int a1 06 87 01 100102 + 77 0x00082 prim 13 } + 78 0x00083 prim 83 0a ifelse + 11 79 0x00085 ref 39 66 6f 6f /foo + 80 0x00089 code 56 { + 81 0x0008a int a1 0f 87 01 100111 + 82 0x0008e prim 13 } + 83 0x0008f code 56 { + 84 0x00090 int a1 10 87 01 100112 + 85 0x00094 prim 13 } + 86 0x00095 prim 83 0a ifelse diff --git a/tests/0005_if_ifelse/main.gs b/tests/0005_if_ifelse/main.gs new file mode 100644 index 0000000..4871e83 --- /dev/null +++ b/tests/0005_if_ifelse/main.gs @@ -0,0 +1,11 @@ +true { 1001 } if +false { 1002 } if +nil { 1003 } if +true { 10041 } { 10042 } ifelse +false { 10051 } { 10052 } ifelse +nil { 10061 } { 10062 } ifelse +"" { 10071 } { 10072 } ifelse +[ 1 ] { 10081 } { 10082 } ifelse +( "a" 2 ) { 10091 } { 10092 } ifelse +{ 1 } { 100101 } { 100102 } ifelse +/foo { 100111 } { 100112 } ifelse diff --git a/tests/0005_if_ifelse/mem.log.ref b/tests/0005_if_ifelse/mem.log.ref new file mode 100644 index 0000000..81830c9 --- /dev/null +++ b/tests/0005_if_ifelse/mem.log.ref @@ -0,0 +1,782 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 200] + 8: 187.01, 0x001d6b3c[ 72] + 9: 188.01, 0x001d6b8c[ 56] + 10: 0.00, 0x001d6bcc[ 56] + 11: 192.01, 0x001d6c0c[ 72] + 12: 0.00, 0x001d6c5c[14848932] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 12 46 91 e9 03 13 28 69 uQ..Bz.`.F....(i + 66 02 46 91 ea 03 13 28 69 66 00 46 91 eb 03 13 f.F....(if.F.... + 28 69 66 12 46 91 39 27 13 46 91 3a 27 13 68 69 (if.F.9'.F.:'.hi + 66 65 6c 73 65 02 46 91 43 27 13 46 91 44 27 13 felse.F.C'.F.D'. + 68 69 66 65 6c 73 65 00 46 91 4d 27 13 46 91 4e hifelse.F.M'.F.N + 27 13 68 69 66 65 6c 73 65 07 46 91 57 27 13 46 '.hifelse.F.W'.F + 91 58 27 13 68 69 66 65 6c 73 65 18 5b 11 18 5d .X'.hifelse.[..] + 46 91 61 27 13 46 91 62 27 13 68 69 66 65 6c 73 F.a'.F.b'.hifels + 65 18 28 17 61 21 18 29 46 91 6b 27 13 46 91 6c e.(.a!.)F.k'.F.l + 27 13 68 69 66 65 6c 73 65 26 11 13 56 a1 05 87 '.hifelse&..V... + 01 13 56 a1 06 87 01 13 68 69 66 65 6c 73 65 39 ..V.....hifelse9 + 66 6f 6f 56 a1 0f 87 01 13 56 a1 10 87 01 13 68 fooV.....V.....h + 69 66 65 6c 73 65 ifelse + #187.1.1.array + [ 0] #193.1.1.num.int <1001 (0x3e9)> + [ 1] #201.1.1.num.int <10041 (0x2739)> + [ 2] #206.1.1.num.int <10052 (0x2744)> + [ 3] #210.1.1.num.int <10062 (0x274e)> + [ 4] #215.1.1.num.int <10071 (0x2757)> + [ 5] #221.1.1.num.int <10081 (0x2761)> + [ 6] #228.1.1.num.int <10091 (0x276b)> + [ 7] #233.1.1.num.int <100101 (0x18705)> + [ 8] #238.1.1.num.int <100111 (0x1870f)> + #188.1.1.ctx.func + type 17, ip 0xc6 (0xc6) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #192.1.1.array + #193.1.1.num.int <1001 (0x3e9)> + #201.1.1.num.int <10041 (0x2739)> + #206.1.1.num.int <10052 (0x2744)> + #210.1.1.num.int <10062 (0x274e)> + #215.1.1.num.int <10071 (0x2757)> + #221.1.1.num.int <10081 (0x2761)> + #228.1.1.num.int <10091 (0x276b)> + #233.1.1.num.int <100101 (0x18705)> + #238.1.1.num.int <100111 (0x1870f)> diff --git a/tests/0005_if_ifelse/screen.log.ref b/tests/0005_if_ifelse/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0005_if_ifelse/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0005_if_ifelse/trace.log.ref b/tests/0005_if_ifelse/trace.log.ref new file mode 100644 index 0000000..e1d5d75 --- /dev/null +++ b/tests/0005_if_ifelse/trace.log.ref @@ -0,0 +1,739 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x9, type 6, 10[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0xa, size 4> + [1] #189.1.1.num.bool <1 (0x1)> +IP: #186:0xe, type 8, 15[2] +GC: ++#190.1.1.mem.code.ro +GC: --#190.1.2.mem.code.ro +GC: --#189.1.1.num.bool +== backtrace == + [0] #191.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #190:0x0, type 1, 1001 (0x3e9) +== backtrace == + [0] #191.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <1001 (0x3e9)> +IP: #190:0x3, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#191.1.1.ctx.block +GC: --#188.1.2.ctx.func +GC: --#190.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x11, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.bool <0 (0x0)> + [1] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x12, type 6, 19[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x13, size 4> + [1] #194.1.1.num.bool <0 (0x0)> + [2] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x17, type 8, 24[2] +GC: --#195.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +GC: --#194.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x1a, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x1b, type 6, 28[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x1c, size 4> + [1] #0.0.nil + [2] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x20, type 8, 33[2] +GC: --#196.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x23, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.bool <1 (0x1)> + [1] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x24, type 6, 37[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x25, size 4> + [1] #197.1.1.num.bool <1 (0x1)> + [2] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x29, type 6, 42[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x2a, size 4> + [1] #198.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x25, size 4> + [2] #197.1.1.num.bool <1 (0x1)> + [3] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x2e, type 8, 47[6] +GC: ++#198.1.1.mem.code.ro +GC: --#199.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +GC: --#198.1.2.mem.code.ro +GC: --#197.1.1.num.bool +== backtrace == + [0] #200.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <1001 (0x3e9)> +IP: #198:0x0, type 1, 10041 (0x2739) +== backtrace == + [0] #200.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <10041 (0x2739)> + [1] #193.1.1.num.int <1001 (0x3e9)> +IP: #198:0x3, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#200.1.1.ctx.block +GC: --#188.1.2.ctx.func +GC: --#198.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <10041 (0x2739)> + [1] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x35, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.bool <0 (0x0)> + [1] #201.1.1.num.int <10041 (0x2739)> + [2] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x36, type 6, 55[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x37, size 4> + [1] #202.1.1.num.bool <0 (0x0)> + [2] #201.1.1.num.int <10041 (0x2739)> + [3] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x3b, type 6, 60[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x3c, size 4> + [1] #203.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x37, size 4> + [2] #202.1.1.num.bool <0 (0x0)> + [3] #201.1.1.num.int <10041 (0x2739)> + [4] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x40, type 8, 65[6] +GC: ++#204.1.1.mem.code.ro +GC: --#204.1.2.mem.code.ro +GC: --#203.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +GC: --#202.1.1.num.bool +== backtrace == + [0] #205.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <10041 (0x2739)> + [1] #193.1.1.num.int <1001 (0x3e9)> +IP: #204:0x0, type 1, 10052 (0x2744) +== backtrace == + [0] #205.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <10052 (0x2744)> + [1] #201.1.1.num.int <10041 (0x2739)> + [2] #193.1.1.num.int <1001 (0x3e9)> +IP: #204:0x3, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#205.1.1.ctx.block +GC: --#188.1.2.ctx.func +GC: --#204.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <10052 (0x2744)> + [1] #201.1.1.num.int <10041 (0x2739)> + [2] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x47, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #206.1.1.num.int <10052 (0x2744)> + [2] #201.1.1.num.int <10041 (0x2739)> + [3] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x48, type 6, 73[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x49, size 4> + [1] #0.0.nil + [2] #206.1.1.num.int <10052 (0x2744)> + [3] #201.1.1.num.int <10041 (0x2739)> + [4] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x4d, type 6, 78[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x4e, size 4> + [1] #207.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x49, size 4> + [2] #0.0.nil + [3] #206.1.1.num.int <10052 (0x2744)> + [4] #201.1.1.num.int <10041 (0x2739)> + [5] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x52, type 8, 83[6] +GC: ++#208.1.1.mem.code.ro +GC: --#208.1.2.mem.code.ro +GC: --#207.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +== backtrace == + [0] #209.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <10052 (0x2744)> + [1] #201.1.1.num.int <10041 (0x2739)> + [2] #193.1.1.num.int <1001 (0x3e9)> +IP: #208:0x0, type 1, 10062 (0x274e) +== backtrace == + [0] #209.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <10062 (0x274e)> + [1] #206.1.1.num.int <10052 (0x2744)> + [2] #201.1.1.num.int <10041 (0x2739)> + [3] #193.1.1.num.int <1001 (0x3e9)> +IP: #208:0x3, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#209.1.1.ctx.block +GC: --#188.1.2.ctx.func +GC: --#208.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <10062 (0x274e)> + [1] #206.1.1.num.int <10052 (0x2744)> + [2] #201.1.1.num.int <10041 (0x2739)> + [3] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x59, type 7, 90[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x5a, size 0, ""> + [1] #210.1.1.num.int <10062 (0x274e)> + [2] #206.1.1.num.int <10052 (0x2744)> + [3] #201.1.1.num.int <10041 (0x2739)> + [4] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x5a, type 6, 91[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x5b, size 4> + [1] #211.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5a, size 0, ""> + [2] #210.1.1.num.int <10062 (0x274e)> + [3] #206.1.1.num.int <10052 (0x2744)> + [4] #201.1.1.num.int <10041 (0x2739)> + [5] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x5f, type 6, 96[4] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x60, size 4> + [1] #212.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x5b, size 4> + [2] #211.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x5a, size 0, ""> + [3] #210.1.1.num.int <10062 (0x274e)> + [4] #206.1.1.num.int <10052 (0x2744)> + [5] #201.1.1.num.int <10041 (0x2739)> + [6] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x64, type 8, 101[6] +GC: ++#212.1.1.mem.code.ro +GC: --#213.1.1.mem.code.ro +GC: --#186.1.4.mem.ro +GC: --#212.1.2.mem.code.ro +GC: --#211.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +== backtrace == + [0] #214.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <10062 (0x274e)> + [1] #206.1.1.num.int <10052 (0x2744)> + [2] #201.1.1.num.int <10041 (0x2739)> + [3] #193.1.1.num.int <1001 (0x3e9)> +IP: #212:0x0, type 1, 10071 (0x2757) +== backtrace == + [0] #214.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <10071 (0x2757)> + [1] #210.1.1.num.int <10062 (0x274e)> + [2] #206.1.1.num.int <10052 (0x2744)> + [3] #201.1.1.num.int <10041 (0x2739)> + [4] #193.1.1.num.int <1001 (0x3e9)> +IP: #212:0x3, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#214.1.1.ctx.block +GC: --#188.1.2.ctx.func +GC: --#212.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <10071 (0x2757)> + [1] #210.1.1.num.int <10062 (0x274e)> + [2] #206.1.1.num.int <10052 (0x2744)> + [3] #201.1.1.num.int <10041 (0x2739)> + [4] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x6b, type 8, 108[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #215.1.1.num.int <10071 (0x2757)> + [2] #210.1.1.num.int <10062 (0x274e)> + [3] #206.1.1.num.int <10052 (0x2744)> + [4] #201.1.1.num.int <10041 (0x2739)> + [5] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x6d, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #215.1.1.num.int <10071 (0x2757)> + [3] #210.1.1.num.int <10062 (0x274e)> + [4] #206.1.1.num.int <10052 (0x2744)> + [5] #201.1.1.num.int <10041 (0x2739)> + [6] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x6e, type 8, 111[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.array + [1] #215.1.1.num.int <10071 (0x2757)> + [2] #210.1.1.num.int <10062 (0x274e)> + [3] #206.1.1.num.int <10052 (0x2744)> + [4] #201.1.1.num.int <10041 (0x2739)> + [5] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x70, type 6, 113[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x71, size 4> + [1] #217.1.1.array + [2] #215.1.1.num.int <10071 (0x2757)> + [3] #210.1.1.num.int <10062 (0x274e)> + [4] #206.1.1.num.int <10052 (0x2744)> + [5] #201.1.1.num.int <10041 (0x2739)> + [6] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x75, type 6, 118[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x76, size 4> + [1] #218.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x71, size 4> + [2] #217.1.1.array + [3] #215.1.1.num.int <10071 (0x2757)> + [4] #210.1.1.num.int <10062 (0x274e)> + [5] #206.1.1.num.int <10052 (0x2744)> + [6] #201.1.1.num.int <10041 (0x2739)> + [7] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x7a, type 8, 123[6] +GC: ++#218.1.1.mem.code.ro +GC: --#219.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +GC: --#218.1.2.mem.code.ro +GC: --#217.1.1.array +GC: --#216.1.1.num.int +== backtrace == + [0] #220.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <10071 (0x2757)> + [1] #210.1.1.num.int <10062 (0x274e)> + [2] #206.1.1.num.int <10052 (0x2744)> + [3] #201.1.1.num.int <10041 (0x2739)> + [4] #193.1.1.num.int <1001 (0x3e9)> +IP: #218:0x0, type 1, 10081 (0x2761) +== backtrace == + [0] #220.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.int <10081 (0x2761)> + [1] #215.1.1.num.int <10071 (0x2757)> + [2] #210.1.1.num.int <10062 (0x274e)> + [3] #206.1.1.num.int <10052 (0x2744)> + [4] #201.1.1.num.int <10041 (0x2739)> + [5] #193.1.1.num.int <1001 (0x3e9)> +IP: #218:0x3, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#220.1.1.ctx.block +GC: --#188.1.2.ctx.func +GC: --#218.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.int <10081 (0x2761)> + [1] #215.1.1.num.int <10071 (0x2757)> + [2] #210.1.1.num.int <10062 (0x274e)> + [3] #206.1.1.num.int <10052 (0x2744)> + [4] #201.1.1.num.int <10041 (0x2739)> + [5] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x81, type 8, 130[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #221.1.1.num.int <10081 (0x2761)> + [2] #215.1.1.num.int <10071 (0x2757)> + [3] #210.1.1.num.int <10062 (0x274e)> + [4] #206.1.1.num.int <10052 (0x2744)> + [5] #201.1.1.num.int <10041 (0x2739)> + [6] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x83, type 7, 132[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x84, size 1, "a"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #221.1.1.num.int <10081 (0x2761)> + [3] #215.1.1.num.int <10071 (0x2757)> + [4] #210.1.1.num.int <10062 (0x274e)> + [5] #206.1.1.num.int <10052 (0x2744)> + [6] #201.1.1.num.int <10041 (0x2739)> + [7] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x85, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.num.int <2 (0x2)> + [1] #222.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x84, size 1, "a"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #221.1.1.num.int <10081 (0x2761)> + [4] #215.1.1.num.int <10071 (0x2757)> + [5] #210.1.1.num.int <10062 (0x274e)> + [6] #206.1.1.num.int <10052 (0x2744)> + [7] #201.1.1.num.int <10041 (0x2739)> + [8] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x86, type 8, 135[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.hash + [1] #221.1.1.num.int <10081 (0x2761)> + [2] #215.1.1.num.int <10071 (0x2757)> + [3] #210.1.1.num.int <10062 (0x274e)> + [4] #206.1.1.num.int <10052 (0x2744)> + [5] #201.1.1.num.int <10041 (0x2739)> + [6] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x88, type 6, 137[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x89, size 4> + [1] #224.1.1.hash + [2] #221.1.1.num.int <10081 (0x2761)> + [3] #215.1.1.num.int <10071 (0x2757)> + [4] #210.1.1.num.int <10062 (0x274e)> + [5] #206.1.1.num.int <10052 (0x2744)> + [6] #201.1.1.num.int <10041 (0x2739)> + [7] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x8d, type 6, 142[4] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x8e, size 4> + [1] #225.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x89, size 4> + [2] #224.1.1.hash + [3] #221.1.1.num.int <10081 (0x2761)> + [4] #215.1.1.num.int <10071 (0x2757)> + [5] #210.1.1.num.int <10062 (0x274e)> + [6] #206.1.1.num.int <10052 (0x2744)> + [7] #201.1.1.num.int <10041 (0x2739)> + [8] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x92, type 8, 147[6] +GC: ++#225.1.1.mem.code.ro +GC: --#226.1.1.mem.code.ro +GC: --#186.1.4.mem.ro +GC: --#225.1.2.mem.code.ro +GC: --#224.1.1.hash +GC: --#222.1.1.mem.str.ro +GC: --#223.1.1.num.int +GC: --#186.1.3.mem.ro +== backtrace == + [0] #227.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.int <10081 (0x2761)> + [1] #215.1.1.num.int <10071 (0x2757)> + [2] #210.1.1.num.int <10062 (0x274e)> + [3] #206.1.1.num.int <10052 (0x2744)> + [4] #201.1.1.num.int <10041 (0x2739)> + [5] #193.1.1.num.int <1001 (0x3e9)> +IP: #225:0x0, type 1, 10091 (0x276b) +== backtrace == + [0] #227.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <10091 (0x276b)> + [1] #221.1.1.num.int <10081 (0x2761)> + [2] #215.1.1.num.int <10071 (0x2757)> + [3] #210.1.1.num.int <10062 (0x274e)> + [4] #206.1.1.num.int <10052 (0x2744)> + [5] #201.1.1.num.int <10041 (0x2739)> + [6] #193.1.1.num.int <1001 (0x3e9)> +IP: #225:0x3, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#227.1.1.ctx.block +GC: --#188.1.2.ctx.func +GC: --#225.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <10091 (0x276b)> + [1] #221.1.1.num.int <10081 (0x2761)> + [2] #215.1.1.num.int <10071 (0x2757)> + [3] #210.1.1.num.int <10062 (0x274e)> + [4] #206.1.1.num.int <10052 (0x2744)> + [5] #201.1.1.num.int <10041 (0x2739)> + [6] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x99, type 6, 154[2] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x9a, size 2> + [1] #228.1.1.num.int <10091 (0x276b)> + [2] #221.1.1.num.int <10081 (0x2761)> + [3] #215.1.1.num.int <10071 (0x2757)> + [4] #210.1.1.num.int <10062 (0x274e)> + [5] #206.1.1.num.int <10052 (0x2744)> + [6] #201.1.1.num.int <10041 (0x2739)> + [7] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0x9c, type 6, 157[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x9d, size 5> + [1] #229.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x9a, size 2> + [2] #228.1.1.num.int <10091 (0x276b)> + [3] #221.1.1.num.int <10081 (0x2761)> + [4] #215.1.1.num.int <10071 (0x2757)> + [5] #210.1.1.num.int <10062 (0x274e)> + [6] #206.1.1.num.int <10052 (0x2744)> + [7] #201.1.1.num.int <10041 (0x2739)> + [8] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0xa2, type 6, 163[5] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0xa3, size 5> + [1] #230.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x9d, size 5> + [2] #229.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x9a, size 2> + [3] #228.1.1.num.int <10091 (0x276b)> + [4] #221.1.1.num.int <10081 (0x2761)> + [5] #215.1.1.num.int <10071 (0x2757)> + [6] #210.1.1.num.int <10062 (0x274e)> + [7] #206.1.1.num.int <10052 (0x2744)> + [8] #201.1.1.num.int <10041 (0x2739)> + [9] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0xa8, type 8, 169[6] +GC: ++#230.1.1.mem.code.ro +GC: --#231.1.1.mem.code.ro +GC: --#186.1.4.mem.ro +GC: --#230.1.2.mem.code.ro +GC: --#229.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +== backtrace == + [0] #232.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <10091 (0x276b)> + [1] #221.1.1.num.int <10081 (0x2761)> + [2] #215.1.1.num.int <10071 (0x2757)> + [3] #210.1.1.num.int <10062 (0x274e)> + [4] #206.1.1.num.int <10052 (0x2744)> + [5] #201.1.1.num.int <10041 (0x2739)> + [6] #193.1.1.num.int <1001 (0x3e9)> +IP: #230:0x0, type 1, 100101 (0x18705) +== backtrace == + [0] #232.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.num.int <100101 (0x18705)> + [1] #228.1.1.num.int <10091 (0x276b)> + [2] #221.1.1.num.int <10081 (0x2761)> + [3] #215.1.1.num.int <10071 (0x2757)> + [4] #210.1.1.num.int <10062 (0x274e)> + [5] #206.1.1.num.int <10052 (0x2744)> + [6] #201.1.1.num.int <10041 (0x2739)> + [7] #193.1.1.num.int <1001 (0x3e9)> +IP: #230:0x4, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#232.1.1.ctx.block +GC: --#188.1.2.ctx.func +GC: --#230.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.num.int <100101 (0x18705)> + [1] #228.1.1.num.int <10091 (0x276b)> + [2] #221.1.1.num.int <10081 (0x2761)> + [3] #215.1.1.num.int <10071 (0x2757)> + [4] #210.1.1.num.int <10062 (0x274e)> + [5] #206.1.1.num.int <10052 (0x2744)> + [6] #201.1.1.num.int <10041 (0x2739)> + [7] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0xaf, type 9, 176[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0xb0, size 3, "foo"> + [1] #233.1.1.num.int <100101 (0x18705)> + [2] #228.1.1.num.int <10091 (0x276b)> + [3] #221.1.1.num.int <10081 (0x2761)> + [4] #215.1.1.num.int <10071 (0x2757)> + [5] #210.1.1.num.int <10062 (0x274e)> + [6] #206.1.1.num.int <10052 (0x2744)> + [7] #201.1.1.num.int <10041 (0x2739)> + [8] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0xb3, type 6, 180[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xb4, size 5> + [1] #234.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0xb0, size 3, "foo"> + [2] #233.1.1.num.int <100101 (0x18705)> + [3] #228.1.1.num.int <10091 (0x276b)> + [4] #221.1.1.num.int <10081 (0x2761)> + [5] #215.1.1.num.int <10071 (0x2757)> + [6] #210.1.1.num.int <10062 (0x274e)> + [7] #206.1.1.num.int <10052 (0x2744)> + [8] #201.1.1.num.int <10041 (0x2739)> + [9] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0xb9, type 6, 186[5] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0xba, size 5> + [1] #235.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0xb4, size 5> + [2] #234.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0xb0, size 3, "foo"> + [3] #233.1.1.num.int <100101 (0x18705)> + [4] #228.1.1.num.int <10091 (0x276b)> + [5] #221.1.1.num.int <10081 (0x2761)> + [6] #215.1.1.num.int <10071 (0x2757)> + [7] #210.1.1.num.int <10062 (0x274e)> + [8] #206.1.1.num.int <10052 (0x2744)> + [9] #201.1.1.num.int <10041 (0x2739)> + [10] #193.1.1.num.int <1001 (0x3e9)> +IP: #186:0xbf, type 8, 192[6] +GC: ++#235.1.1.mem.code.ro +GC: --#236.1.1.mem.code.ro +GC: --#186.1.4.mem.ro +GC: --#235.1.2.mem.code.ro +GC: --#234.1.1.mem.ref.ro +GC: --#186.1.3.mem.ro +== backtrace == + [0] #237.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.num.int <100101 (0x18705)> + [1] #228.1.1.num.int <10091 (0x276b)> + [2] #221.1.1.num.int <10081 (0x2761)> + [3] #215.1.1.num.int <10071 (0x2757)> + [4] #210.1.1.num.int <10062 (0x274e)> + [5] #206.1.1.num.int <10052 (0x2744)> + [6] #201.1.1.num.int <10041 (0x2739)> + [7] #193.1.1.num.int <1001 (0x3e9)> +IP: #235:0x0, type 1, 100111 (0x1870f) +== backtrace == + [0] #237.1.1.ctx.block + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <100111 (0x1870f)> + [1] #233.1.1.num.int <100101 (0x18705)> + [2] #228.1.1.num.int <10091 (0x276b)> + [3] #221.1.1.num.int <10081 (0x2761)> + [4] #215.1.1.num.int <10071 (0x2757)> + [5] #210.1.1.num.int <10062 (0x274e)> + [6] #206.1.1.num.int <10052 (0x2744)> + [7] #201.1.1.num.int <10041 (0x2739)> + [8] #193.1.1.num.int <1001 (0x3e9)> +IP: #235:0x4, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#237.1.1.ctx.block +GC: --#188.1.2.ctx.func +GC: --#235.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <100111 (0x1870f)> + [1] #233.1.1.num.int <100101 (0x18705)> + [2] #228.1.1.num.int <10091 (0x276b)> + [3] #221.1.1.num.int <10081 (0x2761)> + [4] #215.1.1.num.int <10071 (0x2757)> + [5] #210.1.1.num.int <10062 (0x274e)> + [6] #206.1.1.num.int <10052 (0x2744)> + [7] #201.1.1.num.int <10041 (0x2739)> + [8] #193.1.1.num.int <1001 (0x3e9)> diff --git a/tests/0006_repeat/basic.log.ref b/tests/0006_repeat/basic.log.ref new file mode 100644 index 0000000..8b3a1a5 --- /dev/null +++ b/tests/0006_repeat/basic.log.ref @@ -0,0 +1,157 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <1 (0x1)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.repeat +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-10 (0xfffffffffffffff6)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <-10 (0xfffffffffffffff6)> + [2] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <40 (0x28)> + [2] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <40 (0x28)> + [2] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <40 (0x28)> + [2] #xxxx.1.1.num.int <40 (0x28)> + [3] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <40 (0x28)> + [2] #xxxx.1.1.num.int <40 (0x28)> + [3] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <40 (0x28)> + [2] #xxxx.1.1.num.int <40 (0x28)> + [3] #xxxx.1.1.num.int <40 (0x28)> + [4] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.repeat +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <40 (0x28)> + [2] #xxxx.1.1.num.int <40 (0x28)> + [3] #xxxx.1.1.num.int <40 (0x28)> + [4] #xxxx.1.1.num.int <10 (0xa)> diff --git a/tests/0006_repeat/code.log.ref b/tests/0006_repeat/code.log.ref new file mode 100644 index 0000000..a38ba7e --- /dev/null +++ b/tests/0006_repeat/code.log.ref @@ -0,0 +1,27 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 21 entries (21 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 11 1 + 2 0x00009 code 36 { + 3 0x0000a int 81 0a 10 + 4 0x0000c prim 13 } + 5 0x0000d word 68 72 65 70 65 61 74 repeat + 2 6 0x00014 int 01 0 + 7 0x00015 code 36 { + 8 0x00016 int 81 14 20 + 9 0x00018 prim 13 } + 10 0x00019 word 68 72 65 70 65 61 74 repeat + 3 11 0x00020 int 81 f6 -10 + 12 0x00022 code 36 { + 13 0x00023 int 81 1e 30 + 14 0x00025 prim 13 } + 15 0x00026 word 68 72 65 70 65 61 74 repeat + 4 16 0x0002d int 41 4 + 17 0x0002e code 36 { + 18 0x0002f int 81 28 40 + 19 0x00031 prim 13 } + 20 0x00032 word 68 72 65 70 65 61 74 repeat diff --git a/tests/0006_repeat/code1.log.ref b/tests/0006_repeat/code1.log.ref new file mode 100644 index 0000000..4d8533c --- /dev/null +++ b/tests/0006_repeat/code1.log.ref @@ -0,0 +1,27 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 21 entries (21 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 11 1 + 2 0x00009 code 36 { + 3 0x0000a int 81 0a 10 + 4 0x0000c prim 13 } + 5 0x0000d word 68 72 65 70 65 61 74 repeat + 2 6 0x00014 int 01 0 + 7 0x00015 code 36 { + 8 0x00016 int 81 14 20 + 9 0x00018 prim 13 } + 10 0x00019 xref 84 0c repeat + 3 11 0x0001b int 81 f6 -10 + 12 0x0001d code 36 { + 13 0x0001e int 81 1e 30 + 14 0x00020 prim 13 } + 15 0x00021 xref 84 14 repeat + 4 16 0x00023 int 41 4 + 17 0x00024 code 36 { + 18 0x00025 int 81 28 40 + 19 0x00027 prim 13 } + 20 0x00028 xref 84 1b repeat diff --git a/tests/0006_repeat/code2.log.ref b/tests/0006_repeat/code2.log.ref new file mode 100644 index 0000000..b4587ca --- /dev/null +++ b/tests/0006_repeat/code2.log.ref @@ -0,0 +1,27 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 21 entries (21 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 11 1 + 2 0x00009 code 36 { + 3 0x0000a int 81 0a 10 + 4 0x0000c prim 13 } + 5 0x0000d prim 83 0c repeat + 2 6 0x0000f int 01 0 + 7 0x00010 code 36 { + 8 0x00011 int 81 14 20 + 9 0x00013 prim 13 } + 10 0x00014 prim 83 0c repeat + 3 11 0x00016 int 81 f6 -10 + 12 0x00018 code 36 { + 13 0x00019 int 81 1e 30 + 14 0x0001b prim 13 } + 15 0x0001c prim 83 0c repeat + 4 16 0x0001e int 41 4 + 17 0x0001f code 36 { + 18 0x00020 int 81 28 40 + 19 0x00022 prim 13 } + 20 0x00023 prim 83 0c repeat diff --git a/tests/0006_repeat/main.gs b/tests/0006_repeat/main.gs new file mode 100644 index 0000000..4789f15 --- /dev/null +++ b/tests/0006_repeat/main.gs @@ -0,0 +1,4 @@ +1 { 10 } repeat +0 { 20 } repeat +-10 { 30 } repeat +4 { 40 } repeat diff --git a/tests/0006_repeat/mem.log.ref b/tests/0006_repeat/mem.log.ref new file mode 100644 index 0000000..f4a28c0 --- /dev/null +++ b/tests/0006_repeat/mem.log.ref @@ -0,0 +1,765 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 60] + 8: 187.01, 0x001d6ab0[ 72] + 9: 188.01, 0x001d6b00[ 56] + 10: 0.00, 0x001d6b40[ 56] + 11: 192.01, 0x001d6b80[ 72] + 12: 0.00, 0x001d6bd0[14849072] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 11 36 81 0a 13 68 72 65 uQ..Bz.`.6...hre + 70 65 61 74 01 36 81 14 13 68 72 65 70 65 61 74 peat.6...hrepeat + 81 f6 36 81 1e 13 68 72 65 70 65 61 74 41 36 81 ..6...hrepeatA6. + 28 13 68 72 65 70 65 61 74 (.hrepeat + #187.1.1.array + [ 0] #193.1.1.num.int <10 (0xa)> + [ 1] #201.1.1.num.int <40 (0x28)> + [ 2] #202.1.1.num.int <40 (0x28)> + [ 3] #203.1.1.num.int <40 (0x28)> + [ 4] #204.1.1.num.int <40 (0x28)> + #188.1.1.ctx.func + type 17, ip 0x39 (0x39) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #192.1.1.array + #193.1.1.num.int <10 (0xa)> + #201.1.1.num.int <40 (0x28)> + #202.1.1.num.int <40 (0x28)> + #203.1.1.num.int <40 (0x28)> + #204.1.1.num.int <40 (0x28)> diff --git a/tests/0006_repeat/screen.log.ref b/tests/0006_repeat/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0006_repeat/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0006_repeat/trace.log.ref b/tests/0006_repeat/trace.log.ref new file mode 100644 index 0000000..15f7b42 --- /dev/null +++ b/tests/0006_repeat/trace.log.ref @@ -0,0 +1,180 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <1 (0x1)> +IP: #186:0x9, type 6, 10[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0xa, size 3> + [1] #189.1.1.num.int <1 (0x1)> +IP: #186:0xd, type 8, 14[6] +GC: ++#190.1.1.mem.code.ro +GC: --#190.1.2.mem.code.ro +GC: --#189.1.1.num.int +== backtrace == + [0] #191.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #190:0x0, type 1, 10 (0xa) +== backtrace == + [0] #191.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <10 (0xa)> +IP: #190:0x2, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#191.1.1.ctx.repeat +GC: --#188.1.2.ctx.func +GC: --#190.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <10 (0xa)> +IP: #186:0x14, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <0 (0x0)> + [1] #193.1.1.num.int <10 (0xa)> +IP: #186:0x15, type 6, 22[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x16, size 3> + [1] #194.1.1.num.int <0 (0x0)> + [2] #193.1.1.num.int <10 (0xa)> +IP: #186:0x19, type 8, 26[6] +GC: --#195.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +GC: --#194.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <10 (0xa)> +IP: #186:0x20, type 1, -10 (0xfffffffffffffff6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <-10 (0xfffffffffffffff6)> + [1] #193.1.1.num.int <10 (0xa)> +IP: #186:0x22, type 6, 35[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x23, size 3> + [1] #196.1.1.num.int <-10 (0xfffffffffffffff6)> + [2] #193.1.1.num.int <10 (0xa)> +IP: #186:0x26, type 8, 39[6] +GC: --#197.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <10 (0xa)> +IP: #186:0x2d, type 1, 4 (0x4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <4 (0x4)> + [1] #193.1.1.num.int <10 (0xa)> +IP: #186:0x2e, type 6, 47[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x2f, size 3> + [1] #198.1.1.num.int <4 (0x4)> + [2] #193.1.1.num.int <10 (0xa)> +IP: #186:0x32, type 8, 51[6] +GC: ++#199.1.1.mem.code.ro +GC: --#199.1.2.mem.code.ro +GC: --#198.1.1.num.int +== backtrace == + [0] #200.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <10 (0xa)> +IP: #199:0x0, type 1, 40 (0x28) +== backtrace == + [0] #200.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <40 (0x28)> + [1] #193.1.1.num.int <10 (0xa)> +IP: #199:0x2, type 3, 1 (0x1) +== backtrace == + [0] #200.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <40 (0x28)> + [1] #193.1.1.num.int <10 (0xa)> +IP: #199:0x0, type 1, 40 (0x28) +== backtrace == + [0] #200.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <40 (0x28)> + [1] #201.1.1.num.int <40 (0x28)> + [2] #193.1.1.num.int <10 (0xa)> +IP: #199:0x2, type 3, 1 (0x1) +== backtrace == + [0] #200.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <40 (0x28)> + [1] #201.1.1.num.int <40 (0x28)> + [2] #193.1.1.num.int <10 (0xa)> +IP: #199:0x0, type 1, 40 (0x28) +== backtrace == + [0] #200.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <40 (0x28)> + [1] #202.1.1.num.int <40 (0x28)> + [2] #201.1.1.num.int <40 (0x28)> + [3] #193.1.1.num.int <10 (0xa)> +IP: #199:0x2, type 3, 1 (0x1) +== backtrace == + [0] #200.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <40 (0x28)> + [1] #202.1.1.num.int <40 (0x28)> + [2] #201.1.1.num.int <40 (0x28)> + [3] #193.1.1.num.int <10 (0xa)> +IP: #199:0x0, type 1, 40 (0x28) +== backtrace == + [0] #200.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <40 (0x28)> + [1] #203.1.1.num.int <40 (0x28)> + [2] #202.1.1.num.int <40 (0x28)> + [3] #201.1.1.num.int <40 (0x28)> + [4] #193.1.1.num.int <10 (0xa)> +IP: #199:0x2, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#200.1.1.ctx.repeat +GC: --#188.1.2.ctx.func +GC: --#199.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <40 (0x28)> + [1] #203.1.1.num.int <40 (0x28)> + [2] #202.1.1.num.int <40 (0x28)> + [3] #201.1.1.num.int <40 (0x28)> + [4] #193.1.1.num.int <10 (0xa)> diff --git a/tests/0007_for/basic.log.ref b/tests/0007_for/basic.log.ref new file mode 100644 index 0000000..ec6d6ce --- /dev/null +++ b/tests/0007_for/basic.log.ref @@ -0,0 +1,1007 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <12 (0xc)> + [1] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <14 (0xe)> + [1] #xxxx.1.1.num.int <12 (0xc)> + [2] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <16 (0x10)> + [1] #xxxx.1.1.num.int <14 (0xe)> + [2] #xxxx.1.1.num.int <12 (0xc)> + [3] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <18 (0x12)> + [1] #xxxx.1.1.num.int <16 (0x10)> + [2] #xxxx.1.1.num.int <14 (0xe)> + [3] #xxxx.1.1.num.int <12 (0xc)> + [4] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <18 (0x12)> + [2] #xxxx.1.1.num.int <16 (0x10)> + [3] #xxxx.1.1.num.int <14 (0xe)> + [4] #xxxx.1.1.num.int <12 (0xc)> + [5] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.for +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <18 (0x12)> + [2] #xxxx.1.1.num.int <16 (0x10)> + [3] #xxxx.1.1.num.int <14 (0xe)> + [4] #xxxx.1.1.num.int <12 (0xc)> + [5] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <18 (0x12)> + [3] #xxxx.1.1.num.int <16 (0x10)> + [4] #xxxx.1.1.num.int <14 (0xe)> + [5] #xxxx.1.1.num.int <12 (0xc)> + [6] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <18 (0x12)> + [4] #xxxx.1.1.num.int <16 (0x10)> + [5] #xxxx.1.1.num.int <14 (0xe)> + [6] #xxxx.1.1.num.int <12 (0xc)> + [7] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <107 (0x6b)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <18 (0x12)> + [5] #xxxx.1.1.num.int <16 (0x10)> + [6] #xxxx.1.1.num.int <14 (0xe)> + [7] #xxxx.1.1.num.int <12 (0xc)> + [8] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <107 (0x6b)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <18 (0x12)> + [6] #xxxx.1.1.num.int <16 (0x10)> + [7] #xxxx.1.1.num.int <14 (0xe)> + [8] #xxxx.1.1.num.int <12 (0xc)> + [9] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <18 (0x12)> + [3] #xxxx.1.1.num.int <16 (0x10)> + [4] #xxxx.1.1.num.int <14 (0xe)> + [5] #xxxx.1.1.num.int <12 (0xc)> + [6] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <102 (0x66)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <18 (0x12)> + [4] #xxxx.1.1.num.int <16 (0x10)> + [5] #xxxx.1.1.num.int <14 (0xe)> + [6] #xxxx.1.1.num.int <12 (0xc)> + [7] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <104 (0x68)> + [1] #xxxx.1.1.num.int <102 (0x66)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <18 (0x12)> + [5] #xxxx.1.1.num.int <16 (0x10)> + [6] #xxxx.1.1.num.int <14 (0xe)> + [7] #xxxx.1.1.num.int <12 (0xc)> + [8] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <106 (0x6a)> + [1] #xxxx.1.1.num.int <104 (0x68)> + [2] #xxxx.1.1.num.int <102 (0x66)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <18 (0x12)> + [6] #xxxx.1.1.num.int <16 (0x10)> + [7] #xxxx.1.1.num.int <14 (0xe)> + [8] #xxxx.1.1.num.int <12 (0xc)> + [9] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.for +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <106 (0x6a)> + [1] #xxxx.1.1.num.int <104 (0x68)> + [2] #xxxx.1.1.num.int <102 (0x66)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <18 (0x12)> + [6] #xxxx.1.1.num.int <16 (0x10)> + [7] #xxxx.1.1.num.int <14 (0xe)> + [8] #xxxx.1.1.num.int <12 (0xc)> + [9] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1100 (0x44c)> + [1] #xxxx.1.1.num.int <106 (0x6a)> + [2] #xxxx.1.1.num.int <104 (0x68)> + [3] #xxxx.1.1.num.int <102 (0x66)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <18 (0x12)> + [7] #xxxx.1.1.num.int <16 (0x10)> + [8] #xxxx.1.1.num.int <14 (0xe)> + [9] #xxxx.1.1.num.int <12 (0xc)> + [10] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.1.num.int <1100 (0x44c)> + [2] #xxxx.1.1.num.int <106 (0x6a)> + [3] #xxxx.1.1.num.int <104 (0x68)> + [4] #xxxx.1.1.num.int <102 (0x66)> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.num.int <20 (0x14)> + [7] #xxxx.1.1.num.int <18 (0x12)> + [8] #xxxx.1.1.num.int <16 (0x10)> + [9] #xxxx.1.1.num.int <14 (0xe)> + [10] #xxxx.1.1.num.int <12 (0xc)> + [11] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1090 (0x442)> + [1] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #xxxx.1.1.num.int <1100 (0x44c)> + [3] #xxxx.1.1.num.int <106 (0x6a)> + [4] #xxxx.1.1.num.int <104 (0x68)> + [5] #xxxx.1.1.num.int <102 (0x66)> + [6] #xxxx.1.1.num.int <100 (0x64)> + [7] #xxxx.1.1.num.int <20 (0x14)> + [8] #xxxx.1.1.num.int <18 (0x12)> + [9] #xxxx.1.1.num.int <16 (0x10)> + [10] #xxxx.1.1.num.int <14 (0xe)> + [11] #xxxx.1.1.num.int <12 (0xc)> + [12] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <1090 (0x442)> + [2] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #xxxx.1.1.num.int <1100 (0x44c)> + [4] #xxxx.1.1.num.int <106 (0x6a)> + [5] #xxxx.1.1.num.int <104 (0x68)> + [6] #xxxx.1.1.num.int <102 (0x66)> + [7] #xxxx.1.1.num.int <100 (0x64)> + [8] #xxxx.1.1.num.int <20 (0x14)> + [9] #xxxx.1.1.num.int <18 (0x12)> + [10] #xxxx.1.1.num.int <16 (0x10)> + [11] #xxxx.1.1.num.int <14 (0xe)> + [12] #xxxx.1.1.num.int <12 (0xc)> + [13] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1100 (0x44c)> + [1] #xxxx.1.1.num.int <106 (0x6a)> + [2] #xxxx.1.1.num.int <104 (0x68)> + [3] #xxxx.1.1.num.int <102 (0x66)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <18 (0x12)> + [7] #xxxx.1.1.num.int <16 (0x10)> + [8] #xxxx.1.1.num.int <14 (0xe)> + [9] #xxxx.1.1.num.int <12 (0xc)> + [10] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1098 (0x44a)> + [1] #xxxx.1.1.num.int <1100 (0x44c)> + [2] #xxxx.1.1.num.int <106 (0x6a)> + [3] #xxxx.1.1.num.int <104 (0x68)> + [4] #xxxx.1.1.num.int <102 (0x66)> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.num.int <20 (0x14)> + [7] #xxxx.1.1.num.int <18 (0x12)> + [8] #xxxx.1.1.num.int <16 (0x10)> + [9] #xxxx.1.1.num.int <14 (0xe)> + [10] #xxxx.1.1.num.int <12 (0xc)> + [11] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1096 (0x448)> + [1] #xxxx.1.1.num.int <1098 (0x44a)> + [2] #xxxx.1.1.num.int <1100 (0x44c)> + [3] #xxxx.1.1.num.int <106 (0x6a)> + [4] #xxxx.1.1.num.int <104 (0x68)> + [5] #xxxx.1.1.num.int <102 (0x66)> + [6] #xxxx.1.1.num.int <100 (0x64)> + [7] #xxxx.1.1.num.int <20 (0x14)> + [8] #xxxx.1.1.num.int <18 (0x12)> + [9] #xxxx.1.1.num.int <16 (0x10)> + [10] #xxxx.1.1.num.int <14 (0xe)> + [11] #xxxx.1.1.num.int <12 (0xc)> + [12] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1094 (0x446)> + [1] #xxxx.1.1.num.int <1096 (0x448)> + [2] #xxxx.1.1.num.int <1098 (0x44a)> + [3] #xxxx.1.1.num.int <1100 (0x44c)> + [4] #xxxx.1.1.num.int <106 (0x6a)> + [5] #xxxx.1.1.num.int <104 (0x68)> + [6] #xxxx.1.1.num.int <102 (0x66)> + [7] #xxxx.1.1.num.int <100 (0x64)> + [8] #xxxx.1.1.num.int <20 (0x14)> + [9] #xxxx.1.1.num.int <18 (0x12)> + [10] #xxxx.1.1.num.int <16 (0x10)> + [11] #xxxx.1.1.num.int <14 (0xe)> + [12] #xxxx.1.1.num.int <12 (0xc)> + [13] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1092 (0x444)> + [1] #xxxx.1.1.num.int <1094 (0x446)> + [2] #xxxx.1.1.num.int <1096 (0x448)> + [3] #xxxx.1.1.num.int <1098 (0x44a)> + [4] #xxxx.1.1.num.int <1100 (0x44c)> + [5] #xxxx.1.1.num.int <106 (0x6a)> + [6] #xxxx.1.1.num.int <104 (0x68)> + [7] #xxxx.1.1.num.int <102 (0x66)> + [8] #xxxx.1.1.num.int <100 (0x64)> + [9] #xxxx.1.1.num.int <20 (0x14)> + [10] #xxxx.1.1.num.int <18 (0x12)> + [11] #xxxx.1.1.num.int <16 (0x10)> + [12] #xxxx.1.1.num.int <14 (0xe)> + [13] #xxxx.1.1.num.int <12 (0xc)> + [14] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1090 (0x442)> + [1] #xxxx.1.1.num.int <1092 (0x444)> + [2] #xxxx.1.1.num.int <1094 (0x446)> + [3] #xxxx.1.1.num.int <1096 (0x448)> + [4] #xxxx.1.1.num.int <1098 (0x44a)> + [5] #xxxx.1.1.num.int <1100 (0x44c)> + [6] #xxxx.1.1.num.int <106 (0x6a)> + [7] #xxxx.1.1.num.int <104 (0x68)> + [8] #xxxx.1.1.num.int <102 (0x66)> + [9] #xxxx.1.1.num.int <100 (0x64)> + [10] #xxxx.1.1.num.int <20 (0x14)> + [11] #xxxx.1.1.num.int <18 (0x12)> + [12] #xxxx.1.1.num.int <16 (0x10)> + [13] #xxxx.1.1.num.int <14 (0xe)> + [14] #xxxx.1.1.num.int <12 (0xc)> + [15] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.for +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1090 (0x442)> + [1] #xxxx.1.1.num.int <1092 (0x444)> + [2] #xxxx.1.1.num.int <1094 (0x446)> + [3] #xxxx.1.1.num.int <1096 (0x448)> + [4] #xxxx.1.1.num.int <1098 (0x44a)> + [5] #xxxx.1.1.num.int <1100 (0x44c)> + [6] #xxxx.1.1.num.int <106 (0x6a)> + [7] #xxxx.1.1.num.int <104 (0x68)> + [8] #xxxx.1.1.num.int <102 (0x66)> + [9] #xxxx.1.1.num.int <100 (0x64)> + [10] #xxxx.1.1.num.int <20 (0x14)> + [11] #xxxx.1.1.num.int <18 (0x12)> + [12] #xxxx.1.1.num.int <16 (0x10)> + [13] #xxxx.1.1.num.int <14 (0xe)> + [14] #xxxx.1.1.num.int <12 (0xc)> + [15] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11000 (0x2af8)> + [1] #xxxx.1.1.num.int <1090 (0x442)> + [2] #xxxx.1.1.num.int <1092 (0x444)> + [3] #xxxx.1.1.num.int <1094 (0x446)> + [4] #xxxx.1.1.num.int <1096 (0x448)> + [5] #xxxx.1.1.num.int <1098 (0x44a)> + [6] #xxxx.1.1.num.int <1100 (0x44c)> + [7] #xxxx.1.1.num.int <106 (0x6a)> + [8] #xxxx.1.1.num.int <104 (0x68)> + [9] #xxxx.1.1.num.int <102 (0x66)> + [10] #xxxx.1.1.num.int <100 (0x64)> + [11] #xxxx.1.1.num.int <20 (0x14)> + [12] #xxxx.1.1.num.int <18 (0x12)> + [13] #xxxx.1.1.num.int <16 (0x10)> + [14] #xxxx.1.1.num.int <14 (0xe)> + [15] #xxxx.1.1.num.int <12 (0xc)> + [16] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.1.num.int <11000 (0x2af8)> + [2] #xxxx.1.1.num.int <1090 (0x442)> + [3] #xxxx.1.1.num.int <1092 (0x444)> + [4] #xxxx.1.1.num.int <1094 (0x446)> + [5] #xxxx.1.1.num.int <1096 (0x448)> + [6] #xxxx.1.1.num.int <1098 (0x44a)> + [7] #xxxx.1.1.num.int <1100 (0x44c)> + [8] #xxxx.1.1.num.int <106 (0x6a)> + [9] #xxxx.1.1.num.int <104 (0x68)> + [10] #xxxx.1.1.num.int <102 (0x66)> + [11] #xxxx.1.1.num.int <100 (0x64)> + [12] #xxxx.1.1.num.int <20 (0x14)> + [13] #xxxx.1.1.num.int <18 (0x12)> + [14] #xxxx.1.1.num.int <16 (0x10)> + [15] #xxxx.1.1.num.int <14 (0xe)> + [16] #xxxx.1.1.num.int <12 (0xc)> + [17] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10993 (0x2af1)> + [1] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #xxxx.1.1.num.int <11000 (0x2af8)> + [3] #xxxx.1.1.num.int <1090 (0x442)> + [4] #xxxx.1.1.num.int <1092 (0x444)> + [5] #xxxx.1.1.num.int <1094 (0x446)> + [6] #xxxx.1.1.num.int <1096 (0x448)> + [7] #xxxx.1.1.num.int <1098 (0x44a)> + [8] #xxxx.1.1.num.int <1100 (0x44c)> + [9] #xxxx.1.1.num.int <106 (0x6a)> + [10] #xxxx.1.1.num.int <104 (0x68)> + [11] #xxxx.1.1.num.int <102 (0x66)> + [12] #xxxx.1.1.num.int <100 (0x64)> + [13] #xxxx.1.1.num.int <20 (0x14)> + [14] #xxxx.1.1.num.int <18 (0x12)> + [15] #xxxx.1.1.num.int <16 (0x10)> + [16] #xxxx.1.1.num.int <14 (0xe)> + [17] #xxxx.1.1.num.int <12 (0xc)> + [18] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <10993 (0x2af1)> + [2] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #xxxx.1.1.num.int <11000 (0x2af8)> + [4] #xxxx.1.1.num.int <1090 (0x442)> + [5] #xxxx.1.1.num.int <1092 (0x444)> + [6] #xxxx.1.1.num.int <1094 (0x446)> + [7] #xxxx.1.1.num.int <1096 (0x448)> + [8] #xxxx.1.1.num.int <1098 (0x44a)> + [9] #xxxx.1.1.num.int <1100 (0x44c)> + [10] #xxxx.1.1.num.int <106 (0x6a)> + [11] #xxxx.1.1.num.int <104 (0x68)> + [12] #xxxx.1.1.num.int <102 (0x66)> + [13] #xxxx.1.1.num.int <100 (0x64)> + [14] #xxxx.1.1.num.int <20 (0x14)> + [15] #xxxx.1.1.num.int <18 (0x12)> + [16] #xxxx.1.1.num.int <16 (0x10)> + [17] #xxxx.1.1.num.int <14 (0xe)> + [18] #xxxx.1.1.num.int <12 (0xc)> + [19] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11000 (0x2af8)> + [1] #xxxx.1.1.num.int <1090 (0x442)> + [2] #xxxx.1.1.num.int <1092 (0x444)> + [3] #xxxx.1.1.num.int <1094 (0x446)> + [4] #xxxx.1.1.num.int <1096 (0x448)> + [5] #xxxx.1.1.num.int <1098 (0x44a)> + [6] #xxxx.1.1.num.int <1100 (0x44c)> + [7] #xxxx.1.1.num.int <106 (0x6a)> + [8] #xxxx.1.1.num.int <104 (0x68)> + [9] #xxxx.1.1.num.int <102 (0x66)> + [10] #xxxx.1.1.num.int <100 (0x64)> + [11] #xxxx.1.1.num.int <20 (0x14)> + [12] #xxxx.1.1.num.int <18 (0x12)> + [13] #xxxx.1.1.num.int <16 (0x10)> + [14] #xxxx.1.1.num.int <14 (0xe)> + [15] #xxxx.1.1.num.int <12 (0xc)> + [16] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10998 (0x2af6)> + [1] #xxxx.1.1.num.int <11000 (0x2af8)> + [2] #xxxx.1.1.num.int <1090 (0x442)> + [3] #xxxx.1.1.num.int <1092 (0x444)> + [4] #xxxx.1.1.num.int <1094 (0x446)> + [5] #xxxx.1.1.num.int <1096 (0x448)> + [6] #xxxx.1.1.num.int <1098 (0x44a)> + [7] #xxxx.1.1.num.int <1100 (0x44c)> + [8] #xxxx.1.1.num.int <106 (0x6a)> + [9] #xxxx.1.1.num.int <104 (0x68)> + [10] #xxxx.1.1.num.int <102 (0x66)> + [11] #xxxx.1.1.num.int <100 (0x64)> + [12] #xxxx.1.1.num.int <20 (0x14)> + [13] #xxxx.1.1.num.int <18 (0x12)> + [14] #xxxx.1.1.num.int <16 (0x10)> + [15] #xxxx.1.1.num.int <14 (0xe)> + [16] #xxxx.1.1.num.int <12 (0xc)> + [17] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10996 (0x2af4)> + [1] #xxxx.1.1.num.int <10998 (0x2af6)> + [2] #xxxx.1.1.num.int <11000 (0x2af8)> + [3] #xxxx.1.1.num.int <1090 (0x442)> + [4] #xxxx.1.1.num.int <1092 (0x444)> + [5] #xxxx.1.1.num.int <1094 (0x446)> + [6] #xxxx.1.1.num.int <1096 (0x448)> + [7] #xxxx.1.1.num.int <1098 (0x44a)> + [8] #xxxx.1.1.num.int <1100 (0x44c)> + [9] #xxxx.1.1.num.int <106 (0x6a)> + [10] #xxxx.1.1.num.int <104 (0x68)> + [11] #xxxx.1.1.num.int <102 (0x66)> + [12] #xxxx.1.1.num.int <100 (0x64)> + [13] #xxxx.1.1.num.int <20 (0x14)> + [14] #xxxx.1.1.num.int <18 (0x12)> + [15] #xxxx.1.1.num.int <16 (0x10)> + [16] #xxxx.1.1.num.int <14 (0xe)> + [17] #xxxx.1.1.num.int <12 (0xc)> + [18] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10994 (0x2af2)> + [1] #xxxx.1.1.num.int <10996 (0x2af4)> + [2] #xxxx.1.1.num.int <10998 (0x2af6)> + [3] #xxxx.1.1.num.int <11000 (0x2af8)> + [4] #xxxx.1.1.num.int <1090 (0x442)> + [5] #xxxx.1.1.num.int <1092 (0x444)> + [6] #xxxx.1.1.num.int <1094 (0x446)> + [7] #xxxx.1.1.num.int <1096 (0x448)> + [8] #xxxx.1.1.num.int <1098 (0x44a)> + [9] #xxxx.1.1.num.int <1100 (0x44c)> + [10] #xxxx.1.1.num.int <106 (0x6a)> + [11] #xxxx.1.1.num.int <104 (0x68)> + [12] #xxxx.1.1.num.int <102 (0x66)> + [13] #xxxx.1.1.num.int <100 (0x64)> + [14] #xxxx.1.1.num.int <20 (0x14)> + [15] #xxxx.1.1.num.int <18 (0x12)> + [16] #xxxx.1.1.num.int <16 (0x10)> + [17] #xxxx.1.1.num.int <14 (0xe)> + [18] #xxxx.1.1.num.int <12 (0xc)> + [19] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.for +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10994 (0x2af2)> + [1] #xxxx.1.1.num.int <10996 (0x2af4)> + [2] #xxxx.1.1.num.int <10998 (0x2af6)> + [3] #xxxx.1.1.num.int <11000 (0x2af8)> + [4] #xxxx.1.1.num.int <1090 (0x442)> + [5] #xxxx.1.1.num.int <1092 (0x444)> + [6] #xxxx.1.1.num.int <1094 (0x446)> + [7] #xxxx.1.1.num.int <1096 (0x448)> + [8] #xxxx.1.1.num.int <1098 (0x44a)> + [9] #xxxx.1.1.num.int <1100 (0x44c)> + [10] #xxxx.1.1.num.int <106 (0x6a)> + [11] #xxxx.1.1.num.int <104 (0x68)> + [12] #xxxx.1.1.num.int <102 (0x66)> + [13] #xxxx.1.1.num.int <100 (0x64)> + [14] #xxxx.1.1.num.int <20 (0x14)> + [15] #xxxx.1.1.num.int <18 (0x12)> + [16] #xxxx.1.1.num.int <16 (0x10)> + [17] #xxxx.1.1.num.int <14 (0xe)> + [18] #xxxx.1.1.num.int <12 (0xc)> + [19] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <10994 (0x2af2)> + [2] #xxxx.1.1.num.int <10996 (0x2af4)> + [3] #xxxx.1.1.num.int <10998 (0x2af6)> + [4] #xxxx.1.1.num.int <11000 (0x2af8)> + [5] #xxxx.1.1.num.int <1090 (0x442)> + [6] #xxxx.1.1.num.int <1092 (0x444)> + [7] #xxxx.1.1.num.int <1094 (0x446)> + [8] #xxxx.1.1.num.int <1096 (0x448)> + [9] #xxxx.1.1.num.int <1098 (0x44a)> + [10] #xxxx.1.1.num.int <1100 (0x44c)> + [11] #xxxx.1.1.num.int <106 (0x6a)> + [12] #xxxx.1.1.num.int <104 (0x68)> + [13] #xxxx.1.1.num.int <102 (0x66)> + [14] #xxxx.1.1.num.int <100 (0x64)> + [15] #xxxx.1.1.num.int <20 (0x14)> + [16] #xxxx.1.1.num.int <18 (0x12)> + [17] #xxxx.1.1.num.int <16 (0x10)> + [18] #xxxx.1.1.num.int <14 (0xe)> + [19] #xxxx.1.1.num.int <12 (0xc)> + [20] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <10994 (0x2af2)> + [3] #xxxx.1.1.num.int <10996 (0x2af4)> + [4] #xxxx.1.1.num.int <10998 (0x2af6)> + [5] #xxxx.1.1.num.int <11000 (0x2af8)> + [6] #xxxx.1.1.num.int <1090 (0x442)> + [7] #xxxx.1.1.num.int <1092 (0x444)> + [8] #xxxx.1.1.num.int <1094 (0x446)> + [9] #xxxx.1.1.num.int <1096 (0x448)> + [10] #xxxx.1.1.num.int <1098 (0x44a)> + [11] #xxxx.1.1.num.int <1100 (0x44c)> + [12] #xxxx.1.1.num.int <106 (0x6a)> + [13] #xxxx.1.1.num.int <104 (0x68)> + [14] #xxxx.1.1.num.int <102 (0x66)> + [15] #xxxx.1.1.num.int <100 (0x64)> + [16] #xxxx.1.1.num.int <20 (0x14)> + [17] #xxxx.1.1.num.int <18 (0x12)> + [18] #xxxx.1.1.num.int <16 (0x10)> + [19] #xxxx.1.1.num.int <14 (0xe)> + [20] #xxxx.1.1.num.int <12 (0xc)> + [21] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <190 (0xbe)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <10994 (0x2af2)> + [4] #xxxx.1.1.num.int <10996 (0x2af4)> + [5] #xxxx.1.1.num.int <10998 (0x2af6)> + [6] #xxxx.1.1.num.int <11000 (0x2af8)> + [7] #xxxx.1.1.num.int <1090 (0x442)> + [8] #xxxx.1.1.num.int <1092 (0x444)> + [9] #xxxx.1.1.num.int <1094 (0x446)> + [10] #xxxx.1.1.num.int <1096 (0x448)> + [11] #xxxx.1.1.num.int <1098 (0x44a)> + [12] #xxxx.1.1.num.int <1100 (0x44c)> + [13] #xxxx.1.1.num.int <106 (0x6a)> + [14] #xxxx.1.1.num.int <104 (0x68)> + [15] #xxxx.1.1.num.int <102 (0x66)> + [16] #xxxx.1.1.num.int <100 (0x64)> + [17] #xxxx.1.1.num.int <20 (0x14)> + [18] #xxxx.1.1.num.int <18 (0x12)> + [19] #xxxx.1.1.num.int <16 (0x10)> + [20] #xxxx.1.1.num.int <14 (0xe)> + [21] #xxxx.1.1.num.int <12 (0xc)> + [22] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <190 (0xbe)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <10994 (0x2af2)> + [5] #xxxx.1.1.num.int <10996 (0x2af4)> + [6] #xxxx.1.1.num.int <10998 (0x2af6)> + [7] #xxxx.1.1.num.int <11000 (0x2af8)> + [8] #xxxx.1.1.num.int <1090 (0x442)> + [9] #xxxx.1.1.num.int <1092 (0x444)> + [10] #xxxx.1.1.num.int <1094 (0x446)> + [11] #xxxx.1.1.num.int <1096 (0x448)> + [12] #xxxx.1.1.num.int <1098 (0x44a)> + [13] #xxxx.1.1.num.int <1100 (0x44c)> + [14] #xxxx.1.1.num.int <106 (0x6a)> + [15] #xxxx.1.1.num.int <104 (0x68)> + [16] #xxxx.1.1.num.int <102 (0x66)> + [17] #xxxx.1.1.num.int <100 (0x64)> + [18] #xxxx.1.1.num.int <20 (0x14)> + [19] #xxxx.1.1.num.int <18 (0x12)> + [20] #xxxx.1.1.num.int <16 (0x10)> + [21] #xxxx.1.1.num.int <14 (0xe)> + [22] #xxxx.1.1.num.int <12 (0xc)> + [23] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10994 (0x2af2)> + [1] #xxxx.1.1.num.int <10996 (0x2af4)> + [2] #xxxx.1.1.num.int <10998 (0x2af6)> + [3] #xxxx.1.1.num.int <11000 (0x2af8)> + [4] #xxxx.1.1.num.int <1090 (0x442)> + [5] #xxxx.1.1.num.int <1092 (0x444)> + [6] #xxxx.1.1.num.int <1094 (0x446)> + [7] #xxxx.1.1.num.int <1096 (0x448)> + [8] #xxxx.1.1.num.int <1098 (0x44a)> + [9] #xxxx.1.1.num.int <1100 (0x44c)> + [10] #xxxx.1.1.num.int <106 (0x6a)> + [11] #xxxx.1.1.num.int <104 (0x68)> + [12] #xxxx.1.1.num.int <102 (0x66)> + [13] #xxxx.1.1.num.int <100 (0x64)> + [14] #xxxx.1.1.num.int <20 (0x14)> + [15] #xxxx.1.1.num.int <18 (0x12)> + [16] #xxxx.1.1.num.int <16 (0x10)> + [17] #xxxx.1.1.num.int <14 (0xe)> + [18] #xxxx.1.1.num.int <12 (0xc)> + [19] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <10994 (0x2af2)> + [2] #xxxx.1.1.num.int <10996 (0x2af4)> + [3] #xxxx.1.1.num.int <10998 (0x2af6)> + [4] #xxxx.1.1.num.int <11000 (0x2af8)> + [5] #xxxx.1.1.num.int <1090 (0x442)> + [6] #xxxx.1.1.num.int <1092 (0x444)> + [7] #xxxx.1.1.num.int <1094 (0x446)> + [8] #xxxx.1.1.num.int <1096 (0x448)> + [9] #xxxx.1.1.num.int <1098 (0x44a)> + [10] #xxxx.1.1.num.int <1100 (0x44c)> + [11] #xxxx.1.1.num.int <106 (0x6a)> + [12] #xxxx.1.1.num.int <104 (0x68)> + [13] #xxxx.1.1.num.int <102 (0x66)> + [14] #xxxx.1.1.num.int <100 (0x64)> + [15] #xxxx.1.1.num.int <20 (0x14)> + [16] #xxxx.1.1.num.int <18 (0x12)> + [17] #xxxx.1.1.num.int <16 (0x10)> + [18] #xxxx.1.1.num.int <14 (0xe)> + [19] #xxxx.1.1.num.int <12 (0xc)> + [20] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <10994 (0x2af2)> + [3] #xxxx.1.1.num.int <10996 (0x2af4)> + [4] #xxxx.1.1.num.int <10998 (0x2af6)> + [5] #xxxx.1.1.num.int <11000 (0x2af8)> + [6] #xxxx.1.1.num.int <1090 (0x442)> + [7] #xxxx.1.1.num.int <1092 (0x444)> + [8] #xxxx.1.1.num.int <1094 (0x446)> + [9] #xxxx.1.1.num.int <1096 (0x448)> + [10] #xxxx.1.1.num.int <1098 (0x44a)> + [11] #xxxx.1.1.num.int <1100 (0x44c)> + [12] #xxxx.1.1.num.int <106 (0x6a)> + [13] #xxxx.1.1.num.int <104 (0x68)> + [14] #xxxx.1.1.num.int <102 (0x66)> + [15] #xxxx.1.1.num.int <100 (0x64)> + [16] #xxxx.1.1.num.int <20 (0x14)> + [17] #xxxx.1.1.num.int <18 (0x12)> + [18] #xxxx.1.1.num.int <16 (0x10)> + [19] #xxxx.1.1.num.int <14 (0xe)> + [20] #xxxx.1.1.num.int <12 (0xc)> + [21] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <210 (0xd2)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <10994 (0x2af2)> + [4] #xxxx.1.1.num.int <10996 (0x2af4)> + [5] #xxxx.1.1.num.int <10998 (0x2af6)> + [6] #xxxx.1.1.num.int <11000 (0x2af8)> + [7] #xxxx.1.1.num.int <1090 (0x442)> + [8] #xxxx.1.1.num.int <1092 (0x444)> + [9] #xxxx.1.1.num.int <1094 (0x446)> + [10] #xxxx.1.1.num.int <1096 (0x448)> + [11] #xxxx.1.1.num.int <1098 (0x44a)> + [12] #xxxx.1.1.num.int <1100 (0x44c)> + [13] #xxxx.1.1.num.int <106 (0x6a)> + [14] #xxxx.1.1.num.int <104 (0x68)> + [15] #xxxx.1.1.num.int <102 (0x66)> + [16] #xxxx.1.1.num.int <100 (0x64)> + [17] #xxxx.1.1.num.int <20 (0x14)> + [18] #xxxx.1.1.num.int <18 (0x12)> + [19] #xxxx.1.1.num.int <16 (0x10)> + [20] #xxxx.1.1.num.int <14 (0xe)> + [21] #xxxx.1.1.num.int <12 (0xc)> + [22] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <210 (0xd2)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <10994 (0x2af2)> + [5] #xxxx.1.1.num.int <10996 (0x2af4)> + [6] #xxxx.1.1.num.int <10998 (0x2af6)> + [7] #xxxx.1.1.num.int <11000 (0x2af8)> + [8] #xxxx.1.1.num.int <1090 (0x442)> + [9] #xxxx.1.1.num.int <1092 (0x444)> + [10] #xxxx.1.1.num.int <1094 (0x446)> + [11] #xxxx.1.1.num.int <1096 (0x448)> + [12] #xxxx.1.1.num.int <1098 (0x44a)> + [13] #xxxx.1.1.num.int <1100 (0x44c)> + [14] #xxxx.1.1.num.int <106 (0x6a)> + [15] #xxxx.1.1.num.int <104 (0x68)> + [16] #xxxx.1.1.num.int <102 (0x66)> + [17] #xxxx.1.1.num.int <100 (0x64)> + [18] #xxxx.1.1.num.int <20 (0x14)> + [19] #xxxx.1.1.num.int <18 (0x12)> + [20] #xxxx.1.1.num.int <16 (0x10)> + [21] #xxxx.1.1.num.int <14 (0xe)> + [22] #xxxx.1.1.num.int <12 (0xc)> + [23] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10994 (0x2af2)> + [1] #xxxx.1.1.num.int <10996 (0x2af4)> + [2] #xxxx.1.1.num.int <10998 (0x2af6)> + [3] #xxxx.1.1.num.int <11000 (0x2af8)> + [4] #xxxx.1.1.num.int <1090 (0x442)> + [5] #xxxx.1.1.num.int <1092 (0x444)> + [6] #xxxx.1.1.num.int <1094 (0x446)> + [7] #xxxx.1.1.num.int <1096 (0x448)> + [8] #xxxx.1.1.num.int <1098 (0x44a)> + [9] #xxxx.1.1.num.int <1100 (0x44c)> + [10] #xxxx.1.1.num.int <106 (0x6a)> + [11] #xxxx.1.1.num.int <104 (0x68)> + [12] #xxxx.1.1.num.int <102 (0x66)> + [13] #xxxx.1.1.num.int <100 (0x64)> + [14] #xxxx.1.1.num.int <20 (0x14)> + [15] #xxxx.1.1.num.int <18 (0x12)> + [16] #xxxx.1.1.num.int <16 (0x10)> + [17] #xxxx.1.1.num.int <14 (0xe)> + [18] #xxxx.1.1.num.int <12 (0xc)> + [19] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <10994 (0x2af2)> + [2] #xxxx.1.1.num.int <10996 (0x2af4)> + [3] #xxxx.1.1.num.int <10998 (0x2af6)> + [4] #xxxx.1.1.num.int <11000 (0x2af8)> + [5] #xxxx.1.1.num.int <1090 (0x442)> + [6] #xxxx.1.1.num.int <1092 (0x444)> + [7] #xxxx.1.1.num.int <1094 (0x446)> + [8] #xxxx.1.1.num.int <1096 (0x448)> + [9] #xxxx.1.1.num.int <1098 (0x44a)> + [10] #xxxx.1.1.num.int <1100 (0x44c)> + [11] #xxxx.1.1.num.int <106 (0x6a)> + [12] #xxxx.1.1.num.int <104 (0x68)> + [13] #xxxx.1.1.num.int <102 (0x66)> + [14] #xxxx.1.1.num.int <100 (0x64)> + [15] #xxxx.1.1.num.int <20 (0x14)> + [16] #xxxx.1.1.num.int <18 (0x12)> + [17] #xxxx.1.1.num.int <16 (0x10)> + [18] #xxxx.1.1.num.int <14 (0xe)> + [19] #xxxx.1.1.num.int <12 (0xc)> + [20] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <10994 (0x2af2)> + [3] #xxxx.1.1.num.int <10996 (0x2af4)> + [4] #xxxx.1.1.num.int <10998 (0x2af6)> + [5] #xxxx.1.1.num.int <11000 (0x2af8)> + [6] #xxxx.1.1.num.int <1090 (0x442)> + [7] #xxxx.1.1.num.int <1092 (0x444)> + [8] #xxxx.1.1.num.int <1094 (0x446)> + [9] #xxxx.1.1.num.int <1096 (0x448)> + [10] #xxxx.1.1.num.int <1098 (0x44a)> + [11] #xxxx.1.1.num.int <1100 (0x44c)> + [12] #xxxx.1.1.num.int <106 (0x6a)> + [13] #xxxx.1.1.num.int <104 (0x68)> + [14] #xxxx.1.1.num.int <102 (0x66)> + [15] #xxxx.1.1.num.int <100 (0x64)> + [16] #xxxx.1.1.num.int <20 (0x14)> + [17] #xxxx.1.1.num.int <18 (0x12)> + [18] #xxxx.1.1.num.int <16 (0x10)> + [19] #xxxx.1.1.num.int <14 (0xe)> + [20] #xxxx.1.1.num.int <12 (0xc)> + [21] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <10994 (0x2af2)> + [4] #xxxx.1.1.num.int <10996 (0x2af4)> + [5] #xxxx.1.1.num.int <10998 (0x2af6)> + [6] #xxxx.1.1.num.int <11000 (0x2af8)> + [7] #xxxx.1.1.num.int <1090 (0x442)> + [8] #xxxx.1.1.num.int <1092 (0x444)> + [9] #xxxx.1.1.num.int <1094 (0x446)> + [10] #xxxx.1.1.num.int <1096 (0x448)> + [11] #xxxx.1.1.num.int <1098 (0x44a)> + [12] #xxxx.1.1.num.int <1100 (0x44c)> + [13] #xxxx.1.1.num.int <106 (0x6a)> + [14] #xxxx.1.1.num.int <104 (0x68)> + [15] #xxxx.1.1.num.int <102 (0x66)> + [16] #xxxx.1.1.num.int <100 (0x64)> + [17] #xxxx.1.1.num.int <20 (0x14)> + [18] #xxxx.1.1.num.int <18 (0x12)> + [19] #xxxx.1.1.num.int <16 (0x10)> + [20] #xxxx.1.1.num.int <14 (0xe)> + [21] #xxxx.1.1.num.int <12 (0xc)> + [22] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <10994 (0x2af2)> + [5] #xxxx.1.1.num.int <10996 (0x2af4)> + [6] #xxxx.1.1.num.int <10998 (0x2af6)> + [7] #xxxx.1.1.num.int <11000 (0x2af8)> + [8] #xxxx.1.1.num.int <1090 (0x442)> + [9] #xxxx.1.1.num.int <1092 (0x444)> + [10] #xxxx.1.1.num.int <1094 (0x446)> + [11] #xxxx.1.1.num.int <1096 (0x448)> + [12] #xxxx.1.1.num.int <1098 (0x44a)> + [13] #xxxx.1.1.num.int <1100 (0x44c)> + [14] #xxxx.1.1.num.int <106 (0x6a)> + [15] #xxxx.1.1.num.int <104 (0x68)> + [16] #xxxx.1.1.num.int <102 (0x66)> + [17] #xxxx.1.1.num.int <100 (0x64)> + [18] #xxxx.1.1.num.int <20 (0x14)> + [19] #xxxx.1.1.num.int <18 (0x12)> + [20] #xxxx.1.1.num.int <16 (0x10)> + [21] #xxxx.1.1.num.int <14 (0xe)> + [22] #xxxx.1.1.num.int <12 (0xc)> + [23] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10994 (0x2af2)> + [1] #xxxx.1.1.num.int <10996 (0x2af4)> + [2] #xxxx.1.1.num.int <10998 (0x2af6)> + [3] #xxxx.1.1.num.int <11000 (0x2af8)> + [4] #xxxx.1.1.num.int <1090 (0x442)> + [5] #xxxx.1.1.num.int <1092 (0x444)> + [6] #xxxx.1.1.num.int <1094 (0x446)> + [7] #xxxx.1.1.num.int <1096 (0x448)> + [8] #xxxx.1.1.num.int <1098 (0x44a)> + [9] #xxxx.1.1.num.int <1100 (0x44c)> + [10] #xxxx.1.1.num.int <106 (0x6a)> + [11] #xxxx.1.1.num.int <104 (0x68)> + [12] #xxxx.1.1.num.int <102 (0x66)> + [13] #xxxx.1.1.num.int <100 (0x64)> + [14] #xxxx.1.1.num.int <20 (0x14)> + [15] #xxxx.1.1.num.int <18 (0x12)> + [16] #xxxx.1.1.num.int <16 (0x10)> + [17] #xxxx.1.1.num.int <14 (0xe)> + [18] #xxxx.1.1.num.int <12 (0xc)> + [19] #xxxx.1.1.num.int <10 (0xa)> diff --git a/tests/0007_for/code.log.ref b/tests/0007_for/code.log.ref new file mode 100644 index 0000000..85944b7 --- /dev/null +++ b/tests/0007_for/code.log.ref @@ -0,0 +1,49 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 43 entries (43 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 0a 10 + 2 0x0000a int 21 2 + 3 0x0000b int 81 14 20 + 4 0x0000d code 16 { + 5 0x0000e prim 13 } + 6 0x0000f word 38 66 6f 72 for + 2 7 0x00013 int 81 64 100 + 8 0x00015 int 21 2 + 9 0x00016 int 81 6b 107 + 10 0x00018 code 16 { + 11 0x00019 prim 13 } + 12 0x0001a word 38 66 6f 72 for + 3 13 0x0001e int 91 4c 04 1100 + 14 0x00021 int 81 fe -2 + 15 0x00023 int 91 42 04 1090 + 16 0x00026 code 16 { + 17 0x00027 prim 13 } + 18 0x00028 word 38 66 6f 72 for + 4 19 0x0002c int 91 f8 2a 11000 + 20 0x0002f int 81 fe -2 + 21 0x00031 int 91 f1 2a 10993 + 22 0x00034 code 16 { + 23 0x00035 prim 13 } + 24 0x00036 word 38 66 6f 72 for + 5 25 0x0003a int 91 c8 00 200 + 26 0x0003d int 11 1 + 27 0x0003e int 91 be 00 190 + 28 0x00041 code 16 { + 29 0x00042 prim 13 } + 30 0x00043 word 38 66 6f 72 for + 6 31 0x00047 int 91 c8 00 200 + 32 0x0004a int 81 ff -1 + 33 0x0004c int 91 d2 00 210 + 34 0x0004f code 16 { + 35 0x00050 prim 13 } + 36 0x00051 word 38 66 6f 72 for + 7 37 0x00055 int 01 0 + 38 0x00056 int 01 0 + 39 0x00057 int 81 64 100 + 40 0x00059 code 16 { + 41 0x0005a prim 13 } + 42 0x0005b word 38 66 6f 72 for diff --git a/tests/0007_for/code1.log.ref b/tests/0007_for/code1.log.ref new file mode 100644 index 0000000..be0401e --- /dev/null +++ b/tests/0007_for/code1.log.ref @@ -0,0 +1,49 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 43 entries (43 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 0a 10 + 2 0x0000a int 21 2 + 3 0x0000b int 81 14 20 + 4 0x0000d code 16 { + 5 0x0000e prim 13 } + 6 0x0000f word 38 66 6f 72 for + 2 7 0x00013 int 81 64 100 + 8 0x00015 int 21 2 + 9 0x00016 int 81 6b 107 + 10 0x00018 code 16 { + 11 0x00019 prim 13 } + 12 0x0001a xref 84 0b for + 3 13 0x0001c int 91 4c 04 1100 + 14 0x0001f int 81 fe -2 + 15 0x00021 int 91 42 04 1090 + 16 0x00024 code 16 { + 17 0x00025 prim 13 } + 18 0x00026 xref 84 17 for + 4 19 0x00028 int 91 f8 2a 11000 + 20 0x0002b int 81 fe -2 + 21 0x0002d int 91 f1 2a 10993 + 22 0x00030 code 16 { + 23 0x00031 prim 13 } + 24 0x00032 xref 84 23 for + 5 25 0x00034 int 91 c8 00 200 + 26 0x00037 int 11 1 + 27 0x00038 int 91 be 00 190 + 28 0x0003b code 16 { + 29 0x0003c prim 13 } + 30 0x0003d xref 84 2e for + 6 31 0x0003f int 91 c8 00 200 + 32 0x00042 int 81 ff -1 + 33 0x00044 int 91 d2 00 210 + 34 0x00047 code 16 { + 35 0x00048 prim 13 } + 36 0x00049 xref 84 3a for + 7 37 0x0004b int 01 0 + 38 0x0004c int 01 0 + 39 0x0004d int 81 64 100 + 40 0x0004f code 16 { + 41 0x00050 prim 13 } + 42 0x00051 xref 84 42 for diff --git a/tests/0007_for/code2.log.ref b/tests/0007_for/code2.log.ref new file mode 100644 index 0000000..ad798bc --- /dev/null +++ b/tests/0007_for/code2.log.ref @@ -0,0 +1,49 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 43 entries (43 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 0a 10 + 2 0x0000a int 21 2 + 3 0x0000b int 81 14 20 + 4 0x0000d code 16 { + 5 0x0000e prim 13 } + 6 0x0000f prim 83 0d for + 2 7 0x00011 int 81 64 100 + 8 0x00013 int 21 2 + 9 0x00014 int 81 6b 107 + 10 0x00016 code 16 { + 11 0x00017 prim 13 } + 12 0x00018 prim 83 0d for + 3 13 0x0001a int 91 4c 04 1100 + 14 0x0001d int 81 fe -2 + 15 0x0001f int 91 42 04 1090 + 16 0x00022 code 16 { + 17 0x00023 prim 13 } + 18 0x00024 prim 83 0d for + 4 19 0x00026 int 91 f8 2a 11000 + 20 0x00029 int 81 fe -2 + 21 0x0002b int 91 f1 2a 10993 + 22 0x0002e code 16 { + 23 0x0002f prim 13 } + 24 0x00030 prim 83 0d for + 5 25 0x00032 int 91 c8 00 200 + 26 0x00035 int 11 1 + 27 0x00036 int 91 be 00 190 + 28 0x00039 code 16 { + 29 0x0003a prim 13 } + 30 0x0003b prim 83 0d for + 6 31 0x0003d int 91 c8 00 200 + 32 0x00040 int 81 ff -1 + 33 0x00042 int 91 d2 00 210 + 34 0x00045 code 16 { + 35 0x00046 prim 13 } + 36 0x00047 prim 83 0d for + 7 37 0x00049 int 01 0 + 38 0x0004a int 01 0 + 39 0x0004b int 81 64 100 + 40 0x0004d code 16 { + 41 0x0004e prim 13 } + 42 0x0004f prim 83 0d for diff --git a/tests/0007_for/main.gs b/tests/0007_for/main.gs new file mode 100644 index 0000000..feb8c23 --- /dev/null +++ b/tests/0007_for/main.gs @@ -0,0 +1,7 @@ +10 2 20 { } for +100 2 107 { } for +1100 -2 1090 { } for +11000 -2 10993 { } for +200 1 190 { } for +200 -1 210 { } for +0 0 100 { } for diff --git a/tests/0007_for/mem.log.ref b/tests/0007_for/mem.log.ref new file mode 100644 index 0000000..85d231e --- /dev/null +++ b/tests/0007_for/mem.log.ref @@ -0,0 +1,798 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 96] + 8: 0.00, 0x001d6ad4[ 72] + 9: 188.01, 0x001d6b24[ 56] + 10: 0.00, 0x001d6b64[ 56] + 11: 194.01, 0x001d6ba4[ 72] + 12: 187.01, 0x001d6bf4[ 144] + 13: 0.00, 0x001d6c8c[14848884] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 0a 21 81 14 16 13 38 uQ..Bz.`..!....8 + 66 6f 72 81 64 21 81 6b 16 13 38 66 6f 72 91 4c for.d!.k..8for.L + 04 81 fe 91 42 04 16 13 38 66 6f 72 91 f8 2a 81 ....B...8for..*. + fe 91 f1 2a 16 13 38 66 6f 72 91 c8 00 11 91 be ...*..8for...... + 00 16 13 38 66 6f 72 91 c8 00 81 ff 91 d2 00 16 ...8for......... + 13 38 66 6f 72 01 01 81 64 16 13 38 66 6f 72 .8for...d..8for + #187.1.1.array + [ 0] #189.1.1.num.int <10 (0xa)> + [ 1] #195.1.1.num.int <12 (0xc)> + [ 2] #196.1.1.num.int <14 (0xe)> + [ 3] #197.1.1.num.int <16 (0x10)> + [ 4] #198.1.1.num.int <18 (0x12)> + [ 5] #199.1.1.num.int <20 (0x14)> + [ 6] #200.1.1.num.int <100 (0x64)> + [ 7] #205.1.1.num.int <102 (0x66)> + [ 8] #206.1.1.num.int <104 (0x68)> + [ 9] #207.1.1.num.int <106 (0x6a)> + [10] #208.1.1.num.int <1100 (0x44c)> + [11] #213.1.1.num.int <1098 (0x44a)> + [12] #214.1.1.num.int <1096 (0x448)> + [13] #215.1.1.num.int <1094 (0x446)> + [14] #216.1.1.num.int <1092 (0x444)> + [15] #217.1.1.num.int <1090 (0x442)> + [16] #218.1.1.num.int <11000 (0x2af8)> + [17] #223.1.1.num.int <10998 (0x2af6)> + [18] #224.1.1.num.int <10996 (0x2af4)> + [19] #225.1.1.num.int <10994 (0x2af2)> + #188.1.1.ctx.func + type 17, ip 0x5f (0x5f) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.num.int <10 (0xa)> + #194.1.1.array + #195.1.1.num.int <12 (0xc)> + #196.1.1.num.int <14 (0xe)> + #197.1.1.num.int <16 (0x10)> + #198.1.1.num.int <18 (0x12)> + #199.1.1.num.int <20 (0x14)> + #200.1.1.num.int <100 (0x64)> + #205.1.1.num.int <102 (0x66)> + #206.1.1.num.int <104 (0x68)> + #207.1.1.num.int <106 (0x6a)> + #208.1.1.num.int <1100 (0x44c)> + #213.1.1.num.int <1098 (0x44a)> + #214.1.1.num.int <1096 (0x448)> + #215.1.1.num.int <1094 (0x446)> + #216.1.1.num.int <1092 (0x444)> + #217.1.1.num.int <1090 (0x442)> + #218.1.1.num.int <11000 (0x2af8)> + #223.1.1.num.int <10998 (0x2af6)> + #224.1.1.num.int <10996 (0x2af4)> + #225.1.1.num.int <10994 (0x2af2)> diff --git a/tests/0007_for/screen.log.ref b/tests/0007_for/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0007_for/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0007_for/trace.log.ref b/tests/0007_for/trace.log.ref new file mode 100644 index 0000000..1c178a0 --- /dev/null +++ b/tests/0007_for/trace.log.ref @@ -0,0 +1,1063 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <10 (0xa)> +IP: #186:0xa, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <2 (0x2)> + [1] #189.1.1.num.int <10 (0xa)> +IP: #186:0xb, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <20 (0x14)> + [1] #190.1.1.num.int <2 (0x2)> + [2] #189.1.1.num.int <10 (0xa)> +IP: #186:0xd, type 6, 14[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0xe, size 1> + [1] #191.1.1.num.int <20 (0x14)> + [2] #190.1.1.num.int <2 (0x2)> + [3] #189.1.1.num.int <10 (0xa)> +IP: #186:0xf, type 8, 16[3] +GC: ++#192.1.1.mem.code.ro +GC: --#192.1.2.mem.code.ro +GC: --#191.1.1.num.int +GC: --#190.1.1.num.int +== backtrace == + [0] #193.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <10 (0xa)> +IP: #192:0x0, type 3, 1 (0x1) +== backtrace == + [0] #193.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <12 (0xc)> + [1] #189.1.1.num.int <10 (0xa)> +IP: #192:0x0, type 3, 1 (0x1) +== backtrace == + [0] #193.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <14 (0xe)> + [1] #195.1.1.num.int <12 (0xc)> + [2] #189.1.1.num.int <10 (0xa)> +IP: #192:0x0, type 3, 1 (0x1) +== backtrace == + [0] #193.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <16 (0x10)> + [1] #196.1.1.num.int <14 (0xe)> + [2] #195.1.1.num.int <12 (0xc)> + [3] #189.1.1.num.int <10 (0xa)> +IP: #192:0x0, type 3, 1 (0x1) +== backtrace == + [0] #193.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <18 (0x12)> + [1] #197.1.1.num.int <16 (0x10)> + [2] #196.1.1.num.int <14 (0xe)> + [3] #195.1.1.num.int <12 (0xc)> + [4] #189.1.1.num.int <10 (0xa)> +IP: #192:0x0, type 3, 1 (0x1) +== backtrace == + [0] #193.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <20 (0x14)> + [1] #198.1.1.num.int <18 (0x12)> + [2] #197.1.1.num.int <16 (0x10)> + [3] #196.1.1.num.int <14 (0xe)> + [4] #195.1.1.num.int <12 (0xc)> + [5] #189.1.1.num.int <10 (0xa)> +IP: #192:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#193.1.1.ctx.for +GC: --#188.1.2.ctx.func +GC: --#192.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <20 (0x14)> + [1] #198.1.1.num.int <18 (0x12)> + [2] #197.1.1.num.int <16 (0x10)> + [3] #196.1.1.num.int <14 (0xe)> + [4] #195.1.1.num.int <12 (0xc)> + [5] #189.1.1.num.int <10 (0xa)> +IP: #186:0x13, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <100 (0x64)> + [1] #199.1.1.num.int <20 (0x14)> + [2] #198.1.1.num.int <18 (0x12)> + [3] #197.1.1.num.int <16 (0x10)> + [4] #196.1.1.num.int <14 (0xe)> + [5] #195.1.1.num.int <12 (0xc)> + [6] #189.1.1.num.int <10 (0xa)> +IP: #186:0x15, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <2 (0x2)> + [1] #200.1.1.num.int <100 (0x64)> + [2] #199.1.1.num.int <20 (0x14)> + [3] #198.1.1.num.int <18 (0x12)> + [4] #197.1.1.num.int <16 (0x10)> + [5] #196.1.1.num.int <14 (0xe)> + [6] #195.1.1.num.int <12 (0xc)> + [7] #189.1.1.num.int <10 (0xa)> +IP: #186:0x16, type 1, 107 (0x6b) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <107 (0x6b)> + [1] #201.1.1.num.int <2 (0x2)> + [2] #200.1.1.num.int <100 (0x64)> + [3] #199.1.1.num.int <20 (0x14)> + [4] #198.1.1.num.int <18 (0x12)> + [5] #197.1.1.num.int <16 (0x10)> + [6] #196.1.1.num.int <14 (0xe)> + [7] #195.1.1.num.int <12 (0xc)> + [8] #189.1.1.num.int <10 (0xa)> +IP: #186:0x18, type 6, 25[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x19, size 1> + [1] #202.1.1.num.int <107 (0x6b)> + [2] #201.1.1.num.int <2 (0x2)> + [3] #200.1.1.num.int <100 (0x64)> + [4] #199.1.1.num.int <20 (0x14)> + [5] #198.1.1.num.int <18 (0x12)> + [6] #197.1.1.num.int <16 (0x10)> + [7] #196.1.1.num.int <14 (0xe)> + [8] #195.1.1.num.int <12 (0xc)> + [9] #189.1.1.num.int <10 (0xa)> +IP: #186:0x1a, type 8, 27[3] +GC: ++#203.1.1.mem.code.ro +GC: --#203.1.2.mem.code.ro +GC: --#202.1.1.num.int +GC: --#201.1.1.num.int +== backtrace == + [0] #204.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <100 (0x64)> + [1] #199.1.1.num.int <20 (0x14)> + [2] #198.1.1.num.int <18 (0x12)> + [3] #197.1.1.num.int <16 (0x10)> + [4] #196.1.1.num.int <14 (0xe)> + [5] #195.1.1.num.int <12 (0xc)> + [6] #189.1.1.num.int <10 (0xa)> +IP: #203:0x0, type 3, 1 (0x1) +== backtrace == + [0] #204.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <102 (0x66)> + [1] #200.1.1.num.int <100 (0x64)> + [2] #199.1.1.num.int <20 (0x14)> + [3] #198.1.1.num.int <18 (0x12)> + [4] #197.1.1.num.int <16 (0x10)> + [5] #196.1.1.num.int <14 (0xe)> + [6] #195.1.1.num.int <12 (0xc)> + [7] #189.1.1.num.int <10 (0xa)> +IP: #203:0x0, type 3, 1 (0x1) +== backtrace == + [0] #204.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <104 (0x68)> + [1] #205.1.1.num.int <102 (0x66)> + [2] #200.1.1.num.int <100 (0x64)> + [3] #199.1.1.num.int <20 (0x14)> + [4] #198.1.1.num.int <18 (0x12)> + [5] #197.1.1.num.int <16 (0x10)> + [6] #196.1.1.num.int <14 (0xe)> + [7] #195.1.1.num.int <12 (0xc)> + [8] #189.1.1.num.int <10 (0xa)> +IP: #203:0x0, type 3, 1 (0x1) +== backtrace == + [0] #204.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <106 (0x6a)> + [1] #206.1.1.num.int <104 (0x68)> + [2] #205.1.1.num.int <102 (0x66)> + [3] #200.1.1.num.int <100 (0x64)> + [4] #199.1.1.num.int <20 (0x14)> + [5] #198.1.1.num.int <18 (0x12)> + [6] #197.1.1.num.int <16 (0x10)> + [7] #196.1.1.num.int <14 (0xe)> + [8] #195.1.1.num.int <12 (0xc)> + [9] #189.1.1.num.int <10 (0xa)> +IP: #203:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#204.1.1.ctx.for +GC: --#188.1.2.ctx.func +GC: --#203.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <106 (0x6a)> + [1] #206.1.1.num.int <104 (0x68)> + [2] #205.1.1.num.int <102 (0x66)> + [3] #200.1.1.num.int <100 (0x64)> + [4] #199.1.1.num.int <20 (0x14)> + [5] #198.1.1.num.int <18 (0x12)> + [6] #197.1.1.num.int <16 (0x10)> + [7] #196.1.1.num.int <14 (0xe)> + [8] #195.1.1.num.int <12 (0xc)> + [9] #189.1.1.num.int <10 (0xa)> +IP: #186:0x1e, type 1, 1100 (0x44c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <1100 (0x44c)> + [1] #207.1.1.num.int <106 (0x6a)> + [2] #206.1.1.num.int <104 (0x68)> + [3] #205.1.1.num.int <102 (0x66)> + [4] #200.1.1.num.int <100 (0x64)> + [5] #199.1.1.num.int <20 (0x14)> + [6] #198.1.1.num.int <18 (0x12)> + [7] #197.1.1.num.int <16 (0x10)> + [8] #196.1.1.num.int <14 (0xe)> + [9] #195.1.1.num.int <12 (0xc)> + [10] #189.1.1.num.int <10 (0xa)> +IP: #186:0x21, type 1, -2 (0xfffffffffffffffe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #208.1.1.num.int <1100 (0x44c)> + [2] #207.1.1.num.int <106 (0x6a)> + [3] #206.1.1.num.int <104 (0x68)> + [4] #205.1.1.num.int <102 (0x66)> + [5] #200.1.1.num.int <100 (0x64)> + [6] #199.1.1.num.int <20 (0x14)> + [7] #198.1.1.num.int <18 (0x12)> + [8] #197.1.1.num.int <16 (0x10)> + [9] #196.1.1.num.int <14 (0xe)> + [10] #195.1.1.num.int <12 (0xc)> + [11] #189.1.1.num.int <10 (0xa)> +IP: #186:0x23, type 1, 1090 (0x442) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <1090 (0x442)> + [1] #209.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #208.1.1.num.int <1100 (0x44c)> + [3] #207.1.1.num.int <106 (0x6a)> + [4] #206.1.1.num.int <104 (0x68)> + [5] #205.1.1.num.int <102 (0x66)> + [6] #200.1.1.num.int <100 (0x64)> + [7] #199.1.1.num.int <20 (0x14)> + [8] #198.1.1.num.int <18 (0x12)> + [9] #197.1.1.num.int <16 (0x10)> + [10] #196.1.1.num.int <14 (0xe)> + [11] #195.1.1.num.int <12 (0xc)> + [12] #189.1.1.num.int <10 (0xa)> +IP: #186:0x26, type 6, 39[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x27, size 1> + [1] #210.1.1.num.int <1090 (0x442)> + [2] #209.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #208.1.1.num.int <1100 (0x44c)> + [4] #207.1.1.num.int <106 (0x6a)> + [5] #206.1.1.num.int <104 (0x68)> + [6] #205.1.1.num.int <102 (0x66)> + [7] #200.1.1.num.int <100 (0x64)> + [8] #199.1.1.num.int <20 (0x14)> + [9] #198.1.1.num.int <18 (0x12)> + [10] #197.1.1.num.int <16 (0x10)> + [11] #196.1.1.num.int <14 (0xe)> + [12] #195.1.1.num.int <12 (0xc)> + [13] #189.1.1.num.int <10 (0xa)> +IP: #186:0x28, type 8, 41[3] +GC: ++#211.1.1.mem.code.ro +GC: --#211.1.2.mem.code.ro +GC: --#210.1.1.num.int +GC: --#209.1.1.num.int +== backtrace == + [0] #212.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <1100 (0x44c)> + [1] #207.1.1.num.int <106 (0x6a)> + [2] #206.1.1.num.int <104 (0x68)> + [3] #205.1.1.num.int <102 (0x66)> + [4] #200.1.1.num.int <100 (0x64)> + [5] #199.1.1.num.int <20 (0x14)> + [6] #198.1.1.num.int <18 (0x12)> + [7] #197.1.1.num.int <16 (0x10)> + [8] #196.1.1.num.int <14 (0xe)> + [9] #195.1.1.num.int <12 (0xc)> + [10] #189.1.1.num.int <10 (0xa)> +IP: #211:0x0, type 3, 1 (0x1) +== backtrace == + [0] #212.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <1098 (0x44a)> + [1] #208.1.1.num.int <1100 (0x44c)> + [2] #207.1.1.num.int <106 (0x6a)> + [3] #206.1.1.num.int <104 (0x68)> + [4] #205.1.1.num.int <102 (0x66)> + [5] #200.1.1.num.int <100 (0x64)> + [6] #199.1.1.num.int <20 (0x14)> + [7] #198.1.1.num.int <18 (0x12)> + [8] #197.1.1.num.int <16 (0x10)> + [9] #196.1.1.num.int <14 (0xe)> + [10] #195.1.1.num.int <12 (0xc)> + [11] #189.1.1.num.int <10 (0xa)> +IP: #211:0x0, type 3, 1 (0x1) +== backtrace == + [0] #212.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.num.int <1096 (0x448)> + [1] #213.1.1.num.int <1098 (0x44a)> + [2] #208.1.1.num.int <1100 (0x44c)> + [3] #207.1.1.num.int <106 (0x6a)> + [4] #206.1.1.num.int <104 (0x68)> + [5] #205.1.1.num.int <102 (0x66)> + [6] #200.1.1.num.int <100 (0x64)> + [7] #199.1.1.num.int <20 (0x14)> + [8] #198.1.1.num.int <18 (0x12)> + [9] #197.1.1.num.int <16 (0x10)> + [10] #196.1.1.num.int <14 (0xe)> + [11] #195.1.1.num.int <12 (0xc)> + [12] #189.1.1.num.int <10 (0xa)> +IP: #211:0x0, type 3, 1 (0x1) +== backtrace == + [0] #212.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <1094 (0x446)> + [1] #214.1.1.num.int <1096 (0x448)> + [2] #213.1.1.num.int <1098 (0x44a)> + [3] #208.1.1.num.int <1100 (0x44c)> + [4] #207.1.1.num.int <106 (0x6a)> + [5] #206.1.1.num.int <104 (0x68)> + [6] #205.1.1.num.int <102 (0x66)> + [7] #200.1.1.num.int <100 (0x64)> + [8] #199.1.1.num.int <20 (0x14)> + [9] #198.1.1.num.int <18 (0x12)> + [10] #197.1.1.num.int <16 (0x10)> + [11] #196.1.1.num.int <14 (0xe)> + [12] #195.1.1.num.int <12 (0xc)> + [13] #189.1.1.num.int <10 (0xa)> +IP: #211:0x0, type 3, 1 (0x1) +== backtrace == + [0] #212.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <1092 (0x444)> + [1] #215.1.1.num.int <1094 (0x446)> + [2] #214.1.1.num.int <1096 (0x448)> + [3] #213.1.1.num.int <1098 (0x44a)> + [4] #208.1.1.num.int <1100 (0x44c)> + [5] #207.1.1.num.int <106 (0x6a)> + [6] #206.1.1.num.int <104 (0x68)> + [7] #205.1.1.num.int <102 (0x66)> + [8] #200.1.1.num.int <100 (0x64)> + [9] #199.1.1.num.int <20 (0x14)> + [10] #198.1.1.num.int <18 (0x12)> + [11] #197.1.1.num.int <16 (0x10)> + [12] #196.1.1.num.int <14 (0xe)> + [13] #195.1.1.num.int <12 (0xc)> + [14] #189.1.1.num.int <10 (0xa)> +IP: #211:0x0, type 3, 1 (0x1) +== backtrace == + [0] #212.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <1090 (0x442)> + [1] #216.1.1.num.int <1092 (0x444)> + [2] #215.1.1.num.int <1094 (0x446)> + [3] #214.1.1.num.int <1096 (0x448)> + [4] #213.1.1.num.int <1098 (0x44a)> + [5] #208.1.1.num.int <1100 (0x44c)> + [6] #207.1.1.num.int <106 (0x6a)> + [7] #206.1.1.num.int <104 (0x68)> + [8] #205.1.1.num.int <102 (0x66)> + [9] #200.1.1.num.int <100 (0x64)> + [10] #199.1.1.num.int <20 (0x14)> + [11] #198.1.1.num.int <18 (0x12)> + [12] #197.1.1.num.int <16 (0x10)> + [13] #196.1.1.num.int <14 (0xe)> + [14] #195.1.1.num.int <12 (0xc)> + [15] #189.1.1.num.int <10 (0xa)> +IP: #211:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#212.1.1.ctx.for +GC: --#188.1.2.ctx.func +GC: --#211.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <1090 (0x442)> + [1] #216.1.1.num.int <1092 (0x444)> + [2] #215.1.1.num.int <1094 (0x446)> + [3] #214.1.1.num.int <1096 (0x448)> + [4] #213.1.1.num.int <1098 (0x44a)> + [5] #208.1.1.num.int <1100 (0x44c)> + [6] #207.1.1.num.int <106 (0x6a)> + [7] #206.1.1.num.int <104 (0x68)> + [8] #205.1.1.num.int <102 (0x66)> + [9] #200.1.1.num.int <100 (0x64)> + [10] #199.1.1.num.int <20 (0x14)> + [11] #198.1.1.num.int <18 (0x12)> + [12] #197.1.1.num.int <16 (0x10)> + [13] #196.1.1.num.int <14 (0xe)> + [14] #195.1.1.num.int <12 (0xc)> + [15] #189.1.1.num.int <10 (0xa)> +IP: #186:0x2c, type 1, 11000 (0x2af8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.int <11000 (0x2af8)> + [1] #217.1.1.num.int <1090 (0x442)> + [2] #216.1.1.num.int <1092 (0x444)> + [3] #215.1.1.num.int <1094 (0x446)> + [4] #214.1.1.num.int <1096 (0x448)> + [5] #213.1.1.num.int <1098 (0x44a)> + [6] #208.1.1.num.int <1100 (0x44c)> + [7] #207.1.1.num.int <106 (0x6a)> + [8] #206.1.1.num.int <104 (0x68)> + [9] #205.1.1.num.int <102 (0x66)> + [10] #200.1.1.num.int <100 (0x64)> + [11] #199.1.1.num.int <20 (0x14)> + [12] #198.1.1.num.int <18 (0x12)> + [13] #197.1.1.num.int <16 (0x10)> + [14] #196.1.1.num.int <14 (0xe)> + [15] #195.1.1.num.int <12 (0xc)> + [16] #189.1.1.num.int <10 (0xa)> +IP: #186:0x2f, type 1, -2 (0xfffffffffffffffe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #218.1.1.num.int <11000 (0x2af8)> + [2] #217.1.1.num.int <1090 (0x442)> + [3] #216.1.1.num.int <1092 (0x444)> + [4] #215.1.1.num.int <1094 (0x446)> + [5] #214.1.1.num.int <1096 (0x448)> + [6] #213.1.1.num.int <1098 (0x44a)> + [7] #208.1.1.num.int <1100 (0x44c)> + [8] #207.1.1.num.int <106 (0x6a)> + [9] #206.1.1.num.int <104 (0x68)> + [10] #205.1.1.num.int <102 (0x66)> + [11] #200.1.1.num.int <100 (0x64)> + [12] #199.1.1.num.int <20 (0x14)> + [13] #198.1.1.num.int <18 (0x12)> + [14] #197.1.1.num.int <16 (0x10)> + [15] #196.1.1.num.int <14 (0xe)> + [16] #195.1.1.num.int <12 (0xc)> + [17] #189.1.1.num.int <10 (0xa)> +IP: #186:0x31, type 1, 10993 (0x2af1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.num.int <10993 (0x2af1)> + [1] #219.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #218.1.1.num.int <11000 (0x2af8)> + [3] #217.1.1.num.int <1090 (0x442)> + [4] #216.1.1.num.int <1092 (0x444)> + [5] #215.1.1.num.int <1094 (0x446)> + [6] #214.1.1.num.int <1096 (0x448)> + [7] #213.1.1.num.int <1098 (0x44a)> + [8] #208.1.1.num.int <1100 (0x44c)> + [9] #207.1.1.num.int <106 (0x6a)> + [10] #206.1.1.num.int <104 (0x68)> + [11] #205.1.1.num.int <102 (0x66)> + [12] #200.1.1.num.int <100 (0x64)> + [13] #199.1.1.num.int <20 (0x14)> + [14] #198.1.1.num.int <18 (0x12)> + [15] #197.1.1.num.int <16 (0x10)> + [16] #196.1.1.num.int <14 (0xe)> + [17] #195.1.1.num.int <12 (0xc)> + [18] #189.1.1.num.int <10 (0xa)> +IP: #186:0x34, type 6, 53[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x35, size 1> + [1] #220.1.1.num.int <10993 (0x2af1)> + [2] #219.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #218.1.1.num.int <11000 (0x2af8)> + [4] #217.1.1.num.int <1090 (0x442)> + [5] #216.1.1.num.int <1092 (0x444)> + [6] #215.1.1.num.int <1094 (0x446)> + [7] #214.1.1.num.int <1096 (0x448)> + [8] #213.1.1.num.int <1098 (0x44a)> + [9] #208.1.1.num.int <1100 (0x44c)> + [10] #207.1.1.num.int <106 (0x6a)> + [11] #206.1.1.num.int <104 (0x68)> + [12] #205.1.1.num.int <102 (0x66)> + [13] #200.1.1.num.int <100 (0x64)> + [14] #199.1.1.num.int <20 (0x14)> + [15] #198.1.1.num.int <18 (0x12)> + [16] #197.1.1.num.int <16 (0x10)> + [17] #196.1.1.num.int <14 (0xe)> + [18] #195.1.1.num.int <12 (0xc)> + [19] #189.1.1.num.int <10 (0xa)> +IP: #186:0x36, type 8, 55[3] +GC: ++#221.1.1.mem.code.ro +GC: --#221.1.2.mem.code.ro +GC: --#220.1.1.num.int +GC: --#219.1.1.num.int +== backtrace == + [0] #222.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.int <11000 (0x2af8)> + [1] #217.1.1.num.int <1090 (0x442)> + [2] #216.1.1.num.int <1092 (0x444)> + [3] #215.1.1.num.int <1094 (0x446)> + [4] #214.1.1.num.int <1096 (0x448)> + [5] #213.1.1.num.int <1098 (0x44a)> + [6] #208.1.1.num.int <1100 (0x44c)> + [7] #207.1.1.num.int <106 (0x6a)> + [8] #206.1.1.num.int <104 (0x68)> + [9] #205.1.1.num.int <102 (0x66)> + [10] #200.1.1.num.int <100 (0x64)> + [11] #199.1.1.num.int <20 (0x14)> + [12] #198.1.1.num.int <18 (0x12)> + [13] #197.1.1.num.int <16 (0x10)> + [14] #196.1.1.num.int <14 (0xe)> + [15] #195.1.1.num.int <12 (0xc)> + [16] #189.1.1.num.int <10 (0xa)> +IP: #221:0x0, type 3, 1 (0x1) +== backtrace == + [0] #222.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.num.int <10998 (0x2af6)> + [1] #218.1.1.num.int <11000 (0x2af8)> + [2] #217.1.1.num.int <1090 (0x442)> + [3] #216.1.1.num.int <1092 (0x444)> + [4] #215.1.1.num.int <1094 (0x446)> + [5] #214.1.1.num.int <1096 (0x448)> + [6] #213.1.1.num.int <1098 (0x44a)> + [7] #208.1.1.num.int <1100 (0x44c)> + [8] #207.1.1.num.int <106 (0x6a)> + [9] #206.1.1.num.int <104 (0x68)> + [10] #205.1.1.num.int <102 (0x66)> + [11] #200.1.1.num.int <100 (0x64)> + [12] #199.1.1.num.int <20 (0x14)> + [13] #198.1.1.num.int <18 (0x12)> + [14] #197.1.1.num.int <16 (0x10)> + [15] #196.1.1.num.int <14 (0xe)> + [16] #195.1.1.num.int <12 (0xc)> + [17] #189.1.1.num.int <10 (0xa)> +IP: #221:0x0, type 3, 1 (0x1) +== backtrace == + [0] #222.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.num.int <10996 (0x2af4)> + [1] #223.1.1.num.int <10998 (0x2af6)> + [2] #218.1.1.num.int <11000 (0x2af8)> + [3] #217.1.1.num.int <1090 (0x442)> + [4] #216.1.1.num.int <1092 (0x444)> + [5] #215.1.1.num.int <1094 (0x446)> + [6] #214.1.1.num.int <1096 (0x448)> + [7] #213.1.1.num.int <1098 (0x44a)> + [8] #208.1.1.num.int <1100 (0x44c)> + [9] #207.1.1.num.int <106 (0x6a)> + [10] #206.1.1.num.int <104 (0x68)> + [11] #205.1.1.num.int <102 (0x66)> + [12] #200.1.1.num.int <100 (0x64)> + [13] #199.1.1.num.int <20 (0x14)> + [14] #198.1.1.num.int <18 (0x12)> + [15] #197.1.1.num.int <16 (0x10)> + [16] #196.1.1.num.int <14 (0xe)> + [17] #195.1.1.num.int <12 (0xc)> + [18] #189.1.1.num.int <10 (0xa)> +IP: #221:0x0, type 3, 1 (0x1) +== backtrace == + [0] #222.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <10994 (0x2af2)> + [1] #224.1.1.num.int <10996 (0x2af4)> + [2] #223.1.1.num.int <10998 (0x2af6)> + [3] #218.1.1.num.int <11000 (0x2af8)> + [4] #217.1.1.num.int <1090 (0x442)> + [5] #216.1.1.num.int <1092 (0x444)> + [6] #215.1.1.num.int <1094 (0x446)> + [7] #214.1.1.num.int <1096 (0x448)> + [8] #213.1.1.num.int <1098 (0x44a)> + [9] #208.1.1.num.int <1100 (0x44c)> + [10] #207.1.1.num.int <106 (0x6a)> + [11] #206.1.1.num.int <104 (0x68)> + [12] #205.1.1.num.int <102 (0x66)> + [13] #200.1.1.num.int <100 (0x64)> + [14] #199.1.1.num.int <20 (0x14)> + [15] #198.1.1.num.int <18 (0x12)> + [16] #197.1.1.num.int <16 (0x10)> + [17] #196.1.1.num.int <14 (0xe)> + [18] #195.1.1.num.int <12 (0xc)> + [19] #189.1.1.num.int <10 (0xa)> +IP: #221:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#222.1.1.ctx.for +GC: --#188.1.2.ctx.func +GC: --#221.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <10994 (0x2af2)> + [1] #224.1.1.num.int <10996 (0x2af4)> + [2] #223.1.1.num.int <10998 (0x2af6)> + [3] #218.1.1.num.int <11000 (0x2af8)> + [4] #217.1.1.num.int <1090 (0x442)> + [5] #216.1.1.num.int <1092 (0x444)> + [6] #215.1.1.num.int <1094 (0x446)> + [7] #214.1.1.num.int <1096 (0x448)> + [8] #213.1.1.num.int <1098 (0x44a)> + [9] #208.1.1.num.int <1100 (0x44c)> + [10] #207.1.1.num.int <106 (0x6a)> + [11] #206.1.1.num.int <104 (0x68)> + [12] #205.1.1.num.int <102 (0x66)> + [13] #200.1.1.num.int <100 (0x64)> + [14] #199.1.1.num.int <20 (0x14)> + [15] #198.1.1.num.int <18 (0x12)> + [16] #197.1.1.num.int <16 (0x10)> + [17] #196.1.1.num.int <14 (0xe)> + [18] #195.1.1.num.int <12 (0xc)> + [19] #189.1.1.num.int <10 (0xa)> +IP: #186:0x3a, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.int <200 (0xc8)> + [1] #225.1.1.num.int <10994 (0x2af2)> + [2] #224.1.1.num.int <10996 (0x2af4)> + [3] #223.1.1.num.int <10998 (0x2af6)> + [4] #218.1.1.num.int <11000 (0x2af8)> + [5] #217.1.1.num.int <1090 (0x442)> + [6] #216.1.1.num.int <1092 (0x444)> + [7] #215.1.1.num.int <1094 (0x446)> + [8] #214.1.1.num.int <1096 (0x448)> + [9] #213.1.1.num.int <1098 (0x44a)> + [10] #208.1.1.num.int <1100 (0x44c)> + [11] #207.1.1.num.int <106 (0x6a)> + [12] #206.1.1.num.int <104 (0x68)> + [13] #205.1.1.num.int <102 (0x66)> + [14] #200.1.1.num.int <100 (0x64)> + [15] #199.1.1.num.int <20 (0x14)> + [16] #198.1.1.num.int <18 (0x12)> + [17] #197.1.1.num.int <16 (0x10)> + [18] #196.1.1.num.int <14 (0xe)> + [19] #195.1.1.num.int <12 (0xc)> + [20] #189.1.1.num.int <10 (0xa)> +IP: #186:0x3d, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <1 (0x1)> + [1] #226.1.1.num.int <200 (0xc8)> + [2] #225.1.1.num.int <10994 (0x2af2)> + [3] #224.1.1.num.int <10996 (0x2af4)> + [4] #223.1.1.num.int <10998 (0x2af6)> + [5] #218.1.1.num.int <11000 (0x2af8)> + [6] #217.1.1.num.int <1090 (0x442)> + [7] #216.1.1.num.int <1092 (0x444)> + [8] #215.1.1.num.int <1094 (0x446)> + [9] #214.1.1.num.int <1096 (0x448)> + [10] #213.1.1.num.int <1098 (0x44a)> + [11] #208.1.1.num.int <1100 (0x44c)> + [12] #207.1.1.num.int <106 (0x6a)> + [13] #206.1.1.num.int <104 (0x68)> + [14] #205.1.1.num.int <102 (0x66)> + [15] #200.1.1.num.int <100 (0x64)> + [16] #199.1.1.num.int <20 (0x14)> + [17] #198.1.1.num.int <18 (0x12)> + [18] #197.1.1.num.int <16 (0x10)> + [19] #196.1.1.num.int <14 (0xe)> + [20] #195.1.1.num.int <12 (0xc)> + [21] #189.1.1.num.int <10 (0xa)> +IP: #186:0x3e, type 1, 190 (0xbe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <190 (0xbe)> + [1] #227.1.1.num.int <1 (0x1)> + [2] #226.1.1.num.int <200 (0xc8)> + [3] #225.1.1.num.int <10994 (0x2af2)> + [4] #224.1.1.num.int <10996 (0x2af4)> + [5] #223.1.1.num.int <10998 (0x2af6)> + [6] #218.1.1.num.int <11000 (0x2af8)> + [7] #217.1.1.num.int <1090 (0x442)> + [8] #216.1.1.num.int <1092 (0x444)> + [9] #215.1.1.num.int <1094 (0x446)> + [10] #214.1.1.num.int <1096 (0x448)> + [11] #213.1.1.num.int <1098 (0x44a)> + [12] #208.1.1.num.int <1100 (0x44c)> + [13] #207.1.1.num.int <106 (0x6a)> + [14] #206.1.1.num.int <104 (0x68)> + [15] #205.1.1.num.int <102 (0x66)> + [16] #200.1.1.num.int <100 (0x64)> + [17] #199.1.1.num.int <20 (0x14)> + [18] #198.1.1.num.int <18 (0x12)> + [19] #197.1.1.num.int <16 (0x10)> + [20] #196.1.1.num.int <14 (0xe)> + [21] #195.1.1.num.int <12 (0xc)> + [22] #189.1.1.num.int <10 (0xa)> +IP: #186:0x41, type 6, 66[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x42, size 1> + [1] #228.1.1.num.int <190 (0xbe)> + [2] #227.1.1.num.int <1 (0x1)> + [3] #226.1.1.num.int <200 (0xc8)> + [4] #225.1.1.num.int <10994 (0x2af2)> + [5] #224.1.1.num.int <10996 (0x2af4)> + [6] #223.1.1.num.int <10998 (0x2af6)> + [7] #218.1.1.num.int <11000 (0x2af8)> + [8] #217.1.1.num.int <1090 (0x442)> + [9] #216.1.1.num.int <1092 (0x444)> + [10] #215.1.1.num.int <1094 (0x446)> + [11] #214.1.1.num.int <1096 (0x448)> + [12] #213.1.1.num.int <1098 (0x44a)> + [13] #208.1.1.num.int <1100 (0x44c)> + [14] #207.1.1.num.int <106 (0x6a)> + [15] #206.1.1.num.int <104 (0x68)> + [16] #205.1.1.num.int <102 (0x66)> + [17] #200.1.1.num.int <100 (0x64)> + [18] #199.1.1.num.int <20 (0x14)> + [19] #198.1.1.num.int <18 (0x12)> + [20] #197.1.1.num.int <16 (0x10)> + [21] #196.1.1.num.int <14 (0xe)> + [22] #195.1.1.num.int <12 (0xc)> + [23] #189.1.1.num.int <10 (0xa)> +IP: #186:0x43, type 8, 68[3] +GC: --#229.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +GC: --#228.1.1.num.int +GC: --#227.1.1.num.int +GC: --#226.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <10994 (0x2af2)> + [1] #224.1.1.num.int <10996 (0x2af4)> + [2] #223.1.1.num.int <10998 (0x2af6)> + [3] #218.1.1.num.int <11000 (0x2af8)> + [4] #217.1.1.num.int <1090 (0x442)> + [5] #216.1.1.num.int <1092 (0x444)> + [6] #215.1.1.num.int <1094 (0x446)> + [7] #214.1.1.num.int <1096 (0x448)> + [8] #213.1.1.num.int <1098 (0x44a)> + [9] #208.1.1.num.int <1100 (0x44c)> + [10] #207.1.1.num.int <106 (0x6a)> + [11] #206.1.1.num.int <104 (0x68)> + [12] #205.1.1.num.int <102 (0x66)> + [13] #200.1.1.num.int <100 (0x64)> + [14] #199.1.1.num.int <20 (0x14)> + [15] #198.1.1.num.int <18 (0x12)> + [16] #197.1.1.num.int <16 (0x10)> + [17] #196.1.1.num.int <14 (0xe)> + [18] #195.1.1.num.int <12 (0xc)> + [19] #189.1.1.num.int <10 (0xa)> +IP: #186:0x47, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.num.int <200 (0xc8)> + [1] #225.1.1.num.int <10994 (0x2af2)> + [2] #224.1.1.num.int <10996 (0x2af4)> + [3] #223.1.1.num.int <10998 (0x2af6)> + [4] #218.1.1.num.int <11000 (0x2af8)> + [5] #217.1.1.num.int <1090 (0x442)> + [6] #216.1.1.num.int <1092 (0x444)> + [7] #215.1.1.num.int <1094 (0x446)> + [8] #214.1.1.num.int <1096 (0x448)> + [9] #213.1.1.num.int <1098 (0x44a)> + [10] #208.1.1.num.int <1100 (0x44c)> + [11] #207.1.1.num.int <106 (0x6a)> + [12] #206.1.1.num.int <104 (0x68)> + [13] #205.1.1.num.int <102 (0x66)> + [14] #200.1.1.num.int <100 (0x64)> + [15] #199.1.1.num.int <20 (0x14)> + [16] #198.1.1.num.int <18 (0x12)> + [17] #197.1.1.num.int <16 (0x10)> + [18] #196.1.1.num.int <14 (0xe)> + [19] #195.1.1.num.int <12 (0xc)> + [20] #189.1.1.num.int <10 (0xa)> +IP: #186:0x4a, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #230.1.1.num.int <200 (0xc8)> + [2] #225.1.1.num.int <10994 (0x2af2)> + [3] #224.1.1.num.int <10996 (0x2af4)> + [4] #223.1.1.num.int <10998 (0x2af6)> + [5] #218.1.1.num.int <11000 (0x2af8)> + [6] #217.1.1.num.int <1090 (0x442)> + [7] #216.1.1.num.int <1092 (0x444)> + [8] #215.1.1.num.int <1094 (0x446)> + [9] #214.1.1.num.int <1096 (0x448)> + [10] #213.1.1.num.int <1098 (0x44a)> + [11] #208.1.1.num.int <1100 (0x44c)> + [12] #207.1.1.num.int <106 (0x6a)> + [13] #206.1.1.num.int <104 (0x68)> + [14] #205.1.1.num.int <102 (0x66)> + [15] #200.1.1.num.int <100 (0x64)> + [16] #199.1.1.num.int <20 (0x14)> + [17] #198.1.1.num.int <18 (0x12)> + [18] #197.1.1.num.int <16 (0x10)> + [19] #196.1.1.num.int <14 (0xe)> + [20] #195.1.1.num.int <12 (0xc)> + [21] #189.1.1.num.int <10 (0xa)> +IP: #186:0x4c, type 1, 210 (0xd2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.num.int <210 (0xd2)> + [1] #231.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #230.1.1.num.int <200 (0xc8)> + [3] #225.1.1.num.int <10994 (0x2af2)> + [4] #224.1.1.num.int <10996 (0x2af4)> + [5] #223.1.1.num.int <10998 (0x2af6)> + [6] #218.1.1.num.int <11000 (0x2af8)> + [7] #217.1.1.num.int <1090 (0x442)> + [8] #216.1.1.num.int <1092 (0x444)> + [9] #215.1.1.num.int <1094 (0x446)> + [10] #214.1.1.num.int <1096 (0x448)> + [11] #213.1.1.num.int <1098 (0x44a)> + [12] #208.1.1.num.int <1100 (0x44c)> + [13] #207.1.1.num.int <106 (0x6a)> + [14] #206.1.1.num.int <104 (0x68)> + [15] #205.1.1.num.int <102 (0x66)> + [16] #200.1.1.num.int <100 (0x64)> + [17] #199.1.1.num.int <20 (0x14)> + [18] #198.1.1.num.int <18 (0x12)> + [19] #197.1.1.num.int <16 (0x10)> + [20] #196.1.1.num.int <14 (0xe)> + [21] #195.1.1.num.int <12 (0xc)> + [22] #189.1.1.num.int <10 (0xa)> +IP: #186:0x4f, type 6, 80[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x50, size 1> + [1] #232.1.1.num.int <210 (0xd2)> + [2] #231.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #230.1.1.num.int <200 (0xc8)> + [4] #225.1.1.num.int <10994 (0x2af2)> + [5] #224.1.1.num.int <10996 (0x2af4)> + [6] #223.1.1.num.int <10998 (0x2af6)> + [7] #218.1.1.num.int <11000 (0x2af8)> + [8] #217.1.1.num.int <1090 (0x442)> + [9] #216.1.1.num.int <1092 (0x444)> + [10] #215.1.1.num.int <1094 (0x446)> + [11] #214.1.1.num.int <1096 (0x448)> + [12] #213.1.1.num.int <1098 (0x44a)> + [13] #208.1.1.num.int <1100 (0x44c)> + [14] #207.1.1.num.int <106 (0x6a)> + [15] #206.1.1.num.int <104 (0x68)> + [16] #205.1.1.num.int <102 (0x66)> + [17] #200.1.1.num.int <100 (0x64)> + [18] #199.1.1.num.int <20 (0x14)> + [19] #198.1.1.num.int <18 (0x12)> + [20] #197.1.1.num.int <16 (0x10)> + [21] #196.1.1.num.int <14 (0xe)> + [22] #195.1.1.num.int <12 (0xc)> + [23] #189.1.1.num.int <10 (0xa)> +IP: #186:0x51, type 8, 82[3] +GC: --#233.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +GC: --#232.1.1.num.int +GC: --#231.1.1.num.int +GC: --#230.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <10994 (0x2af2)> + [1] #224.1.1.num.int <10996 (0x2af4)> + [2] #223.1.1.num.int <10998 (0x2af6)> + [3] #218.1.1.num.int <11000 (0x2af8)> + [4] #217.1.1.num.int <1090 (0x442)> + [5] #216.1.1.num.int <1092 (0x444)> + [6] #215.1.1.num.int <1094 (0x446)> + [7] #214.1.1.num.int <1096 (0x448)> + [8] #213.1.1.num.int <1098 (0x44a)> + [9] #208.1.1.num.int <1100 (0x44c)> + [10] #207.1.1.num.int <106 (0x6a)> + [11] #206.1.1.num.int <104 (0x68)> + [12] #205.1.1.num.int <102 (0x66)> + [13] #200.1.1.num.int <100 (0x64)> + [14] #199.1.1.num.int <20 (0x14)> + [15] #198.1.1.num.int <18 (0x12)> + [16] #197.1.1.num.int <16 (0x10)> + [17] #196.1.1.num.int <14 (0xe)> + [18] #195.1.1.num.int <12 (0xc)> + [19] #189.1.1.num.int <10 (0xa)> +IP: #186:0x55, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.int <0 (0x0)> + [1] #225.1.1.num.int <10994 (0x2af2)> + [2] #224.1.1.num.int <10996 (0x2af4)> + [3] #223.1.1.num.int <10998 (0x2af6)> + [4] #218.1.1.num.int <11000 (0x2af8)> + [5] #217.1.1.num.int <1090 (0x442)> + [6] #216.1.1.num.int <1092 (0x444)> + [7] #215.1.1.num.int <1094 (0x446)> + [8] #214.1.1.num.int <1096 (0x448)> + [9] #213.1.1.num.int <1098 (0x44a)> + [10] #208.1.1.num.int <1100 (0x44c)> + [11] #207.1.1.num.int <106 (0x6a)> + [12] #206.1.1.num.int <104 (0x68)> + [13] #205.1.1.num.int <102 (0x66)> + [14] #200.1.1.num.int <100 (0x64)> + [15] #199.1.1.num.int <20 (0x14)> + [16] #198.1.1.num.int <18 (0x12)> + [17] #197.1.1.num.int <16 (0x10)> + [18] #196.1.1.num.int <14 (0xe)> + [19] #195.1.1.num.int <12 (0xc)> + [20] #189.1.1.num.int <10 (0xa)> +IP: #186:0x56, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.num.int <0 (0x0)> + [1] #234.1.1.num.int <0 (0x0)> + [2] #225.1.1.num.int <10994 (0x2af2)> + [3] #224.1.1.num.int <10996 (0x2af4)> + [4] #223.1.1.num.int <10998 (0x2af6)> + [5] #218.1.1.num.int <11000 (0x2af8)> + [6] #217.1.1.num.int <1090 (0x442)> + [7] #216.1.1.num.int <1092 (0x444)> + [8] #215.1.1.num.int <1094 (0x446)> + [9] #214.1.1.num.int <1096 (0x448)> + [10] #213.1.1.num.int <1098 (0x44a)> + [11] #208.1.1.num.int <1100 (0x44c)> + [12] #207.1.1.num.int <106 (0x6a)> + [13] #206.1.1.num.int <104 (0x68)> + [14] #205.1.1.num.int <102 (0x66)> + [15] #200.1.1.num.int <100 (0x64)> + [16] #199.1.1.num.int <20 (0x14)> + [17] #198.1.1.num.int <18 (0x12)> + [18] #197.1.1.num.int <16 (0x10)> + [19] #196.1.1.num.int <14 (0xe)> + [20] #195.1.1.num.int <12 (0xc)> + [21] #189.1.1.num.int <10 (0xa)> +IP: #186:0x57, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <100 (0x64)> + [1] #235.1.1.num.int <0 (0x0)> + [2] #234.1.1.num.int <0 (0x0)> + [3] #225.1.1.num.int <10994 (0x2af2)> + [4] #224.1.1.num.int <10996 (0x2af4)> + [5] #223.1.1.num.int <10998 (0x2af6)> + [6] #218.1.1.num.int <11000 (0x2af8)> + [7] #217.1.1.num.int <1090 (0x442)> + [8] #216.1.1.num.int <1092 (0x444)> + [9] #215.1.1.num.int <1094 (0x446)> + [10] #214.1.1.num.int <1096 (0x448)> + [11] #213.1.1.num.int <1098 (0x44a)> + [12] #208.1.1.num.int <1100 (0x44c)> + [13] #207.1.1.num.int <106 (0x6a)> + [14] #206.1.1.num.int <104 (0x68)> + [15] #205.1.1.num.int <102 (0x66)> + [16] #200.1.1.num.int <100 (0x64)> + [17] #199.1.1.num.int <20 (0x14)> + [18] #198.1.1.num.int <18 (0x12)> + [19] #197.1.1.num.int <16 (0x10)> + [20] #196.1.1.num.int <14 (0xe)> + [21] #195.1.1.num.int <12 (0xc)> + [22] #189.1.1.num.int <10 (0xa)> +IP: #186:0x59, type 6, 90[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x5a, size 1> + [1] #236.1.1.num.int <100 (0x64)> + [2] #235.1.1.num.int <0 (0x0)> + [3] #234.1.1.num.int <0 (0x0)> + [4] #225.1.1.num.int <10994 (0x2af2)> + [5] #224.1.1.num.int <10996 (0x2af4)> + [6] #223.1.1.num.int <10998 (0x2af6)> + [7] #218.1.1.num.int <11000 (0x2af8)> + [8] #217.1.1.num.int <1090 (0x442)> + [9] #216.1.1.num.int <1092 (0x444)> + [10] #215.1.1.num.int <1094 (0x446)> + [11] #214.1.1.num.int <1096 (0x448)> + [12] #213.1.1.num.int <1098 (0x44a)> + [13] #208.1.1.num.int <1100 (0x44c)> + [14] #207.1.1.num.int <106 (0x6a)> + [15] #206.1.1.num.int <104 (0x68)> + [16] #205.1.1.num.int <102 (0x66)> + [17] #200.1.1.num.int <100 (0x64)> + [18] #199.1.1.num.int <20 (0x14)> + [19] #198.1.1.num.int <18 (0x12)> + [20] #197.1.1.num.int <16 (0x10)> + [21] #196.1.1.num.int <14 (0xe)> + [22] #195.1.1.num.int <12 (0xc)> + [23] #189.1.1.num.int <10 (0xa)> +IP: #186:0x5b, type 8, 92[3] +GC: --#237.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +GC: --#236.1.1.num.int +GC: --#235.1.1.num.int +GC: --#234.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <10994 (0x2af2)> + [1] #224.1.1.num.int <10996 (0x2af4)> + [2] #223.1.1.num.int <10998 (0x2af6)> + [3] #218.1.1.num.int <11000 (0x2af8)> + [4] #217.1.1.num.int <1090 (0x442)> + [5] #216.1.1.num.int <1092 (0x444)> + [6] #215.1.1.num.int <1094 (0x446)> + [7] #214.1.1.num.int <1096 (0x448)> + [8] #213.1.1.num.int <1098 (0x44a)> + [9] #208.1.1.num.int <1100 (0x44c)> + [10] #207.1.1.num.int <106 (0x6a)> + [11] #206.1.1.num.int <104 (0x68)> + [12] #205.1.1.num.int <102 (0x66)> + [13] #200.1.1.num.int <100 (0x64)> + [14] #199.1.1.num.int <20 (0x14)> + [15] #198.1.1.num.int <18 (0x12)> + [16] #197.1.1.num.int <16 (0x10)> + [17] #196.1.1.num.int <14 (0xe)> + [18] #195.1.1.num.int <12 (0xc)> + [19] #189.1.1.num.int <10 (0xa)> diff --git a/tests/0008_forall/basic.log.ref b/tests/0008_forall/basic.log.ref new file mode 100644 index 0000000..72cc346 --- /dev/null +++ b/tests/0008_forall/basic.log.ref @@ -0,0 +1,629 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "€ AB23"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "€ AB23"> +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <130 (0x82)> + [1] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <172 (0xac)> + [1] #xxxx.1.1.num.int <130 (0x82)> + [2] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.1.num.int <172 (0xac)> + [2] #xxxx.1.1.num.int <130 (0x82)> + [3] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <65 (0x41)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.1.num.int <172 (0xac)> + [3] #xxxx.1.1.num.int <130 (0x82)> + [4] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <66 (0x42)> + [1] #xxxx.1.1.num.int <65 (0x41)> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.1.num.int <172 (0xac)> + [4] #xxxx.1.1.num.int <130 (0x82)> + [5] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <50 (0x32)> + [1] #xxxx.1.1.num.int <66 (0x42)> + [2] #xxxx.1.1.num.int <65 (0x41)> + [3] #xxxx.1.1.num.int <10 (0xa)> + [4] #xxxx.1.1.num.int <172 (0xac)> + [5] #xxxx.1.1.num.int <130 (0x82)> + [6] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <51 (0x33)> + [1] #xxxx.1.1.num.int <50 (0x32)> + [2] #xxxx.1.1.num.int <66 (0x42)> + [3] #xxxx.1.1.num.int <65 (0x41)> + [4] #xxxx.1.1.num.int <10 (0xa)> + [5] #xxxx.1.1.num.int <172 (0xac)> + [6] #xxxx.1.1.num.int <130 (0x82)> + [7] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <51 (0x33)> + [1] #xxxx.1.1.num.int <50 (0x32)> + [2] #xxxx.1.1.num.int <66 (0x42)> + [3] #xxxx.1.1.num.int <65 (0x41)> + [4] #xxxx.1.1.num.int <10 (0xa)> + [5] #xxxx.1.1.num.int <172 (0xac)> + [6] #xxxx.1.1.num.int <130 (0x82)> + [7] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.int <51 (0x33)> + [2] #xxxx.1.1.num.int <50 (0x32)> + [3] #xxxx.1.1.num.int <66 (0x42)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.1.num.int <172 (0xac)> + [7] #xxxx.1.1.num.int <130 (0x82)> + [8] #xxxx.1.1.num.int <226 (0xe2)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.int <51 (0x33)> + [2] #xxxx.1.1.num.int <50 (0x32)> + [3] #xxxx.1.1.num.int <66 (0x42)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.1.num.int <172 (0xac)> + [7] #xxxx.1.1.num.int <130 (0x82)> + [8] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.int <51 (0x33)> + [3] #xxxx.1.1.num.int <50 (0x32)> + [4] #xxxx.1.1.num.int <66 (0x42)> + [5] #xxxx.1.1.num.int <65 (0x41)> + [6] #xxxx.1.1.num.int <10 (0xa)> + [7] #xxxx.1.1.num.int <172 (0xac)> + [8] #xxxx.1.1.num.int <130 (0x82)> + [9] #xxxx.1.1.num.int <226 (0xe2)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <51 (0x33)> + [1] #xxxx.1.1.num.int <50 (0x32)> + [2] #xxxx.1.1.num.int <66 (0x42)> + [3] #xxxx.1.1.num.int <65 (0x41)> + [4] #xxxx.1.1.num.int <10 (0xa)> + [5] #xxxx.1.1.num.int <172 (0xac)> + [6] #xxxx.1.1.num.int <130 (0x82)> + [7] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.num.int <51 (0x33)> + [2] #xxxx.1.1.num.int <50 (0x32)> + [3] #xxxx.1.1.num.int <66 (0x42)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.1.num.int <172 (0xac)> + [7] #xxxx.1.1.num.int <130 (0x82)> + [8] #xxxx.1.1.num.int <226 (0xe2)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.num.int <51 (0x33)> + [2] #xxxx.1.1.num.int <50 (0x32)> + [3] #xxxx.1.1.num.int <66 (0x42)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.1.num.int <172 (0xac)> + [7] #xxxx.1.1.num.int <130 (0x82)> + [8] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.hash + [2] #xxxx.1.1.num.int <51 (0x33)> + [3] #xxxx.1.1.num.int <50 (0x32)> + [4] #xxxx.1.1.num.int <66 (0x42)> + [5] #xxxx.1.1.num.int <65 (0x41)> + [6] #xxxx.1.1.num.int <10 (0xa)> + [7] #xxxx.1.1.num.int <172 (0xac)> + [8] #xxxx.1.1.num.int <130 (0x82)> + [9] #xxxx.1.1.num.int <226 (0xe2)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <51 (0x33)> + [1] #xxxx.1.1.num.int <50 (0x32)> + [2] #xxxx.1.1.num.int <66 (0x42)> + [3] #xxxx.1.1.num.int <65 (0x41)> + [4] #xxxx.1.1.num.int <10 (0xa)> + [5] #xxxx.1.1.num.int <172 (0xac)> + [6] #xxxx.1.1.num.int <130 (0x82)> + [7] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.int <51 (0x33)> + [2] #xxxx.1.1.num.int <50 (0x32)> + [3] #xxxx.1.1.num.int <66 (0x42)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.1.num.int <172 (0xac)> + [7] #xxxx.1.1.num.int <130 (0x82)> + [8] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.num.int <51 (0x33)> + [3] #xxxx.1.1.num.int <50 (0x32)> + [4] #xxxx.1.1.num.int <66 (0x42)> + [5] #xxxx.1.1.num.int <65 (0x41)> + [6] #xxxx.1.1.num.int <10 (0xa)> + [7] #xxxx.1.1.num.int <172 (0xac)> + [8] #xxxx.1.1.num.int <130 (0x82)> + [9] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.num.int <51 (0x33)> + [4] #xxxx.1.1.num.int <50 (0x32)> + [5] #xxxx.1.1.num.int <66 (0x42)> + [6] #xxxx.1.1.num.int <65 (0x41)> + [7] #xxxx.1.1.num.int <10 (0xa)> + [8] #xxxx.1.1.num.int <172 (0xac)> + [9] #xxxx.1.1.num.int <130 (0x82)> + [10] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.num.int <51 (0x33)> + [5] #xxxx.1.1.num.int <50 (0x32)> + [6] #xxxx.1.1.num.int <66 (0x42)> + [7] #xxxx.1.1.num.int <65 (0x41)> + [8] #xxxx.1.1.num.int <10 (0xa)> + [9] #xxxx.1.1.num.int <172 (0xac)> + [10] #xxxx.1.1.num.int <130 (0x82)> + [11] #xxxx.1.1.num.int <226 (0xe2)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.int <51 (0x33)> + [2] #xxxx.1.1.num.int <50 (0x32)> + [3] #xxxx.1.1.num.int <66 (0x42)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.1.num.int <172 (0xac)> + [7] #xxxx.1.1.num.int <130 (0x82)> + [8] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.int <51 (0x33)> + [3] #xxxx.1.1.num.int <50 (0x32)> + [4] #xxxx.1.1.num.int <66 (0x42)> + [5] #xxxx.1.1.num.int <65 (0x41)> + [6] #xxxx.1.1.num.int <10 (0xa)> + [7] #xxxx.1.1.num.int <172 (0xac)> + [8] #xxxx.1.1.num.int <130 (0x82)> + [9] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> + [1] #xxxx.1.1.num.int <51 (0x33)> + [2] #xxxx.1.1.num.int <50 (0x32)> + [3] #xxxx.1.1.num.int <66 (0x42)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.1.num.int <172 (0xac)> + [7] #xxxx.1.1.num.int <130 (0x82)> + [8] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <20 (0x14)> + [1] #xxxx.1.2.num.int <10 (0xa)> + [2] #xxxx.1.1.num.int <51 (0x33)> + [3] #xxxx.1.1.num.int <50 (0x32)> + [4] #xxxx.1.1.num.int <66 (0x42)> + [5] #xxxx.1.1.num.int <65 (0x41)> + [6] #xxxx.1.1.num.int <10 (0xa)> + [7] #xxxx.1.1.num.int <172 (0xac)> + [8] #xxxx.1.1.num.int <130 (0x82)> + [9] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <20 (0x14)> + [2] #xxxx.1.2.num.int <10 (0xa)> + [3] #xxxx.1.1.num.int <51 (0x33)> + [4] #xxxx.1.1.num.int <50 (0x32)> + [5] #xxxx.1.1.num.int <66 (0x42)> + [6] #xxxx.1.1.num.int <65 (0x41)> + [7] #xxxx.1.1.num.int <10 (0xa)> + [8] #xxxx.1.1.num.int <172 (0xac)> + [9] #xxxx.1.1.num.int <130 (0x82)> + [10] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.array +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.1.num.int <51 (0x33)> + [4] #xxxx.1.1.num.int <50 (0x32)> + [5] #xxxx.1.1.num.int <66 (0x42)> + [6] #xxxx.1.1.num.int <65 (0x41)> + [7] #xxxx.1.1.num.int <10 (0xa)> + [8] #xxxx.1.1.num.int <172 (0xac)> + [9] #xxxx.1.1.num.int <130 (0x82)> + [10] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> + [4] #xxxx.1.1.num.int <51 (0x33)> + [5] #xxxx.1.1.num.int <50 (0x32)> + [6] #xxxx.1.1.num.int <66 (0x42)> + [7] #xxxx.1.1.num.int <65 (0x41)> + [8] #xxxx.1.1.num.int <10 (0xa)> + [9] #xxxx.1.1.num.int <172 (0xac)> + [10] #xxxx.1.1.num.int <130 (0x82)> + [11] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.num.int <30 (0x1e)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> + [5] #xxxx.1.1.num.int <51 (0x33)> + [6] #xxxx.1.1.num.int <50 (0x32)> + [7] #xxxx.1.1.num.int <66 (0x42)> + [8] #xxxx.1.1.num.int <65 (0x41)> + [9] #xxxx.1.1.num.int <10 (0xa)> + [10] #xxxx.1.1.num.int <172 (0xac)> + [11] #xxxx.1.1.num.int <130 (0x82)> + [12] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.num.int <30 (0x1e)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.1.num.int <51 (0x33)> + [7] #xxxx.1.1.num.int <50 (0x32)> + [8] #xxxx.1.1.num.int <66 (0x42)> + [9] #xxxx.1.1.num.int <65 (0x41)> + [10] #xxxx.1.1.num.int <10 (0xa)> + [11] #xxxx.1.1.num.int <172 (0xac)> + [12] #xxxx.1.1.num.int <130 (0x82)> + [13] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "bb"> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.num.int <30 (0x1e)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> + [7] #xxxx.1.1.num.int <51 (0x33)> + [8] #xxxx.1.1.num.int <50 (0x32)> + [9] #xxxx.1.1.num.int <66 (0x42)> + [10] #xxxx.1.1.num.int <65 (0x41)> + [11] #xxxx.1.1.num.int <10 (0xa)> + [12] #xxxx.1.1.num.int <172 (0xac)> + [13] #xxxx.1.1.num.int <130 (0x82)> + [14] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "bb"> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.num.int <30 (0x1e)> + [6] #xxxx.1.1.num.int <20 (0x14)> + [7] #xxxx.1.1.num.int <10 (0xa)> + [8] #xxxx.1.1.num.int <51 (0x33)> + [9] #xxxx.1.1.num.int <50 (0x32)> + [10] #xxxx.1.1.num.int <66 (0x42)> + [11] #xxxx.1.1.num.int <65 (0x41)> + [12] #xxxx.1.1.num.int <10 (0xa)> + [13] #xxxx.1.1.num.int <172 (0xac)> + [14] #xxxx.1.1.num.int <130 (0x82)> + [15] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "cc"> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.num.int <30 (0x1e)> + [7] #xxxx.1.1.num.int <20 (0x14)> + [8] #xxxx.1.1.num.int <10 (0xa)> + [9] #xxxx.1.1.num.int <51 (0x33)> + [10] #xxxx.1.1.num.int <50 (0x32)> + [11] #xxxx.1.1.num.int <66 (0x42)> + [12] #xxxx.1.1.num.int <65 (0x41)> + [13] #xxxx.1.1.num.int <10 (0xa)> + [14] #xxxx.1.1.num.int <172 (0xac)> + [15] #xxxx.1.1.num.int <130 (0x82)> + [16] #xxxx.1.1.num.int <226 (0xe2)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.num.int <30 (0x1e)> + [8] #xxxx.1.1.num.int <20 (0x14)> + [9] #xxxx.1.1.num.int <10 (0xa)> + [10] #xxxx.1.1.num.int <51 (0x33)> + [11] #xxxx.1.1.num.int <50 (0x32)> + [12] #xxxx.1.1.num.int <66 (0x42)> + [13] #xxxx.1.1.num.int <65 (0x41)> + [14] #xxxx.1.1.num.int <10 (0xa)> + [15] #xxxx.1.1.num.int <172 (0xac)> + [16] #xxxx.1.1.num.int <130 (0x82)> + [17] #xxxx.1.1.num.int <226 (0xe2)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> + [4] #xxxx.1.1.num.int <51 (0x33)> + [5] #xxxx.1.1.num.int <50 (0x32)> + [6] #xxxx.1.1.num.int <66 (0x42)> + [7] #xxxx.1.1.num.int <65 (0x41)> + [8] #xxxx.1.1.num.int <10 (0xa)> + [9] #xxxx.1.1.num.int <172 (0xac)> + [10] #xxxx.1.1.num.int <130 (0x82)> + [11] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.5.mem.ro> + [1] #xxxx.1.1.hash + [2] #xxxx.1.1.num.int <30 (0x1e)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> + [5] #xxxx.1.1.num.int <51 (0x33)> + [6] #xxxx.1.1.num.int <50 (0x32)> + [7] #xxxx.1.1.num.int <66 (0x42)> + [8] #xxxx.1.1.num.int <65 (0x41)> + [9] #xxxx.1.1.num.int <10 (0xa)> + [10] #xxxx.1.1.num.int <172 (0xac)> + [11] #xxxx.1.1.num.int <130 (0x82)> + [12] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <100 (0x64)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [2] #xxxx.1.1.num.int <30 (0x1e)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> + [5] #xxxx.1.1.num.int <51 (0x33)> + [6] #xxxx.1.1.num.int <50 (0x32)> + [7] #xxxx.1.1.num.int <66 (0x42)> + [8] #xxxx.1.1.num.int <65 (0x41)> + [9] #xxxx.1.1.num.int <10 (0xa)> + [10] #xxxx.1.1.num.int <172 (0xac)> + [11] #xxxx.1.1.num.int <130 (0x82)> + [12] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <200 (0xc8)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [2] #xxxx.1.2.num.int <100 (0x64)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [4] #xxxx.1.1.num.int <30 (0x1e)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> + [7] #xxxx.1.1.num.int <51 (0x33)> + [8] #xxxx.1.1.num.int <50 (0x32)> + [9] #xxxx.1.1.num.int <66 (0x42)> + [10] #xxxx.1.1.num.int <65 (0x41)> + [11] #xxxx.1.1.num.int <10 (0xa)> + [12] #xxxx.1.1.num.int <172 (0xac)> + [13] #xxxx.1.1.num.int <130 (0x82)> + [14] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <300 (0x12c)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [2] #xxxx.1.2.num.int <200 (0xc8)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [4] #xxxx.1.2.num.int <100 (0x64)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [6] #xxxx.1.1.num.int <30 (0x1e)> + [7] #xxxx.1.1.num.int <20 (0x14)> + [8] #xxxx.1.1.num.int <10 (0xa)> + [9] #xxxx.1.1.num.int <51 (0x33)> + [10] #xxxx.1.1.num.int <50 (0x32)> + [11] #xxxx.1.1.num.int <66 (0x42)> + [12] #xxxx.1.1.num.int <65 (0x41)> + [13] #xxxx.1.1.num.int <10 (0xa)> + [14] #xxxx.1.1.num.int <172 (0xac)> + [15] #xxxx.1.1.num.int <130 (0x82)> + [16] #xxxx.1.1.num.int <226 (0xe2)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.5.mem.ro +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [6] #xxxx.1.1.num.int <30 (0x1e)> + [7] #xxxx.1.1.num.int <20 (0x14)> + [8] #xxxx.1.1.num.int <10 (0xa)> + [9] #xxxx.1.1.num.int <51 (0x33)> + [10] #xxxx.1.1.num.int <50 (0x32)> + [11] #xxxx.1.1.num.int <66 (0x42)> + [12] #xxxx.1.1.num.int <65 (0x41)> + [13] #xxxx.1.1.num.int <10 (0xa)> + [14] #xxxx.1.1.num.int <172 (0xac)> + [15] #xxxx.1.1.num.int <130 (0x82)> + [16] #xxxx.1.1.num.int <226 (0xe2)> diff --git a/tests/0008_forall/code.log.ref b/tests/0008_forall/code.log.ref new file mode 100644 index 0000000..4770e60 --- /dev/null +++ b/tests/0008_forall/code.log.ref @@ -0,0 +1,41 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 34 entries (34 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 str 87 e2 82 ac 0a 41 42 32 "€\nAB23" + 33 + 2 0x00011 code 16 { + 3 0x00012 prim 13 } + 4 0x00013 word 68 66 6f 72 61 6c 6c forall + 2 5 0x0001a word 18 5b [ + 6 0x0001c word 18 5d ] + 7 0x0001e code 16 { + 8 0x0001f prim 13 } + 9 0x00020 word 68 66 6f 72 61 6c 6c forall + 3 10 0x00027 word 18 28 ( + 11 0x00029 word 18 29 ) + 12 0x0002b code 16 { + 13 0x0002c prim 13 } + 14 0x0002d word 68 66 6f 72 61 6c 6c forall + 4 15 0x00034 word 18 5b [ + 16 0x00036 int 81 0a 10 + 17 0x00038 int 81 14 20 + 18 0x0003a int 81 1e 30 + 19 0x0003c word 18 5d ] + 20 0x0003e code 16 { + 21 0x0003f prim 13 } + 22 0x00040 word 68 66 6f 72 61 6c 6c forall + 5 23 0x00047 word 18 28 ( + 24 0x00049 str 27 61 61 "aa" + 25 0x0004c int 81 64 100 + 26 0x0004e str 27 62 62 "bb" + 27 0x00051 int 91 c8 00 200 + 28 0x00054 str 27 63 63 "cc" + 29 0x00057 int 91 2c 01 300 + 30 0x0005a word 18 29 ) + 31 0x0005c code 16 { + 32 0x0005d prim 13 } + 33 0x0005e word 68 66 6f 72 61 6c 6c forall diff --git a/tests/0008_forall/code1.log.ref b/tests/0008_forall/code1.log.ref new file mode 100644 index 0000000..f0dd0bd --- /dev/null +++ b/tests/0008_forall/code1.log.ref @@ -0,0 +1,41 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 34 entries (34 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 str 87 e2 82 ac 0a 41 42 32 "€\nAB23" + 33 + 2 0x00011 code 16 { + 3 0x00012 prim 13 } + 4 0x00013 word 68 66 6f 72 61 6c 6c forall + 2 5 0x0001a word 18 5b [ + 6 0x0001c word 18 5d ] + 7 0x0001e code 16 { + 8 0x0001f prim 13 } + 9 0x00020 xref 84 0d forall + 3 10 0x00022 word 18 28 ( + 11 0x00024 word 18 29 ) + 12 0x00026 code 16 { + 13 0x00027 prim 13 } + 14 0x00028 xref 84 15 forall + 4 15 0x0002a word 18 5b [ + 16 0x0002c int 81 0a 10 + 17 0x0002e int 81 14 20 + 18 0x00030 int 81 1e 30 + 19 0x00032 word 18 5d ] + 20 0x00034 code 16 { + 21 0x00035 prim 13 } + 22 0x00036 xref 84 23 forall + 5 23 0x00038 word 18 28 ( + 24 0x0003a str 27 61 61 "aa" + 25 0x0003d int 81 64 100 + 26 0x0003f str 27 62 62 "bb" + 27 0x00042 int 91 c8 00 200 + 28 0x00045 str 27 63 63 "cc" + 29 0x00048 int 91 2c 01 300 + 30 0x0004b word 18 29 ) + 31 0x0004d code 16 { + 32 0x0004e prim 13 } + 33 0x0004f xref 84 3c forall diff --git a/tests/0008_forall/code2.log.ref b/tests/0008_forall/code2.log.ref new file mode 100644 index 0000000..b156d73 --- /dev/null +++ b/tests/0008_forall/code2.log.ref @@ -0,0 +1,41 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 34 entries (34 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 str 87 e2 82 ac 0a 41 42 32 "€\nAB23" + 33 + 2 0x00011 code 16 { + 3 0x00012 prim 13 } + 4 0x00013 prim 83 0e forall + 2 5 0x00015 prim 23 [ + 6 0x00016 prim 33 ] + 7 0x00017 code 16 { + 8 0x00018 prim 13 } + 9 0x00019 prim 83 0e forall + 3 10 0x0001b prim 43 ( + 11 0x0001c prim 53 ) + 12 0x0001d code 16 { + 13 0x0001e prim 13 } + 14 0x0001f prim 83 0e forall + 4 15 0x00021 prim 23 [ + 16 0x00022 int 81 0a 10 + 17 0x00024 int 81 14 20 + 18 0x00026 int 81 1e 30 + 19 0x00028 prim 33 ] + 20 0x00029 code 16 { + 21 0x0002a prim 13 } + 22 0x0002b prim 83 0e forall + 5 23 0x0002d prim 43 ( + 24 0x0002e str 27 61 61 "aa" + 25 0x00031 int 81 64 100 + 26 0x00033 str 27 62 62 "bb" + 27 0x00036 int 91 c8 00 200 + 28 0x00039 str 27 63 63 "cc" + 29 0x0003c int 91 2c 01 300 + 30 0x0003f prim 53 ) + 31 0x00040 code 16 { + 32 0x00041 prim 13 } + 33 0x00042 prim 83 0e forall diff --git a/tests/0008_forall/main.gs b/tests/0008_forall/main.gs new file mode 100644 index 0000000..8612cb1 --- /dev/null +++ b/tests/0008_forall/main.gs @@ -0,0 +1,5 @@ +"€\nAB23" { } forall +[ ] { } forall +( ) { } forall +[ 10 20 30 ] { } forall +( "aa" 100 "bb" 200 "cc" 300 ) { } forall diff --git a/tests/0008_forall/mem.log.ref b/tests/0008_forall/mem.log.ref new file mode 100644 index 0000000..9fd7999 --- /dev/null +++ b/tests/0008_forall/mem.log.ref @@ -0,0 +1,796 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 104] + 8: 0.00, 0x001d6adc[ 72] + 9: 188.01, 0x001d6b2c[ 56] + 10: 0.00, 0x001d6b6c[ 56] + 11: 200.01, 0x001d6bac[ 72] + 12: 187.01, 0x001d6bfc[ 144] + 13: 0.00, 0x001d6c94[14848876] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.4.mem.ro + 75 51 12 a9 42 7a ad 60 87 e2 82 ac 0a 41 42 32 uQ..Bz.`.....AB2 + 33 16 13 68 66 6f 72 61 6c 6c 18 5b 18 5d 16 13 3..hforall.[.].. + 68 66 6f 72 61 6c 6c 18 28 18 29 16 13 68 66 6f hforall.(.)..hfo + 72 61 6c 6c 18 5b 81 0a 81 14 81 1e 18 5d 16 13 rall.[.......].. + 68 66 6f 72 61 6c 6c 18 28 27 61 61 81 64 27 62 hforall.('aa.d'b + 62 91 c8 00 27 63 63 91 2c 01 18 29 16 13 68 66 b...'cc.,..)..hf + 6f 72 61 6c 6c orall + #187.1.1.array + [ 0] #191.1.1.num.int <226 (0xe2)> + [ 1] #193.1.1.num.int <130 (0x82)> + [ 2] #194.1.1.num.int <172 (0xac)> + [ 3] #195.1.1.num.int <10 (0xa)> + [ 4] #196.1.1.num.int <65 (0x41)> + [ 5] #197.1.1.num.int <66 (0x42)> + [ 6] #198.1.1.num.int <50 (0x32)> + [ 7] #199.1.1.num.int <51 (0x33)> + [ 8] #205.1.1.num.int <10 (0xa)> + [ 9] #206.1.1.num.int <20 (0x14)> + [10] #207.1.1.num.int <30 (0x1e)> + [11] #211.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x4a, size 2, "aa"> + [12] #212.1.1.num.int <100 (0x64)> + [13] #213.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x4f, size 2, "bb"> + [14] #214.1.1.num.int <200 (0xc8)> + [15] #215.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x55, size 2, "cc"> + [16] #216.1.1.num.int <300 (0x12c)> + #188.1.1.ctx.func + type 17, ip 0x65 (0x65) + code #186.1.4.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.int <226 (0xe2)> + #193.1.1.num.int <130 (0x82)> + #194.1.1.num.int <172 (0xac)> + #195.1.1.num.int <10 (0xa)> + #196.1.1.num.int <65 (0x41)> + #197.1.1.num.int <66 (0x42)> + #198.1.1.num.int <50 (0x32)> + #199.1.1.num.int <51 (0x33)> + #200.1.1.array + #205.1.1.num.int <10 (0xa)> + #206.1.1.num.int <20 (0x14)> + #207.1.1.num.int <30 (0x1e)> + #211.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x4a, size 2, "aa"> + 61 61 aa + #212.1.1.num.int <100 (0x64)> + #213.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x4f, size 2, "bb"> + 62 62 bb + #214.1.1.num.int <200 (0xc8)> + #215.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x55, size 2, "cc"> + 63 63 cc + #216.1.1.num.int <300 (0x12c)> diff --git a/tests/0008_forall/screen.log.ref b/tests/0008_forall/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0008_forall/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0008_forall/trace.log.ref b/tests/0008_forall/trace.log.ref new file mode 100644 index 0000000..a0d7d9c --- /dev/null +++ b/tests/0008_forall/trace.log.ref @@ -0,0 +1,672 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 7, 9[8] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x9, size 8, "€ AB23"> +IP: #186:0x11, type 6, 18[1] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x12, size 1> + [1] #189.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x9, size 8, "€ AB23"> +IP: #186:0x13, type 8, 20[6] +GC: ++#190.1.1.mem.code.ro +GC: ++#189.1.1.mem.str.ro +GC: --#190.1.2.mem.code.ro +GC: --#189.1.2.mem.str.ro +== backtrace == + [0] #192.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <226 (0xe2)> +IP: #190:0x0, type 3, 1 (0x1) +== backtrace == + [0] #192.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <130 (0x82)> + [1] #191.1.1.num.int <226 (0xe2)> +IP: #190:0x0, type 3, 1 (0x1) +== backtrace == + [0] #192.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <172 (0xac)> + [1] #193.1.1.num.int <130 (0x82)> + [2] #191.1.1.num.int <226 (0xe2)> +IP: #190:0x0, type 3, 1 (0x1) +== backtrace == + [0] #192.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <10 (0xa)> + [1] #194.1.1.num.int <172 (0xac)> + [2] #193.1.1.num.int <130 (0x82)> + [3] #191.1.1.num.int <226 (0xe2)> +IP: #190:0x0, type 3, 1 (0x1) +== backtrace == + [0] #192.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <65 (0x41)> + [1] #195.1.1.num.int <10 (0xa)> + [2] #194.1.1.num.int <172 (0xac)> + [3] #193.1.1.num.int <130 (0x82)> + [4] #191.1.1.num.int <226 (0xe2)> +IP: #190:0x0, type 3, 1 (0x1) +== backtrace == + [0] #192.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <66 (0x42)> + [1] #196.1.1.num.int <65 (0x41)> + [2] #195.1.1.num.int <10 (0xa)> + [3] #194.1.1.num.int <172 (0xac)> + [4] #193.1.1.num.int <130 (0x82)> + [5] #191.1.1.num.int <226 (0xe2)> +IP: #190:0x0, type 3, 1 (0x1) +== backtrace == + [0] #192.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <50 (0x32)> + [1] #197.1.1.num.int <66 (0x42)> + [2] #196.1.1.num.int <65 (0x41)> + [3] #195.1.1.num.int <10 (0xa)> + [4] #194.1.1.num.int <172 (0xac)> + [5] #193.1.1.num.int <130 (0x82)> + [6] #191.1.1.num.int <226 (0xe2)> +IP: #190:0x0, type 3, 1 (0x1) +== backtrace == + [0] #192.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <51 (0x33)> + [1] #198.1.1.num.int <50 (0x32)> + [2] #197.1.1.num.int <66 (0x42)> + [3] #196.1.1.num.int <65 (0x41)> + [4] #195.1.1.num.int <10 (0xa)> + [5] #194.1.1.num.int <172 (0xac)> + [6] #193.1.1.num.int <130 (0x82)> + [7] #191.1.1.num.int <226 (0xe2)> +IP: #190:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#192.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#190.1.1.mem.code.ro +GC: --#189.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <51 (0x33)> + [1] #198.1.1.num.int <50 (0x32)> + [2] #197.1.1.num.int <66 (0x42)> + [3] #196.1.1.num.int <65 (0x41)> + [4] #195.1.1.num.int <10 (0xa)> + [5] #194.1.1.num.int <172 (0xac)> + [6] #193.1.1.num.int <130 (0x82)> + [7] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x1a, type 8, 27[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #199.1.1.num.int <51 (0x33)> + [2] #198.1.1.num.int <50 (0x32)> + [3] #197.1.1.num.int <66 (0x42)> + [4] #196.1.1.num.int <65 (0x41)> + [5] #195.1.1.num.int <10 (0xa)> + [6] #194.1.1.num.int <172 (0xac)> + [7] #193.1.1.num.int <130 (0x82)> + [8] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x1c, type 8, 29[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.array + [1] #199.1.1.num.int <51 (0x33)> + [2] #198.1.1.num.int <50 (0x32)> + [3] #197.1.1.num.int <66 (0x42)> + [4] #196.1.1.num.int <65 (0x41)> + [5] #195.1.1.num.int <10 (0xa)> + [6] #194.1.1.num.int <172 (0xac)> + [7] #193.1.1.num.int <130 (0x82)> + [8] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x1e, type 6, 31[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x1f, size 1> + [1] #201.1.1.array + [2] #199.1.1.num.int <51 (0x33)> + [3] #198.1.1.num.int <50 (0x32)> + [4] #197.1.1.num.int <66 (0x42)> + [5] #196.1.1.num.int <65 (0x41)> + [6] #195.1.1.num.int <10 (0xa)> + [7] #194.1.1.num.int <172 (0xac)> + [8] #193.1.1.num.int <130 (0x82)> + [9] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x20, type 8, 33[6] +GC: --#202.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +GC: --#201.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <51 (0x33)> + [1] #198.1.1.num.int <50 (0x32)> + [2] #197.1.1.num.int <66 (0x42)> + [3] #196.1.1.num.int <65 (0x41)> + [4] #195.1.1.num.int <10 (0xa)> + [5] #194.1.1.num.int <172 (0xac)> + [6] #193.1.1.num.int <130 (0x82)> + [7] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x27, type 8, 40[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #199.1.1.num.int <51 (0x33)> + [2] #198.1.1.num.int <50 (0x32)> + [3] #197.1.1.num.int <66 (0x42)> + [4] #196.1.1.num.int <65 (0x41)> + [5] #195.1.1.num.int <10 (0xa)> + [6] #194.1.1.num.int <172 (0xac)> + [7] #193.1.1.num.int <130 (0x82)> + [8] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x29, type 8, 42[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.hash + [1] #199.1.1.num.int <51 (0x33)> + [2] #198.1.1.num.int <50 (0x32)> + [3] #197.1.1.num.int <66 (0x42)> + [4] #196.1.1.num.int <65 (0x41)> + [5] #195.1.1.num.int <10 (0xa)> + [6] #194.1.1.num.int <172 (0xac)> + [7] #193.1.1.num.int <130 (0x82)> + [8] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x2b, type 6, 44[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x2c, size 1> + [1] #203.1.1.hash + [2] #199.1.1.num.int <51 (0x33)> + [3] #198.1.1.num.int <50 (0x32)> + [4] #197.1.1.num.int <66 (0x42)> + [5] #196.1.1.num.int <65 (0x41)> + [6] #195.1.1.num.int <10 (0xa)> + [7] #194.1.1.num.int <172 (0xac)> + [8] #193.1.1.num.int <130 (0x82)> + [9] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x2d, type 8, 46[6] +GC: --#204.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +GC: --#203.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <51 (0x33)> + [1] #198.1.1.num.int <50 (0x32)> + [2] #197.1.1.num.int <66 (0x42)> + [3] #196.1.1.num.int <65 (0x41)> + [4] #195.1.1.num.int <10 (0xa)> + [5] #194.1.1.num.int <172 (0xac)> + [6] #193.1.1.num.int <130 (0x82)> + [7] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x34, type 8, 53[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #199.1.1.num.int <51 (0x33)> + [2] #198.1.1.num.int <50 (0x32)> + [3] #197.1.1.num.int <66 (0x42)> + [4] #196.1.1.num.int <65 (0x41)> + [5] #195.1.1.num.int <10 (0xa)> + [6] #194.1.1.num.int <172 (0xac)> + [7] #193.1.1.num.int <130 (0x82)> + [8] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x36, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <10 (0xa)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #199.1.1.num.int <51 (0x33)> + [3] #198.1.1.num.int <50 (0x32)> + [4] #197.1.1.num.int <66 (0x42)> + [5] #196.1.1.num.int <65 (0x41)> + [6] #195.1.1.num.int <10 (0xa)> + [7] #194.1.1.num.int <172 (0xac)> + [8] #193.1.1.num.int <130 (0x82)> + [9] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x38, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <20 (0x14)> + [1] #205.1.1.num.int <10 (0xa)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #199.1.1.num.int <51 (0x33)> + [4] #198.1.1.num.int <50 (0x32)> + [5] #197.1.1.num.int <66 (0x42)> + [6] #196.1.1.num.int <65 (0x41)> + [7] #195.1.1.num.int <10 (0xa)> + [8] #194.1.1.num.int <172 (0xac)> + [9] #193.1.1.num.int <130 (0x82)> + [10] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x3a, type 1, 30 (0x1e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <30 (0x1e)> + [1] #206.1.1.num.int <20 (0x14)> + [2] #205.1.1.num.int <10 (0xa)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #199.1.1.num.int <51 (0x33)> + [5] #198.1.1.num.int <50 (0x32)> + [6] #197.1.1.num.int <66 (0x42)> + [7] #196.1.1.num.int <65 (0x41)> + [8] #195.1.1.num.int <10 (0xa)> + [9] #194.1.1.num.int <172 (0xac)> + [10] #193.1.1.num.int <130 (0x82)> + [11] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x3c, type 8, 61[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.array + [1] #199.1.1.num.int <51 (0x33)> + [2] #198.1.1.num.int <50 (0x32)> + [3] #197.1.1.num.int <66 (0x42)> + [4] #196.1.1.num.int <65 (0x41)> + [5] #195.1.1.num.int <10 (0xa)> + [6] #194.1.1.num.int <172 (0xac)> + [7] #193.1.1.num.int <130 (0x82)> + [8] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x3e, type 6, 63[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x3f, size 1> + [1] #208.1.1.array + [2] #199.1.1.num.int <51 (0x33)> + [3] #198.1.1.num.int <50 (0x32)> + [4] #197.1.1.num.int <66 (0x42)> + [5] #196.1.1.num.int <65 (0x41)> + [6] #195.1.1.num.int <10 (0xa)> + [7] #194.1.1.num.int <172 (0xac)> + [8] #193.1.1.num.int <130 (0x82)> + [9] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x40, type 8, 65[6] +GC: ++#205.1.1.num.int +GC: ++#209.1.1.mem.code.ro +GC: ++#208.1.1.array +GC: --#209.1.2.mem.code.ro +GC: --#208.1.2.array +== backtrace == + [0] #210.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.2.num.int <10 (0xa)> + [1] #199.1.1.num.int <51 (0x33)> + [2] #198.1.1.num.int <50 (0x32)> + [3] #197.1.1.num.int <66 (0x42)> + [4] #196.1.1.num.int <65 (0x41)> + [5] #195.1.1.num.int <10 (0xa)> + [6] #194.1.1.num.int <172 (0xac)> + [7] #193.1.1.num.int <130 (0x82)> + [8] #191.1.1.num.int <226 (0xe2)> +IP: #209:0x0, type 3, 1 (0x1) +GC: ++#206.1.1.num.int +== backtrace == + [0] #210.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.2.num.int <20 (0x14)> + [1] #205.1.2.num.int <10 (0xa)> + [2] #199.1.1.num.int <51 (0x33)> + [3] #198.1.1.num.int <50 (0x32)> + [4] #197.1.1.num.int <66 (0x42)> + [5] #196.1.1.num.int <65 (0x41)> + [6] #195.1.1.num.int <10 (0xa)> + [7] #194.1.1.num.int <172 (0xac)> + [8] #193.1.1.num.int <130 (0x82)> + [9] #191.1.1.num.int <226 (0xe2)> +IP: #209:0x0, type 3, 1 (0x1) +GC: ++#207.1.1.num.int +== backtrace == + [0] #210.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.2.num.int <30 (0x1e)> + [1] #206.1.2.num.int <20 (0x14)> + [2] #205.1.2.num.int <10 (0xa)> + [3] #199.1.1.num.int <51 (0x33)> + [4] #198.1.1.num.int <50 (0x32)> + [5] #197.1.1.num.int <66 (0x42)> + [6] #196.1.1.num.int <65 (0x41)> + [7] #195.1.1.num.int <10 (0xa)> + [8] #194.1.1.num.int <172 (0xac)> + [9] #193.1.1.num.int <130 (0x82)> + [10] #191.1.1.num.int <226 (0xe2)> +IP: #209:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#210.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#209.1.1.mem.code.ro +GC: --#208.1.1.array +GC: --#186.1.2.mem.ro +GC: --#205.1.2.num.int +GC: --#206.1.2.num.int +GC: --#207.1.2.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <30 (0x1e)> + [1] #206.1.1.num.int <20 (0x14)> + [2] #205.1.1.num.int <10 (0xa)> + [3] #199.1.1.num.int <51 (0x33)> + [4] #198.1.1.num.int <50 (0x32)> + [5] #197.1.1.num.int <66 (0x42)> + [6] #196.1.1.num.int <65 (0x41)> + [7] #195.1.1.num.int <10 (0xa)> + [8] #194.1.1.num.int <172 (0xac)> + [9] #193.1.1.num.int <130 (0x82)> + [10] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x47, type 8, 72[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #207.1.1.num.int <30 (0x1e)> + [2] #206.1.1.num.int <20 (0x14)> + [3] #205.1.1.num.int <10 (0xa)> + [4] #199.1.1.num.int <51 (0x33)> + [5] #198.1.1.num.int <50 (0x32)> + [6] #197.1.1.num.int <66 (0x42)> + [7] #196.1.1.num.int <65 (0x41)> + [8] #195.1.1.num.int <10 (0xa)> + [9] #194.1.1.num.int <172 (0xac)> + [10] #193.1.1.num.int <130 (0x82)> + [11] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x49, type 7, 74[2] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x4a, size 2, "aa"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #207.1.1.num.int <30 (0x1e)> + [3] #206.1.1.num.int <20 (0x14)> + [4] #205.1.1.num.int <10 (0xa)> + [5] #199.1.1.num.int <51 (0x33)> + [6] #198.1.1.num.int <50 (0x32)> + [7] #197.1.1.num.int <66 (0x42)> + [8] #196.1.1.num.int <65 (0x41)> + [9] #195.1.1.num.int <10 (0xa)> + [10] #194.1.1.num.int <172 (0xac)> + [11] #193.1.1.num.int <130 (0x82)> + [12] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x4c, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.int <100 (0x64)> + [1] #211.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x4a, size 2, "aa"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #207.1.1.num.int <30 (0x1e)> + [4] #206.1.1.num.int <20 (0x14)> + [5] #205.1.1.num.int <10 (0xa)> + [6] #199.1.1.num.int <51 (0x33)> + [7] #198.1.1.num.int <50 (0x32)> + [8] #197.1.1.num.int <66 (0x42)> + [9] #196.1.1.num.int <65 (0x41)> + [10] #195.1.1.num.int <10 (0xa)> + [11] #194.1.1.num.int <172 (0xac)> + [12] #193.1.1.num.int <130 (0x82)> + [13] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x4e, type 7, 79[2] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x4f, size 2, "bb"> + [1] #212.1.1.num.int <100 (0x64)> + [2] #211.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x4a, size 2, "aa"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #207.1.1.num.int <30 (0x1e)> + [5] #206.1.1.num.int <20 (0x14)> + [6] #205.1.1.num.int <10 (0xa)> + [7] #199.1.1.num.int <51 (0x33)> + [8] #198.1.1.num.int <50 (0x32)> + [9] #197.1.1.num.int <66 (0x42)> + [10] #196.1.1.num.int <65 (0x41)> + [11] #195.1.1.num.int <10 (0xa)> + [12] #194.1.1.num.int <172 (0xac)> + [13] #193.1.1.num.int <130 (0x82)> + [14] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x51, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.num.int <200 (0xc8)> + [1] #213.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x4f, size 2, "bb"> + [2] #212.1.1.num.int <100 (0x64)> + [3] #211.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x4a, size 2, "aa"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #207.1.1.num.int <30 (0x1e)> + [6] #206.1.1.num.int <20 (0x14)> + [7] #205.1.1.num.int <10 (0xa)> + [8] #199.1.1.num.int <51 (0x33)> + [9] #198.1.1.num.int <50 (0x32)> + [10] #197.1.1.num.int <66 (0x42)> + [11] #196.1.1.num.int <65 (0x41)> + [12] #195.1.1.num.int <10 (0xa)> + [13] #194.1.1.num.int <172 (0xac)> + [14] #193.1.1.num.int <130 (0x82)> + [15] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x54, type 7, 85[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x55, size 2, "cc"> + [1] #214.1.1.num.int <200 (0xc8)> + [2] #213.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x4f, size 2, "bb"> + [3] #212.1.1.num.int <100 (0x64)> + [4] #211.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x4a, size 2, "aa"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #207.1.1.num.int <30 (0x1e)> + [7] #206.1.1.num.int <20 (0x14)> + [8] #205.1.1.num.int <10 (0xa)> + [9] #199.1.1.num.int <51 (0x33)> + [10] #198.1.1.num.int <50 (0x32)> + [11] #197.1.1.num.int <66 (0x42)> + [12] #196.1.1.num.int <65 (0x41)> + [13] #195.1.1.num.int <10 (0xa)> + [14] #194.1.1.num.int <172 (0xac)> + [15] #193.1.1.num.int <130 (0x82)> + [16] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x57, type 1, 300 (0x12c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <300 (0x12c)> + [1] #215.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x55, size 2, "cc"> + [2] #214.1.1.num.int <200 (0xc8)> + [3] #213.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x4f, size 2, "bb"> + [4] #212.1.1.num.int <100 (0x64)> + [5] #211.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x4a, size 2, "aa"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #207.1.1.num.int <30 (0x1e)> + [8] #206.1.1.num.int <20 (0x14)> + [9] #205.1.1.num.int <10 (0xa)> + [10] #199.1.1.num.int <51 (0x33)> + [11] #198.1.1.num.int <50 (0x32)> + [12] #197.1.1.num.int <66 (0x42)> + [13] #196.1.1.num.int <65 (0x41)> + [14] #195.1.1.num.int <10 (0xa)> + [15] #194.1.1.num.int <172 (0xac)> + [16] #193.1.1.num.int <130 (0x82)> + [17] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x5a, type 8, 91[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.hash + [1] #207.1.1.num.int <30 (0x1e)> + [2] #206.1.1.num.int <20 (0x14)> + [3] #205.1.1.num.int <10 (0xa)> + [4] #199.1.1.num.int <51 (0x33)> + [5] #198.1.1.num.int <50 (0x32)> + [6] #197.1.1.num.int <66 (0x42)> + [7] #196.1.1.num.int <65 (0x41)> + [8] #195.1.1.num.int <10 (0xa)> + [9] #194.1.1.num.int <172 (0xac)> + [10] #193.1.1.num.int <130 (0x82)> + [11] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x5c, type 6, 93[1] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x5d, size 1> + [1] #217.1.1.hash + [2] #207.1.1.num.int <30 (0x1e)> + [3] #206.1.1.num.int <20 (0x14)> + [4] #205.1.1.num.int <10 (0xa)> + [5] #199.1.1.num.int <51 (0x33)> + [6] #198.1.1.num.int <50 (0x32)> + [7] #197.1.1.num.int <66 (0x42)> + [8] #196.1.1.num.int <65 (0x41)> + [9] #195.1.1.num.int <10 (0xa)> + [10] #194.1.1.num.int <172 (0xac)> + [11] #193.1.1.num.int <130 (0x82)> + [12] #191.1.1.num.int <226 (0xe2)> +IP: #186:0x5e, type 8, 95[6] +GC: ++#211.1.1.mem.str.ro +GC: ++#212.1.1.num.int +GC: ++#218.1.1.mem.code.ro +GC: ++#217.1.1.hash +GC: --#218.1.2.mem.code.ro +GC: --#217.1.2.hash +== backtrace == + [0] #219.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.2.num.int <100 (0x64)> + [1] #211.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x4a, size 2, "aa"> + [2] #207.1.1.num.int <30 (0x1e)> + [3] #206.1.1.num.int <20 (0x14)> + [4] #205.1.1.num.int <10 (0xa)> + [5] #199.1.1.num.int <51 (0x33)> + [6] #198.1.1.num.int <50 (0x32)> + [7] #197.1.1.num.int <66 (0x42)> + [8] #196.1.1.num.int <65 (0x41)> + [9] #195.1.1.num.int <10 (0xa)> + [10] #194.1.1.num.int <172 (0xac)> + [11] #193.1.1.num.int <130 (0x82)> + [12] #191.1.1.num.int <226 (0xe2)> +IP: #218:0x0, type 3, 1 (0x1) +GC: ++#213.1.1.mem.str.ro +GC: ++#214.1.1.num.int +== backtrace == + [0] #219.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.2.num.int <200 (0xc8)> + [1] #213.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x4f, size 2, "bb"> + [2] #212.1.2.num.int <100 (0x64)> + [3] #211.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x4a, size 2, "aa"> + [4] #207.1.1.num.int <30 (0x1e)> + [5] #206.1.1.num.int <20 (0x14)> + [6] #205.1.1.num.int <10 (0xa)> + [7] #199.1.1.num.int <51 (0x33)> + [8] #198.1.1.num.int <50 (0x32)> + [9] #197.1.1.num.int <66 (0x42)> + [10] #196.1.1.num.int <65 (0x41)> + [11] #195.1.1.num.int <10 (0xa)> + [12] #194.1.1.num.int <172 (0xac)> + [13] #193.1.1.num.int <130 (0x82)> + [14] #191.1.1.num.int <226 (0xe2)> +IP: #218:0x0, type 3, 1 (0x1) +GC: ++#215.1.1.mem.str.ro +GC: ++#216.1.1.num.int +== backtrace == + [0] #219.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.2.num.int <300 (0x12c)> + [1] #215.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x55, size 2, "cc"> + [2] #214.1.2.num.int <200 (0xc8)> + [3] #213.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x4f, size 2, "bb"> + [4] #212.1.2.num.int <100 (0x64)> + [5] #211.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x4a, size 2, "aa"> + [6] #207.1.1.num.int <30 (0x1e)> + [7] #206.1.1.num.int <20 (0x14)> + [8] #205.1.1.num.int <10 (0xa)> + [9] #199.1.1.num.int <51 (0x33)> + [10] #198.1.1.num.int <50 (0x32)> + [11] #197.1.1.num.int <66 (0x42)> + [12] #196.1.1.num.int <65 (0x41)> + [13] #195.1.1.num.int <10 (0xa)> + [14] #194.1.1.num.int <172 (0xac)> + [15] #193.1.1.num.int <130 (0x82)> + [16] #191.1.1.num.int <226 (0xe2)> +IP: #218:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#219.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#218.1.1.mem.code.ro +GC: --#217.1.1.hash +GC: --#186.1.5.mem.ro +GC: --#211.1.2.mem.str.ro +GC: --#212.1.2.num.int +GC: --#213.1.2.mem.str.ro +GC: --#214.1.2.num.int +GC: --#215.1.2.mem.str.ro +GC: --#216.1.2.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <300 (0x12c)> + [1] #215.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x55, size 2, "cc"> + [2] #214.1.1.num.int <200 (0xc8)> + [3] #213.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x4f, size 2, "bb"> + [4] #212.1.1.num.int <100 (0x64)> + [5] #211.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x4a, size 2, "aa"> + [6] #207.1.1.num.int <30 (0x1e)> + [7] #206.1.1.num.int <20 (0x14)> + [8] #205.1.1.num.int <10 (0xa)> + [9] #199.1.1.num.int <51 (0x33)> + [10] #198.1.1.num.int <50 (0x32)> + [11] #197.1.1.num.int <66 (0x42)> + [12] #196.1.1.num.int <65 (0x41)> + [13] #195.1.1.num.int <10 (0xa)> + [14] #194.1.1.num.int <172 (0xac)> + [15] #193.1.1.num.int <130 (0x82)> + [16] #191.1.1.num.int <226 (0xe2)> diff --git a/tests/0009_func/basic.log.ref b/tests/0009_func/basic.log.ref new file mode 100644 index 0000000..0203619 --- /dev/null +++ b/tests/0009_func/basic.log.ref @@ -0,0 +1,47 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> diff --git a/tests/0009_func/code.log.ref b/tests/0009_func/code.log.ref new file mode 100644 index 0000000..176ae75 --- /dev/null +++ b/tests/0009_func/code.log.ref @@ -0,0 +1,14 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 8 entries (8 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c code 56 { + 3 0x0000d int 81 0a 10 + 4 0x0000f int 81 14 20 + 5 0x00011 prim 13 } + 6 0x00012 word 38 64 65 66 def + 2 7 0x00016 word 38 66 6f 6f foo diff --git a/tests/0009_func/code1.log.ref b/tests/0009_func/code1.log.ref new file mode 100644 index 0000000..176ae75 --- /dev/null +++ b/tests/0009_func/code1.log.ref @@ -0,0 +1,14 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 8 entries (8 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c code 56 { + 3 0x0000d int 81 0a 10 + 4 0x0000f int 81 14 20 + 5 0x00011 prim 13 } + 6 0x00012 word 38 64 65 66 def + 2 7 0x00016 word 38 66 6f 6f foo diff --git a/tests/0009_func/code2.log.ref b/tests/0009_func/code2.log.ref new file mode 100644 index 0000000..f1f6c7f --- /dev/null +++ b/tests/0009_func/code2.log.ref @@ -0,0 +1,14 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 8 entries (8 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c code 56 { + 3 0x0000d int 81 0a 10 + 4 0x0000f int 81 14 20 + 5 0x00011 prim 13 } + 6 0x00012 prim 63 def + 2 7 0x00013 word 38 66 6f 6f foo diff --git a/tests/0009_func/main.gs b/tests/0009_func/main.gs new file mode 100644 index 0000000..e28368a --- /dev/null +++ b/tests/0009_func/main.gs @@ -0,0 +1,2 @@ +/foo { 10 20 } def +foo diff --git a/tests/0009_func/mem.log.ref b/tests/0009_func/mem.log.ref new file mode 100644 index 0000000..46f2ab3 --- /dev/null +++ b/tests/0009_func/mem.log.ref @@ -0,0 +1,762 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 28] + 8: 187.01, 0x001d6a90[ 72] + 9: 188.01, 0x001d6ae0[ 56] + 10: 0.00, 0x001d6b20[ 56] + 11: 194.01, 0x001d6b60[ 72] + 12: 0.00, 0x001d6bb0[14849104] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> => #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xd, size 5> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.3.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 56 81 0a 81 uQ..Bz.`9fooV... + 14 13 38 64 65 66 38 66 6f 6f ..8def8foo + #187.1.1.array + [ 0] #192.1.1.num.int <10 (0xa)> + [ 1] #193.1.1.num.int <20 (0x14)> + #188.1.1.ctx.func + type 17, ip 0x1a (0x1a) + code #186.1.3.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xd, size 5> + 81 0a 81 14 13 ..... + #192.1.1.num.int <10 (0xa)> + #193.1.1.num.int <20 (0x14)> + #194.1.1.array diff --git a/tests/0009_func/screen.log.ref b/tests/0009_func/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0009_func/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0009_func/trace.log.ref b/tests/0009_func/trace.log.ref new file mode 100644 index 0000000..93e68a7 --- /dev/null +++ b/tests/0009_func/trace.log.ref @@ -0,0 +1,55 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 6, 13[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xd, size 5> + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x12, type 8, 19[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.mem.code.ro +GC: --#190.1.2.mem.code.ro +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x16, type 8, 23[3] +GC: ++#190.1.1.mem.code.ro +== backtrace == + [0] #191.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #190:0x0, type 1, 10 (0xa) +== backtrace == + [0] #191.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <10 (0xa)> +IP: #190:0x2, type 1, 20 (0x14) +== backtrace == + [0] #191.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <20 (0x14)> + [1] #192.1.1.num.int <10 (0xa)> +IP: #190:0x4, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#191.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#190.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <20 (0x14)> + [1] #192.1.1.num.int <10 (0xa)> diff --git a/tests/0010_exit/basic.log.ref b/tests/0010_exit/basic.log.ref new file mode 100644 index 0000000..f94efe7 --- /dev/null +++ b/tests/0010_exit/basic.log.ref @@ -0,0 +1,405 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.loop + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.loop + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.loop + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.5.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.loop + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.loop + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.loop + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.loop +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.5.mem.ro +GC: --#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.5.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.repeat + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.repeat + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.repeat + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.repeat +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.5.mem.ro +GC: --#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2000 (0x7d0)> + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5000 (0x1388)> + [1] #xxxx.1.1.num.int <2000 (0x7d0)> + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.num.int <5000 (0x1388)> + [2] #xxxx.1.1.num.int <2000 (0x7d0)> + [3] #xxxx.1.1.num.int <1000 (0x3e8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.num.int <20 (0x14)> + [7] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.for + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.5.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.for + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.for +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.5.mem.ro +GC: --#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.loop + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.loop + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.loop + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.5.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.loop + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.loop + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10000 (0x2710)> + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.loop + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20000 (0x4e20)> + [1] #xxxx.1.1.num.int <10000 (0x2710)> + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.loop +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.5.mem.ro +GC: --#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20000 (0x4e20)> + [1] #xxxx.1.1.num.int <10000 (0x2710)> + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <50000 (0xc350)> + [1] #xxxx.1.1.num.int <20000 (0x4e20)> + [2] #xxxx.1.1.num.int <10000 (0x2710)> + [3] #xxxx.1.1.num.int <1000 (0x3e8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.num.int <20 (0x14)> + [7] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <50000 (0xc350)> + [1] #xxxx.1.1.num.int <20000 (0x4e20)> + [2] #xxxx.1.1.num.int <10000 (0x2710)> + [3] #xxxx.1.1.num.int <1000 (0x3e8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.num.int <20 (0x14)> + [7] #xxxx.1.1.num.int <10 (0xa)> diff --git a/tests/0010_exit/code.log.ref b/tests/0010_exit/code.log.ref new file mode 100644 index 0000000..2e801da --- /dev/null +++ b/tests/0010_exit/code.log.ref @@ -0,0 +1,61 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 55 entries (55 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c code c6 26 { + 2 3 0x0000e code c6 1a { + 4 0x00010 bool 12 true + 5 0x00011 code c6 13 { + 6 0x00013 int 91 10 27 10000 + 7 0x00016 int 91 20 4e 20000 + 8 0x00019 word 48 65 78 69 74 exit + 9 0x0001e int 91 30 75 30000 + 10 0x00021 int a1 40 9c 00 40000 + 11 0x00025 prim 13 } + 12 0x00026 word 28 69 66 if + 13 0x00029 prim 13 } + 14 0x0002a word 48 6c 6f 6f 70 loop + 3 15 0x0002f int a1 50 c3 00 50000 + 4 16 0x00033 prim 13 } + 17 0x00034 word 38 64 65 66 def + 6 18 0x00038 code c6 15 { + 19 0x0003a bool 12 true + 20 0x0003b code c6 0e { + 21 0x0003d int 81 0a 10 + 22 0x0003f int 81 14 20 + 23 0x00041 word 48 65 78 69 74 exit + 24 0x00046 int 81 1e 30 + 25 0x00048 int 81 28 40 + 26 0x0004a prim 13 } + 27 0x0004b word 28 69 66 if + 28 0x0004e prim 13 } + 29 0x0004f word 48 6c 6f 6f 70 loop + 7 30 0x00054 int 21 2 + 31 0x00055 code c6 18 { + 32 0x00057 bool 12 true + 33 0x00058 code c6 11 { + 34 0x0005a int 81 64 100 + 35 0x0005c int 91 c8 00 200 + 36 0x0005f word 48 65 78 69 74 exit + 37 0x00064 int 91 2c 01 300 + 38 0x00067 int 91 90 01 400 + 39 0x0006a prim 13 } + 40 0x0006b word 28 69 66 if + 41 0x0006e prim 13 } + 42 0x0006f word 68 72 65 70 65 61 74 repeat + 8 43 0x00076 int 91 e8 03 1000 + 44 0x00079 int 91 d0 07 2000 + 45 0x0007c int 91 88 13 5000 + 46 0x0007f code c6 0c { + 47 0x00081 bool 12 true + 48 0x00082 code 66 { + 49 0x00083 word 48 65 78 69 74 exit + 50 0x00088 prim 13 } + 51 0x00089 word 28 69 66 if + 52 0x0008c prim 13 } + 53 0x0008d word 38 66 6f 72 for + 9 54 0x00091 word 38 66 6f 6f foo diff --git a/tests/0010_exit/code1.log.ref b/tests/0010_exit/code1.log.ref new file mode 100644 index 0000000..6ea8b8b --- /dev/null +++ b/tests/0010_exit/code1.log.ref @@ -0,0 +1,61 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 55 entries (55 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c code c6 26 { + 2 3 0x0000e code c6 1a { + 4 0x00010 bool 12 true + 5 0x00011 code c6 13 { + 6 0x00013 int 91 10 27 10000 + 7 0x00016 int 91 20 4e 20000 + 8 0x00019 word 48 65 78 69 74 exit + 9 0x0001e int 91 30 75 30000 + 10 0x00021 int a1 40 9c 00 40000 + 11 0x00025 prim 13 } + 12 0x00026 word 28 69 66 if + 13 0x00029 prim 13 } + 14 0x0002a word 48 6c 6f 6f 70 loop + 3 15 0x0002f int a1 50 c3 00 50000 + 4 16 0x00033 prim 13 } + 17 0x00034 word 38 64 65 66 def + 6 18 0x00038 code c6 10 { + 19 0x0003a bool 12 true + 20 0x0003b code b6 { + 21 0x0003c int 81 0a 10 + 22 0x0003e int 81 14 20 + 23 0x00040 xref 84 27 exit + 24 0x00042 int 81 1e 30 + 25 0x00044 int 81 28 40 + 26 0x00046 prim 13 } + 27 0x00047 xref 84 21 if + 28 0x00049 prim 13 } + 29 0x0004a xref 84 20 loop + 7 30 0x0004c int 21 2 + 31 0x0004d code c6 14 { + 32 0x0004f bool 12 true + 33 0x00050 code c6 0e { + 34 0x00052 int 81 64 100 + 35 0x00054 int 91 c8 00 200 + 36 0x00057 xref 84 3e exit + 37 0x00059 int 91 2c 01 300 + 38 0x0005c int 91 90 01 400 + 39 0x0005f prim 13 } + 40 0x00060 xref 84 3a if + 41 0x00062 prim 13 } + 42 0x00063 word 68 72 65 70 65 61 74 repeat + 8 43 0x0006a int 91 e8 03 1000 + 44 0x0006d int 91 d0 07 2000 + 45 0x00070 int 91 88 13 5000 + 46 0x00073 code 86 { + 47 0x00074 bool 12 true + 48 0x00075 code 36 { + 49 0x00076 xref 84 5d exit + 50 0x00078 prim 13 } + 51 0x00079 xref 84 53 if + 52 0x0007b prim 13 } + 53 0x0007c word 38 66 6f 72 for + 9 54 0x00080 word 38 66 6f 6f foo diff --git a/tests/0010_exit/code2.log.ref b/tests/0010_exit/code2.log.ref new file mode 100644 index 0000000..4ff82dd --- /dev/null +++ b/tests/0010_exit/code2.log.ref @@ -0,0 +1,61 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 55 entries (55 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c code c6 1f { + 2 3 0x0000e code c6 16 { + 4 0x00010 bool 12 true + 5 0x00011 code c6 10 { + 6 0x00013 int 91 10 27 10000 + 7 0x00016 int 91 20 4e 20000 + 8 0x00019 prim 83 0f exit + 9 0x0001b int 91 30 75 30000 + 10 0x0001e int a1 40 9c 00 40000 + 11 0x00022 prim 13 } + 12 0x00023 prim 83 09 if + 13 0x00025 prim 13 } + 14 0x00026 prim 83 0b loop + 3 15 0x00028 int a1 50 c3 00 50000 + 4 16 0x0002c prim 13 } + 17 0x0002d prim 63 def + 6 18 0x0002e code c6 10 { + 19 0x00030 bool 12 true + 20 0x00031 code b6 { + 21 0x00032 int 81 0a 10 + 22 0x00034 int 81 14 20 + 23 0x00036 prim 83 0f exit + 24 0x00038 int 81 1e 30 + 25 0x0003a int 81 28 40 + 26 0x0003c prim 13 } + 27 0x0003d prim 83 09 if + 28 0x0003f prim 13 } + 29 0x00040 prim 83 0b loop + 7 30 0x00042 int 21 2 + 31 0x00043 code c6 14 { + 32 0x00045 bool 12 true + 33 0x00046 code c6 0e { + 34 0x00048 int 81 64 100 + 35 0x0004a int 91 c8 00 200 + 36 0x0004d prim 83 0f exit + 37 0x0004f int 91 2c 01 300 + 38 0x00052 int 91 90 01 400 + 39 0x00055 prim 13 } + 40 0x00056 prim 83 09 if + 41 0x00058 prim 13 } + 42 0x00059 prim 83 0c repeat + 8 43 0x0005b int 91 e8 03 1000 + 44 0x0005e int 91 d0 07 2000 + 45 0x00061 int 91 88 13 5000 + 46 0x00064 code 86 { + 47 0x00065 bool 12 true + 48 0x00066 code 36 { + 49 0x00067 prim 83 0f exit + 50 0x00069 prim 13 } + 51 0x0006a prim 83 09 if + 52 0x0006c prim 13 } + 53 0x0006d prim 83 0d for + 9 54 0x0006f word 38 66 6f 6f foo diff --git a/tests/0010_exit/main.gs b/tests/0010_exit/main.gs new file mode 100644 index 0000000..abf986b --- /dev/null +++ b/tests/0010_exit/main.gs @@ -0,0 +1,9 @@ +/foo { + { true { 10000 20000 exit 30000 40000 } if } loop + 50000 +} def + +{ true { 10 20 exit 30 40 } if } loop +2 { true { 100 200 exit 300 400 } if } repeat +1000 2000 5000 { true { exit } if } for +foo diff --git a/tests/0010_exit/mem.log.ref b/tests/0010_exit/mem.log.ref new file mode 100644 index 0000000..f9803ec --- /dev/null +++ b/tests/0010_exit/mem.log.ref @@ -0,0 +1,784 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 152] + 8: 187.01, 0x001d6b0c[ 72] + 9: 188.01, 0x001d6b5c[ 56] + 10: 0.00, 0x001d6b9c[ 120] + 11: 196.01, 0x001d6c1c[ 72] + 12: 0.00, 0x001d6c6c[14848916] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> => #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xe, size 38> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.3.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f c6 26 c6 1a uQ..Bz.`9foo.&.. + 12 c6 13 91 10 27 91 20 4e 48 65 78 69 74 91 30 .....'. NHexit.0 + 75 a1 40 9c 00 13 28 69 66 13 48 6c 6f 6f 70 a1 u.@...(if.Hloop. + 50 c3 00 13 38 64 65 66 c6 15 12 c6 0e 81 0a 81 P...8def........ + 14 48 65 78 69 74 81 1e 81 28 13 28 69 66 13 48 .Hexit...(.(if.H + 6c 6f 6f 70 21 c6 18 12 c6 11 81 64 91 c8 00 48 loop!......d...H + 65 78 69 74 91 2c 01 91 90 01 13 28 69 66 13 68 exit.,.....(if.h + 72 65 70 65 61 74 91 e8 03 91 d0 07 91 88 13 c6 repeat.......... + 0c 12 66 48 65 78 69 74 13 28 69 66 13 38 66 6f ..fHexit.(if.8fo + 72 38 66 6f 6f r8foo + #187.1.1.array + [ 0] #197.1.1.num.int <10 (0xa)> + [ 1] #198.1.1.num.int <20 (0x14)> + [ 2] #205.1.1.num.int <100 (0x64)> + [ 3] #206.1.1.num.int <200 (0xc8)> + [ 4] #207.1.1.num.int <1000 (0x3e8)> + [ 5] #221.1.1.num.int <10000 (0x2710)> + [ 6] #222.1.1.num.int <20000 (0x4e20)> + [ 7] #223.1.1.num.int <50000 (0xc350)> + #188.1.1.ctx.func + type 17, ip 0x95 (0x95) + code #186.1.3.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xe, size 38> + c6 1a 12 c6 13 91 10 27 91 20 4e 48 65 78 69 74 .......'. NHexit + 91 30 75 a1 40 9c 00 13 28 69 66 13 48 6c 6f 6f .0u.@...(if.Hloo + 70 a1 50 c3 00 13 p.P... + #196.1.1.array + #197.1.1.num.int <10 (0xa)> + #198.1.1.num.int <20 (0x14)> + #205.1.1.num.int <100 (0x64)> + #206.1.1.num.int <200 (0xc8)> + #207.1.1.num.int <1000 (0x3e8)> + #221.1.1.num.int <10000 (0x2710)> + #222.1.1.num.int <20000 (0x4e20)> + #223.1.1.num.int <50000 (0xc350)> diff --git a/tests/0010_exit/screen.log.ref b/tests/0010_exit/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0010_exit/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0010_exit/trace.log.ref b/tests/0010_exit/trace.log.ref new file mode 100644 index 0000000..8db9ff3 --- /dev/null +++ b/tests/0010_exit/trace.log.ref @@ -0,0 +1,446 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 6, 14[38] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xe, size 38> + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x34, type 8, 53[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.mem.code.ro +GC: --#190.1.2.mem.code.ro +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x38, type 6, 58[21] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x3a, size 21> +IP: #186:0x4f, type 8, 80[4] +GC: ++#191.1.1.mem.code.ro +GC: --#191.1.2.mem.code.ro +== backtrace == + [0] #192.1.1.ctx.loop + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #191:0x0, type 2, 1 (0x1) +== backtrace == + [0] #192.1.1.ctx.loop + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.bool <1 (0x1)> +IP: #191:0x1, type 6, 3[14] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #192.1.1.ctx.loop + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x3d, size 14> + [1] #193.1.1.num.bool <1 (0x1)> +IP: #191:0x11, type 8, 18[2] +GC: ++#194.1.1.mem.code.ro +GC: --#194.1.2.mem.code.ro +GC: --#193.1.1.num.bool +== backtrace == + [0] #195.1.1.ctx.block + [1] #192.1.1.ctx.loop + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #194:0x0, type 1, 10 (0xa) +== backtrace == + [0] #195.1.1.ctx.block + [1] #192.1.1.ctx.loop + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <10 (0xa)> +IP: #194:0x2, type 1, 20 (0x14) +== backtrace == + [0] #195.1.1.ctx.block + [1] #192.1.1.ctx.loop + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <20 (0x14)> + [1] #197.1.1.num.int <10 (0xa)> +IP: #194:0x4, type 8, 5[4] +GC: ++#188.1.1.ctx.func +GC: --#195.1.1.ctx.block +GC: --#192.1.1.ctx.loop +GC: --#194.1.1.mem.code.ro +GC: --#188.1.2.ctx.func +GC: --#191.1.1.mem.code.ro +GC: --#186.1.5.mem.ro +GC: --#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <20 (0x14)> + [1] #197.1.1.num.int <10 (0xa)> +IP: #186:0x54, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <2 (0x2)> + [1] #198.1.1.num.int <20 (0x14)> + [2] #197.1.1.num.int <10 (0xa)> +IP: #186:0x55, type 6, 87[24] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x57, size 24> + [1] #199.1.1.num.int <2 (0x2)> + [2] #198.1.1.num.int <20 (0x14)> + [3] #197.1.1.num.int <10 (0xa)> +IP: #186:0x6f, type 8, 112[6] +GC: ++#200.1.1.mem.code.ro +GC: --#200.1.2.mem.code.ro +GC: --#199.1.1.num.int +== backtrace == + [0] #201.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <20 (0x14)> + [1] #197.1.1.num.int <10 (0xa)> +IP: #200:0x0, type 2, 1 (0x1) +== backtrace == + [0] #201.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.bool <1 (0x1)> + [1] #198.1.1.num.int <20 (0x14)> + [2] #197.1.1.num.int <10 (0xa)> +IP: #200:0x1, type 6, 3[17] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #201.1.1.ctx.repeat + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x5a, size 17> + [1] #202.1.1.num.bool <1 (0x1)> + [2] #198.1.1.num.int <20 (0x14)> + [3] #197.1.1.num.int <10 (0xa)> +IP: #200:0x14, type 8, 21[2] +GC: ++#203.1.1.mem.code.ro +GC: --#203.1.2.mem.code.ro +GC: --#202.1.1.num.bool +== backtrace == + [0] #204.1.1.ctx.block + [1] #201.1.1.ctx.repeat + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <20 (0x14)> + [1] #197.1.1.num.int <10 (0xa)> +IP: #203:0x0, type 1, 100 (0x64) +== backtrace == + [0] #204.1.1.ctx.block + [1] #201.1.1.ctx.repeat + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <100 (0x64)> + [1] #198.1.1.num.int <20 (0x14)> + [2] #197.1.1.num.int <10 (0xa)> +IP: #203:0x2, type 1, 200 (0xc8) +== backtrace == + [0] #204.1.1.ctx.block + [1] #201.1.1.ctx.repeat + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <200 (0xc8)> + [1] #205.1.1.num.int <100 (0x64)> + [2] #198.1.1.num.int <20 (0x14)> + [3] #197.1.1.num.int <10 (0xa)> +IP: #203:0x5, type 8, 6[4] +GC: ++#188.1.1.ctx.func +GC: --#204.1.1.ctx.block +GC: --#201.1.1.ctx.repeat +GC: --#203.1.1.mem.code.ro +GC: --#188.1.2.ctx.func +GC: --#200.1.1.mem.code.ro +GC: --#186.1.5.mem.ro +GC: --#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <200 (0xc8)> + [1] #205.1.1.num.int <100 (0x64)> + [2] #198.1.1.num.int <20 (0x14)> + [3] #197.1.1.num.int <10 (0xa)> +IP: #186:0x76, type 1, 1000 (0x3e8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <1000 (0x3e8)> + [1] #206.1.1.num.int <200 (0xc8)> + [2] #205.1.1.num.int <100 (0x64)> + [3] #198.1.1.num.int <20 (0x14)> + [4] #197.1.1.num.int <10 (0xa)> +IP: #186:0x79, type 1, 2000 (0x7d0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <2000 (0x7d0)> + [1] #207.1.1.num.int <1000 (0x3e8)> + [2] #206.1.1.num.int <200 (0xc8)> + [3] #205.1.1.num.int <100 (0x64)> + [4] #198.1.1.num.int <20 (0x14)> + [5] #197.1.1.num.int <10 (0xa)> +IP: #186:0x7c, type 1, 5000 (0x1388) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <5000 (0x1388)> + [1] #208.1.1.num.int <2000 (0x7d0)> + [2] #207.1.1.num.int <1000 (0x3e8)> + [3] #206.1.1.num.int <200 (0xc8)> + [4] #205.1.1.num.int <100 (0x64)> + [5] #198.1.1.num.int <20 (0x14)> + [6] #197.1.1.num.int <10 (0xa)> +IP: #186:0x7f, type 6, 129[12] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x81, size 12> + [1] #209.1.1.num.int <5000 (0x1388)> + [2] #208.1.1.num.int <2000 (0x7d0)> + [3] #207.1.1.num.int <1000 (0x3e8)> + [4] #206.1.1.num.int <200 (0xc8)> + [5] #205.1.1.num.int <100 (0x64)> + [6] #198.1.1.num.int <20 (0x14)> + [7] #197.1.1.num.int <10 (0xa)> +IP: #186:0x8d, type 8, 142[3] +GC: ++#210.1.1.mem.code.ro +GC: --#210.1.2.mem.code.ro +GC: --#209.1.1.num.int +GC: --#208.1.1.num.int +== backtrace == + [0] #211.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <1000 (0x3e8)> + [1] #206.1.1.num.int <200 (0xc8)> + [2] #205.1.1.num.int <100 (0x64)> + [3] #198.1.1.num.int <20 (0x14)> + [4] #197.1.1.num.int <10 (0xa)> +IP: #210:0x0, type 2, 1 (0x1) +== backtrace == + [0] #211.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.bool <1 (0x1)> + [1] #207.1.1.num.int <1000 (0x3e8)> + [2] #206.1.1.num.int <200 (0xc8)> + [3] #205.1.1.num.int <100 (0x64)> + [4] #198.1.1.num.int <20 (0x14)> + [5] #197.1.1.num.int <10 (0xa)> +IP: #210:0x1, type 6, 2[6] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #211.1.1.ctx.for + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x83, size 6> + [1] #212.1.1.num.bool <1 (0x1)> + [2] #207.1.1.num.int <1000 (0x3e8)> + [3] #206.1.1.num.int <200 (0xc8)> + [4] #205.1.1.num.int <100 (0x64)> + [5] #198.1.1.num.int <20 (0x14)> + [6] #197.1.1.num.int <10 (0xa)> +IP: #210:0x8, type 8, 9[2] +GC: ++#213.1.1.mem.code.ro +GC: --#213.1.2.mem.code.ro +GC: --#212.1.1.num.bool +== backtrace == + [0] #214.1.1.ctx.block + [1] #211.1.1.ctx.for + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <1000 (0x3e8)> + [1] #206.1.1.num.int <200 (0xc8)> + [2] #205.1.1.num.int <100 (0x64)> + [3] #198.1.1.num.int <20 (0x14)> + [4] #197.1.1.num.int <10 (0xa)> +IP: #213:0x0, type 8, 1[4] +GC: ++#188.1.1.ctx.func +GC: --#214.1.1.ctx.block +GC: --#211.1.1.ctx.for +GC: --#213.1.1.mem.code.ro +GC: --#188.1.2.ctx.func +GC: --#210.1.1.mem.code.ro +GC: --#186.1.5.mem.ro +GC: --#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <1000 (0x3e8)> + [1] #206.1.1.num.int <200 (0xc8)> + [2] #205.1.1.num.int <100 (0x64)> + [3] #198.1.1.num.int <20 (0x14)> + [4] #197.1.1.num.int <10 (0xa)> +IP: #186:0x91, type 8, 146[3] +GC: ++#190.1.1.mem.code.ro +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <1000 (0x3e8)> + [1] #206.1.1.num.int <200 (0xc8)> + [2] #205.1.1.num.int <100 (0x64)> + [3] #198.1.1.num.int <20 (0x14)> + [4] #197.1.1.num.int <10 (0xa)> +IP: #190:0x0, type 6, 2[26] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x10, size 26> + [1] #207.1.1.num.int <1000 (0x3e8)> + [2] #206.1.1.num.int <200 (0xc8)> + [3] #205.1.1.num.int <100 (0x64)> + [4] #198.1.1.num.int <20 (0x14)> + [5] #197.1.1.num.int <10 (0xa)> +IP: #190:0x1c, type 8, 29[4] +GC: ++#216.1.1.mem.code.ro +GC: --#216.1.2.mem.code.ro +== backtrace == + [0] #217.1.1.ctx.loop + [1] #215.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <1000 (0x3e8)> + [1] #206.1.1.num.int <200 (0xc8)> + [2] #205.1.1.num.int <100 (0x64)> + [3] #198.1.1.num.int <20 (0x14)> + [4] #197.1.1.num.int <10 (0xa)> +IP: #216:0x0, type 2, 1 (0x1) +== backtrace == + [0] #217.1.1.ctx.loop + [1] #215.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.bool <1 (0x1)> + [1] #207.1.1.num.int <1000 (0x3e8)> + [2] #206.1.1.num.int <200 (0xc8)> + [3] #205.1.1.num.int <100 (0x64)> + [4] #198.1.1.num.int <20 (0x14)> + [5] #197.1.1.num.int <10 (0xa)> +IP: #216:0x1, type 6, 3[19] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #217.1.1.ctx.loop + [1] #215.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x13, size 19> + [1] #218.1.1.num.bool <1 (0x1)> + [2] #207.1.1.num.int <1000 (0x3e8)> + [3] #206.1.1.num.int <200 (0xc8)> + [4] #205.1.1.num.int <100 (0x64)> + [5] #198.1.1.num.int <20 (0x14)> + [6] #197.1.1.num.int <10 (0xa)> +IP: #216:0x16, type 8, 23[2] +GC: ++#219.1.1.mem.code.ro +GC: --#219.1.2.mem.code.ro +GC: --#218.1.1.num.bool +== backtrace == + [0] #220.1.1.ctx.block + [1] #217.1.1.ctx.loop + [2] #215.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <1000 (0x3e8)> + [1] #206.1.1.num.int <200 (0xc8)> + [2] #205.1.1.num.int <100 (0x64)> + [3] #198.1.1.num.int <20 (0x14)> + [4] #197.1.1.num.int <10 (0xa)> +IP: #219:0x0, type 1, 10000 (0x2710) +== backtrace == + [0] #220.1.1.ctx.block + [1] #217.1.1.ctx.loop + [2] #215.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.int <10000 (0x2710)> + [1] #207.1.1.num.int <1000 (0x3e8)> + [2] #206.1.1.num.int <200 (0xc8)> + [3] #205.1.1.num.int <100 (0x64)> + [4] #198.1.1.num.int <20 (0x14)> + [5] #197.1.1.num.int <10 (0xa)> +IP: #219:0x3, type 1, 20000 (0x4e20) +== backtrace == + [0] #220.1.1.ctx.block + [1] #217.1.1.ctx.loop + [2] #215.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.int <20000 (0x4e20)> + [1] #221.1.1.num.int <10000 (0x2710)> + [2] #207.1.1.num.int <1000 (0x3e8)> + [3] #206.1.1.num.int <200 (0xc8)> + [4] #205.1.1.num.int <100 (0x64)> + [5] #198.1.1.num.int <20 (0x14)> + [6] #197.1.1.num.int <10 (0xa)> +IP: #219:0x6, type 8, 7[4] +GC: ++#215.1.1.ctx.func +GC: --#220.1.1.ctx.block +GC: --#217.1.1.ctx.loop +GC: --#219.1.1.mem.code.ro +GC: --#215.1.2.ctx.func +GC: --#216.1.1.mem.code.ro +GC: --#186.1.5.mem.ro +GC: --#186.1.4.mem.ro +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.int <20000 (0x4e20)> + [1] #221.1.1.num.int <10000 (0x2710)> + [2] #207.1.1.num.int <1000 (0x3e8)> + [3] #206.1.1.num.int <200 (0xc8)> + [4] #205.1.1.num.int <100 (0x64)> + [5] #198.1.1.num.int <20 (0x14)> + [6] #197.1.1.num.int <10 (0xa)> +IP: #190:0x21, type 1, 50000 (0xc350) +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.num.int <50000 (0xc350)> + [1] #222.1.1.num.int <20000 (0x4e20)> + [2] #221.1.1.num.int <10000 (0x2710)> + [3] #207.1.1.num.int <1000 (0x3e8)> + [4] #206.1.1.num.int <200 (0xc8)> + [5] #205.1.1.num.int <100 (0x64)> + [6] #198.1.1.num.int <20 (0x14)> + [7] #197.1.1.num.int <10 (0xa)> +IP: #190:0x25, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#215.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#190.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.num.int <50000 (0xc350)> + [1] #222.1.1.num.int <20000 (0x4e20)> + [2] #221.1.1.num.int <10000 (0x2710)> + [3] #207.1.1.num.int <1000 (0x3e8)> + [4] #206.1.1.num.int <200 (0xc8)> + [5] #205.1.1.num.int <100 (0x64)> + [6] #198.1.1.num.int <20 (0x14)> + [7] #197.1.1.num.int <10 (0xa)> diff --git a/tests/0011_return/basic.log.ref b/tests/0011_return/basic.log.ref new file mode 100644 index 0000000..7c7ba0b --- /dev/null +++ b/tests/0011_return/basic.log.ref @@ -0,0 +1,1370 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_1"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo_2"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.5.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_3"> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.7.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo_3"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "foo_4"> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.9.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_4"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_5"> +GC: ++#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.11.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "foo_5"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.12.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.12.mem.ro> + [1] #xxxx.1.1.num.int <40 (0x28)> + [2] #xxxx.1.1.num.int <30 (0x1e)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.loop + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.loop + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <40 (0x28)> + [2] #xxxx.1.1.num.int <30 (0x1e)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.loop + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.13.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <40 (0x28)> + [3] #xxxx.1.1.num.int <30 (0x1e)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.loop + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.loop + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <40 (0x28)> + [2] #xxxx.1.1.num.int <30 (0x1e)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.loop + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <40 (0x28)> + [3] #xxxx.1.1.num.int <30 (0x1e)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.loop +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.13.mem.ro +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <40 (0x28)> + [3] #xxxx.1.1.num.int <30 (0x1e)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <40 (0x28)> + [3] #xxxx.1.1.num.int <30 (0x1e)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <40 (0x28)> + [4] #xxxx.1.1.num.int <30 (0x1e)> + [5] #xxxx.1.1.num.int <5 (0x5)> + [6] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.12.mem.ro> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <40 (0x28)> + [5] #xxxx.1.1.num.int <30 (0x1e)> + [6] #xxxx.1.1.num.int <5 (0x5)> + [7] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <40 (0x28)> + [3] #xxxx.1.1.num.int <30 (0x1e)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <40 (0x28)> + [4] #xxxx.1.1.num.int <30 (0x1e)> + [5] #xxxx.1.1.num.int <5 (0x5)> + [6] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.13.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <40 (0x28)> + [5] #xxxx.1.1.num.int <30 (0x1e)> + [6] #xxxx.1.1.num.int <5 (0x5)> + [7] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.repeat + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <40 (0x28)> + [3] #xxxx.1.1.num.int <30 (0x1e)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.repeat + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <40 (0x28)> + [4] #xxxx.1.1.num.int <30 (0x1e)> + [5] #xxxx.1.1.num.int <5 (0x5)> + [6] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.repeat + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <40 (0x28)> + [4] #xxxx.1.1.num.int <30 (0x1e)> + [5] #xxxx.1.1.num.int <5 (0x5)> + [6] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.repeat + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <40 (0x28)> + [5] #xxxx.1.1.num.int <30 (0x1e)> + [6] #xxxx.1.1.num.int <5 (0x5)> + [7] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.repeat + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <40 (0x28)> + [6] #xxxx.1.1.num.int <30 (0x1e)> + [7] #xxxx.1.1.num.int <5 (0x5)> + [8] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.block +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.repeat + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <40 (0x28)> + [6] #xxxx.1.1.num.int <30 (0x1e)> + [7] #xxxx.1.1.num.int <5 (0x5)> + [8] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.repeat + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2000 (0x7d0)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> + [3] #xxxx.1.1.num.int <1000 (0x3e8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.num.int <40 (0x28)> + [7] #xxxx.1.1.num.int <30 (0x1e)> + [8] #xxxx.1.1.num.int <5 (0x5)> + [9] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.repeat +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.13.mem.ro +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2000 (0x7d0)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> + [3] #xxxx.1.1.num.int <1000 (0x3e8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.num.int <40 (0x28)> + [7] #xxxx.1.1.num.int <30 (0x1e)> + [8] #xxxx.1.1.num.int <5 (0x5)> + [9] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2000 (0x7d0)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> + [3] #xxxx.1.1.num.int <1000 (0x3e8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.num.int <40 (0x28)> + [7] #xxxx.1.1.num.int <30 (0x1e)> + [8] #xxxx.1.1.num.int <5 (0x5)> + [9] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.int <2000 (0x7d0)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <1000 (0x3e8)> + [5] #xxxx.1.1.num.int <200 (0xc8)> + [6] #xxxx.1.1.num.int <100 (0x64)> + [7] #xxxx.1.1.num.int <40 (0x28)> + [8] #xxxx.1.1.num.int <30 (0x1e)> + [9] #xxxx.1.1.num.int <5 (0x5)> + [10] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.num.int <2000 (0x7d0)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <1000 (0x3e8)> + [6] #xxxx.1.1.num.int <200 (0xc8)> + [7] #xxxx.1.1.num.int <100 (0x64)> + [8] #xxxx.1.1.num.int <40 (0x28)> + [9] #xxxx.1.1.num.int <30 (0x1e)> + [10] #xxxx.1.1.num.int <5 (0x5)> + [11] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.num.int <2000 (0x7d0)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> + [6] #xxxx.1.1.num.int <1000 (0x3e8)> + [7] #xxxx.1.1.num.int <200 (0xc8)> + [8] #xxxx.1.1.num.int <100 (0x64)> + [9] #xxxx.1.1.num.int <40 (0x28)> + [10] #xxxx.1.1.num.int <30 (0x1e)> + [11] #xxxx.1.1.num.int <5 (0x5)> + [12] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.num.int <2000 (0x7d0)> + [5] #xxxx.1.1.num.int <5 (0x5)> + [6] #xxxx.1.1.num.int <4 (0x4)> + [7] #xxxx.1.1.num.int <1000 (0x3e8)> + [8] #xxxx.1.1.num.int <200 (0xc8)> + [9] #xxxx.1.1.num.int <100 (0x64)> + [10] #xxxx.1.1.num.int <40 (0x28)> + [11] #xxxx.1.1.num.int <30 (0x1e)> + [12] #xxxx.1.1.num.int <5 (0x5)> + [13] #xxxx.1.1.num.int <4 (0x4)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.int <2000 (0x7d0)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <1000 (0x3e8)> + [5] #xxxx.1.1.num.int <200 (0xc8)> + [6] #xxxx.1.1.num.int <100 (0x64)> + [7] #xxxx.1.1.num.int <40 (0x28)> + [8] #xxxx.1.1.num.int <30 (0x1e)> + [9] #xxxx.1.1.num.int <5 (0x5)> + [10] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.12.mem.ro> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.int <2000 (0x7d0)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <1000 (0x3e8)> + [6] #xxxx.1.1.num.int <200 (0xc8)> + [7] #xxxx.1.1.num.int <100 (0x64)> + [8] #xxxx.1.1.num.int <40 (0x28)> + [9] #xxxx.1.1.num.int <30 (0x1e)> + [10] #xxxx.1.1.num.int <5 (0x5)> + [11] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <2000 (0x7d0)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <1000 (0x3e8)> + [5] #xxxx.1.1.num.int <200 (0xc8)> + [6] #xxxx.1.1.num.int <100 (0x64)> + [7] #xxxx.1.1.num.int <40 (0x28)> + [8] #xxxx.1.1.num.int <30 (0x1e)> + [9] #xxxx.1.1.num.int <5 (0x5)> + [10] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.2.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <2000 (0x7d0)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <1000 (0x3e8)> + [6] #xxxx.1.1.num.int <200 (0xc8)> + [7] #xxxx.1.1.num.int <100 (0x64)> + [8] #xxxx.1.1.num.int <40 (0x28)> + [9] #xxxx.1.1.num.int <30 (0x1e)> + [10] #xxxx.1.1.num.int <5 (0x5)> + [11] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.13.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.2.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <2000 (0x7d0)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> + [6] #xxxx.1.1.num.int <1000 (0x3e8)> + [7] #xxxx.1.1.num.int <200 (0xc8)> + [8] #xxxx.1.1.num.int <100 (0x64)> + [9] #xxxx.1.1.num.int <40 (0x28)> + [10] #xxxx.1.1.num.int <30 (0x1e)> + [11] #xxxx.1.1.num.int <5 (0x5)> + [12] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.forall + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <2000 (0x7d0)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <1000 (0x3e8)> + [5] #xxxx.1.1.num.int <200 (0xc8)> + [6] #xxxx.1.1.num.int <100 (0x64)> + [7] #xxxx.1.1.num.int <40 (0x28)> + [8] #xxxx.1.1.num.int <30 (0x1e)> + [9] #xxxx.1.1.num.int <5 (0x5)> + [10] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.forall + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10000 (0x2710)> + [1] #xxxx.1.2.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <2000 (0x7d0)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <1000 (0x3e8)> + [6] #xxxx.1.1.num.int <200 (0xc8)> + [7] #xxxx.1.1.num.int <100 (0x64)> + [8] #xxxx.1.1.num.int <40 (0x28)> + [9] #xxxx.1.1.num.int <30 (0x1e)> + [10] #xxxx.1.1.num.int <5 (0x5)> + [11] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.forall + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20000 (0x4e20)> + [1] #xxxx.1.1.num.int <10000 (0x2710)> + [2] #xxxx.1.2.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <2000 (0x7d0)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> + [6] #xxxx.1.1.num.int <1000 (0x3e8)> + [7] #xxxx.1.1.num.int <200 (0xc8)> + [8] #xxxx.1.1.num.int <100 (0x64)> + [9] #xxxx.1.1.num.int <40 (0x28)> + [10] #xxxx.1.1.num.int <30 (0x1e)> + [11] #xxxx.1.1.num.int <5 (0x5)> + [12] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.forall + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20000 (0x4e20)> + [1] #xxxx.1.1.num.int <10000 (0x2710)> + [2] #xxxx.1.2.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <2000 (0x7d0)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> + [6] #xxxx.1.1.num.int <1000 (0x3e8)> + [7] #xxxx.1.1.num.int <200 (0xc8)> + [8] #xxxx.1.1.num.int <100 (0x64)> + [9] #xxxx.1.1.num.int <40 (0x28)> + [10] #xxxx.1.1.num.int <30 (0x1e)> + [11] #xxxx.1.1.num.int <5 (0x5)> + [12] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.forall + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.num.int <20000 (0x4e20)> + [2] #xxxx.1.1.num.int <10000 (0x2710)> + [3] #xxxx.1.2.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <2000 (0x7d0)> + [5] #xxxx.1.1.num.int <5 (0x5)> + [6] #xxxx.1.1.num.int <4 (0x4)> + [7] #xxxx.1.1.num.int <1000 (0x3e8)> + [8] #xxxx.1.1.num.int <200 (0xc8)> + [9] #xxxx.1.1.num.int <100 (0x64)> + [10] #xxxx.1.1.num.int <40 (0x28)> + [11] #xxxx.1.1.num.int <30 (0x1e)> + [12] #xxxx.1.1.num.int <5 (0x5)> + [13] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.forall + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <20000 (0x4e20)> + [3] #xxxx.1.1.num.int <10000 (0x2710)> + [4] #xxxx.1.2.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <2000 (0x7d0)> + [6] #xxxx.1.1.num.int <5 (0x5)> + [7] #xxxx.1.1.num.int <4 (0x4)> + [8] #xxxx.1.1.num.int <1000 (0x3e8)> + [9] #xxxx.1.1.num.int <200 (0xc8)> + [10] #xxxx.1.1.num.int <100 (0x64)> + [11] #xxxx.1.1.num.int <40 (0x28)> + [12] #xxxx.1.1.num.int <30 (0x1e)> + [13] #xxxx.1.1.num.int <5 (0x5)> + [14] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.block +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.forall + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <20000 (0x4e20)> + [3] #xxxx.1.1.num.int <10000 (0x2710)> + [4] #xxxx.1.2.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <2000 (0x7d0)> + [6] #xxxx.1.1.num.int <5 (0x5)> + [7] #xxxx.1.1.num.int <4 (0x4)> + [8] #xxxx.1.1.num.int <1000 (0x3e8)> + [9] #xxxx.1.1.num.int <200 (0xc8)> + [10] #xxxx.1.1.num.int <100 (0x64)> + [11] #xxxx.1.1.num.int <40 (0x28)> + [12] #xxxx.1.1.num.int <30 (0x1e)> + [13] #xxxx.1.1.num.int <5 (0x5)> + [14] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.forall + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30000 (0x7530)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> + [3] #xxxx.1.1.num.int <20000 (0x4e20)> + [4] #xxxx.1.1.num.int <10000 (0x2710)> + [5] #xxxx.1.2.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <2000 (0x7d0)> + [7] #xxxx.1.1.num.int <5 (0x5)> + [8] #xxxx.1.1.num.int <4 (0x4)> + [9] #xxxx.1.1.num.int <1000 (0x3e8)> + [10] #xxxx.1.1.num.int <200 (0xc8)> + [11] #xxxx.1.1.num.int <100 (0x64)> + [12] #xxxx.1.1.num.int <40 (0x28)> + [13] #xxxx.1.1.num.int <30 (0x1e)> + [14] #xxxx.1.1.num.int <5 (0x5)> + [15] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.forall + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30000 (0x7530)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> + [3] #xxxx.1.1.num.int <20000 (0x4e20)> + [4] #xxxx.1.1.num.int <10000 (0x2710)> + [5] #xxxx.1.2.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <2000 (0x7d0)> + [7] #xxxx.1.1.num.int <5 (0x5)> + [8] #xxxx.1.1.num.int <4 (0x4)> + [9] #xxxx.1.1.num.int <1000 (0x3e8)> + [10] #xxxx.1.1.num.int <200 (0xc8)> + [11] #xxxx.1.1.num.int <100 (0x64)> + [12] #xxxx.1.1.num.int <40 (0x28)> + [13] #xxxx.1.1.num.int <30 (0x1e)> + [14] #xxxx.1.1.num.int <5 (0x5)> + [15] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.forall + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <30000 (0x7530)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <20000 (0x4e20)> + [5] #xxxx.1.1.num.int <10000 (0x2710)> + [6] #xxxx.1.2.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <2000 (0x7d0)> + [8] #xxxx.1.1.num.int <5 (0x5)> + [9] #xxxx.1.1.num.int <4 (0x4)> + [10] #xxxx.1.1.num.int <1000 (0x3e8)> + [11] #xxxx.1.1.num.int <200 (0xc8)> + [12] #xxxx.1.1.num.int <100 (0x64)> + [13] #xxxx.1.1.num.int <40 (0x28)> + [14] #xxxx.1.1.num.int <30 (0x1e)> + [15] #xxxx.1.1.num.int <5 (0x5)> + [16] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.13.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.forall + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.14.mem.ro> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <30000 (0x7530)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <20000 (0x4e20)> + [6] #xxxx.1.1.num.int <10000 (0x2710)> + [7] #xxxx.1.2.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <2000 (0x7d0)> + [9] #xxxx.1.1.num.int <5 (0x5)> + [10] #xxxx.1.1.num.int <4 (0x4)> + [11] #xxxx.1.1.num.int <1000 (0x3e8)> + [12] #xxxx.1.1.num.int <200 (0xc8)> + [13] #xxxx.1.1.num.int <100 (0x64)> + [14] #xxxx.1.1.num.int <40 (0x28)> + [15] #xxxx.1.1.num.int <30 (0x1e)> + [16] #xxxx.1.1.num.int <5 (0x5)> + [17] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.block + [3] #xxxx.1.1.ctx.forall + [4] #xxxx.1.1.ctx.func + [5] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30000 (0x7530)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> + [3] #xxxx.1.1.num.int <20000 (0x4e20)> + [4] #xxxx.1.1.num.int <10000 (0x2710)> + [5] #xxxx.1.2.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <2000 (0x7d0)> + [7] #xxxx.1.1.num.int <5 (0x5)> + [8] #xxxx.1.1.num.int <4 (0x4)> + [9] #xxxx.1.1.num.int <1000 (0x3e8)> + [10] #xxxx.1.1.num.int <200 (0xc8)> + [11] #xxxx.1.1.num.int <100 (0x64)> + [12] #xxxx.1.1.num.int <40 (0x28)> + [13] #xxxx.1.1.num.int <30 (0x1e)> + [14] #xxxx.1.1.num.int <5 (0x5)> + [15] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.block + [3] #xxxx.1.1.ctx.forall + [4] #xxxx.1.1.ctx.func + [5] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <30000 (0x7530)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <20000 (0x4e20)> + [5] #xxxx.1.1.num.int <10000 (0x2710)> + [6] #xxxx.1.2.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <2000 (0x7d0)> + [8] #xxxx.1.1.num.int <5 (0x5)> + [9] #xxxx.1.1.num.int <4 (0x4)> + [10] #xxxx.1.1.num.int <1000 (0x3e8)> + [11] #xxxx.1.1.num.int <200 (0xc8)> + [12] #xxxx.1.1.num.int <100 (0x64)> + [13] #xxxx.1.1.num.int <40 (0x28)> + [14] #xxxx.1.1.num.int <30 (0x1e)> + [15] #xxxx.1.1.num.int <5 (0x5)> + [16] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.14.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.repeat + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.block + [3] #xxxx.1.1.ctx.forall + [4] #xxxx.1.1.ctx.func + [5] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.15.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <30000 (0x7530)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <20000 (0x4e20)> + [6] #xxxx.1.1.num.int <10000 (0x2710)> + [7] #xxxx.1.2.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <2000 (0x7d0)> + [9] #xxxx.1.1.num.int <5 (0x5)> + [10] #xxxx.1.1.num.int <4 (0x4)> + [11] #xxxx.1.1.num.int <1000 (0x3e8)> + [12] #xxxx.1.1.num.int <200 (0xc8)> + [13] #xxxx.1.1.num.int <100 (0x64)> + [14] #xxxx.1.1.num.int <40 (0x28)> + [15] #xxxx.1.1.num.int <30 (0x1e)> + [16] #xxxx.1.1.num.int <5 (0x5)> + [17] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.repeat + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.block + [4] #xxxx.1.1.ctx.forall + [5] #xxxx.1.1.ctx.func + [6] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30000 (0x7530)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> + [3] #xxxx.1.1.num.int <20000 (0x4e20)> + [4] #xxxx.1.1.num.int <10000 (0x2710)> + [5] #xxxx.1.2.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <2000 (0x7d0)> + [7] #xxxx.1.1.num.int <5 (0x5)> + [8] #xxxx.1.1.num.int <4 (0x4)> + [9] #xxxx.1.1.num.int <1000 (0x3e8)> + [10] #xxxx.1.1.num.int <200 (0xc8)> + [11] #xxxx.1.1.num.int <100 (0x64)> + [12] #xxxx.1.1.num.int <40 (0x28)> + [13] #xxxx.1.1.num.int <30 (0x1e)> + [14] #xxxx.1.1.num.int <5 (0x5)> + [15] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.repeat + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.block + [4] #xxxx.1.1.ctx.forall + [5] #xxxx.1.1.ctx.func + [6] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <30000 (0x7530)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <20000 (0x4e20)> + [5] #xxxx.1.1.num.int <10000 (0x2710)> + [6] #xxxx.1.2.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <2000 (0x7d0)> + [8] #xxxx.1.1.num.int <5 (0x5)> + [9] #xxxx.1.1.num.int <4 (0x4)> + [10] #xxxx.1.1.num.int <1000 (0x3e8)> + [11] #xxxx.1.1.num.int <200 (0xc8)> + [12] #xxxx.1.1.num.int <100 (0x64)> + [13] #xxxx.1.1.num.int <40 (0x28)> + [14] #xxxx.1.1.num.int <30 (0x1e)> + [15] #xxxx.1.1.num.int <5 (0x5)> + [16] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.repeat + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.block + [5] #xxxx.1.1.ctx.forall + [6] #xxxx.1.1.ctx.func + [7] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <30000 (0x7530)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <20000 (0x4e20)> + [5] #xxxx.1.1.num.int <10000 (0x2710)> + [6] #xxxx.1.2.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <2000 (0x7d0)> + [8] #xxxx.1.1.num.int <5 (0x5)> + [9] #xxxx.1.1.num.int <4 (0x4)> + [10] #xxxx.1.1.num.int <1000 (0x3e8)> + [11] #xxxx.1.1.num.int <200 (0xc8)> + [12] #xxxx.1.1.num.int <100 (0x64)> + [13] #xxxx.1.1.num.int <40 (0x28)> + [14] #xxxx.1.1.num.int <30 (0x1e)> + [15] #xxxx.1.1.num.int <5 (0x5)> + [16] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.repeat + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.block + [5] #xxxx.1.1.ctx.forall + [6] #xxxx.1.1.ctx.func + [7] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.1.num.int <30000 (0x7530)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <20000 (0x4e20)> + [6] #xxxx.1.1.num.int <10000 (0x2710)> + [7] #xxxx.1.2.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <2000 (0x7d0)> + [9] #xxxx.1.1.num.int <5 (0x5)> + [10] #xxxx.1.1.num.int <4 (0x4)> + [11] #xxxx.1.1.num.int <1000 (0x3e8)> + [12] #xxxx.1.1.num.int <200 (0xc8)> + [13] #xxxx.1.1.num.int <100 (0x64)> + [14] #xxxx.1.1.num.int <40 (0x28)> + [15] #xxxx.1.1.num.int <30 (0x1e)> + [16] #xxxx.1.1.num.int <5 (0x5)> + [17] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.block + [2] #xxxx.1.1.ctx.repeat + [3] #xxxx.1.1.ctx.func + [4] #xxxx.1.1.ctx.block + [5] #xxxx.1.1.ctx.forall + [6] #xxxx.1.1.ctx.func + [7] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <30000 (0x7530)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> + [6] #xxxx.1.1.num.int <20000 (0x4e20)> + [7] #xxxx.1.1.num.int <10000 (0x2710)> + [8] #xxxx.1.2.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <2000 (0x7d0)> + [10] #xxxx.1.1.num.int <5 (0x5)> + [11] #xxxx.1.1.num.int <4 (0x4)> + [12] #xxxx.1.1.num.int <1000 (0x3e8)> + [13] #xxxx.1.1.num.int <200 (0xc8)> + [14] #xxxx.1.1.num.int <100 (0x64)> + [15] #xxxx.1.1.num.int <40 (0x28)> + [16] #xxxx.1.1.num.int <30 (0x1e)> + [17] #xxxx.1.1.num.int <5 (0x5)> + [18] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.block +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.repeat + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.block + [4] #xxxx.1.1.ctx.forall + [5] #xxxx.1.1.ctx.func + [6] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <30000 (0x7530)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> + [6] #xxxx.1.1.num.int <20000 (0x4e20)> + [7] #xxxx.1.1.num.int <10000 (0x2710)> + [8] #xxxx.1.2.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <2000 (0x7d0)> + [10] #xxxx.1.1.num.int <5 (0x5)> + [11] #xxxx.1.1.num.int <4 (0x4)> + [12] #xxxx.1.1.num.int <1000 (0x3e8)> + [13] #xxxx.1.1.num.int <200 (0xc8)> + [14] #xxxx.1.1.num.int <100 (0x64)> + [15] #xxxx.1.1.num.int <40 (0x28)> + [16] #xxxx.1.1.num.int <30 (0x1e)> + [17] #xxxx.1.1.num.int <5 (0x5)> + [18] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.repeat + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.block + [4] #xxxx.1.1.ctx.forall + [5] #xxxx.1.1.ctx.func + [6] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2000 (0x7d0)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> + [3] #xxxx.1.1.num.int <1000 (0x3e8)> + [4] #xxxx.1.1.num.int <30000 (0x7530)> + [5] #xxxx.1.1.num.int <5 (0x5)> + [6] #xxxx.1.1.num.int <4 (0x4)> + [7] #xxxx.1.1.num.int <20000 (0x4e20)> + [8] #xxxx.1.1.num.int <10000 (0x2710)> + [9] #xxxx.1.2.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <2000 (0x7d0)> + [11] #xxxx.1.1.num.int <5 (0x5)> + [12] #xxxx.1.1.num.int <4 (0x4)> + [13] #xxxx.1.1.num.int <1000 (0x3e8)> + [14] #xxxx.1.1.num.int <200 (0xc8)> + [15] #xxxx.1.1.num.int <100 (0x64)> + [16] #xxxx.1.1.num.int <40 (0x28)> + [17] #xxxx.1.1.num.int <30 (0x1e)> + [18] #xxxx.1.1.num.int <5 (0x5)> + [19] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.repeat +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.15.mem.ro +GC: --#xxxx.1.2.ctx.block +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.14.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.forall + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2000 (0x7d0)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> + [3] #xxxx.1.1.num.int <1000 (0x3e8)> + [4] #xxxx.1.1.num.int <30000 (0x7530)> + [5] #xxxx.1.1.num.int <5 (0x5)> + [6] #xxxx.1.1.num.int <4 (0x4)> + [7] #xxxx.1.1.num.int <20000 (0x4e20)> + [8] #xxxx.1.1.num.int <10000 (0x2710)> + [9] #xxxx.1.2.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <2000 (0x7d0)> + [11] #xxxx.1.1.num.int <5 (0x5)> + [12] #xxxx.1.1.num.int <4 (0x4)> + [13] #xxxx.1.1.num.int <1000 (0x3e8)> + [14] #xxxx.1.1.num.int <200 (0xc8)> + [15] #xxxx.1.1.num.int <100 (0x64)> + [16] #xxxx.1.1.num.int <40 (0x28)> + [17] #xxxx.1.1.num.int <30 (0x1e)> + [18] #xxxx.1.1.num.int <5 (0x5)> + [19] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.block + [1] #xxxx.1.1.ctx.forall + [2] #xxxx.1.1.ctx.func + [3] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40000 (0x9c40)> + [1] #xxxx.1.1.num.int <2000 (0x7d0)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <1000 (0x3e8)> + [5] #xxxx.1.1.num.int <30000 (0x7530)> + [6] #xxxx.1.1.num.int <5 (0x5)> + [7] #xxxx.1.1.num.int <4 (0x4)> + [8] #xxxx.1.1.num.int <20000 (0x4e20)> + [9] #xxxx.1.1.num.int <10000 (0x2710)> + [10] #xxxx.1.2.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <2000 (0x7d0)> + [12] #xxxx.1.1.num.int <5 (0x5)> + [13] #xxxx.1.1.num.int <4 (0x4)> + [14] #xxxx.1.1.num.int <1000 (0x3e8)> + [15] #xxxx.1.1.num.int <200 (0xc8)> + [16] #xxxx.1.1.num.int <100 (0x64)> + [17] #xxxx.1.1.num.int <40 (0x28)> + [18] #xxxx.1.1.num.int <30 (0x1e)> + [19] #xxxx.1.1.num.int <5 (0x5)> + [20] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.block +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.array +GC: --#xxxx.1.13.mem.ro +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.12.mem.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40000 (0x9c40)> + [1] #xxxx.1.1.num.int <2000 (0x7d0)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <1000 (0x3e8)> + [5] #xxxx.1.1.num.int <30000 (0x7530)> + [6] #xxxx.1.1.num.int <5 (0x5)> + [7] #xxxx.1.1.num.int <4 (0x4)> + [8] #xxxx.1.1.num.int <20000 (0x4e20)> + [9] #xxxx.1.1.num.int <10000 (0x2710)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <2000 (0x7d0)> + [12] #xxxx.1.1.num.int <5 (0x5)> + [13] #xxxx.1.1.num.int <4 (0x4)> + [14] #xxxx.1.1.num.int <1000 (0x3e8)> + [15] #xxxx.1.1.num.int <200 (0xc8)> + [16] #xxxx.1.1.num.int <100 (0x64)> + [17] #xxxx.1.1.num.int <40 (0x28)> + [18] #xxxx.1.1.num.int <30 (0x1e)> + [19] #xxxx.1.1.num.int <5 (0x5)> + [20] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <7 (0x7)> + [1] #xxxx.1.1.num.int <40000 (0x9c40)> + [2] #xxxx.1.1.num.int <2000 (0x7d0)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <1000 (0x3e8)> + [6] #xxxx.1.1.num.int <30000 (0x7530)> + [7] #xxxx.1.1.num.int <5 (0x5)> + [8] #xxxx.1.1.num.int <4 (0x4)> + [9] #xxxx.1.1.num.int <20000 (0x4e20)> + [10] #xxxx.1.1.num.int <10000 (0x2710)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <2000 (0x7d0)> + [13] #xxxx.1.1.num.int <5 (0x5)> + [14] #xxxx.1.1.num.int <4 (0x4)> + [15] #xxxx.1.1.num.int <1000 (0x3e8)> + [16] #xxxx.1.1.num.int <200 (0xc8)> + [17] #xxxx.1.1.num.int <100 (0x64)> + [18] #xxxx.1.1.num.int <40 (0x28)> + [19] #xxxx.1.1.num.int <30 (0x1e)> + [20] #xxxx.1.1.num.int <5 (0x5)> + [21] #xxxx.1.1.num.int <4 (0x4)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <8 (0x8)> + [1] #xxxx.2.1.num.int <7 (0x7)> + [2] #xxxx.1.1.num.int <40000 (0x9c40)> + [3] #xxxx.1.1.num.int <2000 (0x7d0)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> + [6] #xxxx.1.1.num.int <1000 (0x3e8)> + [7] #xxxx.1.1.num.int <30000 (0x7530)> + [8] #xxxx.1.1.num.int <5 (0x5)> + [9] #xxxx.1.1.num.int <4 (0x4)> + [10] #xxxx.1.1.num.int <20000 (0x4e20)> + [11] #xxxx.1.1.num.int <10000 (0x2710)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <2000 (0x7d0)> + [14] #xxxx.1.1.num.int <5 (0x5)> + [15] #xxxx.1.1.num.int <4 (0x4)> + [16] #xxxx.1.1.num.int <1000 (0x3e8)> + [17] #xxxx.1.1.num.int <200 (0xc8)> + [18] #xxxx.1.1.num.int <100 (0x64)> + [19] #xxxx.1.1.num.int <40 (0x28)> + [20] #xxxx.1.1.num.int <30 (0x1e)> + [21] #xxxx.1.1.num.int <5 (0x5)> + [22] #xxxx.1.1.num.int <4 (0x4)> +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.11.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <8 (0x8)> + [1] #xxxx.2.1.num.int <7 (0x7)> + [2] #xxxx.1.1.num.int <40000 (0x9c40)> + [3] #xxxx.1.1.num.int <2000 (0x7d0)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> + [6] #xxxx.1.1.num.int <1000 (0x3e8)> + [7] #xxxx.1.1.num.int <30000 (0x7530)> + [8] #xxxx.1.1.num.int <5 (0x5)> + [9] #xxxx.1.1.num.int <4 (0x4)> + [10] #xxxx.1.1.num.int <20000 (0x4e20)> + [11] #xxxx.1.1.num.int <10000 (0x2710)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <2000 (0x7d0)> + [14] #xxxx.1.1.num.int <5 (0x5)> + [15] #xxxx.1.1.num.int <4 (0x4)> + [16] #xxxx.1.1.num.int <1000 (0x3e8)> + [17] #xxxx.1.1.num.int <200 (0xc8)> + [18] #xxxx.1.1.num.int <100 (0x64)> + [19] #xxxx.1.1.num.int <40 (0x28)> + [20] #xxxx.1.1.num.int <30 (0x1e)> + [21] #xxxx.1.1.num.int <5 (0x5)> + [22] #xxxx.1.1.num.int <4 (0x4)> diff --git a/tests/0011_return/code.log.ref b/tests/0011_return/code.log.ref new file mode 100644 index 0000000..93505f2 --- /dev/null +++ b/tests/0011_return/code.log.ref @@ -0,0 +1,92 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 86 entries (86 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e code b6 { + 2 3 0x0000f int 41 4 + 4 0x00010 int 51 5 + 5 0x00011 word 68 72 65 74 75 72 6e return + 6 0x00018 int 61 6 + 3 7 0x00019 prim 13 } + 8 0x0001a word 38 64 65 66 def + 5 9 0x0001e ref 59 66 6f 6f 5f 32 /foo_2 + 10 0x00024 code c6 15 { + 6 11 0x00026 bool 12 true + 12 0x00027 code c6 0e { + 13 0x00029 int 81 1e 30 + 14 0x0002b int 81 28 40 + 15 0x0002d word 68 72 65 74 75 72 6e return + 16 0x00034 int 81 32 50 + 17 0x00036 prim 13 } + 18 0x00037 word 28 69 66 if + 7 19 0x0003a prim 13 } + 20 0x0003b word 38 64 65 66 def + 9 21 0x0003f ref 59 66 6f 6f 5f 33 /foo_3 + 22 0x00045 code c6 1f { + 10 23 0x00047 code c6 17 { + 24 0x00049 bool 12 true + 25 0x0004a code c6 10 { + 26 0x0004c int 81 64 100 + 27 0x0004e int 91 c8 00 200 + 28 0x00051 word 68 72 65 74 75 72 6e return + 29 0x00058 int 91 2c 01 300 + 30 0x0005b prim 13 } + 31 0x0005c word 28 69 66 if + 32 0x0005f prim 13 } + 33 0x00060 word 48 6c 6f 6f 70 loop + 11 34 0x00065 prim 13 } + 35 0x00066 word 38 64 65 66 def + 13 36 0x0006a ref 59 66 6f 6f 5f 34 /foo_4 + 37 0x00070 code c6 29 { + 14 38 0x00072 int 21 2 + 39 0x00073 code c6 1e { + 40 0x00075 bool 12 true + 41 0x00076 code c6 17 { + 42 0x00078 int 91 e8 03 1000 + 43 0x0007b word 58 66 6f 6f 5f 31 foo_1 + 44 0x00081 int 91 d0 07 2000 + 45 0x00084 word 68 72 65 74 75 72 6e return + 46 0x0008b int 91 b8 0b 3000 + 47 0x0008e prim 13 } + 48 0x0008f word 28 69 66 if + 49 0x00092 prim 13 } + 50 0x00093 word 68 72 65 70 65 61 74 repeat + 15 51 0x0009a prim 13 } + 52 0x0009b word 38 64 65 66 def + 17 53 0x0009f ref 59 66 6f 6f 5f 35 /foo_5 + 54 0x000a5 code c6 3d { + 18 55 0x000a7 word 18 5b [ + 56 0x000a9 int 11 1 + 57 0x000aa int 21 2 + 58 0x000ab int 31 3 + 59 0x000ac word 18 5d ] + 60 0x000ae code c6 28 { + 61 0x000b0 bool 12 true + 62 0x000b1 code c6 21 { + 63 0x000b3 int 91 10 27 10000 + 64 0x000b6 int 91 20 4e 20000 + 65 0x000b9 word 58 66 6f 6f 5f 31 foo_1 + 66 0x000bf int 91 30 75 30000 + 67 0x000c2 word 58 66 6f 6f 5f 34 foo_4 + 68 0x000c8 int a1 40 9c 00 40000 + 69 0x000cc word 68 72 65 74 75 72 6e return + 70 0x000d3 prim 13 } + 71 0x000d4 word 28 69 66 if + 72 0x000d7 prim 13 } + 73 0x000d8 word 68 66 6f 72 61 6c 6c forall + 19 74 0x000df int a1 50 c3 00 50000 + 20 75 0x000e3 prim 13 } + 76 0x000e4 word 38 64 65 66 def + 22 77 0x000e8 word 58 66 6f 6f 5f 31 foo_1 + 23 78 0x000ee word 58 66 6f 6f 5f 32 foo_2 + 24 79 0x000f4 word 58 66 6f 6f 5f 33 foo_3 + 25 80 0x000fa word 58 66 6f 6f 5f 34 foo_4 + 26 81 0x00100 word 58 66 6f 6f 5f 35 foo_5 + 28 82 0x00106 int 71 7 + 83 0x00107 int 81 08 8 + 84 0x00109 word 68 72 65 74 75 72 6e return + 85 0x00110 int 81 09 9 diff --git a/tests/0011_return/code1.log.ref b/tests/0011_return/code1.log.ref new file mode 100644 index 0000000..ff107ae --- /dev/null +++ b/tests/0011_return/code1.log.ref @@ -0,0 +1,92 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 86 entries (86 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e code b6 { + 2 3 0x0000f int 41 4 + 4 0x00010 int 51 5 + 5 0x00011 word 68 72 65 74 75 72 6e return + 6 0x00018 int 61 6 + 3 7 0x00019 prim 13 } + 8 0x0001a word 38 64 65 66 def + 5 9 0x0001e ref 59 66 6f 6f 5f 32 /foo_2 + 10 0x00024 code c6 0f { + 6 11 0x00026 bool 12 true + 12 0x00027 code 96 { + 13 0x00028 int 81 1e 30 + 14 0x0002a int 81 28 40 + 15 0x0002c xref 84 1b return + 16 0x0002e int 81 32 50 + 17 0x00030 prim 13 } + 18 0x00031 word 28 69 66 if + 7 19 0x00034 prim 13 } + 20 0x00035 xref 84 1b def + 9 21 0x00037 ref 59 66 6f 6f 5f 33 /foo_3 + 22 0x0003d code c6 18 { + 10 23 0x0003f code c6 10 { + 24 0x00041 bool 12 true + 25 0x00042 code b6 { + 26 0x00043 int 81 64 100 + 27 0x00045 int 91 c8 00 200 + 28 0x00048 xref 84 37 return + 29 0x0004a int 91 2c 01 300 + 30 0x0004d prim 13 } + 31 0x0004e xref 84 1d if + 32 0x00050 prim 13 } + 33 0x00051 word 48 6c 6f 6f 70 loop + 11 34 0x00056 prim 13 } + 35 0x00057 xref 84 3d def + 13 36 0x00059 ref 59 66 6f 6f 5f 34 /foo_4 + 37 0x0005f code c6 23 { + 14 38 0x00061 int 21 2 + 39 0x00062 code c6 18 { + 40 0x00064 bool 12 true + 41 0x00065 code c6 12 { + 42 0x00067 int 91 e8 03 1000 + 43 0x0006a word 58 66 6f 6f 5f 31 foo_1 + 44 0x00070 int 91 d0 07 2000 + 45 0x00073 xref 84 62 return + 46 0x00075 int 91 b8 0b 3000 + 47 0x00078 prim 13 } + 48 0x00079 xref 84 48 if + 49 0x0007b prim 13 } + 50 0x0007c word 68 72 65 70 65 61 74 repeat + 15 51 0x00083 prim 13 } + 52 0x00084 xref 84 6a def + 17 53 0x00086 ref 59 66 6f 6f 5f 35 /foo_5 + 54 0x0008c code c6 33 { + 18 55 0x0008e word 18 5b [ + 56 0x00090 int 11 1 + 57 0x00091 int 21 2 + 58 0x00092 int 31 3 + 59 0x00093 word 18 5d ] + 60 0x00095 code c6 1e { + 61 0x00097 bool 12 true + 62 0x00098 code c6 18 { + 63 0x0009a int 91 10 27 10000 + 64 0x0009d int 91 20 4e 20000 + 65 0x000a0 xref 84 36 foo_1 + 66 0x000a2 int 91 30 75 30000 + 67 0x000a5 word 58 66 6f 6f 5f 34 foo_4 + 68 0x000ab int a1 40 9c 00 40000 + 69 0x000af xref 84 9e return + 70 0x000b1 prim 13 } + 71 0x000b2 xref 84 81 if + 72 0x000b4 prim 13 } + 73 0x000b5 word 68 66 6f 72 61 6c 6c forall + 19 74 0x000bc int a1 50 c3 00 50000 + 20 75 0x000c0 prim 13 } + 76 0x000c1 xref 84 a7 def + 22 77 0x000c3 xref 84 59 foo_1 + 23 78 0x000c5 word 58 66 6f 6f 5f 32 foo_2 + 24 79 0x000cb word 58 66 6f 6f 5f 33 foo_3 + 25 80 0x000d1 xref 84 2c foo_4 + 26 81 0x000d3 word 58 66 6f 6f 5f 35 foo_5 + 28 82 0x000d9 int 71 7 + 83 0x000da int 81 08 8 + 84 0x000dc xref 84 cb return + 85 0x000de int 81 09 9 diff --git a/tests/0011_return/code2.log.ref b/tests/0011_return/code2.log.ref new file mode 100644 index 0000000..f3cf543 --- /dev/null +++ b/tests/0011_return/code2.log.ref @@ -0,0 +1,92 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 86 entries (86 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e code 66 { + 2 3 0x0000f int 41 4 + 4 0x00010 int 51 5 + 5 0x00011 prim 83 10 return + 6 0x00013 int 61 6 + 3 7 0x00014 prim 13 } + 8 0x00015 prim 63 def + 5 9 0x00016 ref 59 66 6f 6f 5f 32 /foo_2 + 10 0x0001c code c6 0e { + 6 11 0x0001e bool 12 true + 12 0x0001f code 96 { + 13 0x00020 int 81 1e 30 + 14 0x00022 int 81 28 40 + 15 0x00024 prim 83 10 return + 16 0x00026 int 81 32 50 + 17 0x00028 prim 13 } + 18 0x00029 prim 83 09 if + 7 19 0x0002b prim 13 } + 20 0x0002c prim 63 def + 9 21 0x0002d ref 59 66 6f 6f 5f 33 /foo_3 + 22 0x00033 code c6 15 { + 10 23 0x00035 code c6 10 { + 24 0x00037 bool 12 true + 25 0x00038 code b6 { + 26 0x00039 int 81 64 100 + 27 0x0003b int 91 c8 00 200 + 28 0x0003e prim 83 10 return + 29 0x00040 int 91 2c 01 300 + 30 0x00043 prim 13 } + 31 0x00044 prim 83 09 if + 32 0x00046 prim 13 } + 33 0x00047 prim 83 0b loop + 11 34 0x00049 prim 13 } + 35 0x0004a prim 63 def + 13 36 0x0004b ref 59 66 6f 6f 5f 34 /foo_4 + 37 0x00051 code c6 1e { + 14 38 0x00053 int 21 2 + 39 0x00054 code c6 18 { + 40 0x00056 bool 12 true + 41 0x00057 code c6 12 { + 42 0x00059 int 91 e8 03 1000 + 43 0x0005c word 58 66 6f 6f 5f 31 foo_1 + 44 0x00062 int 91 d0 07 2000 + 45 0x00065 prim 83 10 return + 46 0x00067 int 91 b8 0b 3000 + 47 0x0006a prim 13 } + 48 0x0006b prim 83 09 if + 49 0x0006d prim 13 } + 50 0x0006e prim 83 0c repeat + 15 51 0x00070 prim 13 } + 52 0x00071 prim 63 def + 17 53 0x00072 ref 59 66 6f 6f 5f 35 /foo_5 + 54 0x00078 code c6 2c { + 18 55 0x0007a prim 23 [ + 56 0x0007b int 11 1 + 57 0x0007c int 21 2 + 58 0x0007d int 31 3 + 59 0x0007e prim 33 ] + 60 0x0007f code c6 1e { + 61 0x00081 bool 12 true + 62 0x00082 code c6 18 { + 63 0x00084 int 91 10 27 10000 + 64 0x00087 int 91 20 4e 20000 + 65 0x0008a xref 84 2e foo_1 + 66 0x0008c int 91 30 75 30000 + 67 0x0008f word 58 66 6f 6f 5f 34 foo_4 + 68 0x00095 int a1 40 9c 00 40000 + 69 0x00099 prim 83 10 return + 70 0x0009b prim 13 } + 71 0x0009c prim 83 09 if + 72 0x0009e prim 13 } + 73 0x0009f prim 83 0e forall + 19 74 0x000a1 int a1 50 c3 00 50000 + 20 75 0x000a5 prim 13 } + 76 0x000a6 prim 63 def + 22 77 0x000a7 xref 84 4b foo_1 + 23 78 0x000a9 word 58 66 6f 6f 5f 32 foo_2 + 24 79 0x000af word 58 66 6f 6f 5f 33 foo_3 + 25 80 0x000b5 xref 84 26 foo_4 + 26 81 0x000b7 word 58 66 6f 6f 5f 35 foo_5 + 28 82 0x000bd int 71 7 + 83 0x000be int 81 08 8 + 84 0x000c0 prim 83 10 return + 85 0x000c2 int 81 09 9 diff --git a/tests/0011_return/main.gs b/tests/0011_return/main.gs new file mode 100644 index 0000000..1be6f8d --- /dev/null +++ b/tests/0011_return/main.gs @@ -0,0 +1,28 @@ +/foo_1 { + 4 5 return 6 +} def + +/foo_2 { + true { 30 40 return 50 } if +} def + +/foo_3 { + { true { 100 200 return 300 } if } loop +} def + +/foo_4 { + 2 { true { 1000 foo_1 2000 return 3000 } if } repeat +} def + +/foo_5 { + [ 1 2 3 ] { true { 10000 20000 foo_1 30000 foo_4 40000 return } if } forall + 50000 +} def + +foo_1 +foo_2 +foo_3 +foo_4 +foo_5 + +7 8 return 9 diff --git a/tests/0011_return/mem.log.ref b/tests/0011_return/mem.log.ref new file mode 100644 index 0000000..2b10980 --- /dev/null +++ b/tests/0011_return/mem.log.ref @@ -0,0 +1,841 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 276] + 8: 0.00, 0x001d6b88[ 200] + 9: 202.01, 0x001d6c58[ 72] + 10: 0.00, 0x001d6ca8[ 212] + 11: 187.01, 0x001d6d84[ 144] + 12: 0.00, 0x001d6e1c[14848484] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.1.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x9, size 5, "foo_1"> => #190.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0xf, size 11> + #191.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_2"> => #192.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x26, size 21> + #193.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x40, size 5, "foo_3"> => #194.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x47, size 31> + #195.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x6b, size 5, "foo_4"> => #196.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x72, size 41> + #197.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0xa0, size 5, "foo_5"> => #198.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0xa7, size 61> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.10.mem.ro + 75 51 12 a9 42 7a ad 60 59 66 6f 6f 5f 31 b6 41 uQ..Bz.`Yfoo_1.A + 51 68 72 65 74 75 72 6e 61 13 38 64 65 66 59 66 Qhreturna.8defYf + 6f 6f 5f 32 c6 15 12 c6 0e 81 1e 81 28 68 72 65 oo_2........(hre + 74 75 72 6e 81 32 13 28 69 66 13 38 64 65 66 59 turn.2.(if.8defY + 66 6f 6f 5f 33 c6 1f c6 17 12 c6 10 81 64 91 c8 foo_3........d.. + 00 68 72 65 74 75 72 6e 91 2c 01 13 28 69 66 13 .hreturn.,..(if. + 48 6c 6f 6f 70 13 38 64 65 66 59 66 6f 6f 5f 34 Hloop.8defYfoo_4 + c6 29 21 c6 1e 12 c6 17 91 e8 03 58 66 6f 6f 5f .)!........Xfoo_ + 31 91 d0 07 68 72 65 74 75 72 6e 91 b8 0b 13 28 1...hreturn....( + 69 66 13 68 72 65 70 65 61 74 13 38 64 65 66 59 if.hrepeat.8defY + 66 6f 6f 5f 35 c6 3d 18 5b 11 21 31 18 5d c6 28 foo_5.=.[.!1.].( + 12 c6 21 91 10 27 91 20 4e 58 66 6f 6f 5f 31 91 ..!..'. NXfoo_1. + 30 75 58 66 6f 6f 5f 34 a1 40 9c 00 68 72 65 74 0uXfoo_4.@..hret + 75 72 6e 13 28 69 66 13 68 66 6f 72 61 6c 6c a1 urn.(if.hforall. + 50 c3 00 13 38 64 65 66 58 66 6f 6f 5f 31 58 66 P...8defXfoo_1Xf + 6f 6f 5f 32 58 66 6f 6f 5f 33 58 66 6f 6f 5f 34 oo_2Xfoo_3Xfoo_4 + 58 66 6f 6f 5f 35 71 81 08 68 72 65 74 75 72 6e Xfoo_5q..hreturn + 81 09 .. + #187.1.1.array + [ 0] #200.1.1.num.int <4 (0x4)> + [ 1] #201.1.1.num.int <5 (0x5)> + [ 2] #207.1.1.num.int <30 (0x1e)> + [ 3] #208.1.1.num.int <40 (0x28)> + [ 4] #215.1.1.num.int <100 (0x64)> + [ 5] #216.1.1.num.int <200 (0xc8)> + [ 6] #224.1.1.num.int <1000 (0x3e8)> + [ 7] #226.1.1.num.int <4 (0x4)> + [ 8] #227.1.1.num.int <5 (0x5)> + [ 9] #228.1.1.num.int <2000 (0x7d0)> + [10] #230.1.1.num.int <1 (0x1)> + [11] #239.1.1.num.int <10000 (0x2710)> + [12] #240.1.1.num.int <20000 (0x4e20)> + [13] #242.1.1.num.int <4 (0x4)> + [14] #243.1.1.num.int <5 (0x5)> + [15] #244.1.1.num.int <30000 (0x7530)> + [16] #252.1.1.num.int <1000 (0x3e8)> + [17] #254.1.1.num.int <4 (0x4)> + [18] #255.1.1.num.int <5 (0x5)> + [19] #256.1.1.num.int <2000 (0x7d0)> + [20] #257.1.1.num.int <40000 (0x9c40)> + [21] #199.2.1.num.int <7 (0x7)> + [22] #203.2.1.num.int <8 (0x8)> + #189.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x9, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #190.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0xf, size 11> + 41 51 68 72 65 74 75 72 6e 61 13 AQhreturna. + #191.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #192.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x26, size 21> + 12 c6 0e 81 1e 81 28 68 72 65 74 75 72 6e 81 32 ......(hreturn.2 + 13 28 69 66 13 .(if. + #193.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x40, size 5, "foo_3"> + 66 6f 6f 5f 33 foo_3 + #194.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x47, size 31> + c6 17 12 c6 10 81 64 91 c8 00 68 72 65 74 75 72 ......d...hretur + 6e 91 2c 01 13 28 69 66 13 48 6c 6f 6f 70 13 n.,..(if.Hloop. + #195.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x6b, size 5, "foo_4"> + 66 6f 6f 5f 34 foo_4 + #196.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x72, size 41> + 21 c6 1e 12 c6 17 91 e8 03 58 66 6f 6f 5f 31 91 !........Xfoo_1. + d0 07 68 72 65 74 75 72 6e 91 b8 0b 13 28 69 66 ..hreturn....(if + 13 68 72 65 70 65 61 74 13 .hrepeat. + #197.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0xa0, size 5, "foo_5"> + 66 6f 6f 5f 35 foo_5 + #198.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0xa7, size 61> + 18 5b 11 21 31 18 5d c6 28 12 c6 21 91 10 27 91 .[.!1.].(..!..'. + 20 4e 58 66 6f 6f 5f 31 91 30 75 58 66 6f 6f 5f NXfoo_1.0uXfoo_ + 34 a1 40 9c 00 68 72 65 74 75 72 6e 13 28 69 66 4.@..hreturn.(if + 13 68 66 6f 72 61 6c 6c a1 50 c3 00 13 .hforall.P... + #199.2.1.num.int <7 (0x7)> + #200.1.1.num.int <4 (0x4)> + #201.1.1.num.int <5 (0x5)> + #202.1.1.array + #203.2.1.num.int <8 (0x8)> + #207.1.1.num.int <30 (0x1e)> + #208.1.1.num.int <40 (0x28)> + #215.1.1.num.int <100 (0x64)> + #216.1.1.num.int <200 (0xc8)> + #224.1.1.num.int <1000 (0x3e8)> + #226.1.1.num.int <4 (0x4)> + #227.1.1.num.int <5 (0x5)> + #228.1.1.num.int <2000 (0x7d0)> + #230.1.1.num.int <1 (0x1)> + #239.1.1.num.int <10000 (0x2710)> + #240.1.1.num.int <20000 (0x4e20)> + #242.1.1.num.int <4 (0x4)> + #243.1.1.num.int <5 (0x5)> + #244.1.1.num.int <30000 (0x7530)> + #252.1.1.num.int <1000 (0x3e8)> + #254.1.1.num.int <4 (0x4)> + #255.1.1.num.int <5 (0x5)> + #256.1.1.num.int <2000 (0x7d0)> + #257.1.1.num.int <40000 (0x9c40)> diff --git a/tests/0011_return/screen.log.ref b/tests/0011_return/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0011_return/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0011_return/trace.log.ref b/tests/0011_return/trace.log.ref new file mode 100644 index 0000000..85f3d75 --- /dev/null +++ b/tests/0011_return/trace.log.ref @@ -0,0 +1,1457 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0xe, type 6, 15[11] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xf, size 11> + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x1a, type 8, 27[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.mem.code.ro +GC: --#190.1.2.mem.code.ro +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1e, type 9, 31[5] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x24, type 6, 38[21] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x26, size 21> + [1] #191.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x3b, type 8, 60[3] +GC: ++#191.1.1.mem.ref.ro +GC: ++#192.1.1.mem.code.ro +GC: --#192.1.2.mem.code.ro +GC: --#191.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x3f, type 9, 64[5] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x40, size 5, "foo_3"> +IP: #186:0x45, type 6, 71[31] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.code.ro <#186.1.7.mem.ro, ofs 0x47, size 31> + [1] #193.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x40, size 5, "foo_3"> +IP: #186:0x66, type 8, 103[3] +GC: ++#193.1.1.mem.ref.ro +GC: ++#194.1.1.mem.code.ro +GC: --#194.1.2.mem.code.ro +GC: --#193.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x6a, type 9, 107[5] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x6b, size 5, "foo_4"> +IP: #186:0x70, type 6, 114[41] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0x72, size 41> + [1] #195.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x6b, size 5, "foo_4"> +IP: #186:0x9b, type 8, 156[3] +GC: ++#195.1.1.mem.ref.ro +GC: ++#196.1.1.mem.code.ro +GC: --#196.1.2.mem.code.ro +GC: --#195.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x9f, type 9, 160[5] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0xa0, size 5, "foo_5"> +IP: #186:0xa5, type 6, 167[61] +GC: ++#186.1.10.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.mem.code.ro <#186.1.11.mem.ro, ofs 0xa7, size 61> + [1] #197.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0xa0, size 5, "foo_5"> +IP: #186:0xe4, type 8, 229[3] +GC: ++#197.1.1.mem.ref.ro +GC: ++#198.1.1.mem.code.ro +GC: --#198.1.2.mem.code.ro +GC: --#197.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xe8, type 8, 233[5] +GC: ++#190.1.1.mem.code.ro +== backtrace == + [0] #199.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #190:0x0, type 1, 4 (0x4) +== backtrace == + [0] #199.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <4 (0x4)> +IP: #190:0x1, type 1, 5 (0x5) +== backtrace == + [0] #199.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <5 (0x5)> + [1] #200.1.1.num.int <4 (0x4)> +IP: #190:0x2, type 8, 3[6] +GC: ++#188.1.1.ctx.func +GC: --#199.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#190.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <5 (0x5)> + [1] #200.1.1.num.int <4 (0x4)> +IP: #186:0xee, type 8, 239[5] +GC: ++#192.1.1.mem.code.ro +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <5 (0x5)> + [1] #200.1.1.num.int <4 (0x4)> +IP: #192:0x0, type 2, 1 (0x1) +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.bool <1 (0x1)> + [1] #201.1.1.num.int <5 (0x5)> + [2] #200.1.1.num.int <4 (0x4)> +IP: #192:0x1, type 6, 3[14] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.code.ro <#186.1.12.mem.ro, ofs 0x29, size 14> + [1] #204.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.int <5 (0x5)> + [3] #200.1.1.num.int <4 (0x4)> +IP: #192:0x11, type 8, 18[2] +GC: ++#205.1.1.mem.code.ro +GC: --#205.1.2.mem.code.ro +GC: --#204.1.1.num.bool +== backtrace == + [0] #206.1.1.ctx.block + [1] #203.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <5 (0x5)> + [1] #200.1.1.num.int <4 (0x4)> +IP: #205:0x0, type 1, 30 (0x1e) +== backtrace == + [0] #206.1.1.ctx.block + [1] #203.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <30 (0x1e)> + [1] #201.1.1.num.int <5 (0x5)> + [2] #200.1.1.num.int <4 (0x4)> +IP: #205:0x2, type 1, 40 (0x28) +== backtrace == + [0] #206.1.1.ctx.block + [1] #203.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <40 (0x28)> + [1] #207.1.1.num.int <30 (0x1e)> + [2] #201.1.1.num.int <5 (0x5)> + [3] #200.1.1.num.int <4 (0x4)> +IP: #205:0x4, type 8, 5[6] +GC: ++#188.1.1.ctx.func +GC: --#206.1.1.ctx.block +GC: --#203.1.1.ctx.func +GC: --#205.1.1.mem.code.ro +GC: --#188.1.2.ctx.func +GC: --#192.1.2.mem.code.ro +GC: --#186.1.12.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <40 (0x28)> + [1] #207.1.1.num.int <30 (0x1e)> + [2] #201.1.1.num.int <5 (0x5)> + [3] #200.1.1.num.int <4 (0x4)> +IP: #186:0xf4, type 8, 245[5] +GC: ++#194.1.1.mem.code.ro +== backtrace == + [0] #209.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <40 (0x28)> + [1] #207.1.1.num.int <30 (0x1e)> + [2] #201.1.1.num.int <5 (0x5)> + [3] #200.1.1.num.int <4 (0x4)> +IP: #194:0x0, type 6, 2[23] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #209.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.mem.code.ro <#186.1.12.mem.ro, ofs 0x49, size 23> + [1] #208.1.1.num.int <40 (0x28)> + [2] #207.1.1.num.int <30 (0x1e)> + [3] #201.1.1.num.int <5 (0x5)> + [4] #200.1.1.num.int <4 (0x4)> +IP: #194:0x19, type 8, 26[4] +GC: ++#210.1.1.mem.code.ro +GC: --#210.1.2.mem.code.ro +== backtrace == + [0] #211.1.1.ctx.loop + [1] #209.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <40 (0x28)> + [1] #207.1.1.num.int <30 (0x1e)> + [2] #201.1.1.num.int <5 (0x5)> + [3] #200.1.1.num.int <4 (0x4)> +IP: #210:0x0, type 2, 1 (0x1) +== backtrace == + [0] #211.1.1.ctx.loop + [1] #209.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.bool <1 (0x1)> + [1] #208.1.1.num.int <40 (0x28)> + [2] #207.1.1.num.int <30 (0x1e)> + [3] #201.1.1.num.int <5 (0x5)> + [4] #200.1.1.num.int <4 (0x4)> +IP: #210:0x1, type 6, 3[16] +GC: ++#186.1.12.mem.ro +== backtrace == + [0] #211.1.1.ctx.loop + [1] #209.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.mem.code.ro <#186.1.13.mem.ro, ofs 0x4c, size 16> + [1] #212.1.1.num.bool <1 (0x1)> + [2] #208.1.1.num.int <40 (0x28)> + [3] #207.1.1.num.int <30 (0x1e)> + [4] #201.1.1.num.int <5 (0x5)> + [5] #200.1.1.num.int <4 (0x4)> +IP: #210:0x13, type 8, 20[2] +GC: ++#213.1.1.mem.code.ro +GC: --#213.1.2.mem.code.ro +GC: --#212.1.1.num.bool +== backtrace == + [0] #214.1.1.ctx.block + [1] #211.1.1.ctx.loop + [2] #209.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <40 (0x28)> + [1] #207.1.1.num.int <30 (0x1e)> + [2] #201.1.1.num.int <5 (0x5)> + [3] #200.1.1.num.int <4 (0x4)> +IP: #213:0x0, type 1, 100 (0x64) +== backtrace == + [0] #214.1.1.ctx.block + [1] #211.1.1.ctx.loop + [2] #209.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <100 (0x64)> + [1] #208.1.1.num.int <40 (0x28)> + [2] #207.1.1.num.int <30 (0x1e)> + [3] #201.1.1.num.int <5 (0x5)> + [4] #200.1.1.num.int <4 (0x4)> +IP: #213:0x2, type 1, 200 (0xc8) +== backtrace == + [0] #214.1.1.ctx.block + [1] #211.1.1.ctx.loop + [2] #209.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <200 (0xc8)> + [1] #215.1.1.num.int <100 (0x64)> + [2] #208.1.1.num.int <40 (0x28)> + [3] #207.1.1.num.int <30 (0x1e)> + [4] #201.1.1.num.int <5 (0x5)> + [5] #200.1.1.num.int <4 (0x4)> +IP: #213:0x5, type 8, 6[6] +GC: ++#188.1.1.ctx.func +GC: --#214.1.1.ctx.block +GC: --#211.1.1.ctx.loop +GC: --#213.1.1.mem.code.ro +GC: --#209.1.1.ctx.func +GC: --#210.1.1.mem.code.ro +GC: --#186.1.13.mem.ro +GC: --#188.1.2.ctx.func +GC: --#194.1.2.mem.code.ro +GC: --#186.1.12.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <200 (0xc8)> + [1] #215.1.1.num.int <100 (0x64)> + [2] #208.1.1.num.int <40 (0x28)> + [3] #207.1.1.num.int <30 (0x1e)> + [4] #201.1.1.num.int <5 (0x5)> + [5] #200.1.1.num.int <4 (0x4)> +IP: #186:0xfa, type 8, 251[5] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #217.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <200 (0xc8)> + [1] #215.1.1.num.int <100 (0x64)> + [2] #208.1.1.num.int <40 (0x28)> + [3] #207.1.1.num.int <30 (0x1e)> + [4] #201.1.1.num.int <5 (0x5)> + [5] #200.1.1.num.int <4 (0x4)> +IP: #196:0x0, type 1, 2 (0x2) +== backtrace == + [0] #217.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.int <2 (0x2)> + [1] #216.1.1.num.int <200 (0xc8)> + [2] #215.1.1.num.int <100 (0x64)> + [3] #208.1.1.num.int <40 (0x28)> + [4] #207.1.1.num.int <30 (0x1e)> + [5] #201.1.1.num.int <5 (0x5)> + [6] #200.1.1.num.int <4 (0x4)> +IP: #196:0x1, type 6, 3[30] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #217.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.mem.code.ro <#186.1.12.mem.ro, ofs 0x75, size 30> + [1] #218.1.1.num.int <2 (0x2)> + [2] #216.1.1.num.int <200 (0xc8)> + [3] #215.1.1.num.int <100 (0x64)> + [4] #208.1.1.num.int <40 (0x28)> + [5] #207.1.1.num.int <30 (0x1e)> + [6] #201.1.1.num.int <5 (0x5)> + [7] #200.1.1.num.int <4 (0x4)> +IP: #196:0x21, type 8, 34[6] +GC: ++#219.1.1.mem.code.ro +GC: --#219.1.2.mem.code.ro +GC: --#218.1.1.num.int +== backtrace == + [0] #220.1.1.ctx.repeat + [1] #217.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <200 (0xc8)> + [1] #215.1.1.num.int <100 (0x64)> + [2] #208.1.1.num.int <40 (0x28)> + [3] #207.1.1.num.int <30 (0x1e)> + [4] #201.1.1.num.int <5 (0x5)> + [5] #200.1.1.num.int <4 (0x4)> +IP: #219:0x0, type 2, 1 (0x1) +== backtrace == + [0] #220.1.1.ctx.repeat + [1] #217.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.bool <1 (0x1)> + [1] #216.1.1.num.int <200 (0xc8)> + [2] #215.1.1.num.int <100 (0x64)> + [3] #208.1.1.num.int <40 (0x28)> + [4] #207.1.1.num.int <30 (0x1e)> + [5] #201.1.1.num.int <5 (0x5)> + [6] #200.1.1.num.int <4 (0x4)> +IP: #219:0x1, type 6, 3[23] +GC: ++#186.1.12.mem.ro +== backtrace == + [0] #220.1.1.ctx.repeat + [1] #217.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.mem.code.ro <#186.1.13.mem.ro, ofs 0x78, size 23> + [1] #221.1.1.num.bool <1 (0x1)> + [2] #216.1.1.num.int <200 (0xc8)> + [3] #215.1.1.num.int <100 (0x64)> + [4] #208.1.1.num.int <40 (0x28)> + [5] #207.1.1.num.int <30 (0x1e)> + [6] #201.1.1.num.int <5 (0x5)> + [7] #200.1.1.num.int <4 (0x4)> +IP: #219:0x1a, type 8, 27[2] +GC: ++#222.1.1.mem.code.ro +GC: --#222.1.2.mem.code.ro +GC: --#221.1.1.num.bool +== backtrace == + [0] #223.1.1.ctx.block + [1] #220.1.1.ctx.repeat + [2] #217.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <200 (0xc8)> + [1] #215.1.1.num.int <100 (0x64)> + [2] #208.1.1.num.int <40 (0x28)> + [3] #207.1.1.num.int <30 (0x1e)> + [4] #201.1.1.num.int <5 (0x5)> + [5] #200.1.1.num.int <4 (0x4)> +IP: #222:0x0, type 1, 1000 (0x3e8) +== backtrace == + [0] #223.1.1.ctx.block + [1] #220.1.1.ctx.repeat + [2] #217.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.num.int <1000 (0x3e8)> + [1] #216.1.1.num.int <200 (0xc8)> + [2] #215.1.1.num.int <100 (0x64)> + [3] #208.1.1.num.int <40 (0x28)> + [4] #207.1.1.num.int <30 (0x1e)> + [5] #201.1.1.num.int <5 (0x5)> + [6] #200.1.1.num.int <4 (0x4)> +IP: #222:0x3, type 8, 4[5] +GC: ++#190.1.1.mem.code.ro +== backtrace == + [0] #225.1.1.ctx.func + [1] #223.1.1.ctx.block + [2] #220.1.1.ctx.repeat + [3] #217.1.1.ctx.func + [4] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.num.int <1000 (0x3e8)> + [1] #216.1.1.num.int <200 (0xc8)> + [2] #215.1.1.num.int <100 (0x64)> + [3] #208.1.1.num.int <40 (0x28)> + [4] #207.1.1.num.int <30 (0x1e)> + [5] #201.1.1.num.int <5 (0x5)> + [6] #200.1.1.num.int <4 (0x4)> +IP: #190:0x0, type 1, 4 (0x4) +== backtrace == + [0] #225.1.1.ctx.func + [1] #223.1.1.ctx.block + [2] #220.1.1.ctx.repeat + [3] #217.1.1.ctx.func + [4] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.int <4 (0x4)> + [1] #224.1.1.num.int <1000 (0x3e8)> + [2] #216.1.1.num.int <200 (0xc8)> + [3] #215.1.1.num.int <100 (0x64)> + [4] #208.1.1.num.int <40 (0x28)> + [5] #207.1.1.num.int <30 (0x1e)> + [6] #201.1.1.num.int <5 (0x5)> + [7] #200.1.1.num.int <4 (0x4)> +IP: #190:0x1, type 1, 5 (0x5) +== backtrace == + [0] #225.1.1.ctx.func + [1] #223.1.1.ctx.block + [2] #220.1.1.ctx.repeat + [3] #217.1.1.ctx.func + [4] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <5 (0x5)> + [1] #226.1.1.num.int <4 (0x4)> + [2] #224.1.1.num.int <1000 (0x3e8)> + [3] #216.1.1.num.int <200 (0xc8)> + [4] #215.1.1.num.int <100 (0x64)> + [5] #208.1.1.num.int <40 (0x28)> + [6] #207.1.1.num.int <30 (0x1e)> + [7] #201.1.1.num.int <5 (0x5)> + [8] #200.1.1.num.int <4 (0x4)> +IP: #190:0x2, type 8, 3[6] +GC: ++#223.1.1.ctx.block +GC: --#225.1.1.ctx.func +GC: --#223.1.2.ctx.block +GC: --#190.1.2.mem.code.ro +== backtrace == + [0] #223.1.1.ctx.block + [1] #220.1.1.ctx.repeat + [2] #217.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <5 (0x5)> + [1] #226.1.1.num.int <4 (0x4)> + [2] #224.1.1.num.int <1000 (0x3e8)> + [3] #216.1.1.num.int <200 (0xc8)> + [4] #215.1.1.num.int <100 (0x64)> + [5] #208.1.1.num.int <40 (0x28)> + [6] #207.1.1.num.int <30 (0x1e)> + [7] #201.1.1.num.int <5 (0x5)> + [8] #200.1.1.num.int <4 (0x4)> +IP: #222:0x9, type 1, 2000 (0x7d0) +== backtrace == + [0] #223.1.1.ctx.block + [1] #220.1.1.ctx.repeat + [2] #217.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <2000 (0x7d0)> + [1] #227.1.1.num.int <5 (0x5)> + [2] #226.1.1.num.int <4 (0x4)> + [3] #224.1.1.num.int <1000 (0x3e8)> + [4] #216.1.1.num.int <200 (0xc8)> + [5] #215.1.1.num.int <100 (0x64)> + [6] #208.1.1.num.int <40 (0x28)> + [7] #207.1.1.num.int <30 (0x1e)> + [8] #201.1.1.num.int <5 (0x5)> + [9] #200.1.1.num.int <4 (0x4)> +IP: #222:0xc, type 8, 13[6] +GC: ++#188.1.1.ctx.func +GC: --#223.1.1.ctx.block +GC: --#220.1.1.ctx.repeat +GC: --#222.1.1.mem.code.ro +GC: --#217.1.1.ctx.func +GC: --#219.1.1.mem.code.ro +GC: --#186.1.13.mem.ro +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +GC: --#186.1.12.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <2000 (0x7d0)> + [1] #227.1.1.num.int <5 (0x5)> + [2] #226.1.1.num.int <4 (0x4)> + [3] #224.1.1.num.int <1000 (0x3e8)> + [4] #216.1.1.num.int <200 (0xc8)> + [5] #215.1.1.num.int <100 (0x64)> + [6] #208.1.1.num.int <40 (0x28)> + [7] #207.1.1.num.int <30 (0x1e)> + [8] #201.1.1.num.int <5 (0x5)> + [9] #200.1.1.num.int <4 (0x4)> +IP: #186:0x100, type 8, 257[5] +GC: ++#198.1.1.mem.code.ro +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <2000 (0x7d0)> + [1] #227.1.1.num.int <5 (0x5)> + [2] #226.1.1.num.int <4 (0x4)> + [3] #224.1.1.num.int <1000 (0x3e8)> + [4] #216.1.1.num.int <200 (0xc8)> + [5] #215.1.1.num.int <100 (0x64)> + [6] #208.1.1.num.int <40 (0x28)> + [7] #207.1.1.num.int <30 (0x1e)> + [8] #201.1.1.num.int <5 (0x5)> + [9] #200.1.1.num.int <4 (0x4)> +IP: #198:0x0, type 8, 1[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #228.1.1.num.int <2000 (0x7d0)> + [2] #227.1.1.num.int <5 (0x5)> + [3] #226.1.1.num.int <4 (0x4)> + [4] #224.1.1.num.int <1000 (0x3e8)> + [5] #216.1.1.num.int <200 (0xc8)> + [6] #215.1.1.num.int <100 (0x64)> + [7] #208.1.1.num.int <40 (0x28)> + [8] #207.1.1.num.int <30 (0x1e)> + [9] #201.1.1.num.int <5 (0x5)> + [10] #200.1.1.num.int <4 (0x4)> +IP: #198:0x2, type 1, 1 (0x1) +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #228.1.1.num.int <2000 (0x7d0)> + [3] #227.1.1.num.int <5 (0x5)> + [4] #226.1.1.num.int <4 (0x4)> + [5] #224.1.1.num.int <1000 (0x3e8)> + [6] #216.1.1.num.int <200 (0xc8)> + [7] #215.1.1.num.int <100 (0x64)> + [8] #208.1.1.num.int <40 (0x28)> + [9] #207.1.1.num.int <30 (0x1e)> + [10] #201.1.1.num.int <5 (0x5)> + [11] #200.1.1.num.int <4 (0x4)> +IP: #198:0x3, type 1, 2 (0x2) +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.int <2 (0x2)> + [1] #230.1.1.num.int <1 (0x1)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #228.1.1.num.int <2000 (0x7d0)> + [4] #227.1.1.num.int <5 (0x5)> + [5] #226.1.1.num.int <4 (0x4)> + [6] #224.1.1.num.int <1000 (0x3e8)> + [7] #216.1.1.num.int <200 (0xc8)> + [8] #215.1.1.num.int <100 (0x64)> + [9] #208.1.1.num.int <40 (0x28)> + [10] #207.1.1.num.int <30 (0x1e)> + [11] #201.1.1.num.int <5 (0x5)> + [12] #200.1.1.num.int <4 (0x4)> +IP: #198:0x4, type 1, 3 (0x3) +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.num.int <3 (0x3)> + [1] #231.1.1.num.int <2 (0x2)> + [2] #230.1.1.num.int <1 (0x1)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #228.1.1.num.int <2000 (0x7d0)> + [5] #227.1.1.num.int <5 (0x5)> + [6] #226.1.1.num.int <4 (0x4)> + [7] #224.1.1.num.int <1000 (0x3e8)> + [8] #216.1.1.num.int <200 (0xc8)> + [9] #215.1.1.num.int <100 (0x64)> + [10] #208.1.1.num.int <40 (0x28)> + [11] #207.1.1.num.int <30 (0x1e)> + [12] #201.1.1.num.int <5 (0x5)> + [13] #200.1.1.num.int <4 (0x4)> +IP: #198:0x5, type 8, 6[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.array + [1] #228.1.1.num.int <2000 (0x7d0)> + [2] #227.1.1.num.int <5 (0x5)> + [3] #226.1.1.num.int <4 (0x4)> + [4] #224.1.1.num.int <1000 (0x3e8)> + [5] #216.1.1.num.int <200 (0xc8)> + [6] #215.1.1.num.int <100 (0x64)> + [7] #208.1.1.num.int <40 (0x28)> + [8] #207.1.1.num.int <30 (0x1e)> + [9] #201.1.1.num.int <5 (0x5)> + [10] #200.1.1.num.int <4 (0x4)> +IP: #198:0x7, type 6, 9[40] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.mem.code.ro <#186.1.12.mem.ro, ofs 0xb0, size 40> + [1] #233.1.1.array + [2] #228.1.1.num.int <2000 (0x7d0)> + [3] #227.1.1.num.int <5 (0x5)> + [4] #226.1.1.num.int <4 (0x4)> + [5] #224.1.1.num.int <1000 (0x3e8)> + [6] #216.1.1.num.int <200 (0xc8)> + [7] #215.1.1.num.int <100 (0x64)> + [8] #208.1.1.num.int <40 (0x28)> + [9] #207.1.1.num.int <30 (0x1e)> + [10] #201.1.1.num.int <5 (0x5)> + [11] #200.1.1.num.int <4 (0x4)> +IP: #198:0x31, type 8, 50[6] +GC: ++#230.1.1.num.int +GC: ++#234.1.1.mem.code.ro +GC: ++#233.1.1.array +GC: --#234.1.2.mem.code.ro +GC: --#233.1.2.array +== backtrace == + [0] #235.1.1.ctx.forall + [1] #229.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.2.num.int <1 (0x1)> + [1] #228.1.1.num.int <2000 (0x7d0)> + [2] #227.1.1.num.int <5 (0x5)> + [3] #226.1.1.num.int <4 (0x4)> + [4] #224.1.1.num.int <1000 (0x3e8)> + [5] #216.1.1.num.int <200 (0xc8)> + [6] #215.1.1.num.int <100 (0x64)> + [7] #208.1.1.num.int <40 (0x28)> + [8] #207.1.1.num.int <30 (0x1e)> + [9] #201.1.1.num.int <5 (0x5)> + [10] #200.1.1.num.int <4 (0x4)> +IP: #234:0x0, type 2, 1 (0x1) +== backtrace == + [0] #235.1.1.ctx.forall + [1] #229.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.bool <1 (0x1)> + [1] #230.1.2.num.int <1 (0x1)> + [2] #228.1.1.num.int <2000 (0x7d0)> + [3] #227.1.1.num.int <5 (0x5)> + [4] #226.1.1.num.int <4 (0x4)> + [5] #224.1.1.num.int <1000 (0x3e8)> + [6] #216.1.1.num.int <200 (0xc8)> + [7] #215.1.1.num.int <100 (0x64)> + [8] #208.1.1.num.int <40 (0x28)> + [9] #207.1.1.num.int <30 (0x1e)> + [10] #201.1.1.num.int <5 (0x5)> + [11] #200.1.1.num.int <4 (0x4)> +IP: #234:0x1, type 6, 3[33] +GC: ++#186.1.12.mem.ro +== backtrace == + [0] #235.1.1.ctx.forall + [1] #229.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.mem.code.ro <#186.1.13.mem.ro, ofs 0xb3, size 33> + [1] #236.1.1.num.bool <1 (0x1)> + [2] #230.1.2.num.int <1 (0x1)> + [3] #228.1.1.num.int <2000 (0x7d0)> + [4] #227.1.1.num.int <5 (0x5)> + [5] #226.1.1.num.int <4 (0x4)> + [6] #224.1.1.num.int <1000 (0x3e8)> + [7] #216.1.1.num.int <200 (0xc8)> + [8] #215.1.1.num.int <100 (0x64)> + [9] #208.1.1.num.int <40 (0x28)> + [10] #207.1.1.num.int <30 (0x1e)> + [11] #201.1.1.num.int <5 (0x5)> + [12] #200.1.1.num.int <4 (0x4)> +IP: #234:0x24, type 8, 37[2] +GC: ++#237.1.1.mem.code.ro +GC: --#237.1.2.mem.code.ro +GC: --#236.1.1.num.bool +== backtrace == + [0] #238.1.1.ctx.block + [1] #235.1.1.ctx.forall + [2] #229.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.2.num.int <1 (0x1)> + [1] #228.1.1.num.int <2000 (0x7d0)> + [2] #227.1.1.num.int <5 (0x5)> + [3] #226.1.1.num.int <4 (0x4)> + [4] #224.1.1.num.int <1000 (0x3e8)> + [5] #216.1.1.num.int <200 (0xc8)> + [6] #215.1.1.num.int <100 (0x64)> + [7] #208.1.1.num.int <40 (0x28)> + [8] #207.1.1.num.int <30 (0x1e)> + [9] #201.1.1.num.int <5 (0x5)> + [10] #200.1.1.num.int <4 (0x4)> +IP: #237:0x0, type 1, 10000 (0x2710) +== backtrace == + [0] #238.1.1.ctx.block + [1] #235.1.1.ctx.forall + [2] #229.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.num.int <10000 (0x2710)> + [1] #230.1.2.num.int <1 (0x1)> + [2] #228.1.1.num.int <2000 (0x7d0)> + [3] #227.1.1.num.int <5 (0x5)> + [4] #226.1.1.num.int <4 (0x4)> + [5] #224.1.1.num.int <1000 (0x3e8)> + [6] #216.1.1.num.int <200 (0xc8)> + [7] #215.1.1.num.int <100 (0x64)> + [8] #208.1.1.num.int <40 (0x28)> + [9] #207.1.1.num.int <30 (0x1e)> + [10] #201.1.1.num.int <5 (0x5)> + [11] #200.1.1.num.int <4 (0x4)> +IP: #237:0x3, type 1, 20000 (0x4e20) +== backtrace == + [0] #238.1.1.ctx.block + [1] #235.1.1.ctx.forall + [2] #229.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.num.int <20000 (0x4e20)> + [1] #239.1.1.num.int <10000 (0x2710)> + [2] #230.1.2.num.int <1 (0x1)> + [3] #228.1.1.num.int <2000 (0x7d0)> + [4] #227.1.1.num.int <5 (0x5)> + [5] #226.1.1.num.int <4 (0x4)> + [6] #224.1.1.num.int <1000 (0x3e8)> + [7] #216.1.1.num.int <200 (0xc8)> + [8] #215.1.1.num.int <100 (0x64)> + [9] #208.1.1.num.int <40 (0x28)> + [10] #207.1.1.num.int <30 (0x1e)> + [11] #201.1.1.num.int <5 (0x5)> + [12] #200.1.1.num.int <4 (0x4)> +IP: #237:0x6, type 8, 7[5] +GC: ++#190.1.1.mem.code.ro +== backtrace == + [0] #241.1.1.ctx.func + [1] #238.1.1.ctx.block + [2] #235.1.1.ctx.forall + [3] #229.1.1.ctx.func + [4] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.num.int <20000 (0x4e20)> + [1] #239.1.1.num.int <10000 (0x2710)> + [2] #230.1.2.num.int <1 (0x1)> + [3] #228.1.1.num.int <2000 (0x7d0)> + [4] #227.1.1.num.int <5 (0x5)> + [5] #226.1.1.num.int <4 (0x4)> + [6] #224.1.1.num.int <1000 (0x3e8)> + [7] #216.1.1.num.int <200 (0xc8)> + [8] #215.1.1.num.int <100 (0x64)> + [9] #208.1.1.num.int <40 (0x28)> + [10] #207.1.1.num.int <30 (0x1e)> + [11] #201.1.1.num.int <5 (0x5)> + [12] #200.1.1.num.int <4 (0x4)> +IP: #190:0x0, type 1, 4 (0x4) +== backtrace == + [0] #241.1.1.ctx.func + [1] #238.1.1.ctx.block + [2] #235.1.1.ctx.forall + [3] #229.1.1.ctx.func + [4] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <4 (0x4)> + [1] #240.1.1.num.int <20000 (0x4e20)> + [2] #239.1.1.num.int <10000 (0x2710)> + [3] #230.1.2.num.int <1 (0x1)> + [4] #228.1.1.num.int <2000 (0x7d0)> + [5] #227.1.1.num.int <5 (0x5)> + [6] #226.1.1.num.int <4 (0x4)> + [7] #224.1.1.num.int <1000 (0x3e8)> + [8] #216.1.1.num.int <200 (0xc8)> + [9] #215.1.1.num.int <100 (0x64)> + [10] #208.1.1.num.int <40 (0x28)> + [11] #207.1.1.num.int <30 (0x1e)> + [12] #201.1.1.num.int <5 (0x5)> + [13] #200.1.1.num.int <4 (0x4)> +IP: #190:0x1, type 1, 5 (0x5) +== backtrace == + [0] #241.1.1.ctx.func + [1] #238.1.1.ctx.block + [2] #235.1.1.ctx.forall + [3] #229.1.1.ctx.func + [4] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.num.int <5 (0x5)> + [1] #242.1.1.num.int <4 (0x4)> + [2] #240.1.1.num.int <20000 (0x4e20)> + [3] #239.1.1.num.int <10000 (0x2710)> + [4] #230.1.2.num.int <1 (0x1)> + [5] #228.1.1.num.int <2000 (0x7d0)> + [6] #227.1.1.num.int <5 (0x5)> + [7] #226.1.1.num.int <4 (0x4)> + [8] #224.1.1.num.int <1000 (0x3e8)> + [9] #216.1.1.num.int <200 (0xc8)> + [10] #215.1.1.num.int <100 (0x64)> + [11] #208.1.1.num.int <40 (0x28)> + [12] #207.1.1.num.int <30 (0x1e)> + [13] #201.1.1.num.int <5 (0x5)> + [14] #200.1.1.num.int <4 (0x4)> +IP: #190:0x2, type 8, 3[6] +GC: ++#238.1.1.ctx.block +GC: --#241.1.1.ctx.func +GC: --#238.1.2.ctx.block +GC: --#190.1.2.mem.code.ro +== backtrace == + [0] #238.1.1.ctx.block + [1] #235.1.1.ctx.forall + [2] #229.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.num.int <5 (0x5)> + [1] #242.1.1.num.int <4 (0x4)> + [2] #240.1.1.num.int <20000 (0x4e20)> + [3] #239.1.1.num.int <10000 (0x2710)> + [4] #230.1.2.num.int <1 (0x1)> + [5] #228.1.1.num.int <2000 (0x7d0)> + [6] #227.1.1.num.int <5 (0x5)> + [7] #226.1.1.num.int <4 (0x4)> + [8] #224.1.1.num.int <1000 (0x3e8)> + [9] #216.1.1.num.int <200 (0xc8)> + [10] #215.1.1.num.int <100 (0x64)> + [11] #208.1.1.num.int <40 (0x28)> + [12] #207.1.1.num.int <30 (0x1e)> + [13] #201.1.1.num.int <5 (0x5)> + [14] #200.1.1.num.int <4 (0x4)> +IP: #237:0xc, type 1, 30000 (0x7530) +== backtrace == + [0] #238.1.1.ctx.block + [1] #235.1.1.ctx.forall + [2] #229.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <30000 (0x7530)> + [1] #243.1.1.num.int <5 (0x5)> + [2] #242.1.1.num.int <4 (0x4)> + [3] #240.1.1.num.int <20000 (0x4e20)> + [4] #239.1.1.num.int <10000 (0x2710)> + [5] #230.1.2.num.int <1 (0x1)> + [6] #228.1.1.num.int <2000 (0x7d0)> + [7] #227.1.1.num.int <5 (0x5)> + [8] #226.1.1.num.int <4 (0x4)> + [9] #224.1.1.num.int <1000 (0x3e8)> + [10] #216.1.1.num.int <200 (0xc8)> + [11] #215.1.1.num.int <100 (0x64)> + [12] #208.1.1.num.int <40 (0x28)> + [13] #207.1.1.num.int <30 (0x1e)> + [14] #201.1.1.num.int <5 (0x5)> + [15] #200.1.1.num.int <4 (0x4)> +IP: #237:0xf, type 8, 16[5] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #245.1.1.ctx.func + [1] #238.1.1.ctx.block + [2] #235.1.1.ctx.forall + [3] #229.1.1.ctx.func + [4] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <30000 (0x7530)> + [1] #243.1.1.num.int <5 (0x5)> + [2] #242.1.1.num.int <4 (0x4)> + [3] #240.1.1.num.int <20000 (0x4e20)> + [4] #239.1.1.num.int <10000 (0x2710)> + [5] #230.1.2.num.int <1 (0x1)> + [6] #228.1.1.num.int <2000 (0x7d0)> + [7] #227.1.1.num.int <5 (0x5)> + [8] #226.1.1.num.int <4 (0x4)> + [9] #224.1.1.num.int <1000 (0x3e8)> + [10] #216.1.1.num.int <200 (0xc8)> + [11] #215.1.1.num.int <100 (0x64)> + [12] #208.1.1.num.int <40 (0x28)> + [13] #207.1.1.num.int <30 (0x1e)> + [14] #201.1.1.num.int <5 (0x5)> + [15] #200.1.1.num.int <4 (0x4)> +IP: #196:0x0, type 1, 2 (0x2) +== backtrace == + [0] #245.1.1.ctx.func + [1] #238.1.1.ctx.block + [2] #235.1.1.ctx.forall + [3] #229.1.1.ctx.func + [4] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.num.int <2 (0x2)> + [1] #244.1.1.num.int <30000 (0x7530)> + [2] #243.1.1.num.int <5 (0x5)> + [3] #242.1.1.num.int <4 (0x4)> + [4] #240.1.1.num.int <20000 (0x4e20)> + [5] #239.1.1.num.int <10000 (0x2710)> + [6] #230.1.2.num.int <1 (0x1)> + [7] #228.1.1.num.int <2000 (0x7d0)> + [8] #227.1.1.num.int <5 (0x5)> + [9] #226.1.1.num.int <4 (0x4)> + [10] #224.1.1.num.int <1000 (0x3e8)> + [11] #216.1.1.num.int <200 (0xc8)> + [12] #215.1.1.num.int <100 (0x64)> + [13] #208.1.1.num.int <40 (0x28)> + [14] #207.1.1.num.int <30 (0x1e)> + [15] #201.1.1.num.int <5 (0x5)> + [16] #200.1.1.num.int <4 (0x4)> +IP: #196:0x1, type 6, 3[30] +GC: ++#186.1.13.mem.ro +== backtrace == + [0] #245.1.1.ctx.func + [1] #238.1.1.ctx.block + [2] #235.1.1.ctx.forall + [3] #229.1.1.ctx.func + [4] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.1.1.mem.code.ro <#186.1.14.mem.ro, ofs 0x75, size 30> + [1] #246.1.1.num.int <2 (0x2)> + [2] #244.1.1.num.int <30000 (0x7530)> + [3] #243.1.1.num.int <5 (0x5)> + [4] #242.1.1.num.int <4 (0x4)> + [5] #240.1.1.num.int <20000 (0x4e20)> + [6] #239.1.1.num.int <10000 (0x2710)> + [7] #230.1.2.num.int <1 (0x1)> + [8] #228.1.1.num.int <2000 (0x7d0)> + [9] #227.1.1.num.int <5 (0x5)> + [10] #226.1.1.num.int <4 (0x4)> + [11] #224.1.1.num.int <1000 (0x3e8)> + [12] #216.1.1.num.int <200 (0xc8)> + [13] #215.1.1.num.int <100 (0x64)> + [14] #208.1.1.num.int <40 (0x28)> + [15] #207.1.1.num.int <30 (0x1e)> + [16] #201.1.1.num.int <5 (0x5)> + [17] #200.1.1.num.int <4 (0x4)> +IP: #196:0x21, type 8, 34[6] +GC: ++#247.1.1.mem.code.ro +GC: --#247.1.2.mem.code.ro +GC: --#246.1.1.num.int +== backtrace == + [0] #248.1.1.ctx.repeat + [1] #245.1.1.ctx.func + [2] #238.1.1.ctx.block + [3] #235.1.1.ctx.forall + [4] #229.1.1.ctx.func + [5] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <30000 (0x7530)> + [1] #243.1.1.num.int <5 (0x5)> + [2] #242.1.1.num.int <4 (0x4)> + [3] #240.1.1.num.int <20000 (0x4e20)> + [4] #239.1.1.num.int <10000 (0x2710)> + [5] #230.1.2.num.int <1 (0x1)> + [6] #228.1.1.num.int <2000 (0x7d0)> + [7] #227.1.1.num.int <5 (0x5)> + [8] #226.1.1.num.int <4 (0x4)> + [9] #224.1.1.num.int <1000 (0x3e8)> + [10] #216.1.1.num.int <200 (0xc8)> + [11] #215.1.1.num.int <100 (0x64)> + [12] #208.1.1.num.int <40 (0x28)> + [13] #207.1.1.num.int <30 (0x1e)> + [14] #201.1.1.num.int <5 (0x5)> + [15] #200.1.1.num.int <4 (0x4)> +IP: #247:0x0, type 2, 1 (0x1) +== backtrace == + [0] #248.1.1.ctx.repeat + [1] #245.1.1.ctx.func + [2] #238.1.1.ctx.block + [3] #235.1.1.ctx.forall + [4] #229.1.1.ctx.func + [5] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #249.1.1.num.bool <1 (0x1)> + [1] #244.1.1.num.int <30000 (0x7530)> + [2] #243.1.1.num.int <5 (0x5)> + [3] #242.1.1.num.int <4 (0x4)> + [4] #240.1.1.num.int <20000 (0x4e20)> + [5] #239.1.1.num.int <10000 (0x2710)> + [6] #230.1.2.num.int <1 (0x1)> + [7] #228.1.1.num.int <2000 (0x7d0)> + [8] #227.1.1.num.int <5 (0x5)> + [9] #226.1.1.num.int <4 (0x4)> + [10] #224.1.1.num.int <1000 (0x3e8)> + [11] #216.1.1.num.int <200 (0xc8)> + [12] #215.1.1.num.int <100 (0x64)> + [13] #208.1.1.num.int <40 (0x28)> + [14] #207.1.1.num.int <30 (0x1e)> + [15] #201.1.1.num.int <5 (0x5)> + [16] #200.1.1.num.int <4 (0x4)> +IP: #247:0x1, type 6, 3[23] +GC: ++#186.1.14.mem.ro +== backtrace == + [0] #248.1.1.ctx.repeat + [1] #245.1.1.ctx.func + [2] #238.1.1.ctx.block + [3] #235.1.1.ctx.forall + [4] #229.1.1.ctx.func + [5] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #250.1.1.mem.code.ro <#186.1.15.mem.ro, ofs 0x78, size 23> + [1] #249.1.1.num.bool <1 (0x1)> + [2] #244.1.1.num.int <30000 (0x7530)> + [3] #243.1.1.num.int <5 (0x5)> + [4] #242.1.1.num.int <4 (0x4)> + [5] #240.1.1.num.int <20000 (0x4e20)> + [6] #239.1.1.num.int <10000 (0x2710)> + [7] #230.1.2.num.int <1 (0x1)> + [8] #228.1.1.num.int <2000 (0x7d0)> + [9] #227.1.1.num.int <5 (0x5)> + [10] #226.1.1.num.int <4 (0x4)> + [11] #224.1.1.num.int <1000 (0x3e8)> + [12] #216.1.1.num.int <200 (0xc8)> + [13] #215.1.1.num.int <100 (0x64)> + [14] #208.1.1.num.int <40 (0x28)> + [15] #207.1.1.num.int <30 (0x1e)> + [16] #201.1.1.num.int <5 (0x5)> + [17] #200.1.1.num.int <4 (0x4)> +IP: #247:0x1a, type 8, 27[2] +GC: ++#250.1.1.mem.code.ro +GC: --#250.1.2.mem.code.ro +GC: --#249.1.1.num.bool +== backtrace == + [0] #251.1.1.ctx.block + [1] #248.1.1.ctx.repeat + [2] #245.1.1.ctx.func + [3] #238.1.1.ctx.block + [4] #235.1.1.ctx.forall + [5] #229.1.1.ctx.func + [6] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <30000 (0x7530)> + [1] #243.1.1.num.int <5 (0x5)> + [2] #242.1.1.num.int <4 (0x4)> + [3] #240.1.1.num.int <20000 (0x4e20)> + [4] #239.1.1.num.int <10000 (0x2710)> + [5] #230.1.2.num.int <1 (0x1)> + [6] #228.1.1.num.int <2000 (0x7d0)> + [7] #227.1.1.num.int <5 (0x5)> + [8] #226.1.1.num.int <4 (0x4)> + [9] #224.1.1.num.int <1000 (0x3e8)> + [10] #216.1.1.num.int <200 (0xc8)> + [11] #215.1.1.num.int <100 (0x64)> + [12] #208.1.1.num.int <40 (0x28)> + [13] #207.1.1.num.int <30 (0x1e)> + [14] #201.1.1.num.int <5 (0x5)> + [15] #200.1.1.num.int <4 (0x4)> +IP: #250:0x0, type 1, 1000 (0x3e8) +== backtrace == + [0] #251.1.1.ctx.block + [1] #248.1.1.ctx.repeat + [2] #245.1.1.ctx.func + [3] #238.1.1.ctx.block + [4] #235.1.1.ctx.forall + [5] #229.1.1.ctx.func + [6] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #252.1.1.num.int <1000 (0x3e8)> + [1] #244.1.1.num.int <30000 (0x7530)> + [2] #243.1.1.num.int <5 (0x5)> + [3] #242.1.1.num.int <4 (0x4)> + [4] #240.1.1.num.int <20000 (0x4e20)> + [5] #239.1.1.num.int <10000 (0x2710)> + [6] #230.1.2.num.int <1 (0x1)> + [7] #228.1.1.num.int <2000 (0x7d0)> + [8] #227.1.1.num.int <5 (0x5)> + [9] #226.1.1.num.int <4 (0x4)> + [10] #224.1.1.num.int <1000 (0x3e8)> + [11] #216.1.1.num.int <200 (0xc8)> + [12] #215.1.1.num.int <100 (0x64)> + [13] #208.1.1.num.int <40 (0x28)> + [14] #207.1.1.num.int <30 (0x1e)> + [15] #201.1.1.num.int <5 (0x5)> + [16] #200.1.1.num.int <4 (0x4)> +IP: #250:0x3, type 8, 4[5] +GC: ++#190.1.1.mem.code.ro +== backtrace == + [0] #253.1.1.ctx.func + [1] #251.1.1.ctx.block + [2] #248.1.1.ctx.repeat + [3] #245.1.1.ctx.func + [4] #238.1.1.ctx.block + [5] #235.1.1.ctx.forall + [6] #229.1.1.ctx.func + [7] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #252.1.1.num.int <1000 (0x3e8)> + [1] #244.1.1.num.int <30000 (0x7530)> + [2] #243.1.1.num.int <5 (0x5)> + [3] #242.1.1.num.int <4 (0x4)> + [4] #240.1.1.num.int <20000 (0x4e20)> + [5] #239.1.1.num.int <10000 (0x2710)> + [6] #230.1.2.num.int <1 (0x1)> + [7] #228.1.1.num.int <2000 (0x7d0)> + [8] #227.1.1.num.int <5 (0x5)> + [9] #226.1.1.num.int <4 (0x4)> + [10] #224.1.1.num.int <1000 (0x3e8)> + [11] #216.1.1.num.int <200 (0xc8)> + [12] #215.1.1.num.int <100 (0x64)> + [13] #208.1.1.num.int <40 (0x28)> + [14] #207.1.1.num.int <30 (0x1e)> + [15] #201.1.1.num.int <5 (0x5)> + [16] #200.1.1.num.int <4 (0x4)> +IP: #190:0x0, type 1, 4 (0x4) +== backtrace == + [0] #253.1.1.ctx.func + [1] #251.1.1.ctx.block + [2] #248.1.1.ctx.repeat + [3] #245.1.1.ctx.func + [4] #238.1.1.ctx.block + [5] #235.1.1.ctx.forall + [6] #229.1.1.ctx.func + [7] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #254.1.1.num.int <4 (0x4)> + [1] #252.1.1.num.int <1000 (0x3e8)> + [2] #244.1.1.num.int <30000 (0x7530)> + [3] #243.1.1.num.int <5 (0x5)> + [4] #242.1.1.num.int <4 (0x4)> + [5] #240.1.1.num.int <20000 (0x4e20)> + [6] #239.1.1.num.int <10000 (0x2710)> + [7] #230.1.2.num.int <1 (0x1)> + [8] #228.1.1.num.int <2000 (0x7d0)> + [9] #227.1.1.num.int <5 (0x5)> + [10] #226.1.1.num.int <4 (0x4)> + [11] #224.1.1.num.int <1000 (0x3e8)> + [12] #216.1.1.num.int <200 (0xc8)> + [13] #215.1.1.num.int <100 (0x64)> + [14] #208.1.1.num.int <40 (0x28)> + [15] #207.1.1.num.int <30 (0x1e)> + [16] #201.1.1.num.int <5 (0x5)> + [17] #200.1.1.num.int <4 (0x4)> +IP: #190:0x1, type 1, 5 (0x5) +== backtrace == + [0] #253.1.1.ctx.func + [1] #251.1.1.ctx.block + [2] #248.1.1.ctx.repeat + [3] #245.1.1.ctx.func + [4] #238.1.1.ctx.block + [5] #235.1.1.ctx.forall + [6] #229.1.1.ctx.func + [7] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.1.1.num.int <5 (0x5)> + [1] #254.1.1.num.int <4 (0x4)> + [2] #252.1.1.num.int <1000 (0x3e8)> + [3] #244.1.1.num.int <30000 (0x7530)> + [4] #243.1.1.num.int <5 (0x5)> + [5] #242.1.1.num.int <4 (0x4)> + [6] #240.1.1.num.int <20000 (0x4e20)> + [7] #239.1.1.num.int <10000 (0x2710)> + [8] #230.1.2.num.int <1 (0x1)> + [9] #228.1.1.num.int <2000 (0x7d0)> + [10] #227.1.1.num.int <5 (0x5)> + [11] #226.1.1.num.int <4 (0x4)> + [12] #224.1.1.num.int <1000 (0x3e8)> + [13] #216.1.1.num.int <200 (0xc8)> + [14] #215.1.1.num.int <100 (0x64)> + [15] #208.1.1.num.int <40 (0x28)> + [16] #207.1.1.num.int <30 (0x1e)> + [17] #201.1.1.num.int <5 (0x5)> + [18] #200.1.1.num.int <4 (0x4)> +IP: #190:0x2, type 8, 3[6] +GC: ++#251.1.1.ctx.block +GC: --#253.1.1.ctx.func +GC: --#251.1.2.ctx.block +GC: --#190.1.2.mem.code.ro +== backtrace == + [0] #251.1.1.ctx.block + [1] #248.1.1.ctx.repeat + [2] #245.1.1.ctx.func + [3] #238.1.1.ctx.block + [4] #235.1.1.ctx.forall + [5] #229.1.1.ctx.func + [6] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.1.1.num.int <5 (0x5)> + [1] #254.1.1.num.int <4 (0x4)> + [2] #252.1.1.num.int <1000 (0x3e8)> + [3] #244.1.1.num.int <30000 (0x7530)> + [4] #243.1.1.num.int <5 (0x5)> + [5] #242.1.1.num.int <4 (0x4)> + [6] #240.1.1.num.int <20000 (0x4e20)> + [7] #239.1.1.num.int <10000 (0x2710)> + [8] #230.1.2.num.int <1 (0x1)> + [9] #228.1.1.num.int <2000 (0x7d0)> + [10] #227.1.1.num.int <5 (0x5)> + [11] #226.1.1.num.int <4 (0x4)> + [12] #224.1.1.num.int <1000 (0x3e8)> + [13] #216.1.1.num.int <200 (0xc8)> + [14] #215.1.1.num.int <100 (0x64)> + [15] #208.1.1.num.int <40 (0x28)> + [16] #207.1.1.num.int <30 (0x1e)> + [17] #201.1.1.num.int <5 (0x5)> + [18] #200.1.1.num.int <4 (0x4)> +IP: #250:0x9, type 1, 2000 (0x7d0) +== backtrace == + [0] #251.1.1.ctx.block + [1] #248.1.1.ctx.repeat + [2] #245.1.1.ctx.func + [3] #238.1.1.ctx.block + [4] #235.1.1.ctx.forall + [5] #229.1.1.ctx.func + [6] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.1.1.num.int <2000 (0x7d0)> + [1] #255.1.1.num.int <5 (0x5)> + [2] #254.1.1.num.int <4 (0x4)> + [3] #252.1.1.num.int <1000 (0x3e8)> + [4] #244.1.1.num.int <30000 (0x7530)> + [5] #243.1.1.num.int <5 (0x5)> + [6] #242.1.1.num.int <4 (0x4)> + [7] #240.1.1.num.int <20000 (0x4e20)> + [8] #239.1.1.num.int <10000 (0x2710)> + [9] #230.1.2.num.int <1 (0x1)> + [10] #228.1.1.num.int <2000 (0x7d0)> + [11] #227.1.1.num.int <5 (0x5)> + [12] #226.1.1.num.int <4 (0x4)> + [13] #224.1.1.num.int <1000 (0x3e8)> + [14] #216.1.1.num.int <200 (0xc8)> + [15] #215.1.1.num.int <100 (0x64)> + [16] #208.1.1.num.int <40 (0x28)> + [17] #207.1.1.num.int <30 (0x1e)> + [18] #201.1.1.num.int <5 (0x5)> + [19] #200.1.1.num.int <4 (0x4)> +IP: #250:0xc, type 8, 13[6] +GC: ++#238.1.1.ctx.block +GC: --#251.1.1.ctx.block +GC: --#248.1.1.ctx.repeat +GC: --#250.1.1.mem.code.ro +GC: --#245.1.1.ctx.func +GC: --#247.1.1.mem.code.ro +GC: --#186.1.15.mem.ro +GC: --#238.1.2.ctx.block +GC: --#196.1.2.mem.code.ro +GC: --#186.1.14.mem.ro +== backtrace == + [0] #238.1.1.ctx.block + [1] #235.1.1.ctx.forall + [2] #229.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.1.1.num.int <2000 (0x7d0)> + [1] #255.1.1.num.int <5 (0x5)> + [2] #254.1.1.num.int <4 (0x4)> + [3] #252.1.1.num.int <1000 (0x3e8)> + [4] #244.1.1.num.int <30000 (0x7530)> + [5] #243.1.1.num.int <5 (0x5)> + [6] #242.1.1.num.int <4 (0x4)> + [7] #240.1.1.num.int <20000 (0x4e20)> + [8] #239.1.1.num.int <10000 (0x2710)> + [9] #230.1.2.num.int <1 (0x1)> + [10] #228.1.1.num.int <2000 (0x7d0)> + [11] #227.1.1.num.int <5 (0x5)> + [12] #226.1.1.num.int <4 (0x4)> + [13] #224.1.1.num.int <1000 (0x3e8)> + [14] #216.1.1.num.int <200 (0xc8)> + [15] #215.1.1.num.int <100 (0x64)> + [16] #208.1.1.num.int <40 (0x28)> + [17] #207.1.1.num.int <30 (0x1e)> + [18] #201.1.1.num.int <5 (0x5)> + [19] #200.1.1.num.int <4 (0x4)> +IP: #237:0x15, type 1, 40000 (0x9c40) +== backtrace == + [0] #238.1.1.ctx.block + [1] #235.1.1.ctx.forall + [2] #229.1.1.ctx.func + [3] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #257.1.1.num.int <40000 (0x9c40)> + [1] #256.1.1.num.int <2000 (0x7d0)> + [2] #255.1.1.num.int <5 (0x5)> + [3] #254.1.1.num.int <4 (0x4)> + [4] #252.1.1.num.int <1000 (0x3e8)> + [5] #244.1.1.num.int <30000 (0x7530)> + [6] #243.1.1.num.int <5 (0x5)> + [7] #242.1.1.num.int <4 (0x4)> + [8] #240.1.1.num.int <20000 (0x4e20)> + [9] #239.1.1.num.int <10000 (0x2710)> + [10] #230.1.2.num.int <1 (0x1)> + [11] #228.1.1.num.int <2000 (0x7d0)> + [12] #227.1.1.num.int <5 (0x5)> + [13] #226.1.1.num.int <4 (0x4)> + [14] #224.1.1.num.int <1000 (0x3e8)> + [15] #216.1.1.num.int <200 (0xc8)> + [16] #215.1.1.num.int <100 (0x64)> + [17] #208.1.1.num.int <40 (0x28)> + [18] #207.1.1.num.int <30 (0x1e)> + [19] #201.1.1.num.int <5 (0x5)> + [20] #200.1.1.num.int <4 (0x4)> +IP: #237:0x19, type 8, 26[6] +GC: ++#188.1.1.ctx.func +GC: --#238.1.1.ctx.block +GC: --#235.1.1.ctx.forall +GC: --#237.1.1.mem.code.ro +GC: --#229.1.1.ctx.func +GC: --#234.1.1.mem.code.ro +GC: --#233.1.1.array +GC: --#186.1.13.mem.ro +GC: --#188.1.2.ctx.func +GC: --#198.1.2.mem.code.ro +GC: --#186.1.12.mem.ro +GC: --#230.1.2.num.int +GC: --#231.1.1.num.int +GC: --#232.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #257.1.1.num.int <40000 (0x9c40)> + [1] #256.1.1.num.int <2000 (0x7d0)> + [2] #255.1.1.num.int <5 (0x5)> + [3] #254.1.1.num.int <4 (0x4)> + [4] #252.1.1.num.int <1000 (0x3e8)> + [5] #244.1.1.num.int <30000 (0x7530)> + [6] #243.1.1.num.int <5 (0x5)> + [7] #242.1.1.num.int <4 (0x4)> + [8] #240.1.1.num.int <20000 (0x4e20)> + [9] #239.1.1.num.int <10000 (0x2710)> + [10] #230.1.1.num.int <1 (0x1)> + [11] #228.1.1.num.int <2000 (0x7d0)> + [12] #227.1.1.num.int <5 (0x5)> + [13] #226.1.1.num.int <4 (0x4)> + [14] #224.1.1.num.int <1000 (0x3e8)> + [15] #216.1.1.num.int <200 (0xc8)> + [16] #215.1.1.num.int <100 (0x64)> + [17] #208.1.1.num.int <40 (0x28)> + [18] #207.1.1.num.int <30 (0x1e)> + [19] #201.1.1.num.int <5 (0x5)> + [20] #200.1.1.num.int <4 (0x4)> +IP: #186:0x106, type 1, 7 (0x7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.2.1.num.int <7 (0x7)> + [1] #257.1.1.num.int <40000 (0x9c40)> + [2] #256.1.1.num.int <2000 (0x7d0)> + [3] #255.1.1.num.int <5 (0x5)> + [4] #254.1.1.num.int <4 (0x4)> + [5] #252.1.1.num.int <1000 (0x3e8)> + [6] #244.1.1.num.int <30000 (0x7530)> + [7] #243.1.1.num.int <5 (0x5)> + [8] #242.1.1.num.int <4 (0x4)> + [9] #240.1.1.num.int <20000 (0x4e20)> + [10] #239.1.1.num.int <10000 (0x2710)> + [11] #230.1.1.num.int <1 (0x1)> + [12] #228.1.1.num.int <2000 (0x7d0)> + [13] #227.1.1.num.int <5 (0x5)> + [14] #226.1.1.num.int <4 (0x4)> + [15] #224.1.1.num.int <1000 (0x3e8)> + [16] #216.1.1.num.int <200 (0xc8)> + [17] #215.1.1.num.int <100 (0x64)> + [18] #208.1.1.num.int <40 (0x28)> + [19] #207.1.1.num.int <30 (0x1e)> + [20] #201.1.1.num.int <5 (0x5)> + [21] #200.1.1.num.int <4 (0x4)> +IP: #186:0x107, type 1, 8 (0x8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.2.1.num.int <8 (0x8)> + [1] #199.2.1.num.int <7 (0x7)> + [2] #257.1.1.num.int <40000 (0x9c40)> + [3] #256.1.1.num.int <2000 (0x7d0)> + [4] #255.1.1.num.int <5 (0x5)> + [5] #254.1.1.num.int <4 (0x4)> + [6] #252.1.1.num.int <1000 (0x3e8)> + [7] #244.1.1.num.int <30000 (0x7530)> + [8] #243.1.1.num.int <5 (0x5)> + [9] #242.1.1.num.int <4 (0x4)> + [10] #240.1.1.num.int <20000 (0x4e20)> + [11] #239.1.1.num.int <10000 (0x2710)> + [12] #230.1.1.num.int <1 (0x1)> + [13] #228.1.1.num.int <2000 (0x7d0)> + [14] #227.1.1.num.int <5 (0x5)> + [15] #226.1.1.num.int <4 (0x4)> + [16] #224.1.1.num.int <1000 (0x3e8)> + [17] #216.1.1.num.int <200 (0xc8)> + [18] #215.1.1.num.int <100 (0x64)> + [19] #208.1.1.num.int <40 (0x28)> + [20] #207.1.1.num.int <30 (0x1e)> + [21] #201.1.1.num.int <5 (0x5)> + [22] #200.1.1.num.int <4 (0x4)> +IP: #186:0x109, type 8, 266[6] +GC: --#188.1.1.ctx.func +GC: --#186.1.11.mem.ro +GC: --#4.1.2.hash +== backtrace == +== stack (#187.1.1.array) == + [0] #203.2.1.num.int <8 (0x8)> + [1] #199.2.1.num.int <7 (0x7)> + [2] #257.1.1.num.int <40000 (0x9c40)> + [3] #256.1.1.num.int <2000 (0x7d0)> + [4] #255.1.1.num.int <5 (0x5)> + [5] #254.1.1.num.int <4 (0x4)> + [6] #252.1.1.num.int <1000 (0x3e8)> + [7] #244.1.1.num.int <30000 (0x7530)> + [8] #243.1.1.num.int <5 (0x5)> + [9] #242.1.1.num.int <4 (0x4)> + [10] #240.1.1.num.int <20000 (0x4e20)> + [11] #239.1.1.num.int <10000 (0x2710)> + [12] #230.1.1.num.int <1 (0x1)> + [13] #228.1.1.num.int <2000 (0x7d0)> + [14] #227.1.1.num.int <5 (0x5)> + [15] #226.1.1.num.int <4 (0x4)> + [16] #224.1.1.num.int <1000 (0x3e8)> + [17] #216.1.1.num.int <200 (0xc8)> + [18] #215.1.1.num.int <100 (0x64)> + [19] #208.1.1.num.int <40 (0x28)> + [20] #207.1.1.num.int <30 (0x1e)> + [21] #201.1.1.num.int <5 (0x5)> + [22] #200.1.1.num.int <4 (0x4)> diff --git a/tests/0012_get/basic.log.ref b/tests/0012_get/basic.log.ref new file mode 100644 index 0000000..0e042da --- /dev/null +++ b/tests/0012_get/basic.log.ref @@ -0,0 +1,744 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> + [4] #xxxx.1.2.num.prim <2 (0x2)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.2.array +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.2.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.2.array + [2] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <40 (0x28)> + [1] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.2.num.int <40 (0x28)> + [2] #xxxx.1.2.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.2.array + [2] #xxxx.1.2.num.int <40 (0x28)> + [3] #xxxx.1.2.num.int <10 (0xa)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.num.int <40 (0x28)> + [2] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #0.0.nil + [2] #xxxx.1.2.num.int <40 (0x28)> + [3] #xxxx.1.2.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [1] #xxxx.1.2.array + [2] #0.0.nil + [3] #xxxx.1.2.num.int <40 (0x28)> + [4] #xxxx.1.2.num.int <10 (0xa)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #xxxx.1.2.num.int <40 (0x28)> + [3] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #0.0.nil + [2] #0.0.nil + [3] #xxxx.1.2.num.int <40 (0x28)> + [4] #xxxx.1.2.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.2.array + [2] #0.0.nil + [3] #0.0.nil + [4] #xxxx.1.2.num.int <40 (0x28)> + [5] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <40 (0x28)> + [1] #0.0.nil + [2] #0.0.nil + [3] #xxxx.1.3.num.int <40 (0x28)> + [4] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.3.num.int <40 (0x28)> + [2] #0.0.nil + [3] #0.0.nil + [4] #xxxx.1.3.num.int <40 (0x28)> + [5] #xxxx.1.2.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-4 (0xfffffffffffffffc)> + [1] #xxxx.1.2.array + [2] #xxxx.1.3.num.int <40 (0x28)> + [3] #0.0.nil + [4] #0.0.nil + [5] #xxxx.1.3.num.int <40 (0x28)> + [6] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <10 (0xa)> + [1] #xxxx.1.3.num.int <40 (0x28)> + [2] #0.0.nil + [3] #0.0.nil + [4] #xxxx.1.3.num.int <40 (0x28)> + [5] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [1] #xxxx.1.3.num.int <10 (0xa)> + [2] #xxxx.1.3.num.int <40 (0x28)> + [3] #0.0.nil + [4] #0.0.nil + [5] #xxxx.1.3.num.int <40 (0x28)> + [6] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [2] #xxxx.1.3.num.int <10 (0xa)> + [3] #xxxx.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #xxxx.1.3.num.int <40 (0x28)> + [7] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo_2"> + [3] #xxxx.1.3.num.int <10 (0xa)> + [4] #xxxx.1.3.num.int <40 (0x28)> + [5] #0.0.nil + [6] #0.0.nil + [7] #xxxx.1.3.num.int <40 (0x28)> + [8] #xxxx.1.3.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo_2"> + [4] #xxxx.1.3.num.int <10 (0xa)> + [5] #xxxx.1.3.num.int <40 (0x28)> + [6] #0.0.nil + [7] #0.0.nil + [8] #xxxx.1.3.num.int <40 (0x28)> + [9] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> + [5] #xxxx.1.3.num.int <10 (0xa)> + [6] #xxxx.1.3.num.int <40 (0x28)> + [7] #0.0.nil + [8] #0.0.nil + [9] #xxxx.1.3.num.int <40 (0x28)> + [10] #xxxx.1.3.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [2] #xxxx.1.1.num.int <11 (0xb)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> + [6] #xxxx.1.3.num.int <10 (0xa)> + [7] #xxxx.1.3.num.int <40 (0x28)> + [8] #0.0.nil + [9] #0.0.nil + [10] #xxxx.1.3.num.int <40 (0x28)> + [11] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [1] #xxxx.1.1.num.int <22 (0x16)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [3] #xxxx.1.1.num.int <11 (0xb)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> + [7] #xxxx.1.3.num.int <10 (0xa)> + [8] #xxxx.1.3.num.int <40 (0x28)> + [9] #0.0.nil + [10] #0.0.nil + [11] #xxxx.1.3.num.int <40 (0x28)> + [12] #xxxx.1.3.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <33 (0x21)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <22 (0x16)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [4] #xxxx.1.1.num.int <11 (0xb)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> + [8] #xxxx.1.3.num.int <10 (0xa)> + [9] #xxxx.1.3.num.int <40 (0x28)> + [10] #0.0.nil + [11] #0.0.nil + [12] #xxxx.1.3.num.int <40 (0x28)> + [13] #xxxx.1.3.num.int <10 (0xa)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> + [2] #xxxx.1.3.num.int <10 (0xa)> + [3] #xxxx.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #xxxx.1.3.num.int <40 (0x28)> + [7] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <10 (0xa)> + [1] #xxxx.1.3.num.int <40 (0x28)> + [2] #0.0.nil + [3] #0.0.nil + [4] #xxxx.1.3.num.int <40 (0x28)> + [5] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.3.num.int <10 (0xa)> + [2] #xxxx.1.3.num.int <40 (0x28)> + [3] #0.0.nil + [4] #0.0.nil + [5] #xxxx.1.3.num.int <40 (0x28)> + [6] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "bb"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.3.num.int <10 (0xa)> + [3] #xxxx.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #xxxx.1.3.num.int <40 (0x28)> + [7] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.7.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <22 (0x16)> + [1] #xxxx.1.3.num.int <10 (0xa)> + [2] #xxxx.1.3.num.int <40 (0x28)> + [3] #0.0.nil + [4] #0.0.nil + [5] #xxxx.1.3.num.int <40 (0x28)> + [6] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <22 (0x16)> + [2] #xxxx.1.3.num.int <10 (0xa)> + [3] #xxxx.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #xxxx.1.3.num.int <40 (0x28)> + [7] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "dd"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.2.num.int <22 (0x16)> + [3] #xxxx.1.3.num.int <10 (0xa)> + [4] #xxxx.1.3.num.int <40 (0x28)> + [5] #0.0.nil + [6] #0.0.nil + [7] #xxxx.1.3.num.int <40 (0x28)> + [8] #xxxx.1.3.num.int <10 (0xa)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.7.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.num.int <22 (0x16)> + [2] #xxxx.1.3.num.int <10 (0xa)> + [3] #xxxx.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #xxxx.1.3.num.int <40 (0x28)> + [7] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo_3"> + [1] #0.0.nil + [2] #xxxx.1.2.num.int <22 (0x16)> + [3] #xxxx.1.3.num.int <10 (0xa)> + [4] #xxxx.1.3.num.int <40 (0x28)> + [5] #0.0.nil + [6] #0.0.nil + [7] #xxxx.1.3.num.int <40 (0x28)> + [8] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "foo_3"> + [2] #0.0.nil + [3] #xxxx.1.2.num.int <22 (0x16)> + [4] #xxxx.1.3.num.int <10 (0xa)> + [5] #xxxx.1.3.num.int <40 (0x28)> + [6] #0.0.nil + [7] #0.0.nil + [8] #xxxx.1.3.num.int <40 (0x28)> + [9] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.num.int <22 (0x16)> + [2] #xxxx.1.3.num.int <10 (0xa)> + [3] #xxxx.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #xxxx.1.3.num.int <40 (0x28)> + [7] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [1] #0.0.nil + [2] #xxxx.1.2.num.int <22 (0x16)> + [3] #xxxx.1.3.num.int <10 (0xa)> + [4] #xxxx.1.3.num.int <40 (0x28)> + [5] #0.0.nil + [6] #0.0.nil + [7] #xxxx.1.3.num.int <40 (0x28)> + [8] #xxxx.1.3.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [2] #0.0.nil + [3] #xxxx.1.2.num.int <22 (0x16)> + [4] #xxxx.1.3.num.int <10 (0xa)> + [5] #xxxx.1.3.num.int <40 (0x28)> + [6] #0.0.nil + [7] #0.0.nil + [8] #xxxx.1.3.num.int <40 (0x28)> + [9] #xxxx.1.3.num.int <10 (0xa)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <65 (0x41)> + [1] #0.0.nil + [2] #xxxx.1.2.num.int <22 (0x16)> + [3] #xxxx.1.3.num.int <10 (0xa)> + [4] #xxxx.1.3.num.int <40 (0x28)> + [5] #0.0.nil + [6] #0.0.nil + [7] #xxxx.1.3.num.int <40 (0x28)> + [8] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [1] #xxxx.1.1.num.int <65 (0x41)> + [2] #0.0.nil + [3] #xxxx.1.2.num.int <22 (0x16)> + [4] #xxxx.1.3.num.int <10 (0xa)> + [5] #xxxx.1.3.num.int <40 (0x28)> + [6] #0.0.nil + [7] #0.0.nil + [8] #xxxx.1.3.num.int <40 (0x28)> + [9] #xxxx.1.3.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9 (0x9)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [2] #xxxx.1.1.num.int <65 (0x41)> + [3] #0.0.nil + [4] #xxxx.1.2.num.int <22 (0x16)> + [5] #xxxx.1.3.num.int <10 (0xa)> + [6] #xxxx.1.3.num.int <40 (0x28)> + [7] #0.0.nil + [8] #0.0.nil + [9] #xxxx.1.3.num.int <40 (0x28)> + [10] #xxxx.1.3.num.int <10 (0xa)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <53 (0x35)> + [1] #xxxx.1.1.num.int <65 (0x41)> + [2] #0.0.nil + [3] #xxxx.1.2.num.int <22 (0x16)> + [4] #xxxx.1.3.num.int <10 (0xa)> + [5] #xxxx.1.3.num.int <40 (0x28)> + [6] #0.0.nil + [7] #0.0.nil + [8] #xxxx.1.3.num.int <40 (0x28)> + [9] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [1] #xxxx.1.1.num.int <53 (0x35)> + [2] #xxxx.1.1.num.int <65 (0x41)> + [3] #0.0.nil + [4] #xxxx.1.2.num.int <22 (0x16)> + [5] #xxxx.1.3.num.int <10 (0xa)> + [6] #xxxx.1.3.num.int <40 (0x28)> + [7] #0.0.nil + [8] #0.0.nil + [9] #xxxx.1.3.num.int <40 (0x28)> + [10] #xxxx.1.3.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [2] #xxxx.1.1.num.int <53 (0x35)> + [3] #xxxx.1.1.num.int <65 (0x41)> + [4] #0.0.nil + [5] #xxxx.1.2.num.int <22 (0x16)> + [6] #xxxx.1.3.num.int <10 (0xa)> + [7] #xxxx.1.3.num.int <40 (0x28)> + [8] #0.0.nil + [9] #0.0.nil + [10] #xxxx.1.3.num.int <40 (0x28)> + [11] #xxxx.1.3.num.int <10 (0xa)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.int <53 (0x35)> + [2] #xxxx.1.1.num.int <65 (0x41)> + [3] #0.0.nil + [4] #xxxx.1.2.num.int <22 (0x16)> + [5] #xxxx.1.3.num.int <10 (0xa)> + [6] #xxxx.1.3.num.int <40 (0x28)> + [7] #0.0.nil + [8] #0.0.nil + [9] #xxxx.1.3.num.int <40 (0x28)> + [10] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [1] #0.0.nil + [2] #xxxx.1.1.num.int <53 (0x35)> + [3] #xxxx.1.1.num.int <65 (0x41)> + [4] #0.0.nil + [5] #xxxx.1.2.num.int <22 (0x16)> + [6] #xxxx.1.3.num.int <10 (0xa)> + [7] #xxxx.1.3.num.int <40 (0x28)> + [8] #0.0.nil + [9] #0.0.nil + [10] #xxxx.1.3.num.int <40 (0x28)> + [11] #xxxx.1.3.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-11 (0xfffffffffffffff5)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [2] #0.0.nil + [3] #xxxx.1.1.num.int <53 (0x35)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #0.0.nil + [6] #xxxx.1.2.num.int <22 (0x16)> + [7] #xxxx.1.3.num.int <10 (0xa)> + [8] #xxxx.1.3.num.int <40 (0x28)> + [9] #0.0.nil + [10] #0.0.nil + [11] #xxxx.1.3.num.int <40 (0x28)> + [12] #xxxx.1.3.num.int <10 (0xa)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #xxxx.1.1.num.int <53 (0x35)> + [3] #xxxx.1.1.num.int <65 (0x41)> + [4] #0.0.nil + [5] #xxxx.1.2.num.int <22 (0x16)> + [6] #xxxx.1.3.num.int <10 (0xa)> + [7] #xxxx.1.3.num.int <40 (0x28)> + [8] #0.0.nil + [9] #0.0.nil + [10] #xxxx.1.3.num.int <40 (0x28)> + [11] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [1] #0.0.nil + [2] #0.0.nil + [3] #xxxx.1.1.num.int <53 (0x35)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #0.0.nil + [6] #xxxx.1.2.num.int <22 (0x16)> + [7] #xxxx.1.3.num.int <10 (0xa)> + [8] #xxxx.1.3.num.int <40 (0x28)> + [9] #0.0.nil + [10] #0.0.nil + [11] #xxxx.1.3.num.int <40 (0x28)> + [12] #xxxx.1.3.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [2] #0.0.nil + [3] #0.0.nil + [4] #xxxx.1.1.num.int <53 (0x35)> + [5] #xxxx.1.1.num.int <65 (0x41)> + [6] #0.0.nil + [7] #xxxx.1.2.num.int <22 (0x16)> + [8] #xxxx.1.3.num.int <10 (0xa)> + [9] #xxxx.1.3.num.int <40 (0x28)> + [10] #0.0.nil + [11] #0.0.nil + [12] #xxxx.1.3.num.int <40 (0x28)> + [13] #xxxx.1.3.num.int <10 (0xa)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <53 (0x35)> + [1] #0.0.nil + [2] #0.0.nil + [3] #xxxx.1.1.num.int <53 (0x35)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #0.0.nil + [6] #xxxx.1.2.num.int <22 (0x16)> + [7] #xxxx.1.3.num.int <10 (0xa)> + [8] #xxxx.1.3.num.int <40 (0x28)> + [9] #0.0.nil + [10] #0.0.nil + [11] #xxxx.1.3.num.int <40 (0x28)> + [12] #xxxx.1.3.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [1] #xxxx.1.1.num.int <53 (0x35)> + [2] #0.0.nil + [3] #0.0.nil + [4] #xxxx.1.1.num.int <53 (0x35)> + [5] #xxxx.1.1.num.int <65 (0x41)> + [6] #0.0.nil + [7] #xxxx.1.2.num.int <22 (0x16)> + [8] #xxxx.1.3.num.int <10 (0xa)> + [9] #xxxx.1.3.num.int <40 (0x28)> + [10] #0.0.nil + [11] #0.0.nil + [12] #xxxx.1.3.num.int <40 (0x28)> + [13] #xxxx.1.3.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-10 (0xfffffffffffffff6)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABCDE12345"> + [2] #xxxx.1.1.num.int <53 (0x35)> + [3] #0.0.nil + [4] #0.0.nil + [5] #xxxx.1.1.num.int <53 (0x35)> + [6] #xxxx.1.1.num.int <65 (0x41)> + [7] #0.0.nil + [8] #xxxx.1.2.num.int <22 (0x16)> + [9] #xxxx.1.3.num.int <10 (0xa)> + [10] #xxxx.1.3.num.int <40 (0x28)> + [11] #0.0.nil + [12] #0.0.nil + [13] #xxxx.1.3.num.int <40 (0x28)> + [14] #xxxx.1.3.num.int <10 (0xa)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <65 (0x41)> + [1] #xxxx.1.1.num.int <53 (0x35)> + [2] #0.0.nil + [3] #0.0.nil + [4] #xxxx.1.1.num.int <53 (0x35)> + [5] #xxxx.1.1.num.int <65 (0x41)> + [6] #0.0.nil + [7] #xxxx.1.2.num.int <22 (0x16)> + [8] #xxxx.1.3.num.int <10 (0xa)> + [9] #xxxx.1.3.num.int <40 (0x28)> + [10] #0.0.nil + [11] #0.0.nil + [12] #xxxx.1.3.num.int <40 (0x28)> + [13] #xxxx.1.3.num.int <10 (0xa)> diff --git a/tests/0012_get/code.log.ref b/tests/0012_get/code.log.ref new file mode 100644 index 0000000..a0c8e15 --- /dev/null +++ b/tests/0012_get/code.log.ref @@ -0,0 +1,71 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 64 entries (64 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e word 18 5b [ + 3 0x00010 int 81 0a 10 + 4 0x00012 int 81 14 20 + 5 0x00014 int 81 1e 30 + 6 0x00016 int 81 28 40 + 7 0x00018 word 18 5d ] + 8 0x0001a word 38 64 65 66 def + 3 9 0x0001e word 58 66 6f 6f 5f 31 foo_1 + 10 0x00024 int 01 0 + 11 0x00025 word 38 67 65 74 get + 4 12 0x00029 word 58 66 6f 6f 5f 31 foo_1 + 13 0x0002f int 31 3 + 14 0x00030 word 38 67 65 74 get + 5 15 0x00034 word 58 66 6f 6f 5f 31 foo_1 + 16 0x0003a int 41 4 + 17 0x0003b word 38 67 65 74 get + 6 18 0x0003f word 58 66 6f 6f 5f 31 foo_1 + 19 0x00045 int 81 fb -5 + 20 0x00047 word 38 67 65 74 get + 7 21 0x0004b word 58 66 6f 6f 5f 31 foo_1 + 22 0x00051 int 81 ff -1 + 23 0x00053 word 38 67 65 74 get + 8 24 0x00057 word 58 66 6f 6f 5f 31 foo_1 + 25 0x0005d int 81 fc -4 + 26 0x0005f word 38 67 65 74 get + 10 27 0x00063 ref 59 66 6f 6f 5f 32 /foo_2 + 28 0x00069 word 18 28 ( + 29 0x0006b str 27 61 61 "aa" + 30 0x0006e int 81 0b 11 + 31 0x00070 str 27 62 62 "bb" + 32 0x00073 int 81 16 22 + 33 0x00075 str 27 63 63 "cc" + 34 0x00078 int 81 21 33 + 35 0x0007a word 18 29 ) + 36 0x0007c word 38 64 65 66 def + 12 37 0x00080 word 58 66 6f 6f 5f 32 foo_2 + 38 0x00086 str 27 62 62 "bb" + 39 0x00089 word 38 67 65 74 get + 13 40 0x0008d word 58 66 6f 6f 5f 32 foo_2 + 41 0x00093 str 27 64 64 "dd" + 42 0x00096 word 38 67 65 74 get + 15 43 0x0009a ref 59 66 6f 6f 5f 33 /foo_3 + 44 0x000a0 str a7 41 42 43 44 45 31 32 "ABCDE12345" + 33 34 35 + 45 0x000ab word 38 64 65 66 def + 17 46 0x000af word 58 66 6f 6f 5f 33 foo_3 + 47 0x000b5 int 01 0 + 48 0x000b6 word 38 67 65 74 get + 18 49 0x000ba word 58 66 6f 6f 5f 33 foo_3 + 50 0x000c0 int 81 09 9 + 51 0x000c2 word 38 67 65 74 get + 19 52 0x000c6 word 58 66 6f 6f 5f 33 foo_3 + 53 0x000cc int 81 0a 10 + 54 0x000ce word 38 67 65 74 get + 20 55 0x000d2 word 58 66 6f 6f 5f 33 foo_3 + 56 0x000d8 int 81 f5 -11 + 57 0x000da word 38 67 65 74 get + 21 58 0x000de word 58 66 6f 6f 5f 33 foo_3 + 59 0x000e4 int 81 ff -1 + 60 0x000e6 word 38 67 65 74 get + 22 61 0x000ea word 58 66 6f 6f 5f 33 foo_3 + 62 0x000f0 int 81 f6 -10 + 63 0x000f2 word 38 67 65 74 get diff --git a/tests/0012_get/code1.log.ref b/tests/0012_get/code1.log.ref new file mode 100644 index 0000000..37d7cc3 --- /dev/null +++ b/tests/0012_get/code1.log.ref @@ -0,0 +1,71 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 64 entries (64 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e word 18 5b [ + 3 0x00010 int 81 0a 10 + 4 0x00012 int 81 14 20 + 5 0x00014 int 81 1e 30 + 6 0x00016 int 81 28 40 + 7 0x00018 word 18 5d ] + 8 0x0001a word 38 64 65 66 def + 3 9 0x0001e word 58 66 6f 6f 5f 31 foo_1 + 10 0x00024 int 01 0 + 11 0x00025 word 38 67 65 74 get + 4 12 0x00029 xref 84 0b foo_1 + 13 0x0002b int 31 3 + 14 0x0002c xref 74 get + 5 15 0x0002d xref 84 0f foo_1 + 16 0x0002f int 41 4 + 17 0x00030 xref 84 0b get + 6 18 0x00032 xref 84 14 foo_1 + 19 0x00034 int 81 fb -5 + 20 0x00036 xref 84 11 get + 7 21 0x00038 xref 84 1a foo_1 + 22 0x0003a int 81 ff -1 + 23 0x0003c xref 84 17 get + 8 24 0x0003e xref 84 20 foo_1 + 25 0x00040 int 81 fc -4 + 26 0x00042 xref 84 1d get + 10 27 0x00044 ref 59 66 6f 6f 5f 32 /foo_2 + 28 0x0004a word 18 28 ( + 29 0x0004c str 27 61 61 "aa" + 30 0x0004f int 81 0b 11 + 31 0x00051 str 27 62 62 "bb" + 32 0x00054 int 81 16 22 + 33 0x00056 str 27 63 63 "cc" + 34 0x00059 int 81 21 33 + 35 0x0005b word 18 29 ) + 36 0x0005d xref 84 43 def + 12 37 0x0005f word 58 66 6f 6f 5f 32 foo_2 + 38 0x00065 xref 84 14 "bb" + 39 0x00067 xref 84 42 get + 13 40 0x00069 xref 84 0a foo_2 + 41 0x0006b str 27 64 64 "dd" + 42 0x0006e xref 84 49 get + 15 43 0x00070 ref 59 66 6f 6f 5f 33 /foo_3 + 44 0x00076 str a7 41 42 43 44 45 31 32 "ABCDE12345" + 33 34 35 + 45 0x00081 xref 84 67 def + 17 46 0x00083 word 58 66 6f 6f 5f 33 foo_3 + 47 0x00089 int 01 0 + 48 0x0008a xref 84 65 get + 18 49 0x0008c xref 84 09 foo_3 + 50 0x0008e int 81 09 9 + 51 0x00090 xref 84 6b get + 19 52 0x00092 xref 84 0f foo_3 + 53 0x00094 int 81 0a 10 + 54 0x00096 xref 84 71 get + 20 55 0x00098 xref 84 15 foo_3 + 56 0x0009a int 81 f5 -11 + 57 0x0009c xref 84 77 get + 21 58 0x0009e xref 84 1b foo_3 + 59 0x000a0 int 81 ff -1 + 60 0x000a2 xref 84 7d get + 22 61 0x000a4 xref 84 21 foo_3 + 62 0x000a6 int 81 f6 -10 + 63 0x000a8 xref 84 83 get diff --git a/tests/0012_get/code2.log.ref b/tests/0012_get/code2.log.ref new file mode 100644 index 0000000..52c1d78 --- /dev/null +++ b/tests/0012_get/code2.log.ref @@ -0,0 +1,71 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 64 entries (64 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e prim 23 [ + 3 0x0000f int 81 0a 10 + 4 0x00011 int 81 14 20 + 5 0x00013 int 81 1e 30 + 6 0x00015 int 81 28 40 + 7 0x00017 prim 33 ] + 8 0x00018 prim 63 def + 3 9 0x00019 word 58 66 6f 6f 5f 31 foo_1 + 10 0x0001f int 01 0 + 11 0x00020 prim 83 12 get + 4 12 0x00022 xref 84 09 foo_1 + 13 0x00024 int 31 3 + 14 0x00025 prim 83 12 get + 5 15 0x00027 xref 84 0e foo_1 + 16 0x00029 int 41 4 + 17 0x0002a prim 83 12 get + 6 18 0x0002c xref 84 13 foo_1 + 19 0x0002e int 81 fb -5 + 20 0x00030 prim 83 12 get + 7 21 0x00032 xref 84 19 foo_1 + 22 0x00034 int 81 ff -1 + 23 0x00036 prim 83 12 get + 8 24 0x00038 xref 84 1f foo_1 + 25 0x0003a int 81 fc -4 + 26 0x0003c prim 83 12 get + 10 27 0x0003e ref 59 66 6f 6f 5f 32 /foo_2 + 28 0x00044 prim 43 ( + 29 0x00045 str 27 61 61 "aa" + 30 0x00048 int 81 0b 11 + 31 0x0004a str 27 62 62 "bb" + 32 0x0004d int 81 16 22 + 33 0x0004f str 27 63 63 "cc" + 34 0x00052 int 81 21 33 + 35 0x00054 prim 53 ) + 36 0x00055 prim 63 def + 12 37 0x00056 word 58 66 6f 6f 5f 32 foo_2 + 38 0x0005c xref 84 12 "bb" + 39 0x0005e prim 83 12 get + 13 40 0x00060 xref 84 0a foo_2 + 41 0x00062 str 27 64 64 "dd" + 42 0x00065 prim 83 12 get + 15 43 0x00067 ref 59 66 6f 6f 5f 33 /foo_3 + 44 0x0006d str a7 41 42 43 44 45 31 32 "ABCDE12345" + 33 34 35 + 45 0x00078 prim 63 def + 17 46 0x00079 word 58 66 6f 6f 5f 33 foo_3 + 47 0x0007f int 01 0 + 48 0x00080 prim 83 12 get + 18 49 0x00082 xref 84 09 foo_3 + 50 0x00084 int 81 09 9 + 51 0x00086 prim 83 12 get + 19 52 0x00088 xref 84 0f foo_3 + 53 0x0008a int 81 0a 10 + 54 0x0008c prim 83 12 get + 20 55 0x0008e xref 84 15 foo_3 + 56 0x00090 int 81 f5 -11 + 57 0x00092 prim 83 12 get + 21 58 0x00094 xref 84 1b foo_3 + 59 0x00096 int 81 ff -1 + 60 0x00098 prim 83 12 get + 22 61 0x0009a xref 84 21 foo_3 + 62 0x0009c int 81 f6 -10 + 63 0x0009e prim 83 12 get diff --git a/tests/0012_get/main.gs b/tests/0012_get/main.gs new file mode 100644 index 0000000..7000ddb --- /dev/null +++ b/tests/0012_get/main.gs @@ -0,0 +1,22 @@ +/foo_1 [ 10 20 30 40 ] def + +foo_1 0 get +foo_1 3 get +foo_1 4 get +foo_1 -5 get +foo_1 -1 get +foo_1 -4 get + +/foo_2 ( "aa" 11 "bb" 22 "cc" 33 ) def + +foo_2 "bb" get +foo_2 "dd" get + +/foo_3 "ABCDE12345" def + +foo_3 0 get +foo_3 9 get +foo_3 10 get +foo_3 -11 get +foo_3 -1 get +foo_3 -10 get diff --git a/tests/0012_get/mem.log.ref b/tests/0012_get/mem.log.ref new file mode 100644 index 0000000..0f0073b --- /dev/null +++ b/tests/0012_get/mem.log.ref @@ -0,0 +1,819 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 248] + 8: 187.01, 0x001d6b6c[ 72] + 9: 188.01, 0x001d6bbc[ 56] + 10: 194.01, 0x001d6bfc[ 24] + 11: 196.01, 0x001d6c1c[ 72] + 12: 209.01, 0x001d6c6c[ 36] + 13: 0.00, 0x001d6c98[14848872] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9, size 5, "foo_1"> => #194.1.1.array + #202.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x64, size 5, "foo_2"> => #209.1.1.hash + #212.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9b, size 5, "foo_3"> => #213.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.8.mem.ro + 75 51 12 a9 42 7a ad 60 59 66 6f 6f 5f 31 18 5b uQ..Bz.`Yfoo_1.[ + 81 0a 81 14 81 1e 81 28 18 5d 38 64 65 66 58 66 .......(.]8defXf + 6f 6f 5f 31 01 38 67 65 74 58 66 6f 6f 5f 31 31 oo_1.8getXfoo_11 + 38 67 65 74 58 66 6f 6f 5f 31 41 38 67 65 74 58 8getXfoo_1A8getX + 66 6f 6f 5f 31 81 fb 38 67 65 74 58 66 6f 6f 5f foo_1..8getXfoo_ + 31 81 ff 38 67 65 74 58 66 6f 6f 5f 31 81 fc 38 1..8getXfoo_1..8 + 67 65 74 59 66 6f 6f 5f 32 18 28 27 61 61 81 0b getYfoo_2.('aa.. + 27 62 62 81 16 27 63 63 81 21 18 29 38 64 65 66 'bb..'cc.!.)8def + 58 66 6f 6f 5f 32 27 62 62 38 67 65 74 58 66 6f Xfoo_2'bb8getXfo + 6f 5f 32 27 64 64 38 67 65 74 59 66 6f 6f 5f 33 o_2'dd8getYfoo_3 + a7 41 42 43 44 45 31 32 33 34 35 38 64 65 66 58 .ABCDE123458defX + 66 6f 6f 5f 33 01 38 67 65 74 58 66 6f 6f 5f 33 foo_3.8getXfoo_3 + 81 09 38 67 65 74 58 66 6f 6f 5f 33 81 0a 38 67 ..8getXfoo_3..8g + 65 74 58 66 6f 6f 5f 33 81 f5 38 67 65 74 58 66 etXfoo_3..8getXf + 6f 6f 5f 33 81 ff 38 67 65 74 58 66 6f 6f 5f 33 oo_3..8getXfoo_3 + 81 f6 38 67 65 74 ..8get + #187.1.1.array + [ 0] #190.1.3.num.int <10 (0xa)> + [ 1] #193.1.3.num.int <40 (0x28)> + [ 2] #0.0.nil + [ 3] #0.0.nil + [ 4] #193.1.3.num.int <40 (0x28)> + [ 5] #190.1.3.num.int <10 (0xa)> + [ 6] #206.1.2.num.int <22 (0x16)> + [ 7] #0.0.nil + [ 8] #215.1.1.num.int <65 (0x41)> + [ 9] #217.1.1.num.int <53 (0x35)> + [10] #0.0.nil + [11] #0.0.nil + [12] #221.1.1.num.int <53 (0x35)> + [13] #223.1.1.num.int <65 (0x41)> + #188.1.1.ctx.func + type 17, ip 0xf6 (0xf6) + code #186.1.8.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #190.1.3.num.int <10 (0xa)> + #191.1.1.num.int <20 (0x14)> + #192.1.1.num.int <30 (0x1e)> + #193.1.3.num.int <40 (0x28)> + #194.1.1.array + [ 0] #190.1.3.num.int <10 (0xa)> + [ 1] #191.1.1.num.int <20 (0x14)> + [ 2] #192.1.1.num.int <30 (0x1e)> + [ 3] #193.1.3.num.int <40 (0x28)> + #196.1.1.array + #202.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x64, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #203.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x6c, size 2, "aa"> + 61 61 aa + #204.1.1.num.int <11 (0xb)> + #205.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x71, size 2, "bb"> + 62 62 bb + #206.1.2.num.int <22 (0x16)> + #207.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x76, size 2, "cc"> + 63 63 cc + #208.1.1.num.int <33 (0x21)> + #209.1.1.hash + #203.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x6c, size 2, "aa"> => #204.1.1.num.int <11 (0xb)> + #205.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x71, size 2, "bb"> => #206.1.2.num.int <22 (0x16)> + #207.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x76, size 2, "cc"> => #208.1.1.num.int <33 (0x21)> + #212.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9b, size 5, "foo_3"> + 66 6f 6f 5f 33 foo_3 + #213.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + 41 42 43 44 45 31 32 33 34 35 ABCDE12345 + #215.1.1.num.int <65 (0x41)> + #217.1.1.num.int <53 (0x35)> + #221.1.1.num.int <53 (0x35)> + #223.1.1.num.int <65 (0x41)> diff --git a/tests/0012_get/screen.log.ref b/tests/0012_get/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0012_get/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0012_get/trace.log.ref b/tests/0012_get/trace.log.ref new file mode 100644 index 0000000..3be670a --- /dev/null +++ b/tests/0012_get/trace.log.ref @@ -0,0 +1,808 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0xe, type 8, 15[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x10, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <10 (0xa)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x12, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <20 (0x14)> + [1] #190.1.1.num.int <10 (0xa)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x14, type 1, 30 (0x1e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <30 (0x1e)> + [1] #191.1.1.num.int <20 (0x14)> + [2] #190.1.1.num.int <10 (0xa)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x16, type 1, 40 (0x28) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <40 (0x28)> + [1] #192.1.1.num.int <30 (0x1e)> + [2] #191.1.1.num.int <20 (0x14)> + [3] #190.1.1.num.int <10 (0xa)> + [4] #9.1.2.num.prim <2 (0x2)> + [5] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x18, type 8, 25[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.array + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x1a, type 8, 27[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#194.1.1.array +GC: --#194.1.2.array +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1e, type 8, 31[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array +IP: #186:0x24, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <0 (0x0)> + [1] #194.1.2.array +IP: #186:0x25, type 8, 38[3] +GC: ++#190.1.1.num.int +GC: --#195.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <10 (0xa)> +IP: #186:0x29, type 8, 42[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array + [1] #190.1.2.num.int <10 (0xa)> +IP: #186:0x2f, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <3 (0x3)> + [1] #194.1.2.array + [2] #190.1.2.num.int <10 (0xa)> +IP: #186:0x30, type 8, 49[3] +GC: ++#193.1.1.num.int +GC: --#197.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.2.num.int <40 (0x28)> + [1] #190.1.2.num.int <10 (0xa)> +IP: #186:0x34, type 8, 53[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array + [1] #193.1.2.num.int <40 (0x28)> + [2] #190.1.2.num.int <10 (0xa)> +IP: #186:0x3a, type 1, 4 (0x4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <4 (0x4)> + [1] #194.1.2.array + [2] #193.1.2.num.int <40 (0x28)> + [3] #190.1.2.num.int <10 (0xa)> +IP: #186:0x3b, type 8, 60[3] +GC: --#198.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #193.1.2.num.int <40 (0x28)> + [2] #190.1.2.num.int <10 (0xa)> +IP: #186:0x3f, type 8, 64[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array + [1] #0.0.nil + [2] #193.1.2.num.int <40 (0x28)> + [3] #190.1.2.num.int <10 (0xa)> +IP: #186:0x45, type 1, -5 (0xfffffffffffffffb) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <-5 (0xfffffffffffffffb)> + [1] #194.1.2.array + [2] #0.0.nil + [3] #193.1.2.num.int <40 (0x28)> + [4] #190.1.2.num.int <10 (0xa)> +IP: #186:0x47, type 8, 72[3] +GC: --#199.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #193.1.2.num.int <40 (0x28)> + [3] #190.1.2.num.int <10 (0xa)> +IP: #186:0x4b, type 8, 76[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array + [1] #0.0.nil + [2] #0.0.nil + [3] #193.1.2.num.int <40 (0x28)> + [4] #190.1.2.num.int <10 (0xa)> +IP: #186:0x51, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #194.1.2.array + [2] #0.0.nil + [3] #0.0.nil + [4] #193.1.2.num.int <40 (0x28)> + [5] #190.1.2.num.int <10 (0xa)> +IP: #186:0x53, type 8, 84[3] +GC: ++#193.1.2.num.int +GC: --#200.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.3.num.int <40 (0x28)> + [1] #0.0.nil + [2] #0.0.nil + [3] #193.1.3.num.int <40 (0x28)> + [4] #190.1.2.num.int <10 (0xa)> +IP: #186:0x57, type 8, 88[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array + [1] #193.1.3.num.int <40 (0x28)> + [2] #0.0.nil + [3] #0.0.nil + [4] #193.1.3.num.int <40 (0x28)> + [5] #190.1.2.num.int <10 (0xa)> +IP: #186:0x5d, type 1, -4 (0xfffffffffffffffc) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <-4 (0xfffffffffffffffc)> + [1] #194.1.2.array + [2] #193.1.3.num.int <40 (0x28)> + [3] #0.0.nil + [4] #0.0.nil + [5] #193.1.3.num.int <40 (0x28)> + [6] #190.1.2.num.int <10 (0xa)> +IP: #186:0x5f, type 8, 96[3] +GC: ++#190.1.2.num.int +GC: --#201.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.3.num.int <10 (0xa)> + [1] #193.1.3.num.int <40 (0x28)> + [2] #0.0.nil + [3] #0.0.nil + [4] #193.1.3.num.int <40 (0x28)> + [5] #190.1.3.num.int <10 (0xa)> +IP: #186:0x63, type 9, 100[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x64, size 5, "foo_2"> + [1] #190.1.3.num.int <10 (0xa)> + [2] #193.1.3.num.int <40 (0x28)> + [3] #0.0.nil + [4] #0.0.nil + [5] #193.1.3.num.int <40 (0x28)> + [6] #190.1.3.num.int <10 (0xa)> +IP: #186:0x69, type 8, 106[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #202.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x64, size 5, "foo_2"> + [2] #190.1.3.num.int <10 (0xa)> + [3] #193.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #193.1.3.num.int <40 (0x28)> + [7] #190.1.3.num.int <10 (0xa)> +IP: #186:0x6b, type 7, 108[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x6c, size 2, "aa"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #202.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x64, size 5, "foo_2"> + [3] #190.1.3.num.int <10 (0xa)> + [4] #193.1.3.num.int <40 (0x28)> + [5] #0.0.nil + [6] #0.0.nil + [7] #193.1.3.num.int <40 (0x28)> + [8] #190.1.3.num.int <10 (0xa)> +IP: #186:0x6e, type 1, 11 (0xb) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <11 (0xb)> + [1] #203.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x6c, size 2, "aa"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #202.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x64, size 5, "foo_2"> + [4] #190.1.3.num.int <10 (0xa)> + [5] #193.1.3.num.int <40 (0x28)> + [6] #0.0.nil + [7] #0.0.nil + [8] #193.1.3.num.int <40 (0x28)> + [9] #190.1.3.num.int <10 (0xa)> +IP: #186:0x70, type 7, 113[2] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x71, size 2, "bb"> + [1] #204.1.1.num.int <11 (0xb)> + [2] #203.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x6c, size 2, "aa"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #202.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x64, size 5, "foo_2"> + [5] #190.1.3.num.int <10 (0xa)> + [6] #193.1.3.num.int <40 (0x28)> + [7] #0.0.nil + [8] #0.0.nil + [9] #193.1.3.num.int <40 (0x28)> + [10] #190.1.3.num.int <10 (0xa)> +IP: #186:0x73, type 1, 22 (0x16) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <22 (0x16)> + [1] #205.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x71, size 2, "bb"> + [2] #204.1.1.num.int <11 (0xb)> + [3] #203.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x6c, size 2, "aa"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #202.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x64, size 5, "foo_2"> + [6] #190.1.3.num.int <10 (0xa)> + [7] #193.1.3.num.int <40 (0x28)> + [8] #0.0.nil + [9] #0.0.nil + [10] #193.1.3.num.int <40 (0x28)> + [11] #190.1.3.num.int <10 (0xa)> +IP: #186:0x75, type 7, 118[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x76, size 2, "cc"> + [1] #206.1.1.num.int <22 (0x16)> + [2] #205.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x71, size 2, "bb"> + [3] #204.1.1.num.int <11 (0xb)> + [4] #203.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x6c, size 2, "aa"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #202.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x64, size 5, "foo_2"> + [7] #190.1.3.num.int <10 (0xa)> + [8] #193.1.3.num.int <40 (0x28)> + [9] #0.0.nil + [10] #0.0.nil + [11] #193.1.3.num.int <40 (0x28)> + [12] #190.1.3.num.int <10 (0xa)> +IP: #186:0x78, type 1, 33 (0x21) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <33 (0x21)> + [1] #207.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x76, size 2, "cc"> + [2] #206.1.1.num.int <22 (0x16)> + [3] #205.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x71, size 2, "bb"> + [4] #204.1.1.num.int <11 (0xb)> + [5] #203.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x6c, size 2, "aa"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #202.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x64, size 5, "foo_2"> + [8] #190.1.3.num.int <10 (0xa)> + [9] #193.1.3.num.int <40 (0x28)> + [10] #0.0.nil + [11] #0.0.nil + [12] #193.1.3.num.int <40 (0x28)> + [13] #190.1.3.num.int <10 (0xa)> +IP: #186:0x7a, type 8, 123[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.hash + [1] #202.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x64, size 5, "foo_2"> + [2] #190.1.3.num.int <10 (0xa)> + [3] #193.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #193.1.3.num.int <40 (0x28)> + [7] #190.1.3.num.int <10 (0xa)> +IP: #186:0x7c, type 8, 125[3] +GC: ++#202.1.1.mem.ref.ro +GC: ++#209.1.1.hash +GC: --#209.1.2.hash +GC: --#202.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.3.num.int <10 (0xa)> + [1] #193.1.3.num.int <40 (0x28)> + [2] #0.0.nil + [3] #0.0.nil + [4] #193.1.3.num.int <40 (0x28)> + [5] #190.1.3.num.int <10 (0xa)> +IP: #186:0x80, type 8, 129[5] +GC: ++#209.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.2.hash + [1] #190.1.3.num.int <10 (0xa)> + [2] #193.1.3.num.int <40 (0x28)> + [3] #0.0.nil + [4] #0.0.nil + [5] #193.1.3.num.int <40 (0x28)> + [6] #190.1.3.num.int <10 (0xa)> +IP: #186:0x86, type 7, 135[2] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x87, size 2, "bb"> + [1] #209.1.2.hash + [2] #190.1.3.num.int <10 (0xa)> + [3] #193.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #193.1.3.num.int <40 (0x28)> + [7] #190.1.3.num.int <10 (0xa)> +IP: #186:0x89, type 8, 138[3] +GC: ++#206.1.1.num.int +GC: --#210.1.1.mem.str.ro +GC: --#186.1.7.mem.ro +GC: --#209.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.2.num.int <22 (0x16)> + [1] #190.1.3.num.int <10 (0xa)> + [2] #193.1.3.num.int <40 (0x28)> + [3] #0.0.nil + [4] #0.0.nil + [5] #193.1.3.num.int <40 (0x28)> + [6] #190.1.3.num.int <10 (0xa)> +IP: #186:0x8d, type 8, 142[5] +GC: ++#209.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.2.hash + [1] #206.1.2.num.int <22 (0x16)> + [2] #190.1.3.num.int <10 (0xa)> + [3] #193.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #193.1.3.num.int <40 (0x28)> + [7] #190.1.3.num.int <10 (0xa)> +IP: #186:0x93, type 7, 148[2] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x94, size 2, "dd"> + [1] #209.1.2.hash + [2] #206.1.2.num.int <22 (0x16)> + [3] #190.1.3.num.int <10 (0xa)> + [4] #193.1.3.num.int <40 (0x28)> + [5] #0.0.nil + [6] #0.0.nil + [7] #193.1.3.num.int <40 (0x28)> + [8] #190.1.3.num.int <10 (0xa)> +IP: #186:0x96, type 8, 151[3] +GC: --#211.1.1.mem.str.ro +GC: --#186.1.7.mem.ro +GC: --#209.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #206.1.2.num.int <22 (0x16)> + [2] #190.1.3.num.int <10 (0xa)> + [3] #193.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #193.1.3.num.int <40 (0x28)> + [7] #190.1.3.num.int <10 (0xa)> +IP: #186:0x9a, type 9, 155[5] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x9b, size 5, "foo_3"> + [1] #0.0.nil + [2] #206.1.2.num.int <22 (0x16)> + [3] #190.1.3.num.int <10 (0xa)> + [4] #193.1.3.num.int <40 (0x28)> + [5] #0.0.nil + [6] #0.0.nil + [7] #193.1.3.num.int <40 (0x28)> + [8] #190.1.3.num.int <10 (0xa)> +IP: #186:0xa0, type 7, 161[10] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [1] #212.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9b, size 5, "foo_3"> + [2] #0.0.nil + [3] #206.1.2.num.int <22 (0x16)> + [4] #190.1.3.num.int <10 (0xa)> + [5] #193.1.3.num.int <40 (0x28)> + [6] #0.0.nil + [7] #0.0.nil + [8] #193.1.3.num.int <40 (0x28)> + [9] #190.1.3.num.int <10 (0xa)> +IP: #186:0xab, type 8, 172[3] +GC: ++#212.1.1.mem.ref.ro +GC: ++#213.1.1.mem.str.ro +GC: --#213.1.2.mem.str.ro +GC: --#212.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #206.1.2.num.int <22 (0x16)> + [2] #190.1.3.num.int <10 (0xa)> + [3] #193.1.3.num.int <40 (0x28)> + [4] #0.0.nil + [5] #0.0.nil + [6] #193.1.3.num.int <40 (0x28)> + [7] #190.1.3.num.int <10 (0xa)> +IP: #186:0xaf, type 8, 176[5] +GC: ++#213.1.1.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [1] #0.0.nil + [2] #206.1.2.num.int <22 (0x16)> + [3] #190.1.3.num.int <10 (0xa)> + [4] #193.1.3.num.int <40 (0x28)> + [5] #0.0.nil + [6] #0.0.nil + [7] #193.1.3.num.int <40 (0x28)> + [8] #190.1.3.num.int <10 (0xa)> +IP: #186:0xb5, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.num.int <0 (0x0)> + [1] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [2] #0.0.nil + [3] #206.1.2.num.int <22 (0x16)> + [4] #190.1.3.num.int <10 (0xa)> + [5] #193.1.3.num.int <40 (0x28)> + [6] #0.0.nil + [7] #0.0.nil + [8] #193.1.3.num.int <40 (0x28)> + [9] #190.1.3.num.int <10 (0xa)> +IP: #186:0xb6, type 8, 183[3] +GC: --#214.1.1.num.int +GC: --#213.1.2.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <65 (0x41)> + [1] #0.0.nil + [2] #206.1.2.num.int <22 (0x16)> + [3] #190.1.3.num.int <10 (0xa)> + [4] #193.1.3.num.int <40 (0x28)> + [5] #0.0.nil + [6] #0.0.nil + [7] #193.1.3.num.int <40 (0x28)> + [8] #190.1.3.num.int <10 (0xa)> +IP: #186:0xba, type 8, 187[5] +GC: ++#213.1.1.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [1] #215.1.1.num.int <65 (0x41)> + [2] #0.0.nil + [3] #206.1.2.num.int <22 (0x16)> + [4] #190.1.3.num.int <10 (0xa)> + [5] #193.1.3.num.int <40 (0x28)> + [6] #0.0.nil + [7] #0.0.nil + [8] #193.1.3.num.int <40 (0x28)> + [9] #190.1.3.num.int <10 (0xa)> +IP: #186:0xc0, type 1, 9 (0x9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <9 (0x9)> + [1] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [2] #215.1.1.num.int <65 (0x41)> + [3] #0.0.nil + [4] #206.1.2.num.int <22 (0x16)> + [5] #190.1.3.num.int <10 (0xa)> + [6] #193.1.3.num.int <40 (0x28)> + [7] #0.0.nil + [8] #0.0.nil + [9] #193.1.3.num.int <40 (0x28)> + [10] #190.1.3.num.int <10 (0xa)> +IP: #186:0xc2, type 8, 195[3] +GC: --#216.1.1.num.int +GC: --#213.1.2.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <53 (0x35)> + [1] #215.1.1.num.int <65 (0x41)> + [2] #0.0.nil + [3] #206.1.2.num.int <22 (0x16)> + [4] #190.1.3.num.int <10 (0xa)> + [5] #193.1.3.num.int <40 (0x28)> + [6] #0.0.nil + [7] #0.0.nil + [8] #193.1.3.num.int <40 (0x28)> + [9] #190.1.3.num.int <10 (0xa)> +IP: #186:0xc6, type 8, 199[5] +GC: ++#213.1.1.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [1] #217.1.1.num.int <53 (0x35)> + [2] #215.1.1.num.int <65 (0x41)> + [3] #0.0.nil + [4] #206.1.2.num.int <22 (0x16)> + [5] #190.1.3.num.int <10 (0xa)> + [6] #193.1.3.num.int <40 (0x28)> + [7] #0.0.nil + [8] #0.0.nil + [9] #193.1.3.num.int <40 (0x28)> + [10] #190.1.3.num.int <10 (0xa)> +IP: #186:0xcc, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.int <10 (0xa)> + [1] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [2] #217.1.1.num.int <53 (0x35)> + [3] #215.1.1.num.int <65 (0x41)> + [4] #0.0.nil + [5] #206.1.2.num.int <22 (0x16)> + [6] #190.1.3.num.int <10 (0xa)> + [7] #193.1.3.num.int <40 (0x28)> + [8] #0.0.nil + [9] #0.0.nil + [10] #193.1.3.num.int <40 (0x28)> + [11] #190.1.3.num.int <10 (0xa)> +IP: #186:0xce, type 8, 207[3] +GC: --#218.1.1.num.int +GC: --#213.1.2.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #217.1.1.num.int <53 (0x35)> + [2] #215.1.1.num.int <65 (0x41)> + [3] #0.0.nil + [4] #206.1.2.num.int <22 (0x16)> + [5] #190.1.3.num.int <10 (0xa)> + [6] #193.1.3.num.int <40 (0x28)> + [7] #0.0.nil + [8] #0.0.nil + [9] #193.1.3.num.int <40 (0x28)> + [10] #190.1.3.num.int <10 (0xa)> +IP: #186:0xd2, type 8, 211[5] +GC: ++#213.1.1.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [1] #0.0.nil + [2] #217.1.1.num.int <53 (0x35)> + [3] #215.1.1.num.int <65 (0x41)> + [4] #0.0.nil + [5] #206.1.2.num.int <22 (0x16)> + [6] #190.1.3.num.int <10 (0xa)> + [7] #193.1.3.num.int <40 (0x28)> + [8] #0.0.nil + [9] #0.0.nil + [10] #193.1.3.num.int <40 (0x28)> + [11] #190.1.3.num.int <10 (0xa)> +IP: #186:0xd8, type 1, -11 (0xfffffffffffffff5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.int <-11 (0xfffffffffffffff5)> + [1] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [2] #0.0.nil + [3] #217.1.1.num.int <53 (0x35)> + [4] #215.1.1.num.int <65 (0x41)> + [5] #0.0.nil + [6] #206.1.2.num.int <22 (0x16)> + [7] #190.1.3.num.int <10 (0xa)> + [8] #193.1.3.num.int <40 (0x28)> + [9] #0.0.nil + [10] #0.0.nil + [11] #193.1.3.num.int <40 (0x28)> + [12] #190.1.3.num.int <10 (0xa)> +IP: #186:0xda, type 8, 219[3] +GC: --#219.1.1.num.int +GC: --#213.1.2.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #217.1.1.num.int <53 (0x35)> + [3] #215.1.1.num.int <65 (0x41)> + [4] #0.0.nil + [5] #206.1.2.num.int <22 (0x16)> + [6] #190.1.3.num.int <10 (0xa)> + [7] #193.1.3.num.int <40 (0x28)> + [8] #0.0.nil + [9] #0.0.nil + [10] #193.1.3.num.int <40 (0x28)> + [11] #190.1.3.num.int <10 (0xa)> +IP: #186:0xde, type 8, 223[5] +GC: ++#213.1.1.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [1] #0.0.nil + [2] #0.0.nil + [3] #217.1.1.num.int <53 (0x35)> + [4] #215.1.1.num.int <65 (0x41)> + [5] #0.0.nil + [6] #206.1.2.num.int <22 (0x16)> + [7] #190.1.3.num.int <10 (0xa)> + [8] #193.1.3.num.int <40 (0x28)> + [9] #0.0.nil + [10] #0.0.nil + [11] #193.1.3.num.int <40 (0x28)> + [12] #190.1.3.num.int <10 (0xa)> +IP: #186:0xe4, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [2] #0.0.nil + [3] #0.0.nil + [4] #217.1.1.num.int <53 (0x35)> + [5] #215.1.1.num.int <65 (0x41)> + [6] #0.0.nil + [7] #206.1.2.num.int <22 (0x16)> + [8] #190.1.3.num.int <10 (0xa)> + [9] #193.1.3.num.int <40 (0x28)> + [10] #0.0.nil + [11] #0.0.nil + [12] #193.1.3.num.int <40 (0x28)> + [13] #190.1.3.num.int <10 (0xa)> +IP: #186:0xe6, type 8, 231[3] +GC: --#220.1.1.num.int +GC: --#213.1.2.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.int <53 (0x35)> + [1] #0.0.nil + [2] #0.0.nil + [3] #217.1.1.num.int <53 (0x35)> + [4] #215.1.1.num.int <65 (0x41)> + [5] #0.0.nil + [6] #206.1.2.num.int <22 (0x16)> + [7] #190.1.3.num.int <10 (0xa)> + [8] #193.1.3.num.int <40 (0x28)> + [9] #0.0.nil + [10] #0.0.nil + [11] #193.1.3.num.int <40 (0x28)> + [12] #190.1.3.num.int <10 (0xa)> +IP: #186:0xea, type 8, 235[5] +GC: ++#213.1.1.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [1] #221.1.1.num.int <53 (0x35)> + [2] #0.0.nil + [3] #0.0.nil + [4] #217.1.1.num.int <53 (0x35)> + [5] #215.1.1.num.int <65 (0x41)> + [6] #0.0.nil + [7] #206.1.2.num.int <22 (0x16)> + [8] #190.1.3.num.int <10 (0xa)> + [9] #193.1.3.num.int <40 (0x28)> + [10] #0.0.nil + [11] #0.0.nil + [12] #193.1.3.num.int <40 (0x28)> + [13] #190.1.3.num.int <10 (0xa)> +IP: #186:0xf0, type 1, -10 (0xfffffffffffffff6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.int <-10 (0xfffffffffffffff6)> + [1] #213.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0xa1, size 10, "ABCDE12345"> + [2] #221.1.1.num.int <53 (0x35)> + [3] #0.0.nil + [4] #0.0.nil + [5] #217.1.1.num.int <53 (0x35)> + [6] #215.1.1.num.int <65 (0x41)> + [7] #0.0.nil + [8] #206.1.2.num.int <22 (0x16)> + [9] #190.1.3.num.int <10 (0xa)> + [10] #193.1.3.num.int <40 (0x28)> + [11] #0.0.nil + [12] #0.0.nil + [13] #193.1.3.num.int <40 (0x28)> + [14] #190.1.3.num.int <10 (0xa)> +IP: #186:0xf2, type 8, 243[3] +GC: --#222.1.1.num.int +GC: --#213.1.2.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.num.int <65 (0x41)> + [1] #221.1.1.num.int <53 (0x35)> + [2] #0.0.nil + [3] #0.0.nil + [4] #217.1.1.num.int <53 (0x35)> + [5] #215.1.1.num.int <65 (0x41)> + [6] #0.0.nil + [7] #206.1.2.num.int <22 (0x16)> + [8] #190.1.3.num.int <10 (0xa)> + [9] #193.1.3.num.int <40 (0x28)> + [10] #0.0.nil + [11] #0.0.nil + [12] #193.1.3.num.int <40 (0x28)> + [13] #190.1.3.num.int <10 (0xa)> diff --git a/tests/0013_put/basic.log.ref b/tests/0013_put/basic.log.ref new file mode 100644 index 0000000..595c069 --- /dev/null +++ b/tests/0013_put/basic.log.ref @@ -0,0 +1,831 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> + [4] #xxxx.1.2.num.prim <2 (0x2)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.2.array +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.2.array +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <500 (0x1f4)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.2.array +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <8 (0x8)> + [1] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <900 (0x384)> + [1] #xxxx.1.1.num.int <8 (0x8)> + [2] #xxxx.1.2.array +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo_2"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo_2"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [2] #xxxx.1.1.num.int <11 (0xb)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [1] #xxxx.1.1.num.int <22 (0x16)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [3] #xxxx.1.1.num.int <11 (0xb)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <33 (0x21)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <22 (0x16)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [4] #xxxx.1.1.num.int <11 (0xb)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "bb"> + [1] #xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <222 (0xde)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "bb"> + [2] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.7.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "dd"> + [1] #xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <444 (0x1bc)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "dd"> + [2] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "foo_3"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "foo_3"> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "foo_3"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem +GC: --#xxxx.1.2.mem +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.2.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <65 (0x41)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.2.mem +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.2.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <53 (0x35)> + [1] #xxxx.1.1.num.int <3 (0x3)> + [2] #xxxx.1.2.mem +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.2.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <54 (0x36)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.2.mem +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.9.mem.ro> + [1] #xxxx.1.2.array +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.array +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <20 (0x14)> + [1] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <20 (0x14)> + [2] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <400 (0x190)> + [1] #xxxx.1.2.num.int <30 (0x1e)> + [2] #xxxx.1.2.num.int <20 (0x14)> + [3] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <500 (0x1f4)> + [1] #xxxx.1.2.num.int <400 (0x190)> + [2] #xxxx.1.2.num.int <30 (0x1e)> + [3] #xxxx.1.2.num.int <20 (0x14)> + [4] #xxxx.1.2.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.num.int <500 (0x1f4)> + [2] #xxxx.1.2.num.int <400 (0x190)> + [3] #xxxx.1.2.num.int <30 (0x1e)> + [4] #xxxx.1.2.num.int <20 (0x14)> + [5] #xxxx.1.2.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #xxxx.1.2.num.int <500 (0x1f4)> + [3] #xxxx.1.2.num.int <400 (0x190)> + [4] #xxxx.1.2.num.int <30 (0x1e)> + [5] #xxxx.1.2.num.int <20 (0x14)> + [6] #xxxx.1.2.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #0.0.nil + [3] #xxxx.1.2.num.int <500 (0x1f4)> + [4] #xxxx.1.2.num.int <400 (0x190)> + [5] #xxxx.1.2.num.int <30 (0x1e)> + [6] #xxxx.1.2.num.int <20 (0x14)> + [7] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <900 (0x384)> + [1] #0.0.nil + [2] #0.0.nil + [3] #0.0.nil + [4] #xxxx.1.2.num.int <500 (0x1f4)> + [5] #xxxx.1.2.num.int <400 (0x190)> + [6] #xxxx.1.2.num.int <30 (0x1e)> + [7] #xxxx.1.2.num.int <20 (0x14)> + [8] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.array +GC: --#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <900 (0x384)> + [1] #0.0.nil + [2] #0.0.nil + [3] #0.0.nil + [4] #xxxx.1.2.num.int <500 (0x1f4)> + [5] #xxxx.1.2.num.int <400 (0x190)> + [6] #xxxx.1.2.num.int <30 (0x1e)> + [7] #xxxx.1.2.num.int <20 (0x14)> + [8] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <900 (0x384)> + [2] #0.0.nil + [3] #0.0.nil + [4] #0.0.nil + [5] #xxxx.1.2.num.int <500 (0x1f4)> + [6] #xxxx.1.2.num.int <400 (0x190)> + [7] #xxxx.1.2.num.int <30 (0x1e)> + [8] #xxxx.1.2.num.int <20 (0x14)> + [9] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.9.mem.ro> + [1] #xxxx.1.2.hash + [2] #xxxx.1.2.num.int <900 (0x384)> + [3] #0.0.nil + [4] #0.0.nil + [5] #0.0.nil + [6] #xxxx.1.2.num.int <500 (0x1f4)> + [7] #xxxx.1.2.num.int <400 (0x190)> + [8] #xxxx.1.2.num.int <30 (0x1e)> + [9] #xxxx.1.2.num.int <20 (0x14)> + [10] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <11 (0xb)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [2] #xxxx.1.2.num.int <900 (0x384)> + [3] #0.0.nil + [4] #0.0.nil + [5] #0.0.nil + [6] #xxxx.1.2.num.int <500 (0x1f4)> + [7] #xxxx.1.2.num.int <400 (0x190)> + [8] #xxxx.1.2.num.int <30 (0x1e)> + [9] #xxxx.1.2.num.int <20 (0x14)> + [10] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <222 (0xde)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [2] #xxxx.1.2.num.int <11 (0xb)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [4] #xxxx.1.2.num.int <900 (0x384)> + [5] #0.0.nil + [6] #0.0.nil + [7] #0.0.nil + [8] #xxxx.1.2.num.int <500 (0x1f4)> + [9] #xxxx.1.2.num.int <400 (0x190)> + [10] #xxxx.1.2.num.int <30 (0x1e)> + [11] #xxxx.1.2.num.int <20 (0x14)> + [12] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <33 (0x21)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [2] #xxxx.1.2.num.int <222 (0xde)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [4] #xxxx.1.2.num.int <11 (0xb)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [6] #xxxx.1.2.num.int <900 (0x384)> + [7] #0.0.nil + [8] #0.0.nil + [9] #0.0.nil + [10] #xxxx.1.2.num.int <500 (0x1f4)> + [11] #xxxx.1.2.num.int <400 (0x190)> + [12] #xxxx.1.2.num.int <30 (0x1e)> + [13] #xxxx.1.2.num.int <20 (0x14)> + [14] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <444 (0x1bc)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "dd"> + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [4] #xxxx.1.2.num.int <222 (0xde)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [6] #xxxx.1.2.num.int <11 (0xb)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [8] #xxxx.1.2.num.int <900 (0x384)> + [9] #0.0.nil + [10] #0.0.nil + [11] #0.0.nil + [12] #xxxx.1.2.num.int <500 (0x1f4)> + [13] #xxxx.1.2.num.int <400 (0x190)> + [14] #xxxx.1.2.num.int <30 (0x1e)> + [15] #xxxx.1.2.num.int <20 (0x14)> + [16] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <444 (0x1bc)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "dd"> + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "cc"> + [4] #xxxx.1.2.num.int <222 (0xde)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "bb"> + [6] #xxxx.1.2.num.int <11 (0xb)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "aa"> + [8] #xxxx.1.2.num.int <900 (0x384)> + [9] #0.0.nil + [10] #0.0.nil + [11] #0.0.nil + [12] #xxxx.1.2.num.int <500 (0x1f4)> + [13] #xxxx.1.2.num.int <400 (0x190)> + [14] #xxxx.1.2.num.int <30 (0x1e)> + [15] #xxxx.1.2.num.int <20 (0x14)> + [16] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem + [1] #xxxx.1.2.num.int <444 (0x1bc)> + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "dd"> + [3] #xxxx.1.2.num.int <33 (0x21)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "cc"> + [5] #xxxx.1.2.num.int <222 (0xde)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "bb"> + [7] #xxxx.1.2.num.int <11 (0xb)> + [8] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "aa"> + [9] #xxxx.1.2.num.int <900 (0x384)> + [10] #0.0.nil + [11] #0.0.nil + [12] #0.0.nil + [13] #xxxx.1.2.num.int <500 (0x1f4)> + [14] #xxxx.1.2.num.int <400 (0x190)> + [15] #xxxx.1.2.num.int <30 (0x1e)> + [16] #xxxx.1.2.num.int <20 (0x14)> + [17] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.9.mem.ro> + [1] #xxxx.1.2.mem + [2] #xxxx.1.2.num.int <444 (0x1bc)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "dd"> + [4] #xxxx.1.2.num.int <33 (0x21)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [6] #xxxx.1.2.num.int <222 (0xde)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [8] #xxxx.1.2.num.int <11 (0xb)> + [9] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [10] #xxxx.1.2.num.int <900 (0x384)> + [11] #0.0.nil + [12] #0.0.nil + [13] #0.0.nil + [14] #xxxx.1.2.num.int <500 (0x1f4)> + [15] #xxxx.1.2.num.int <400 (0x190)> + [16] #xxxx.1.2.num.int <30 (0x1e)> + [17] #xxxx.1.2.num.int <20 (0x14)> + [18] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.mem +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.3.mem +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <65 (0x41)> + [1] #xxxx.1.2.num.int <444 (0x1bc)> + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "dd"> + [3] #xxxx.1.2.num.int <33 (0x21)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [5] #xxxx.1.2.num.int <222 (0xde)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [7] #xxxx.1.2.num.int <11 (0xb)> + [8] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [9] #xxxx.1.2.num.int <900 (0x384)> + [10] #0.0.nil + [11] #0.0.nil + [12] #0.0.nil + [13] #xxxx.1.2.num.int <500 (0x1f4)> + [14] #xxxx.1.2.num.int <400 (0x190)> + [15] #xxxx.1.2.num.int <30 (0x1e)> + [16] #xxxx.1.2.num.int <20 (0x14)> + [17] #xxxx.1.2.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <65 (0x41)> + [2] #xxxx.1.2.num.int <444 (0x1bc)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "dd"> + [4] #xxxx.1.2.num.int <33 (0x21)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [6] #xxxx.1.2.num.int <222 (0xde)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [8] #xxxx.1.2.num.int <11 (0xb)> + [9] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [10] #xxxx.1.2.num.int <900 (0x384)> + [11] #0.0.nil + [12] #0.0.nil + [13] #0.0.nil + [14] #xxxx.1.2.num.int <500 (0x1f4)> + [15] #xxxx.1.2.num.int <400 (0x190)> + [16] #xxxx.1.2.num.int <30 (0x1e)> + [17] #xxxx.1.2.num.int <20 (0x14)> + [18] #xxxx.1.2.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <65 (0x41)> + [3] #xxxx.1.2.num.int <444 (0x1bc)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "dd"> + [5] #xxxx.1.2.num.int <33 (0x21)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [7] #xxxx.1.2.num.int <222 (0xde)> + [8] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [9] #xxxx.1.2.num.int <11 (0xb)> + [10] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [11] #xxxx.1.2.num.int <900 (0x384)> + [12] #0.0.nil + [13] #0.0.nil + [14] #0.0.nil + [15] #xxxx.1.2.num.int <500 (0x1f4)> + [16] #xxxx.1.2.num.int <400 (0x190)> + [17] #xxxx.1.2.num.int <30 (0x1e)> + [18] #xxxx.1.2.num.int <20 (0x14)> + [19] #xxxx.1.2.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <53 (0x35)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <65 (0x41)> + [4] #xxxx.1.2.num.int <444 (0x1bc)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "dd"> + [6] #xxxx.1.2.num.int <33 (0x21)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [8] #xxxx.1.2.num.int <222 (0xde)> + [9] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [10] #xxxx.1.2.num.int <11 (0xb)> + [11] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [12] #xxxx.1.2.num.int <900 (0x384)> + [13] #0.0.nil + [14] #0.0.nil + [15] #0.0.nil + [16] #xxxx.1.2.num.int <500 (0x1f4)> + [17] #xxxx.1.2.num.int <400 (0x190)> + [18] #xxxx.1.2.num.int <30 (0x1e)> + [19] #xxxx.1.2.num.int <20 (0x14)> + [20] #xxxx.1.2.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <54 (0x36)> + [1] #xxxx.1.1.num.int <53 (0x35)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #xxxx.1.2.num.int <444 (0x1bc)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "dd"> + [7] #xxxx.1.2.num.int <33 (0x21)> + [8] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [9] #xxxx.1.2.num.int <222 (0xde)> + [10] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [11] #xxxx.1.2.num.int <11 (0xb)> + [12] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [13] #xxxx.1.2.num.int <900 (0x384)> + [14] #0.0.nil + [15] #0.0.nil + [16] #0.0.nil + [17] #xxxx.1.2.num.int <500 (0x1f4)> + [18] #xxxx.1.2.num.int <400 (0x190)> + [19] #xxxx.1.2.num.int <30 (0x1e)> + [20] #xxxx.1.2.num.int <20 (0x14)> + [21] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem +GC: --#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <54 (0x36)> + [1] #xxxx.1.1.num.int <53 (0x35)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <65 (0x41)> + [5] #xxxx.1.2.num.int <444 (0x1bc)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "dd"> + [7] #xxxx.1.2.num.int <33 (0x21)> + [8] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "cc"> + [9] #xxxx.1.2.num.int <222 (0xde)> + [10] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "bb"> + [11] #xxxx.1.2.num.int <11 (0xb)> + [12] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "aa"> + [13] #xxxx.1.2.num.int <900 (0x384)> + [14] #0.0.nil + [15] #0.0.nil + [16] #0.0.nil + [17] #xxxx.1.2.num.int <500 (0x1f4)> + [18] #xxxx.1.2.num.int <400 (0x190)> + [19] #xxxx.1.2.num.int <30 (0x1e)> + [20] #xxxx.1.2.num.int <20 (0x14)> + [21] #xxxx.1.2.num.int <100 (0x64)> diff --git a/tests/0013_put/code.log.ref b/tests/0013_put/code.log.ref new file mode 100644 index 0000000..cdee498 --- /dev/null +++ b/tests/0013_put/code.log.ref @@ -0,0 +1,77 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 71 entries (71 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e word 18 5b [ + 3 0x00010 int 81 0a 10 + 4 0x00012 int 81 14 20 + 5 0x00014 int 81 1e 30 + 6 0x00016 int 81 28 40 + 7 0x00018 word 18 5d ] + 8 0x0001a word 38 64 65 66 def + 3 9 0x0001e word 58 66 6f 6f 5f 31 foo_1 + 10 0x00024 int 01 0 + 11 0x00025 int 81 64 100 + 12 0x00027 word 38 70 75 74 put + 4 13 0x0002b word 58 66 6f 6f 5f 31 foo_1 + 14 0x00031 int 81 ff -1 + 15 0x00033 int 91 90 01 400 + 16 0x00036 word 38 70 75 74 put + 5 17 0x0003a word 58 66 6f 6f 5f 31 foo_1 + 18 0x00040 int 41 4 + 19 0x00041 int 91 f4 01 500 + 20 0x00044 word 38 70 75 74 put + 6 21 0x00048 word 58 66 6f 6f 5f 31 foo_1 + 22 0x0004e int 81 08 8 + 23 0x00050 int 91 84 03 900 + 24 0x00053 word 38 70 75 74 put + 8 25 0x00057 ref 59 66 6f 6f 5f 32 /foo_2 + 26 0x0005d word 18 28 ( + 27 0x0005f str 27 61 61 "aa" + 28 0x00062 int 81 0b 11 + 29 0x00064 str 27 62 62 "bb" + 30 0x00067 int 81 16 22 + 31 0x00069 str 27 63 63 "cc" + 32 0x0006c int 81 21 33 + 33 0x0006e word 18 29 ) + 34 0x00070 word 38 64 65 66 def + 10 35 0x00074 word 58 66 6f 6f 5f 32 foo_2 + 36 0x0007a str 27 62 62 "bb" + 37 0x0007d int 91 de 00 222 + 38 0x00080 word 38 70 75 74 put + 11 39 0x00084 word 58 66 6f 6f 5f 32 foo_2 + 40 0x0008a str 27 64 64 "dd" + 41 0x0008d int 91 bc 01 444 + 42 0x00090 word 38 70 75 74 put + 13 43 0x00094 ref 59 66 6f 6f 5f 33 /foo_3 + 44 0x0009a int 51 5 + 45 0x0009b word 68 73 74 72 69 6e 67 string + 46 0x000a2 word 38 64 65 66 def + 15 47 0x000a6 word 58 66 6f 6f 5f 33 foo_3 + 48 0x000ac int 01 0 + 49 0x000ad int 81 41 'A' + 50 0x000af word 38 70 75 74 put + 16 51 0x000b3 word 58 66 6f 6f 5f 33 foo_3 + 52 0x000b9 int 31 3 + 53 0x000ba int 81 35 '5' + 54 0x000bc word 38 70 75 74 put + 17 55 0x000c0 word 58 66 6f 6f 5f 33 foo_3 + 56 0x000c6 int 81 ff -1 + 57 0x000c8 int 81 36 '6' + 58 0x000ca word 38 70 75 74 put + 19 59 0x000ce word 58 66 6f 6f 5f 31 foo_1 + 60 0x000d4 code 16 { + 61 0x000d5 prim 13 } + 62 0x000d6 word 68 66 6f 72 61 6c 6c forall + 20 63 0x000dd word 58 66 6f 6f 5f 32 foo_2 + 64 0x000e3 code 16 { + 65 0x000e4 prim 13 } + 66 0x000e5 word 68 66 6f 72 61 6c 6c forall + 21 67 0x000ec word 58 66 6f 6f 5f 33 foo_3 + 68 0x000f2 code 16 { + 69 0x000f3 prim 13 } + 70 0x000f4 word 68 66 6f 72 61 6c 6c forall diff --git a/tests/0013_put/code1.log.ref b/tests/0013_put/code1.log.ref new file mode 100644 index 0000000..2e83958 --- /dev/null +++ b/tests/0013_put/code1.log.ref @@ -0,0 +1,77 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 71 entries (71 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e word 18 5b [ + 3 0x00010 int 81 0a 10 + 4 0x00012 int 81 14 20 + 5 0x00014 int 81 1e 30 + 6 0x00016 int 81 28 40 + 7 0x00018 word 18 5d ] + 8 0x0001a word 38 64 65 66 def + 3 9 0x0001e word 58 66 6f 6f 5f 31 foo_1 + 10 0x00024 int 01 0 + 11 0x00025 int 81 64 100 + 12 0x00027 word 38 70 75 74 put + 4 13 0x0002b xref 84 0d foo_1 + 14 0x0002d int 81 ff -1 + 15 0x0002f int 91 90 01 400 + 16 0x00032 xref 84 0b put + 5 17 0x00034 xref 84 16 foo_1 + 18 0x00036 int 41 4 + 19 0x00037 int 91 f4 01 500 + 20 0x0003a xref 84 13 put + 6 21 0x0003c xref 84 1e foo_1 + 22 0x0003e int 81 08 8 + 23 0x00040 int 91 84 03 900 + 24 0x00043 xref 84 1c put + 8 25 0x00045 ref 59 66 6f 6f 5f 32 /foo_2 + 26 0x0004b word 18 28 ( + 27 0x0004d str 27 61 61 "aa" + 28 0x00050 int 81 0b 11 + 29 0x00052 str 27 62 62 "bb" + 30 0x00055 int 81 16 22 + 31 0x00057 str 27 63 63 "cc" + 32 0x0005a int 81 21 33 + 33 0x0005c word 18 29 ) + 34 0x0005e xref 84 44 def + 10 35 0x00060 word 58 66 6f 6f 5f 32 foo_2 + 36 0x00066 xref 84 14 "bb" + 37 0x00068 int 91 de 00 222 + 38 0x0006b xref 84 44 put + 11 39 0x0006d xref 84 0d foo_2 + 40 0x0006f str 27 64 64 "dd" + 41 0x00072 int 91 bc 01 444 + 42 0x00075 xref 84 4e put + 13 43 0x00077 ref 59 66 6f 6f 5f 33 /foo_3 + 44 0x0007d int 51 5 + 45 0x0007e word 68 73 74 72 69 6e 67 string + 46 0x00085 xref 84 6b def + 15 47 0x00087 word 58 66 6f 6f 5f 33 foo_3 + 48 0x0008d int 01 0 + 49 0x0008e int 81 41 'A' + 50 0x00090 xref 84 69 put + 16 51 0x00092 xref 84 0b foo_3 + 52 0x00094 int 31 3 + 53 0x00095 int 81 35 '5' + 54 0x00097 xref 84 70 put + 17 55 0x00099 xref 84 12 foo_3 + 56 0x0009b int 81 ff -1 + 57 0x0009d int 81 36 '6' + 58 0x0009f xref 84 78 put + 19 59 0x000a1 xref 84 83 foo_1 + 60 0x000a3 code 16 { + 61 0x000a4 prim 13 } + 62 0x000a5 word 68 66 6f 72 61 6c 6c forall + 20 63 0x000ac xref 84 4c foo_2 + 64 0x000ae code 16 { + 65 0x000af prim 13 } + 66 0x000b0 xref 84 0b forall + 21 67 0x000b2 xref 84 2b foo_3 + 68 0x000b4 code 16 { + 69 0x000b5 prim 13 } + 70 0x000b6 xref 84 11 forall diff --git a/tests/0013_put/code2.log.ref b/tests/0013_put/code2.log.ref new file mode 100644 index 0000000..e24db5a --- /dev/null +++ b/tests/0013_put/code2.log.ref @@ -0,0 +1,77 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 71 entries (71 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e prim 23 [ + 3 0x0000f int 81 0a 10 + 4 0x00011 int 81 14 20 + 5 0x00013 int 81 1e 30 + 6 0x00015 int 81 28 40 + 7 0x00017 prim 33 ] + 8 0x00018 prim 63 def + 3 9 0x00019 word 58 66 6f 6f 5f 31 foo_1 + 10 0x0001f int 01 0 + 11 0x00020 int 81 64 100 + 12 0x00022 prim 83 13 put + 4 13 0x00024 xref 84 0b foo_1 + 14 0x00026 int 81 ff -1 + 15 0x00028 int 91 90 01 400 + 16 0x0002b prim 83 13 put + 5 17 0x0002d xref 84 14 foo_1 + 18 0x0002f int 41 4 + 19 0x00030 int 91 f4 01 500 + 20 0x00033 prim 83 13 put + 6 21 0x00035 xref 84 1c foo_1 + 22 0x00037 int 81 08 8 + 23 0x00039 int 91 84 03 900 + 24 0x0003c prim 83 13 put + 8 25 0x0003e ref 59 66 6f 6f 5f 32 /foo_2 + 26 0x00044 prim 43 ( + 27 0x00045 str 27 61 61 "aa" + 28 0x00048 int 81 0b 11 + 29 0x0004a str 27 62 62 "bb" + 30 0x0004d int 81 16 22 + 31 0x0004f str 27 63 63 "cc" + 32 0x00052 int 81 21 33 + 33 0x00054 prim 53 ) + 34 0x00055 prim 63 def + 10 35 0x00056 word 58 66 6f 6f 5f 32 foo_2 + 36 0x0005c xref 84 12 "bb" + 37 0x0005e int 91 de 00 222 + 38 0x00061 prim 83 13 put + 11 39 0x00063 xref 84 0d foo_2 + 40 0x00065 str 27 64 64 "dd" + 41 0x00068 int 91 bc 01 444 + 42 0x0006b prim 83 13 put + 13 43 0x0006d ref 59 66 6f 6f 5f 33 /foo_3 + 44 0x00073 int 51 5 + 45 0x00074 prim 83 11 string + 46 0x00076 prim 63 def + 15 47 0x00077 word 58 66 6f 6f 5f 33 foo_3 + 48 0x0007d int 01 0 + 49 0x0007e int 81 41 'A' + 50 0x00080 prim 83 13 put + 16 51 0x00082 xref 84 0b foo_3 + 52 0x00084 int 31 3 + 53 0x00085 int 81 35 '5' + 54 0x00087 prim 83 13 put + 17 55 0x00089 xref 84 12 foo_3 + 56 0x0008b int 81 ff -1 + 57 0x0008d int 81 36 '6' + 58 0x0008f prim 83 13 put + 19 59 0x00091 xref 84 78 foo_1 + 60 0x00093 code 16 { + 61 0x00094 prim 13 } + 62 0x00095 prim 83 0e forall + 20 63 0x00097 xref 84 41 foo_2 + 64 0x00099 code 16 { + 65 0x0009a prim 13 } + 66 0x0009b prim 83 0e forall + 21 67 0x0009d xref 84 26 foo_3 + 68 0x0009f code 16 { + 69 0x000a0 prim 13 } + 70 0x000a1 prim 83 0e forall diff --git a/tests/0013_put/main.gs b/tests/0013_put/main.gs new file mode 100644 index 0000000..689a5d4 --- /dev/null +++ b/tests/0013_put/main.gs @@ -0,0 +1,21 @@ +/foo_1 [ 10 20 30 40 ] def + +foo_1 0 100 put +foo_1 -1 400 put +foo_1 4 500 put +foo_1 8 900 put + +/foo_2 ( "aa" 11 "bb" 22 "cc" 33 ) def + +foo_2 "bb" 222 put +foo_2 "dd" 444 put + +/foo_3 5 string def + +foo_3 0 'A' put +foo_3 3 '5' put +foo_3 -1 '6' put + +foo_1 { } forall +foo_2 { } forall +foo_3 { } forall diff --git a/tests/0013_put/mem.log.ref b/tests/0013_put/mem.log.ref new file mode 100644 index 0000000..52f797e --- /dev/null +++ b/tests/0013_put/mem.log.ref @@ -0,0 +1,844 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 252] + 8: 0.00, 0x001d6b70[ 72] + 9: 188.01, 0x001d6bc0[ 56] + 10: 218.01, 0x001d6c00[ 8] + 11: 0.00, 0x001d6c10[ 8] + 12: 197.01, 0x001d6c20[ 72] + 13: 194.01, 0x001d6c70[ 88] + 14: 0.00, 0x001d6cd0[ 36] + 15: 211.01, 0x001d6cfc[ 164] + 16: 0.00, 0x001d6da8[ 56] + 17: 187.01, 0x001d6de8[ 144] + 18: 0.00, 0x001d6e80[14848384] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9, size 5, "foo_1"> => #194.1.1.array + #204.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x58, size 5, "foo_2"> => #211.1.1.hash + #216.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x95, size 5, "foo_3"> => #218.1.1.mem + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.8.mem.ro + 75 51 12 a9 42 7a ad 60 59 66 6f 6f 5f 31 18 5b uQ..Bz.`Yfoo_1.[ + 81 0a 81 14 81 1e 81 28 18 5d 38 64 65 66 58 66 .......(.]8defXf + 6f 6f 5f 31 01 81 64 38 70 75 74 58 66 6f 6f 5f oo_1..d8putXfoo_ + 31 81 ff 91 90 01 38 70 75 74 58 66 6f 6f 5f 31 1.....8putXfoo_1 + 41 91 f4 01 38 70 75 74 58 66 6f 6f 5f 31 81 08 A...8putXfoo_1.. + 91 84 03 38 70 75 74 59 66 6f 6f 5f 32 18 28 27 ...8putYfoo_2.(' + 61 61 81 0b 27 62 62 81 16 27 63 63 81 21 18 29 aa..'bb..'cc.!.) + 38 64 65 66 58 66 6f 6f 5f 32 27 62 62 91 de 00 8defXfoo_2'bb... + 38 70 75 74 58 66 6f 6f 5f 32 27 64 64 91 bc 01 8putXfoo_2'dd... + 38 70 75 74 59 66 6f 6f 5f 33 51 68 73 74 72 69 8putYfoo_3Qhstri + 6e 67 38 64 65 66 58 66 6f 6f 5f 33 01 81 41 38 ng8defXfoo_3..A8 + 70 75 74 58 66 6f 6f 5f 33 31 81 35 38 70 75 74 putXfoo_31.58put + 58 66 6f 6f 5f 33 81 ff 81 36 38 70 75 74 58 66 Xfoo_3...68putXf + 6f 6f 5f 31 16 13 68 66 6f 72 61 6c 6c 58 66 6f oo_1..hforallXfo + 6f 5f 32 16 13 68 66 6f 72 61 6c 6c 58 66 6f 6f o_2..hforallXfoo + 5f 33 16 13 68 66 6f 72 61 6c 6c _3..hforall + #187.1.1.array + [ 0] #196.1.2.num.int <100 (0x64)> + [ 1] #191.1.2.num.int <20 (0x14)> + [ 2] #192.1.2.num.int <30 (0x1e)> + [ 3] #199.1.2.num.int <400 (0x190)> + [ 4] #201.1.2.num.int <500 (0x1f4)> + [ 5] #0.0.nil + [ 6] #0.0.nil + [ 7] #0.0.nil + [ 8] #203.1.2.num.int <900 (0x384)> + [ 9] #205.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "aa"> + [10] #206.1.2.num.int <11 (0xb)> + [11] #212.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x7b, size 2, "bb"> + [12] #213.1.2.num.int <222 (0xde)> + [13] #209.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x6a, size 2, "cc"> + [14] #210.1.2.num.int <33 (0x21)> + [15] #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x8b, size 2, "dd"> + [16] #215.1.2.num.int <444 (0x1bc)> + [17] #230.1.1.num.int <65 (0x41)> + [18] #232.1.1.num.int <0 (0x0)> + [19] #233.1.1.num.int <0 (0x0)> + [20] #234.1.1.num.int <53 (0x35)> + [21] #235.1.1.num.int <54 (0x36)> + #188.1.1.ctx.func + type 17, ip 0xfb (0xfb) + code #186.1.8.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #191.1.2.num.int <20 (0x14)> + #192.1.2.num.int <30 (0x1e)> + #194.1.1.array + [ 0] #196.1.2.num.int <100 (0x64)> + [ 1] #191.1.2.num.int <20 (0x14)> + [ 2] #192.1.2.num.int <30 (0x1e)> + [ 3] #199.1.2.num.int <400 (0x190)> + [ 4] #201.1.2.num.int <500 (0x1f4)> + [ 5] #0.0.nil + [ 6] #0.0.nil + [ 7] #0.0.nil + [ 8] #203.1.2.num.int <900 (0x384)> + #196.1.2.num.int <100 (0x64)> + #197.1.1.array + #199.1.2.num.int <400 (0x190)> + #201.1.2.num.int <500 (0x1f4)> + #203.1.2.num.int <900 (0x384)> + #204.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x58, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #205.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "aa"> + 61 61 aa + #206.1.2.num.int <11 (0xb)> + #209.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x6a, size 2, "cc"> + 63 63 cc + #210.1.2.num.int <33 (0x21)> + #211.1.1.hash + #205.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "aa"> => #206.1.2.num.int <11 (0xb)> + #212.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x7b, size 2, "bb"> => #213.1.2.num.int <222 (0xde)> + #209.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x6a, size 2, "cc"> => #210.1.2.num.int <33 (0x21)> + #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x8b, size 2, "dd"> => #215.1.2.num.int <444 (0x1bc)> + #212.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x7b, size 2, "bb"> + 62 62 bb + #213.1.2.num.int <222 (0xde)> + #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x8b, size 2, "dd"> + 64 64 dd + #215.1.2.num.int <444 (0x1bc)> + #216.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x95, size 5, "foo_3"> + 66 6f 6f 5f 33 foo_3 + #218.1.1.mem + 41 00 00 35 36 A..56 + #230.1.1.num.int <65 (0x41)> + #232.1.1.num.int <0 (0x0)> + #233.1.1.num.int <0 (0x0)> + #234.1.1.num.int <53 (0x35)> + #235.1.1.num.int <54 (0x36)> diff --git a/tests/0013_put/screen.log.ref b/tests/0013_put/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0013_put/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0013_put/trace.log.ref b/tests/0013_put/trace.log.ref new file mode 100644 index 0000000..e0df9eb --- /dev/null +++ b/tests/0013_put/trace.log.ref @@ -0,0 +1,917 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0xe, type 8, 15[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x10, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <10 (0xa)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x12, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <20 (0x14)> + [1] #190.1.1.num.int <10 (0xa)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x14, type 1, 30 (0x1e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <30 (0x1e)> + [1] #191.1.1.num.int <20 (0x14)> + [2] #190.1.1.num.int <10 (0xa)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x16, type 1, 40 (0x28) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <40 (0x28)> + [1] #192.1.1.num.int <30 (0x1e)> + [2] #191.1.1.num.int <20 (0x14)> + [3] #190.1.1.num.int <10 (0xa)> + [4] #9.1.2.num.prim <2 (0x2)> + [5] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x18, type 8, 25[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.array + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x1a, type 8, 27[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#194.1.1.array +GC: --#194.1.2.array +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1e, type 8, 31[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array +IP: #186:0x24, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <0 (0x0)> + [1] #194.1.2.array +IP: #186:0x25, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <100 (0x64)> + [1] #195.1.1.num.int <0 (0x0)> + [2] #194.1.2.array +IP: #186:0x27, type 8, 40[3] +GC: ++#196.1.1.num.int +GC: --#190.1.1.num.int +GC: --#196.1.2.num.int +GC: --#195.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x2b, type 8, 44[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array +IP: #186:0x31, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #194.1.2.array +IP: #186:0x33, type 1, 400 (0x190) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <400 (0x190)> + [1] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #194.1.2.array +IP: #186:0x36, type 8, 55[3] +GC: ++#199.1.1.num.int +GC: --#193.1.1.num.int +GC: --#199.1.2.num.int +GC: --#198.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x3a, type 8, 59[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array +IP: #186:0x40, type 1, 4 (0x4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <4 (0x4)> + [1] #194.1.2.array +IP: #186:0x41, type 1, 500 (0x1f4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <500 (0x1f4)> + [1] #200.1.1.num.int <4 (0x4)> + [2] #194.1.2.array +IP: #186:0x44, type 8, 69[3] +GC: ++#201.1.1.num.int +GC: --#201.1.2.num.int +GC: --#200.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x48, type 8, 73[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array +IP: #186:0x4e, type 1, 8 (0x8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <8 (0x8)> + [1] #194.1.2.array +IP: #186:0x50, type 1, 900 (0x384) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <900 (0x384)> + [1] #202.1.1.num.int <8 (0x8)> + [2] #194.1.2.array +IP: #186:0x53, type 8, 84[3] +GC: ++#203.1.1.num.int +GC: --#203.1.2.num.int +GC: --#202.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x57, type 9, 88[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x58, size 5, "foo_2"> +IP: #186:0x5d, type 8, 94[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #204.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x58, size 5, "foo_2"> +IP: #186:0x5f, type 7, 96[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x60, size 2, "aa"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #204.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x58, size 5, "foo_2"> +IP: #186:0x62, type 1, 11 (0xb) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <11 (0xb)> + [1] #205.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x60, size 2, "aa"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #204.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x58, size 5, "foo_2"> +IP: #186:0x64, type 7, 101[2] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x65, size 2, "bb"> + [1] #206.1.1.num.int <11 (0xb)> + [2] #205.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x60, size 2, "aa"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #204.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x58, size 5, "foo_2"> +IP: #186:0x67, type 1, 22 (0x16) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <22 (0x16)> + [1] #207.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x65, size 2, "bb"> + [2] #206.1.1.num.int <11 (0xb)> + [3] #205.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x60, size 2, "aa"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #204.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x58, size 5, "foo_2"> +IP: #186:0x69, type 7, 106[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x6a, size 2, "cc"> + [1] #208.1.1.num.int <22 (0x16)> + [2] #207.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x65, size 2, "bb"> + [3] #206.1.1.num.int <11 (0xb)> + [4] #205.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x60, size 2, "aa"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #204.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x58, size 5, "foo_2"> +IP: #186:0x6c, type 1, 33 (0x21) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <33 (0x21)> + [1] #209.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x6a, size 2, "cc"> + [2] #208.1.1.num.int <22 (0x16)> + [3] #207.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x65, size 2, "bb"> + [4] #206.1.1.num.int <11 (0xb)> + [5] #205.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x60, size 2, "aa"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #204.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x58, size 5, "foo_2"> +IP: #186:0x6e, type 8, 111[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.hash + [1] #204.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x58, size 5, "foo_2"> +IP: #186:0x70, type 8, 113[3] +GC: ++#204.1.1.mem.ref.ro +GC: ++#211.1.1.hash +GC: --#211.1.2.hash +GC: --#204.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x74, type 8, 117[5] +GC: ++#211.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.2.hash +IP: #186:0x7a, type 7, 123[2] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x7b, size 2, "bb"> + [1] #211.1.2.hash +IP: #186:0x7d, type 1, 222 (0xde) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <222 (0xde)> + [1] #212.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x7b, size 2, "bb"> + [2] #211.1.2.hash +IP: #186:0x80, type 8, 129[3] +GC: ++#212.1.1.mem.str.ro +GC: ++#213.1.1.num.int +GC: --#207.1.1.mem.str.ro +GC: --#186.1.7.mem.ro +GC: --#208.1.1.num.int +GC: --#213.1.2.num.int +GC: --#212.1.2.mem.str.ro +GC: --#211.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x84, type 8, 133[5] +GC: ++#211.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.2.hash +IP: #186:0x8a, type 7, 139[2] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x8b, size 2, "dd"> + [1] #211.1.2.hash +IP: #186:0x8d, type 1, 444 (0x1bc) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <444 (0x1bc)> + [1] #214.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x8b, size 2, "dd"> + [2] #211.1.2.hash +IP: #186:0x90, type 8, 145[3] +GC: ++#214.1.1.mem.str.ro +GC: ++#215.1.1.num.int +GC: --#215.1.2.num.int +GC: --#214.1.2.mem.str.ro +GC: --#211.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x94, type 9, 149[5] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x95, size 5, "foo_3"> +IP: #186:0x9a, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <5 (0x5)> + [1] #216.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x95, size 5, "foo_3"> +IP: #186:0x9b, type 8, 156[6] +GC: --#217.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem + [1] #216.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x95, size 5, "foo_3"> +IP: #186:0xa2, type 8, 163[3] +GC: ++#216.1.1.mem.ref.ro +GC: ++#218.1.1.mem +GC: --#218.1.2.mem +GC: --#216.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xa6, type 8, 167[5] +GC: ++#218.1.1.mem +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.2.mem +IP: #186:0xac, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.int <0 (0x0)> + [1] #218.1.2.mem +IP: #186:0xad, type 1, 65 (0x41) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.num.int <65 (0x41)> + [1] #219.1.1.num.int <0 (0x0)> + [2] #218.1.2.mem +IP: #186:0xaf, type 8, 176[3] +GC: --#220.1.1.num.int +GC: --#219.1.1.num.int +GC: --#218.1.2.mem +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xb3, type 8, 180[5] +GC: ++#218.1.1.mem +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.2.mem +IP: #186:0xb9, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.int <3 (0x3)> + [1] #218.1.2.mem +IP: #186:0xba, type 1, 53 (0x35) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.int <53 (0x35)> + [1] #221.1.1.num.int <3 (0x3)> + [2] #218.1.2.mem +IP: #186:0xbc, type 8, 189[3] +GC: --#222.1.1.num.int +GC: --#221.1.1.num.int +GC: --#218.1.2.mem +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xc0, type 8, 193[5] +GC: ++#218.1.1.mem +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.2.mem +IP: #186:0xc6, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #218.1.2.mem +IP: #186:0xc8, type 1, 54 (0x36) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.num.int <54 (0x36)> + [1] #223.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #218.1.2.mem +IP: #186:0xca, type 8, 203[3] +GC: --#224.1.1.num.int +GC: --#223.1.1.num.int +GC: --#218.1.2.mem +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xce, type 8, 207[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array +IP: #186:0xd4, type 6, 213[1] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0xd5, size 1> + [1] #194.1.2.array +IP: #186:0xd6, type 8, 215[6] +GC: ++#196.1.1.num.int +GC: ++#225.1.1.mem.code.ro +GC: ++#194.1.2.array +GC: --#225.1.2.mem.code.ro +GC: --#194.1.3.array +== backtrace == + [0] #226.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.2.num.int <100 (0x64)> +IP: #225:0x0, type 3, 1 (0x1) +GC: ++#191.1.1.num.int +== backtrace == + [0] #226.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.num.int <20 (0x14)> + [1] #196.1.2.num.int <100 (0x64)> +IP: #225:0x0, type 3, 1 (0x1) +GC: ++#192.1.1.num.int +== backtrace == + [0] #226.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.num.int <30 (0x1e)> + [1] #191.1.2.num.int <20 (0x14)> + [2] #196.1.2.num.int <100 (0x64)> +IP: #225:0x0, type 3, 1 (0x1) +GC: ++#199.1.1.num.int +== backtrace == + [0] #226.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.2.num.int <400 (0x190)> + [1] #192.1.2.num.int <30 (0x1e)> + [2] #191.1.2.num.int <20 (0x14)> + [3] #196.1.2.num.int <100 (0x64)> +IP: #225:0x0, type 3, 1 (0x1) +GC: ++#201.1.1.num.int +== backtrace == + [0] #226.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.2.num.int <500 (0x1f4)> + [1] #199.1.2.num.int <400 (0x190)> + [2] #192.1.2.num.int <30 (0x1e)> + [3] #191.1.2.num.int <20 (0x14)> + [4] #196.1.2.num.int <100 (0x64)> +IP: #225:0x0, type 3, 1 (0x1) +== backtrace == + [0] #226.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #201.1.2.num.int <500 (0x1f4)> + [2] #199.1.2.num.int <400 (0x190)> + [3] #192.1.2.num.int <30 (0x1e)> + [4] #191.1.2.num.int <20 (0x14)> + [5] #196.1.2.num.int <100 (0x64)> +IP: #225:0x0, type 3, 1 (0x1) +== backtrace == + [0] #226.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #201.1.2.num.int <500 (0x1f4)> + [3] #199.1.2.num.int <400 (0x190)> + [4] #192.1.2.num.int <30 (0x1e)> + [5] #191.1.2.num.int <20 (0x14)> + [6] #196.1.2.num.int <100 (0x64)> +IP: #225:0x0, type 3, 1 (0x1) +== backtrace == + [0] #226.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #0.0.nil + [3] #201.1.2.num.int <500 (0x1f4)> + [4] #199.1.2.num.int <400 (0x190)> + [5] #192.1.2.num.int <30 (0x1e)> + [6] #191.1.2.num.int <20 (0x14)> + [7] #196.1.2.num.int <100 (0x64)> +IP: #225:0x0, type 3, 1 (0x1) +GC: ++#203.1.1.num.int +== backtrace == + [0] #226.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.2.num.int <900 (0x384)> + [1] #0.0.nil + [2] #0.0.nil + [3] #0.0.nil + [4] #201.1.2.num.int <500 (0x1f4)> + [5] #199.1.2.num.int <400 (0x190)> + [6] #192.1.2.num.int <30 (0x1e)> + [7] #191.1.2.num.int <20 (0x14)> + [8] #196.1.2.num.int <100 (0x64)> +IP: #225:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#226.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#225.1.1.mem.code.ro +GC: --#194.1.2.array +GC: --#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.2.num.int <900 (0x384)> + [1] #0.0.nil + [2] #0.0.nil + [3] #0.0.nil + [4] #201.1.2.num.int <500 (0x1f4)> + [5] #199.1.2.num.int <400 (0x190)> + [6] #192.1.2.num.int <30 (0x1e)> + [7] #191.1.2.num.int <20 (0x14)> + [8] #196.1.2.num.int <100 (0x64)> +IP: #186:0xdd, type 8, 222[5] +GC: ++#211.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.2.hash + [1] #203.1.2.num.int <900 (0x384)> + [2] #0.0.nil + [3] #0.0.nil + [4] #0.0.nil + [5] #201.1.2.num.int <500 (0x1f4)> + [6] #199.1.2.num.int <400 (0x190)> + [7] #192.1.2.num.int <30 (0x1e)> + [8] #191.1.2.num.int <20 (0x14)> + [9] #196.1.2.num.int <100 (0x64)> +IP: #186:0xe3, type 6, 228[1] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0xe4, size 1> + [1] #211.1.2.hash + [2] #203.1.2.num.int <900 (0x384)> + [3] #0.0.nil + [4] #0.0.nil + [5] #0.0.nil + [6] #201.1.2.num.int <500 (0x1f4)> + [7] #199.1.2.num.int <400 (0x190)> + [8] #192.1.2.num.int <30 (0x1e)> + [9] #191.1.2.num.int <20 (0x14)> + [10] #196.1.2.num.int <100 (0x64)> +IP: #186:0xe5, type 8, 230[6] +GC: ++#205.1.1.mem.str.ro +GC: ++#206.1.1.num.int +GC: ++#227.1.1.mem.code.ro +GC: ++#211.1.2.hash +GC: --#227.1.2.mem.code.ro +GC: --#211.1.3.hash +== backtrace == + [0] #228.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.2.num.int <11 (0xb)> + [1] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "aa"> + [2] #203.1.2.num.int <900 (0x384)> + [3] #0.0.nil + [4] #0.0.nil + [5] #0.0.nil + [6] #201.1.2.num.int <500 (0x1f4)> + [7] #199.1.2.num.int <400 (0x190)> + [8] #192.1.2.num.int <30 (0x1e)> + [9] #191.1.2.num.int <20 (0x14)> + [10] #196.1.2.num.int <100 (0x64)> +IP: #227:0x0, type 3, 1 (0x1) +GC: ++#212.1.1.mem.str.ro +GC: ++#213.1.1.num.int +== backtrace == + [0] #228.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.2.num.int <222 (0xde)> + [1] #212.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x7b, size 2, "bb"> + [2] #206.1.2.num.int <11 (0xb)> + [3] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "aa"> + [4] #203.1.2.num.int <900 (0x384)> + [5] #0.0.nil + [6] #0.0.nil + [7] #0.0.nil + [8] #201.1.2.num.int <500 (0x1f4)> + [9] #199.1.2.num.int <400 (0x190)> + [10] #192.1.2.num.int <30 (0x1e)> + [11] #191.1.2.num.int <20 (0x14)> + [12] #196.1.2.num.int <100 (0x64)> +IP: #227:0x0, type 3, 1 (0x1) +GC: ++#209.1.1.mem.str.ro +GC: ++#210.1.1.num.int +== backtrace == + [0] #228.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.2.num.int <33 (0x21)> + [1] #209.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x6a, size 2, "cc"> + [2] #213.1.2.num.int <222 (0xde)> + [3] #212.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x7b, size 2, "bb"> + [4] #206.1.2.num.int <11 (0xb)> + [5] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "aa"> + [6] #203.1.2.num.int <900 (0x384)> + [7] #0.0.nil + [8] #0.0.nil + [9] #0.0.nil + [10] #201.1.2.num.int <500 (0x1f4)> + [11] #199.1.2.num.int <400 (0x190)> + [12] #192.1.2.num.int <30 (0x1e)> + [13] #191.1.2.num.int <20 (0x14)> + [14] #196.1.2.num.int <100 (0x64)> +IP: #227:0x0, type 3, 1 (0x1) +GC: ++#214.1.1.mem.str.ro +GC: ++#215.1.1.num.int +== backtrace == + [0] #228.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.2.num.int <444 (0x1bc)> + [1] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x8b, size 2, "dd"> + [2] #210.1.2.num.int <33 (0x21)> + [3] #209.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x6a, size 2, "cc"> + [4] #213.1.2.num.int <222 (0xde)> + [5] #212.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x7b, size 2, "bb"> + [6] #206.1.2.num.int <11 (0xb)> + [7] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "aa"> + [8] #203.1.2.num.int <900 (0x384)> + [9] #0.0.nil + [10] #0.0.nil + [11] #0.0.nil + [12] #201.1.2.num.int <500 (0x1f4)> + [13] #199.1.2.num.int <400 (0x190)> + [14] #192.1.2.num.int <30 (0x1e)> + [15] #191.1.2.num.int <20 (0x14)> + [16] #196.1.2.num.int <100 (0x64)> +IP: #227:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#228.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#227.1.1.mem.code.ro +GC: --#211.1.2.hash +GC: --#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.2.num.int <444 (0x1bc)> + [1] #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x8b, size 2, "dd"> + [2] #210.1.2.num.int <33 (0x21)> + [3] #209.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x6a, size 2, "cc"> + [4] #213.1.2.num.int <222 (0xde)> + [5] #212.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x7b, size 2, "bb"> + [6] #206.1.2.num.int <11 (0xb)> + [7] #205.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "aa"> + [8] #203.1.2.num.int <900 (0x384)> + [9] #0.0.nil + [10] #0.0.nil + [11] #0.0.nil + [12] #201.1.2.num.int <500 (0x1f4)> + [13] #199.1.2.num.int <400 (0x190)> + [14] #192.1.2.num.int <30 (0x1e)> + [15] #191.1.2.num.int <20 (0x14)> + [16] #196.1.2.num.int <100 (0x64)> +IP: #186:0xec, type 8, 237[5] +GC: ++#218.1.1.mem +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.2.mem + [1] #215.1.2.num.int <444 (0x1bc)> + [2] #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x8b, size 2, "dd"> + [3] #210.1.2.num.int <33 (0x21)> + [4] #209.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x6a, size 2, "cc"> + [5] #213.1.2.num.int <222 (0xde)> + [6] #212.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x7b, size 2, "bb"> + [7] #206.1.2.num.int <11 (0xb)> + [8] #205.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "aa"> + [9] #203.1.2.num.int <900 (0x384)> + [10] #0.0.nil + [11] #0.0.nil + [12] #0.0.nil + [13] #201.1.2.num.int <500 (0x1f4)> + [14] #199.1.2.num.int <400 (0x190)> + [15] #192.1.2.num.int <30 (0x1e)> + [16] #191.1.2.num.int <20 (0x14)> + [17] #196.1.2.num.int <100 (0x64)> +IP: #186:0xf2, type 6, 243[1] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0xf3, size 1> + [1] #218.1.2.mem + [2] #215.1.2.num.int <444 (0x1bc)> + [3] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x8b, size 2, "dd"> + [4] #210.1.2.num.int <33 (0x21)> + [5] #209.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x6a, size 2, "cc"> + [6] #213.1.2.num.int <222 (0xde)> + [7] #212.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x7b, size 2, "bb"> + [8] #206.1.2.num.int <11 (0xb)> + [9] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "aa"> + [10] #203.1.2.num.int <900 (0x384)> + [11] #0.0.nil + [12] #0.0.nil + [13] #0.0.nil + [14] #201.1.2.num.int <500 (0x1f4)> + [15] #199.1.2.num.int <400 (0x190)> + [16] #192.1.2.num.int <30 (0x1e)> + [17] #191.1.2.num.int <20 (0x14)> + [18] #196.1.2.num.int <100 (0x64)> +IP: #186:0xf4, type 8, 245[6] +GC: ++#229.1.1.mem.code.ro +GC: ++#218.1.2.mem +GC: --#229.1.2.mem.code.ro +GC: --#218.1.3.mem +== backtrace == + [0] #231.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.num.int <65 (0x41)> + [1] #215.1.2.num.int <444 (0x1bc)> + [2] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x8b, size 2, "dd"> + [3] #210.1.2.num.int <33 (0x21)> + [4] #209.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x6a, size 2, "cc"> + [5] #213.1.2.num.int <222 (0xde)> + [6] #212.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x7b, size 2, "bb"> + [7] #206.1.2.num.int <11 (0xb)> + [8] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "aa"> + [9] #203.1.2.num.int <900 (0x384)> + [10] #0.0.nil + [11] #0.0.nil + [12] #0.0.nil + [13] #201.1.2.num.int <500 (0x1f4)> + [14] #199.1.2.num.int <400 (0x190)> + [15] #192.1.2.num.int <30 (0x1e)> + [16] #191.1.2.num.int <20 (0x14)> + [17] #196.1.2.num.int <100 (0x64)> +IP: #229:0x0, type 3, 1 (0x1) +== backtrace == + [0] #231.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.num.int <0 (0x0)> + [1] #230.1.1.num.int <65 (0x41)> + [2] #215.1.2.num.int <444 (0x1bc)> + [3] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x8b, size 2, "dd"> + [4] #210.1.2.num.int <33 (0x21)> + [5] #209.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x6a, size 2, "cc"> + [6] #213.1.2.num.int <222 (0xde)> + [7] #212.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x7b, size 2, "bb"> + [8] #206.1.2.num.int <11 (0xb)> + [9] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "aa"> + [10] #203.1.2.num.int <900 (0x384)> + [11] #0.0.nil + [12] #0.0.nil + [13] #0.0.nil + [14] #201.1.2.num.int <500 (0x1f4)> + [15] #199.1.2.num.int <400 (0x190)> + [16] #192.1.2.num.int <30 (0x1e)> + [17] #191.1.2.num.int <20 (0x14)> + [18] #196.1.2.num.int <100 (0x64)> +IP: #229:0x0, type 3, 1 (0x1) +== backtrace == + [0] #231.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.num.int <0 (0x0)> + [1] #232.1.1.num.int <0 (0x0)> + [2] #230.1.1.num.int <65 (0x41)> + [3] #215.1.2.num.int <444 (0x1bc)> + [4] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x8b, size 2, "dd"> + [5] #210.1.2.num.int <33 (0x21)> + [6] #209.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x6a, size 2, "cc"> + [7] #213.1.2.num.int <222 (0xde)> + [8] #212.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x7b, size 2, "bb"> + [9] #206.1.2.num.int <11 (0xb)> + [10] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "aa"> + [11] #203.1.2.num.int <900 (0x384)> + [12] #0.0.nil + [13] #0.0.nil + [14] #0.0.nil + [15] #201.1.2.num.int <500 (0x1f4)> + [16] #199.1.2.num.int <400 (0x190)> + [17] #192.1.2.num.int <30 (0x1e)> + [18] #191.1.2.num.int <20 (0x14)> + [19] #196.1.2.num.int <100 (0x64)> +IP: #229:0x0, type 3, 1 (0x1) +== backtrace == + [0] #231.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.int <53 (0x35)> + [1] #233.1.1.num.int <0 (0x0)> + [2] #232.1.1.num.int <0 (0x0)> + [3] #230.1.1.num.int <65 (0x41)> + [4] #215.1.2.num.int <444 (0x1bc)> + [5] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x8b, size 2, "dd"> + [6] #210.1.2.num.int <33 (0x21)> + [7] #209.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x6a, size 2, "cc"> + [8] #213.1.2.num.int <222 (0xde)> + [9] #212.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x7b, size 2, "bb"> + [10] #206.1.2.num.int <11 (0xb)> + [11] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "aa"> + [12] #203.1.2.num.int <900 (0x384)> + [13] #0.0.nil + [14] #0.0.nil + [15] #0.0.nil + [16] #201.1.2.num.int <500 (0x1f4)> + [17] #199.1.2.num.int <400 (0x190)> + [18] #192.1.2.num.int <30 (0x1e)> + [19] #191.1.2.num.int <20 (0x14)> + [20] #196.1.2.num.int <100 (0x64)> +IP: #229:0x0, type 3, 1 (0x1) +== backtrace == + [0] #231.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.num.int <54 (0x36)> + [1] #234.1.1.num.int <53 (0x35)> + [2] #233.1.1.num.int <0 (0x0)> + [3] #232.1.1.num.int <0 (0x0)> + [4] #230.1.1.num.int <65 (0x41)> + [5] #215.1.2.num.int <444 (0x1bc)> + [6] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x8b, size 2, "dd"> + [7] #210.1.2.num.int <33 (0x21)> + [8] #209.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x6a, size 2, "cc"> + [9] #213.1.2.num.int <222 (0xde)> + [10] #212.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x7b, size 2, "bb"> + [11] #206.1.2.num.int <11 (0xb)> + [12] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "aa"> + [13] #203.1.2.num.int <900 (0x384)> + [14] #0.0.nil + [15] #0.0.nil + [16] #0.0.nil + [17] #201.1.2.num.int <500 (0x1f4)> + [18] #199.1.2.num.int <400 (0x190)> + [19] #192.1.2.num.int <30 (0x1e)> + [20] #191.1.2.num.int <20 (0x14)> + [21] #196.1.2.num.int <100 (0x64)> +IP: #229:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#231.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#229.1.1.mem.code.ro +GC: --#218.1.2.mem +GC: --#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.num.int <54 (0x36)> + [1] #234.1.1.num.int <53 (0x35)> + [2] #233.1.1.num.int <0 (0x0)> + [3] #232.1.1.num.int <0 (0x0)> + [4] #230.1.1.num.int <65 (0x41)> + [5] #215.1.2.num.int <444 (0x1bc)> + [6] #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x8b, size 2, "dd"> + [7] #210.1.2.num.int <33 (0x21)> + [8] #209.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x6a, size 2, "cc"> + [9] #213.1.2.num.int <222 (0xde)> + [10] #212.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x7b, size 2, "bb"> + [11] #206.1.2.num.int <11 (0xb)> + [12] #205.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "aa"> + [13] #203.1.2.num.int <900 (0x384)> + [14] #0.0.nil + [15] #0.0.nil + [16] #0.0.nil + [17] #201.1.2.num.int <500 (0x1f4)> + [18] #199.1.2.num.int <400 (0x190)> + [19] #192.1.2.num.int <30 (0x1e)> + [20] #191.1.2.num.int <20 (0x14)> + [21] #196.1.2.num.int <100 (0x64)> diff --git a/tests/0014_string/basic.log.ref b/tests/0014_string/basic.log.ref new file mode 100644 index 0000000..1dee4df --- /dev/null +++ b/tests/0014_string/basic.log.ref @@ -0,0 +1,24 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.mem +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem + [1] #xxxx.1.1.mem diff --git a/tests/0014_string/code.log.ref b/tests/0014_string/code.log.ref new file mode 100644 index 0000000..729154a --- /dev/null +++ b/tests/0014_string/code.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 0a 10 + 2 0x0000a word 68 73 74 72 69 6e 67 string + 2 3 0x00011 int 01 0 + 4 0x00012 word 68 73 74 72 69 6e 67 string diff --git a/tests/0014_string/code1.log.ref b/tests/0014_string/code1.log.ref new file mode 100644 index 0000000..24c176c --- /dev/null +++ b/tests/0014_string/code1.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 0a 10 + 2 0x0000a word 68 73 74 72 69 6e 67 string + 2 3 0x00011 int 01 0 + 4 0x00012 xref 84 08 string diff --git a/tests/0014_string/code2.log.ref b/tests/0014_string/code2.log.ref new file mode 100644 index 0000000..fc5b120 --- /dev/null +++ b/tests/0014_string/code2.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 0a 10 + 2 0x0000a prim 83 11 string + 2 3 0x0000c int 01 0 + 4 0x0000d prim 83 11 string diff --git a/tests/0014_string/main.gs b/tests/0014_string/main.gs new file mode 100644 index 0000000..87994d1 --- /dev/null +++ b/tests/0014_string/main.gs @@ -0,0 +1,2 @@ +10 string +0 string diff --git a/tests/0014_string/mem.log.ref b/tests/0014_string/mem.log.ref new file mode 100644 index 0000000..c3477bf --- /dev/null +++ b/tests/0014_string/mem.log.ref @@ -0,0 +1,759 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 28] + 8: 187.01, 0x001d6a90[ 72] + 9: 188.01, 0x001d6ae0[ 56] + 10: 190.01, 0x001d6b20[ 12] + 11: 191.01, 0x001d6b34[ 72] + 12: 0.00, 0x001d6b84[14849148] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 0a 68 73 74 72 69 6e uQ..Bz.`..hstrin + 67 01 68 73 74 72 69 6e 67 g.hstring + #187.1.1.array + [ 0] #190.1.1.mem + [ 1] #193.1.1.mem + #188.1.1.ctx.func + type 17, ip 0x19 (0x19) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #190.1.1.mem + 00 00 00 00 00 00 00 00 00 00 .......... + #191.1.1.array + #193.1.1.mem + diff --git a/tests/0014_string/screen.log.ref b/tests/0014_string/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0014_string/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0014_string/trace.log.ref b/tests/0014_string/trace.log.ref new file mode 100644 index 0000000..b81c93b --- /dev/null +++ b/tests/0014_string/trace.log.ref @@ -0,0 +1,29 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <10 (0xa)> +IP: #186:0xa, type 8, 11[6] +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem +IP: #186:0x11, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <0 (0x0)> + [1] #190.1.1.mem +IP: #186:0x12, type 8, 19[6] +GC: --#192.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem + [1] #190.1.1.mem diff --git a/tests/0015_length/basic.log.ref b/tests/0015_length/basic.log.ref new file mode 100644 index 0000000..b919982 --- /dev/null +++ b/tests/0015_length/basic.log.ref @@ -0,0 +1,236 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> + [4] #xxxx.1.2.num.prim <2 (0x2)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo_2"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo_2"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [2] #xxxx.1.1.num.int <11 (0xb)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [1] #xxxx.1.1.num.int <22 (0x16)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [3] #xxxx.1.1.num.int <11 (0xb)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <33 (0x21)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <22 (0x16)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [4] #xxxx.1.1.num.int <11 (0xb)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "dd"> + [1] #xxxx.1.1.num.int <33 (0x21)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "cc"> + [3] #xxxx.1.1.num.int <22 (0x16)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "bb"> + [5] #xxxx.1.1.num.int <11 (0xb)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "aa"> + [7] #xxxx.1.2.num.prim <4 (0x4)> + [8] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo_2"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <44 (0x2c)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "dd"> + [2] #xxxx.1.1.num.int <33 (0x21)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <22 (0x16)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "bb"> + [6] #xxxx.1.1.num.int <11 (0xb)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "aa"> + [8] #xxxx.1.2.num.prim <4 (0x4)> + [9] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo_2"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo_2"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "foo_3"> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "ABC123"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_3"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "bb"> + [1] #xxxx.1.2.hash +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.9.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.num.int <4 (0x4)> +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <4 (0x4)> +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ABC123"> + [1] #xxxx.1.1.num.int <3 (0x3)> + [2] #xxxx.1.1.num.int <4 (0x4)> +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <3 (0x3)> + [2] #xxxx.1.1.num.int <4 (0x4)> diff --git a/tests/0015_length/code.log.ref b/tests/0015_length/code.log.ref new file mode 100644 index 0000000..96cf80b --- /dev/null +++ b/tests/0015_length/code.log.ref @@ -0,0 +1,39 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 33 entries (33 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e word 18 5b [ + 3 0x00010 int 81 0a 10 + 4 0x00012 int 81 14 20 + 5 0x00014 int 81 1e 30 + 6 0x00016 int 81 28 40 + 7 0x00018 word 18 5d ] + 8 0x0001a word 38 64 65 66 def + 3 9 0x0001e ref 59 66 6f 6f 5f 32 /foo_2 + 10 0x00024 word 18 28 ( + 11 0x00026 str 27 61 61 "aa" + 12 0x00029 int 81 0b 11 + 13 0x0002b str 27 62 62 "bb" + 14 0x0002e int 81 16 22 + 15 0x00030 str 27 63 63 "cc" + 16 0x00033 int 81 21 33 + 17 0x00035 str 27 64 64 "dd" + 18 0x00038 int 81 2c 44 + 19 0x0003a word 18 29 ) + 20 0x0003c word 38 64 65 66 def + 5 21 0x00040 ref 59 66 6f 6f 5f 33 /foo_3 + 22 0x00046 str 67 41 42 43 31 32 33 "ABC123" + 23 0x0004d word 38 64 65 66 def + 7 24 0x00051 word 58 66 6f 6f 5f 32 foo_2 + 25 0x00057 str 27 62 62 "bb" + 26 0x0005a word 68 64 65 6c 65 74 65 delete + 9 27 0x00061 word 58 66 6f 6f 5f 31 foo_1 + 28 0x00067 word 68 6c 65 6e 67 74 68 length + 10 29 0x0006e word 58 66 6f 6f 5f 32 foo_2 + 30 0x00074 word 68 6c 65 6e 67 74 68 length + 11 31 0x0007b word 58 66 6f 6f 5f 33 foo_3 + 32 0x00081 word 68 6c 65 6e 67 74 68 length diff --git a/tests/0015_length/code1.log.ref b/tests/0015_length/code1.log.ref new file mode 100644 index 0000000..509b5f3 --- /dev/null +++ b/tests/0015_length/code1.log.ref @@ -0,0 +1,39 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 33 entries (33 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e word 18 5b [ + 3 0x00010 int 81 0a 10 + 4 0x00012 int 81 14 20 + 5 0x00014 int 81 1e 30 + 6 0x00016 int 81 28 40 + 7 0x00018 word 18 5d ] + 8 0x0001a word 38 64 65 66 def + 3 9 0x0001e ref 59 66 6f 6f 5f 32 /foo_2 + 10 0x00024 word 18 28 ( + 11 0x00026 str 27 61 61 "aa" + 12 0x00029 int 81 0b 11 + 13 0x0002b str 27 62 62 "bb" + 14 0x0002e int 81 16 22 + 15 0x00030 str 27 63 63 "cc" + 16 0x00033 int 81 21 33 + 17 0x00035 str 27 64 64 "dd" + 18 0x00038 int 81 2c 44 + 19 0x0003a word 18 29 ) + 20 0x0003c xref 84 22 def + 5 21 0x0003e ref 59 66 6f 6f 5f 33 /foo_3 + 22 0x00044 str 67 41 42 43 31 32 33 "ABC123" + 23 0x0004b xref 84 31 def + 7 24 0x0004d word 58 66 6f 6f 5f 32 foo_2 + 25 0x00053 xref 84 28 "bb" + 26 0x00055 word 68 64 65 6c 65 74 65 delete + 9 27 0x0005c word 58 66 6f 6f 5f 31 foo_1 + 28 0x00062 word 68 6c 65 6e 67 74 68 length + 10 29 0x00069 xref 84 1c foo_2 + 30 0x0006b xref 84 09 length + 11 31 0x0006d word 58 66 6f 6f 5f 33 foo_3 + 32 0x00073 xref 84 11 length diff --git a/tests/0015_length/code2.log.ref b/tests/0015_length/code2.log.ref new file mode 100644 index 0000000..e28ce26 --- /dev/null +++ b/tests/0015_length/code2.log.ref @@ -0,0 +1,39 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 33 entries (33 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e prim 23 [ + 3 0x0000f int 81 0a 10 + 4 0x00011 int 81 14 20 + 5 0x00013 int 81 1e 30 + 6 0x00015 int 81 28 40 + 7 0x00017 prim 33 ] + 8 0x00018 prim 63 def + 3 9 0x00019 ref 59 66 6f 6f 5f 32 /foo_2 + 10 0x0001f prim 43 ( + 11 0x00020 str 27 61 61 "aa" + 12 0x00023 int 81 0b 11 + 13 0x00025 str 27 62 62 "bb" + 14 0x00028 int 81 16 22 + 15 0x0002a str 27 63 63 "cc" + 16 0x0002d int 81 21 33 + 17 0x0002f str 27 64 64 "dd" + 18 0x00032 int 81 2c 44 + 19 0x00034 prim 53 ) + 20 0x00035 prim 63 def + 5 21 0x00036 ref 59 66 6f 6f 5f 33 /foo_3 + 22 0x0003c str 67 41 42 43 31 32 33 "ABC123" + 23 0x00043 prim 63 def + 7 24 0x00044 word 58 66 6f 6f 5f 32 foo_2 + 25 0x0004a xref 84 25 "bb" + 26 0x0004c prim 83 14 delete + 9 27 0x0004e word 58 66 6f 6f 5f 31 foo_1 + 28 0x00054 prim 83 15 length + 10 29 0x00056 xref 84 12 foo_2 + 30 0x00058 prim 83 15 length + 11 31 0x0005a word 58 66 6f 6f 5f 33 foo_3 + 32 0x00060 prim 83 15 length diff --git a/tests/0015_length/main.gs b/tests/0015_length/main.gs new file mode 100644 index 0000000..4844d5f --- /dev/null +++ b/tests/0015_length/main.gs @@ -0,0 +1,11 @@ +/foo_1 [ 10 20 30 40 ] def + +/foo_2 ( "aa" 11 "bb" 22 "cc" 33 "dd" 44 ) def + +/foo_3 "ABC123" def + +foo_2 "bb" delete + +foo_1 length +foo_2 length +foo_3 length diff --git a/tests/0015_length/mem.log.ref b/tests/0015_length/mem.log.ref new file mode 100644 index 0000000..6e2eaf1 --- /dev/null +++ b/tests/0015_length/mem.log.ref @@ -0,0 +1,800 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 136] + 8: 187.01, 0x001d6afc[ 72] + 9: 188.01, 0x001d6b4c[ 56] + 10: 194.01, 0x001d6b8c[ 24] + 11: 204.01, 0x001d6bac[ 44] + 12: 208.01, 0x001d6be0[ 72] + 13: 0.00, 0x001d6c30[14848976] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9, size 5, "foo_1"> => #194.1.1.array + #195.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x1f, size 5, "foo_2"> => #204.1.1.hash + #205.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x41, size 5, "foo_3"> => #206.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x47, size 6, "ABC123"> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.8.mem.ro + 75 51 12 a9 42 7a ad 60 59 66 6f 6f 5f 31 18 5b uQ..Bz.`Yfoo_1.[ + 81 0a 81 14 81 1e 81 28 18 5d 38 64 65 66 59 66 .......(.]8defYf + 6f 6f 5f 32 18 28 27 61 61 81 0b 27 62 62 81 16 oo_2.('aa..'bb.. + 27 63 63 81 21 27 64 64 81 2c 18 29 38 64 65 66 'cc.!'dd.,.)8def + 59 66 6f 6f 5f 33 67 41 42 43 31 32 33 38 64 65 Yfoo_3gABC1238de + 66 58 66 6f 6f 5f 32 27 62 62 68 64 65 6c 65 74 fXfoo_2'bbhdelet + 65 58 66 6f 6f 5f 31 68 6c 65 6e 67 74 68 58 66 eXfoo_1hlengthXf + 6f 6f 5f 32 68 6c 65 6e 67 74 68 58 66 6f 6f 5f oo_2hlengthXfoo_ + 33 68 6c 65 6e 67 74 68 3hlength + #187.1.1.array + [ 0] #209.1.1.num.int <4 (0x4)> + [ 1] #210.1.1.num.int <3 (0x3)> + [ 2] #211.1.1.num.int <6 (0x6)> + #188.1.1.ctx.func + type 17, ip 0x88 (0x88) + code #186.1.8.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #190.1.1.num.int <10 (0xa)> + #191.1.1.num.int <20 (0x14)> + #192.1.1.num.int <30 (0x1e)> + #193.1.1.num.int <40 (0x28)> + #194.1.1.array + [ 0] #190.1.1.num.int <10 (0xa)> + [ 1] #191.1.1.num.int <20 (0x14)> + [ 2] #192.1.1.num.int <30 (0x1e)> + [ 3] #193.1.1.num.int <40 (0x28)> + #195.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x1f, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #196.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x27, size 2, "aa"> + 61 61 aa + #197.1.1.num.int <11 (0xb)> + #200.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x31, size 2, "cc"> + 63 63 cc + #201.1.1.num.int <33 (0x21)> + #202.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x36, size 2, "dd"> + 64 64 dd + #203.1.1.num.int <44 (0x2c)> + #204.1.1.hash + #196.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x27, size 2, "aa"> => #197.1.1.num.int <11 (0xb)> + #200.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x31, size 2, "cc"> => #201.1.1.num.int <33 (0x21)> + #202.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x36, size 2, "dd"> => #203.1.1.num.int <44 (0x2c)> + #205.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x41, size 5, "foo_3"> + 66 6f 6f 5f 33 foo_3 + #206.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x47, size 6, "ABC123"> + 41 42 43 31 32 33 ABC123 + #208.1.1.array + #209.1.1.num.int <4 (0x4)> + #210.1.1.num.int <3 (0x3)> + #211.1.1.num.int <6 (0x6)> diff --git a/tests/0015_length/screen.log.ref b/tests/0015_length/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0015_length/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0015_length/trace.log.ref b/tests/0015_length/trace.log.ref new file mode 100644 index 0000000..c41d230 --- /dev/null +++ b/tests/0015_length/trace.log.ref @@ -0,0 +1,269 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0xe, type 8, 15[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x10, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <10 (0xa)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x12, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <20 (0x14)> + [1] #190.1.1.num.int <10 (0xa)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x14, type 1, 30 (0x1e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <30 (0x1e)> + [1] #191.1.1.num.int <20 (0x14)> + [2] #190.1.1.num.int <10 (0xa)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x16, type 1, 40 (0x28) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <40 (0x28)> + [1] #192.1.1.num.int <30 (0x1e)> + [2] #191.1.1.num.int <20 (0x14)> + [3] #190.1.1.num.int <10 (0xa)> + [4] #9.1.2.num.prim <2 (0x2)> + [5] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x18, type 8, 25[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.array + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x1a, type 8, 27[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#194.1.1.array +GC: --#194.1.2.array +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1e, type 9, 31[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x24, type 8, 37[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #195.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x26, type 7, 39[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x27, size 2, "aa"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #195.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x29, type 1, 11 (0xb) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <11 (0xb)> + [1] #196.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x27, size 2, "aa"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #195.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x2b, type 7, 44[2] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x2c, size 2, "bb"> + [1] #197.1.1.num.int <11 (0xb)> + [2] #196.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x27, size 2, "aa"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #195.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x2e, type 1, 22 (0x16) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <22 (0x16)> + [1] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x2c, size 2, "bb"> + [2] #197.1.1.num.int <11 (0xb)> + [3] #196.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x27, size 2, "aa"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #195.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x30, type 7, 49[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x31, size 2, "cc"> + [1] #199.1.1.num.int <22 (0x16)> + [2] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x2c, size 2, "bb"> + [3] #197.1.1.num.int <11 (0xb)> + [4] #196.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x27, size 2, "aa"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #195.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x33, type 1, 33 (0x21) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <33 (0x21)> + [1] #200.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x31, size 2, "cc"> + [2] #199.1.1.num.int <22 (0x16)> + [3] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x2c, size 2, "bb"> + [4] #197.1.1.num.int <11 (0xb)> + [5] #196.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x27, size 2, "aa"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #195.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x35, type 7, 54[2] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x36, size 2, "dd"> + [1] #201.1.1.num.int <33 (0x21)> + [2] #200.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x31, size 2, "cc"> + [3] #199.1.1.num.int <22 (0x16)> + [4] #198.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x2c, size 2, "bb"> + [5] #197.1.1.num.int <11 (0xb)> + [6] #196.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x27, size 2, "aa"> + [7] #13.1.2.num.prim <4 (0x4)> + [8] #195.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x38, type 1, 44 (0x2c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <44 (0x2c)> + [1] #202.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x36, size 2, "dd"> + [2] #201.1.1.num.int <33 (0x21)> + [3] #200.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x31, size 2, "cc"> + [4] #199.1.1.num.int <22 (0x16)> + [5] #198.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x2c, size 2, "bb"> + [6] #197.1.1.num.int <11 (0xb)> + [7] #196.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x27, size 2, "aa"> + [8] #13.1.2.num.prim <4 (0x4)> + [9] #195.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x3a, type 8, 59[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.hash + [1] #195.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x1f, size 5, "foo_2"> +IP: #186:0x3c, type 8, 61[3] +GC: ++#195.1.1.mem.ref.ro +GC: ++#204.1.1.hash +GC: --#204.1.2.hash +GC: --#195.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x40, type 9, 65[5] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x41, size 5, "foo_3"> +IP: #186:0x46, type 7, 71[6] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x47, size 6, "ABC123"> + [1] #205.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x41, size 5, "foo_3"> +IP: #186:0x4d, type 8, 78[3] +GC: ++#205.1.1.mem.ref.ro +GC: ++#206.1.1.mem.str.ro +GC: --#206.1.2.mem.str.ro +GC: --#205.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x51, type 8, 82[5] +GC: ++#204.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.2.hash +IP: #186:0x57, type 7, 88[2] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x58, size 2, "bb"> + [1] #204.1.2.hash +IP: #186:0x5a, type 8, 91[6] +GC: --#198.1.1.mem.str.ro +GC: --#186.1.10.mem.ro +GC: --#199.1.1.num.int +GC: --#207.1.1.mem.str.ro +GC: --#186.1.9.mem.ro +GC: --#204.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x61, type 8, 98[5] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array +IP: #186:0x67, type 8, 104[6] +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <4 (0x4)> +IP: #186:0x6e, type 8, 111[5] +GC: ++#204.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.2.hash + [1] #209.1.1.num.int <4 (0x4)> +IP: #186:0x74, type 8, 117[6] +GC: --#204.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <3 (0x3)> + [1] #209.1.1.num.int <4 (0x4)> +IP: #186:0x7b, type 8, 124[5] +GC: ++#206.1.1.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x47, size 6, "ABC123"> + [1] #210.1.1.num.int <3 (0x3)> + [2] #209.1.1.num.int <4 (0x4)> +IP: #186:0x81, type 8, 130[6] +GC: --#206.1.2.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <6 (0x6)> + [1] #210.1.1.num.int <3 (0x3)> + [2] #209.1.1.num.int <4 (0x4)> diff --git a/tests/0016_delete_hash/basic.log.ref b/tests/0016_delete_hash/basic.log.ref new file mode 100644 index 0000000..b4f3907 --- /dev/null +++ b/tests/0016_delete_hash/basic.log.ref @@ -0,0 +1,635 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [2] #xxxx.1.1.num.int <11 (0xb)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [1] #xxxx.1.1.num.int <22 (0x16)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [3] #xxxx.1.1.num.int <11 (0xb)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <33 (0x21)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <22 (0x16)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [4] #xxxx.1.1.num.int <11 (0xb)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "dd"> + [1] #xxxx.1.1.num.int <33 (0x21)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [3] #xxxx.1.1.num.int <22 (0x16)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [5] #xxxx.1.1.num.int <11 (0xb)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [7] #xxxx.1.2.num.prim <4 (0x4)> + [8] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <44 (0x2c)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "dd"> + [2] #xxxx.1.1.num.int <33 (0x21)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <22 (0x16)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [6] #xxxx.1.1.num.int <11 (0xb)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [8] #xxxx.1.2.num.prim <4 (0x4)> + [9] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo"> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "ee"> + [1] #xxxx.1.1.num.int <44 (0x2c)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "dd"> + [3] #xxxx.1.1.num.int <33 (0x21)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "cc"> + [5] #xxxx.1.1.num.int <22 (0x16)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "bb"> + [7] #xxxx.1.1.num.int <11 (0xb)> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "aa"> + [9] #xxxx.1.2.num.prim <4 (0x4)> + [10] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <55 (0x37)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "ee"> + [2] #xxxx.1.1.num.int <44 (0x2c)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "dd"> + [4] #xxxx.1.1.num.int <33 (0x21)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "cc"> + [6] #xxxx.1.1.num.int <22 (0x16)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "bb"> + [8] #xxxx.1.1.num.int <11 (0xb)> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "aa"> + [10] #xxxx.1.2.num.prim <4 (0x4)> + [11] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "bb"> + [1] #xxxx.1.2.hash +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.8.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.7.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "dd"> + [1] #xxxx.1.2.hash +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.7.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ff"> + [1] #xxxx.1.2.hash +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <11 (0xb)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <33 (0x21)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [2] #xxxx.1.2.num.int <11 (0xb)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <55 (0x37)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [4] #xxxx.1.2.num.int <11 (0xb)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <55 (0x37)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [4] #xxxx.1.2.num.int <11 (0xb)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <55 (0x37)> + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [3] #xxxx.1.2.num.int <33 (0x21)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [5] #xxxx.1.2.num.int <11 (0xb)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.2.num.int <55 (0x37)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [4] #xxxx.1.2.num.int <33 (0x21)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [6] #xxxx.1.2.num.int <11 (0xb)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <55 (0x37)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <11 (0xb)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <55 (0x37)> + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [3] #xxxx.1.2.num.int <33 (0x21)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [5] #xxxx.1.1.num.int <11 (0xb)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.2.num.int <55 (0x37)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [4] #xxxx.1.2.num.int <33 (0x21)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [6] #xxxx.1.1.num.int <11 (0xb)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <55 (0x37)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <11 (0xb)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.num.int <55 (0x37)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [3] #xxxx.1.2.num.int <33 (0x21)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [5] #xxxx.1.1.num.int <11 (0xb)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [4] #xxxx.1.2.num.int <33 (0x21)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [6] #xxxx.1.1.num.int <11 (0xb)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: ++#xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.2.num.int +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <33 (0x21)> + [1] #xxxx.1.3.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [4] #xxxx.1.3.num.int <33 (0x21)> + [5] #xxxx.1.3.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [6] #xxxx.1.1.num.int <11 (0xb)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <33 (0x21)> + [1] #xxxx.1.3.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [4] #xxxx.1.3.num.int <33 (0x21)> + [5] #xxxx.1.3.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [6] #xxxx.1.1.num.int <11 (0xb)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.3.num.int <33 (0x21)> + [2] #xxxx.1.3.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [3] #xxxx.1.1.num.int <55 (0x37)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [5] #xxxx.1.3.num.int <33 (0x21)> + [6] #xxxx.1.3.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [7] #xxxx.1.1.num.int <11 (0xb)> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.3.num.int <33 (0x21)> + [3] #xxxx.1.3.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [6] #xxxx.1.3.num.int <33 (0x21)> + [7] #xxxx.1.3.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [8] #xxxx.1.1.num.int <11 (0xb)> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: --#xxxx.1.3.mem.str.ro +GC: --#xxxx.1.3.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <33 (0x21)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [4] #xxxx.1.2.num.int <33 (0x21)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [6] #xxxx.1.1.num.int <11 (0xb)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <33 (0x21)> + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [3] #xxxx.1.1.num.int <55 (0x37)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [5] #xxxx.1.2.num.int <33 (0x21)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [7] #xxxx.1.1.num.int <11 (0xb)> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "xx"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [6] #xxxx.1.2.num.int <33 (0x21)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [8] #xxxx.1.1.num.int <11 (0xb)> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <33 (0x21)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [4] #xxxx.1.2.num.int <33 (0x21)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [6] #xxxx.1.1.num.int <11 (0xb)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <33 (0x21)> + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [3] #xxxx.1.1.num.int <55 (0x37)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [5] #xxxx.1.2.num.int <33 (0x21)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [7] #xxxx.1.1.num.int <11 (0xb)> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [1] #xxxx.1.2.hash + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [6] #xxxx.1.2.num.int <33 (0x21)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [8] #xxxx.1.1.num.int <11 (0xb)> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <33 (0x21)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [4] #xxxx.1.2.num.int <33 (0x21)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [6] #xxxx.1.1.num.int <11 (0xb)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <33 (0x21)> + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [3] #xxxx.1.1.num.int <55 (0x37)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [5] #xxxx.1.2.num.int <33 (0x21)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [7] #xxxx.1.1.num.int <11 (0xb)> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "xx"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [6] #xxxx.1.2.num.int <33 (0x21)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [8] #xxxx.1.1.num.int <11 (0xb)> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <99 (0x63)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "xx"> + [2] #xxxx.1.2.hash + [3] #xxxx.1.2.num.int <33 (0x21)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [5] #xxxx.1.1.num.int <55 (0x37)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [7] #xxxx.1.2.num.int <33 (0x21)> + [8] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [9] #xxxx.1.1.num.int <11 (0xb)> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <33 (0x21)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [4] #xxxx.1.2.num.int <33 (0x21)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [6] #xxxx.1.1.num.int <11 (0xb)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <33 (0x21)> + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [3] #xxxx.1.1.num.int <55 (0x37)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [5] #xxxx.1.2.num.int <33 (0x21)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [7] #xxxx.1.1.num.int <11 (0xb)> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.7.mem.ro> + [1] #xxxx.1.2.hash + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.7.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "ee"> + [6] #xxxx.1.2.num.int <33 (0x21)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.7.mem.ro, "cc"> + [8] #xxxx.1.1.num.int <11 (0xb)> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "aa"> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <99 (0x63)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.7.mem.ro, "xx"> + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.7.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "ee"> + [6] #xxxx.1.2.num.int <33 (0x21)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.7.mem.ro, "cc"> + [8] #xxxx.1.1.num.int <11 (0xb)> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "aa"> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <99 (0x63)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "xx"> + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [6] #xxxx.1.2.num.int <33 (0x21)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [8] #xxxx.1.1.num.int <11 (0xb)> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> diff --git a/tests/0016_delete_hash/code.log.ref b/tests/0016_delete_hash/code.log.ref new file mode 100644 index 0000000..4f7764e --- /dev/null +++ b/tests/0016_delete_hash/code.log.ref @@ -0,0 +1,62 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 56 entries (56 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 int 81 0b 11 + 5 0x00013 str 27 62 62 "bb" + 6 0x00016 int 81 16 22 + 7 0x00018 str 27 63 63 "cc" + 8 0x0001b int 81 21 33 + 9 0x0001d str 27 64 64 "dd" + 10 0x00020 int 81 2c 44 + 11 0x00022 str 27 65 65 "ee" + 12 0x00025 int 81 37 55 + 13 0x00027 word 18 29 ) + 14 0x00029 word 38 64 65 66 def + 3 15 0x0002d word 38 66 6f 6f foo + 16 0x00031 str 27 62 62 "bb" + 17 0x00034 word 68 64 65 6c 65 74 65 delete + 4 18 0x0003b word 38 66 6f 6f foo + 19 0x0003f str 27 64 64 "dd" + 20 0x00042 word 68 64 65 6c 65 74 65 delete + 5 21 0x00049 word 38 66 6f 6f foo + 22 0x0004d str 27 66 66 "ff" + 23 0x00050 word 68 64 65 6c 65 74 65 delete + 7 24 0x00057 word 38 66 6f 6f foo + 25 0x0005b code 16 { + 26 0x0005c prim 13 } + 27 0x0005d word 68 66 6f 72 61 6c 6c forall + 9 28 0x00064 word 38 66 6f 6f foo + 29 0x00068 str 27 61 61 "aa" + 30 0x0006b word 68 64 65 6c 65 74 65 delete + 10 31 0x00072 word 38 66 6f 6f foo + 32 0x00076 str 27 65 65 "ee" + 33 0x00079 word 68 64 65 6c 65 74 65 delete + 12 34 0x00080 word 38 66 6f 6f foo + 35 0x00084 code 16 { + 36 0x00085 prim 13 } + 37 0x00086 word 68 66 6f 72 61 6c 6c forall + 14 38 0x0008d word 38 66 6f 6f foo + 39 0x00091 str 27 63 63 "cc" + 40 0x00094 word 68 64 65 6c 65 74 65 delete + 16 41 0x0009b word 38 66 6f 6f foo + 42 0x0009f str 27 78 78 "xx" + 43 0x000a2 word 68 64 65 6c 65 74 65 delete + 18 44 0x000a9 word 38 66 6f 6f foo + 45 0x000ad code 16 { + 46 0x000ae prim 13 } + 47 0x000af word 68 66 6f 72 61 6c 6c forall + 20 48 0x000b6 word 38 66 6f 6f foo + 49 0x000ba str 27 78 78 "xx" + 50 0x000bd int 81 63 99 + 51 0x000bf word 38 70 75 74 put + 22 52 0x000c3 word 38 66 6f 6f foo + 53 0x000c7 code 16 { + 54 0x000c8 prim 13 } + 55 0x000c9 word 68 66 6f 72 61 6c 6c forall diff --git a/tests/0016_delete_hash/code1.log.ref b/tests/0016_delete_hash/code1.log.ref new file mode 100644 index 0000000..c6ac979 --- /dev/null +++ b/tests/0016_delete_hash/code1.log.ref @@ -0,0 +1,62 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 56 entries (56 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 int 81 0b 11 + 5 0x00013 str 27 62 62 "bb" + 6 0x00016 int 81 16 22 + 7 0x00018 str 27 63 63 "cc" + 8 0x0001b int 81 21 33 + 9 0x0001d str 27 64 64 "dd" + 10 0x00020 int 81 2c 44 + 11 0x00022 str 27 65 65 "ee" + 12 0x00025 int 81 37 55 + 13 0x00027 word 18 29 ) + 14 0x00029 word 38 64 65 66 def + 3 15 0x0002d word 38 66 6f 6f foo + 16 0x00031 xref 84 1e "bb" + 17 0x00033 word 68 64 65 6c 65 74 65 delete + 4 18 0x0003a xref 84 0d foo + 19 0x0003c xref 84 1f "dd" + 20 0x0003e xref 84 0b delete + 5 21 0x00040 xref 84 13 foo + 22 0x00042 str 27 66 66 "ff" + 23 0x00045 xref 84 12 delete + 7 24 0x00047 xref 84 1a foo + 25 0x00049 code 16 { + 26 0x0004a prim 13 } + 27 0x0004b word 68 66 6f 72 61 6c 6c forall + 9 28 0x00052 xref 84 25 foo + 29 0x00054 xref 84 46 "aa" + 30 0x00056 xref 84 23 delete + 10 31 0x00058 xref 84 2b foo + 32 0x0005a xref 84 38 "ee" + 33 0x0005c xref 84 29 delete + 12 34 0x0005e xref 84 31 foo + 35 0x00060 code 16 { + 36 0x00061 prim 13 } + 37 0x00062 xref 84 17 forall + 14 38 0x00064 xref 84 37 foo + 39 0x00066 xref 84 4e "cc" + 40 0x00068 xref 84 35 delete + 16 41 0x0006a xref 84 3d foo + 42 0x0006c str 27 78 78 "xx" + 43 0x0006f xref 84 3c delete + 18 44 0x00071 xref 84 44 foo + 45 0x00073 code 16 { + 46 0x00074 prim 13 } + 47 0x00075 xref 84 2a forall + 20 48 0x00077 xref 84 4a foo + 49 0x00079 xref 84 0d "xx" + 50 0x0007b int 81 63 99 + 51 0x0007d word 38 70 75 74 put + 22 52 0x00081 xref 84 54 foo + 53 0x00083 code 16 { + 54 0x00084 prim 13 } + 55 0x00085 xref 84 3a forall diff --git a/tests/0016_delete_hash/code2.log.ref b/tests/0016_delete_hash/code2.log.ref new file mode 100644 index 0000000..5c953c9 --- /dev/null +++ b/tests/0016_delete_hash/code2.log.ref @@ -0,0 +1,62 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 56 entries (56 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c prim 43 ( + 3 0x0000d str 27 61 61 "aa" + 4 0x00010 int 81 0b 11 + 5 0x00012 str 27 62 62 "bb" + 6 0x00015 int 81 16 22 + 7 0x00017 str 27 63 63 "cc" + 8 0x0001a int 81 21 33 + 9 0x0001c str 27 64 64 "dd" + 10 0x0001f int 81 2c 44 + 11 0x00021 str 27 65 65 "ee" + 12 0x00024 int 81 37 55 + 13 0x00026 prim 53 ) + 14 0x00027 prim 63 def + 3 15 0x00028 word 38 66 6f 6f foo + 16 0x0002c xref 84 1a "bb" + 17 0x0002e prim 83 14 delete + 4 18 0x00030 xref 84 08 foo + 19 0x00032 xref 84 16 "dd" + 20 0x00034 prim 83 14 delete + 5 21 0x00036 xref 84 0e foo + 22 0x00038 str 27 66 66 "ff" + 23 0x0003b prim 83 14 delete + 7 24 0x0003d xref 84 15 foo + 25 0x0003f code 16 { + 26 0x00040 prim 13 } + 27 0x00041 prim 83 0e forall + 9 28 0x00043 xref 84 1b foo + 29 0x00045 xref 84 38 "aa" + 30 0x00047 prim 83 14 delete + 10 31 0x00049 xref 84 21 foo + 32 0x0004b xref 84 2a "ee" + 33 0x0004d prim 83 14 delete + 12 34 0x0004f xref 84 27 foo + 35 0x00051 code 16 { + 36 0x00052 prim 13 } + 37 0x00053 prim 83 0e forall + 14 38 0x00055 xref 84 2d foo + 39 0x00057 xref 84 40 "cc" + 40 0x00059 prim 83 14 delete + 16 41 0x0005b xref 84 33 foo + 42 0x0005d str 27 78 78 "xx" + 43 0x00060 prim 83 14 delete + 18 44 0x00062 xref 84 3a foo + 45 0x00064 code 16 { + 46 0x00065 prim 13 } + 47 0x00066 prim 83 0e forall + 20 48 0x00068 xref 84 40 foo + 49 0x0006a xref 84 0d "xx" + 50 0x0006c int 81 63 99 + 51 0x0006e prim 83 13 put + 22 52 0x00070 xref 84 48 foo + 53 0x00072 code 16 { + 54 0x00073 prim 13 } + 55 0x00074 prim 83 0e forall diff --git a/tests/0016_delete_hash/main.gs b/tests/0016_delete_hash/main.gs new file mode 100644 index 0000000..0a3f969 --- /dev/null +++ b/tests/0016_delete_hash/main.gs @@ -0,0 +1,22 @@ +/foo ( "aa" 11 "bb" 22 "cc" 33 "dd" 44 "ee" 55 ) def + +foo "bb" delete +foo "dd" delete +foo "ff" delete + +foo { } forall + +foo "aa" delete +foo "ee" delete + +foo { } forall + +foo "cc" delete + +foo "xx" delete + +foo { } forall + +foo "xx" 99 put + +foo { } forall diff --git a/tests/0016_delete_hash/mem.log.ref b/tests/0016_delete_hash/mem.log.ref new file mode 100644 index 0000000..ccffd05 --- /dev/null +++ b/tests/0016_delete_hash/mem.log.ref @@ -0,0 +1,791 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 208] + 8: 187.01, 0x001d6b44[ 72] + 9: 188.01, 0x001d6b94[ 56] + 10: 200.01, 0x001d6bd4[ 52] + 11: 202.01, 0x001d6c10[ 72] + 12: 0.00, 0x001d6c60[14848928] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "foo"> => #200.1.1.hash + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.6.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 18 28 27 61 uQ..Bz.`9foo.('a + 61 81 0b 27 62 62 81 16 27 63 63 81 21 27 64 64 a..'bb..'cc.!'dd + 81 2c 27 65 65 81 37 18 29 38 64 65 66 38 66 6f .,'ee.7.)8def8fo + 6f 27 62 62 68 64 65 6c 65 74 65 38 66 6f 6f 27 o'bbhdelete8foo' + 64 64 68 64 65 6c 65 74 65 38 66 6f 6f 27 66 66 ddhdelete8foo'ff + 68 64 65 6c 65 74 65 38 66 6f 6f 16 13 68 66 6f hdelete8foo..hfo + 72 61 6c 6c 38 66 6f 6f 27 61 61 68 64 65 6c 65 rall8foo'aahdele + 74 65 38 66 6f 6f 27 65 65 68 64 65 6c 65 74 65 te8foo'eehdelete + 38 66 6f 6f 16 13 68 66 6f 72 61 6c 6c 38 66 6f 8foo..hforall8fo + 6f 27 63 63 68 64 65 6c 65 74 65 38 66 6f 6f 27 o'cchdelete8foo' + 78 78 68 64 65 6c 65 74 65 38 66 6f 6f 16 13 68 xxhdelete8foo..h + 66 6f 72 61 6c 6c 38 66 6f 6f 27 78 78 81 63 38 forall8foo'xx.c8 + 70 75 74 38 66 6f 6f 16 13 68 66 6f 72 61 6c 6c put8foo..hforall + #187.1.1.array + [ 0] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> + [ 1] #191.1.1.num.int <11 (0xb)> + [ 2] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [ 3] #195.1.2.num.int <33 (0x21)> + [ 4] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [ 5] #199.1.1.num.int <55 (0x37)> + [ 6] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [ 7] #195.1.2.num.int <33 (0x21)> + [ 8] #214.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0xbb, size 2, "xx"> + [ 9] #215.1.2.num.int <99 (0x63)> + #188.1.1.ctx.func + type 17, ip 0xd0 (0xd0) + code #186.1.6.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> + 61 61 aa + #191.1.1.num.int <11 (0xb)> + #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + 63 63 cc + #195.1.2.num.int <33 (0x21)> + #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + 65 65 ee + #199.1.1.num.int <55 (0x37)> + #200.1.1.hash + #214.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0xbb, size 2, "xx"> => #215.1.2.num.int <99 (0x63)> + #202.1.1.array + #214.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0xbb, size 2, "xx"> + 78 78 xx + #215.1.2.num.int <99 (0x63)> diff --git a/tests/0016_delete_hash/screen.log.ref b/tests/0016_delete_hash/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0016_delete_hash/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0016_delete_hash/trace.log.ref b/tests/0016_delete_hash/trace.log.ref new file mode 100644 index 0000000..d134e1b --- /dev/null +++ b/tests/0016_delete_hash/trace.log.ref @@ -0,0 +1,692 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 8, 13[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 7, 15[2] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "aa"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x11, type 1, 11 (0xb) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <11 (0xb)> + [1] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "aa"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x13, type 7, 20[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x14, size 2, "bb"> + [1] #191.1.1.num.int <11 (0xb)> + [2] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "aa"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x16, type 1, 22 (0x16) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <22 (0x16)> + [1] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x14, size 2, "bb"> + [2] #191.1.1.num.int <11 (0xb)> + [3] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "aa"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x18, type 7, 25[2] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [1] #193.1.1.num.int <22 (0x16)> + [2] #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x14, size 2, "bb"> + [3] #191.1.1.num.int <11 (0xb)> + [4] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1b, type 1, 33 (0x21) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <33 (0x21)> + [1] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [2] #193.1.1.num.int <22 (0x16)> + [3] #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x14, size 2, "bb"> + [4] #191.1.1.num.int <11 (0xb)> + [5] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1d, type 7, 30[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x1e, size 2, "dd"> + [1] #195.1.1.num.int <33 (0x21)> + [2] #194.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [3] #193.1.1.num.int <22 (0x16)> + [4] #192.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x14, size 2, "bb"> + [5] #191.1.1.num.int <11 (0xb)> + [6] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> + [7] #13.1.2.num.prim <4 (0x4)> + [8] #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x20, type 1, 44 (0x2c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <44 (0x2c)> + [1] #196.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x1e, size 2, "dd"> + [2] #195.1.1.num.int <33 (0x21)> + [3] #194.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [4] #193.1.1.num.int <22 (0x16)> + [5] #192.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x14, size 2, "bb"> + [6] #191.1.1.num.int <11 (0xb)> + [7] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> + [8] #13.1.2.num.prim <4 (0x4)> + [9] #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x22, type 7, 35[2] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x23, size 2, "ee"> + [1] #197.1.1.num.int <44 (0x2c)> + [2] #196.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x1e, size 2, "dd"> + [3] #195.1.1.num.int <33 (0x21)> + [4] #194.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x19, size 2, "cc"> + [5] #193.1.1.num.int <22 (0x16)> + [6] #192.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x14, size 2, "bb"> + [7] #191.1.1.num.int <11 (0xb)> + [8] #190.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0xf, size 2, "aa"> + [9] #13.1.2.num.prim <4 (0x4)> + [10] #189.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x25, type 1, 55 (0x37) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <55 (0x37)> + [1] #198.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x23, size 2, "ee"> + [2] #197.1.1.num.int <44 (0x2c)> + [3] #196.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x1e, size 2, "dd"> + [4] #195.1.1.num.int <33 (0x21)> + [5] #194.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x19, size 2, "cc"> + [6] #193.1.1.num.int <22 (0x16)> + [7] #192.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x14, size 2, "bb"> + [8] #191.1.1.num.int <11 (0xb)> + [9] #190.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0xf, size 2, "aa"> + [10] #13.1.2.num.prim <4 (0x4)> + [11] #189.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x27, type 8, 40[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.hash + [1] #189.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x29, type 8, 42[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#200.1.1.hash +GC: --#200.1.2.hash +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x2d, type 8, 46[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash +IP: #186:0x31, type 7, 50[2] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x32, size 2, "bb"> + [1] #200.1.2.hash +IP: #186:0x34, type 8, 53[6] +GC: --#192.1.1.mem.str.ro +GC: --#186.1.8.mem.ro +GC: --#193.1.1.num.int +GC: --#201.1.1.mem.str.ro +GC: --#186.1.7.mem.ro +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x3b, type 8, 60[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash +IP: #186:0x3f, type 7, 64[2] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x40, size 2, "dd"> + [1] #200.1.2.hash +IP: #186:0x42, type 8, 67[6] +GC: --#196.1.1.mem.str.ro +GC: --#186.1.7.mem.ro +GC: --#197.1.1.num.int +GC: --#203.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x49, type 8, 74[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash +IP: #186:0x4d, type 7, 78[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x4e, size 2, "ff"> + [1] #200.1.2.hash +IP: #186:0x50, type 8, 81[6] +GC: --#204.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x57, type 8, 88[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash +IP: #186:0x5b, type 6, 92[1] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x5c, size 1> + [1] #200.1.2.hash +IP: #186:0x5d, type 8, 94[6] +GC: ++#190.1.1.mem.str.ro +GC: ++#191.1.1.num.int +GC: ++#205.1.1.mem.code.ro +GC: ++#200.1.2.hash +GC: --#205.1.2.mem.code.ro +GC: --#200.1.3.hash +== backtrace == + [0] #206.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.num.int <11 (0xb)> + [1] #190.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #205:0x0, type 3, 1 (0x1) +GC: ++#194.1.1.mem.str.ro +GC: ++#195.1.1.num.int +== backtrace == + [0] #206.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <33 (0x21)> + [1] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [2] #191.1.2.num.int <11 (0xb)> + [3] #190.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #205:0x0, type 3, 1 (0x1) +GC: ++#198.1.1.mem.str.ro +GC: ++#199.1.1.num.int +== backtrace == + [0] #206.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.2.num.int <55 (0x37)> + [1] #198.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [2] #195.1.2.num.int <33 (0x21)> + [3] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [4] #191.1.2.num.int <11 (0xb)> + [5] #190.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #205:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#206.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#205.1.1.mem.code.ro +GC: --#200.1.2.hash +GC: --#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.2.num.int <55 (0x37)> + [1] #198.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [2] #195.1.2.num.int <33 (0x21)> + [3] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [4] #191.1.2.num.int <11 (0xb)> + [5] #190.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x64, type 8, 101[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash + [1] #199.1.2.num.int <55 (0x37)> + [2] #198.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [3] #195.1.2.num.int <33 (0x21)> + [4] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [5] #191.1.2.num.int <11 (0xb)> + [6] #190.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x68, type 7, 105[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x69, size 2, "aa"> + [1] #200.1.2.hash + [2] #199.1.2.num.int <55 (0x37)> + [3] #198.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [4] #195.1.2.num.int <33 (0x21)> + [5] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [6] #191.1.2.num.int <11 (0xb)> + [7] #190.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x6b, type 8, 108[6] +GC: --#190.1.2.mem.str.ro +GC: --#191.1.2.num.int +GC: --#207.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.2.num.int <55 (0x37)> + [1] #198.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [2] #195.1.2.num.int <33 (0x21)> + [3] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [4] #191.1.1.num.int <11 (0xb)> + [5] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x72, type 8, 115[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash + [1] #199.1.2.num.int <55 (0x37)> + [2] #198.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [3] #195.1.2.num.int <33 (0x21)> + [4] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [5] #191.1.1.num.int <11 (0xb)> + [6] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x76, type 7, 119[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x77, size 2, "ee"> + [1] #200.1.2.hash + [2] #199.1.2.num.int <55 (0x37)> + [3] #198.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [4] #195.1.2.num.int <33 (0x21)> + [5] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [6] #191.1.1.num.int <11 (0xb)> + [7] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x79, type 8, 122[6] +GC: --#198.1.2.mem.str.ro +GC: --#199.1.2.num.int +GC: --#208.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <55 (0x37)> + [1] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [2] #195.1.2.num.int <33 (0x21)> + [3] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [4] #191.1.1.num.int <11 (0xb)> + [5] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x80, type 8, 129[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash + [1] #199.1.1.num.int <55 (0x37)> + [2] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [3] #195.1.2.num.int <33 (0x21)> + [4] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [5] #191.1.1.num.int <11 (0xb)> + [6] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x84, type 6, 133[1] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x85, size 1> + [1] #200.1.2.hash + [2] #199.1.1.num.int <55 (0x37)> + [3] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [4] #195.1.2.num.int <33 (0x21)> + [5] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [6] #191.1.1.num.int <11 (0xb)> + [7] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x86, type 8, 135[6] +GC: ++#194.1.2.mem.str.ro +GC: ++#195.1.2.num.int +GC: ++#209.1.1.mem.code.ro +GC: ++#200.1.2.hash +GC: --#209.1.2.mem.code.ro +GC: --#200.1.3.hash +== backtrace == + [0] #210.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.3.num.int <33 (0x21)> + [1] #194.1.3.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [2] #199.1.1.num.int <55 (0x37)> + [3] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [4] #195.1.3.num.int <33 (0x21)> + [5] #194.1.3.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [6] #191.1.1.num.int <11 (0xb)> + [7] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #209:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#210.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#209.1.1.mem.code.ro +GC: --#200.1.2.hash +GC: --#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.3.num.int <33 (0x21)> + [1] #194.1.3.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [2] #199.1.1.num.int <55 (0x37)> + [3] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [4] #195.1.3.num.int <33 (0x21)> + [5] #194.1.3.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [6] #191.1.1.num.int <11 (0xb)> + [7] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x8d, type 8, 142[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash + [1] #195.1.3.num.int <33 (0x21)> + [2] #194.1.3.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [3] #199.1.1.num.int <55 (0x37)> + [4] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [5] #195.1.3.num.int <33 (0x21)> + [6] #194.1.3.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [7] #191.1.1.num.int <11 (0xb)> + [8] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x91, type 7, 146[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x92, size 2, "cc"> + [1] #200.1.2.hash + [2] #195.1.3.num.int <33 (0x21)> + [3] #194.1.3.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [4] #199.1.1.num.int <55 (0x37)> + [5] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [6] #195.1.3.num.int <33 (0x21)> + [7] #194.1.3.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [8] #191.1.1.num.int <11 (0xb)> + [9] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x94, type 8, 149[6] +GC: --#194.1.3.mem.str.ro +GC: --#195.1.3.num.int +GC: --#211.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <33 (0x21)> + [1] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [2] #199.1.1.num.int <55 (0x37)> + [3] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [4] #195.1.2.num.int <33 (0x21)> + [5] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [6] #191.1.1.num.int <11 (0xb)> + [7] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x9b, type 8, 156[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash + [1] #195.1.2.num.int <33 (0x21)> + [2] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [3] #199.1.1.num.int <55 (0x37)> + [4] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [5] #195.1.2.num.int <33 (0x21)> + [6] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [7] #191.1.1.num.int <11 (0xb)> + [8] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0x9f, type 7, 160[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xa0, size 2, "xx"> + [1] #200.1.2.hash + [2] #195.1.2.num.int <33 (0x21)> + [3] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [4] #199.1.1.num.int <55 (0x37)> + [5] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [6] #195.1.2.num.int <33 (0x21)> + [7] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [8] #191.1.1.num.int <11 (0xb)> + [9] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0xa2, type 8, 163[6] +GC: --#212.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <33 (0x21)> + [1] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [2] #199.1.1.num.int <55 (0x37)> + [3] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [4] #195.1.2.num.int <33 (0x21)> + [5] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [6] #191.1.1.num.int <11 (0xb)> + [7] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0xa9, type 8, 170[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash + [1] #195.1.2.num.int <33 (0x21)> + [2] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [3] #199.1.1.num.int <55 (0x37)> + [4] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [5] #195.1.2.num.int <33 (0x21)> + [6] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [7] #191.1.1.num.int <11 (0xb)> + [8] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0xad, type 6, 174[1] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0xae, size 1> + [1] #200.1.2.hash + [2] #195.1.2.num.int <33 (0x21)> + [3] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [4] #199.1.1.num.int <55 (0x37)> + [5] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [6] #195.1.2.num.int <33 (0x21)> + [7] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [8] #191.1.1.num.int <11 (0xb)> + [9] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0xaf, type 8, 176[6] +GC: --#213.1.1.mem.code.ro +GC: --#186.1.6.mem.ro +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <33 (0x21)> + [1] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [2] #199.1.1.num.int <55 (0x37)> + [3] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [4] #195.1.2.num.int <33 (0x21)> + [5] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [6] #191.1.1.num.int <11 (0xb)> + [7] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0xb6, type 8, 183[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash + [1] #195.1.2.num.int <33 (0x21)> + [2] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [3] #199.1.1.num.int <55 (0x37)> + [4] #198.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x23, size 2, "ee"> + [5] #195.1.2.num.int <33 (0x21)> + [6] #194.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [7] #191.1.1.num.int <11 (0xb)> + [8] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0xba, type 7, 187[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xbb, size 2, "xx"> + [1] #200.1.2.hash + [2] #195.1.2.num.int <33 (0x21)> + [3] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [4] #199.1.1.num.int <55 (0x37)> + [5] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [6] #195.1.2.num.int <33 (0x21)> + [7] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [8] #191.1.1.num.int <11 (0xb)> + [9] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0xbd, type 1, 99 (0x63) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <99 (0x63)> + [1] #214.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xbb, size 2, "xx"> + [2] #200.1.2.hash + [3] #195.1.2.num.int <33 (0x21)> + [4] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [5] #199.1.1.num.int <55 (0x37)> + [6] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [7] #195.1.2.num.int <33 (0x21)> + [8] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [9] #191.1.1.num.int <11 (0xb)> + [10] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0xbf, type 8, 192[3] +GC: ++#214.1.1.mem.str.ro +GC: ++#215.1.1.num.int +GC: --#215.1.2.num.int +GC: --#214.1.2.mem.str.ro +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <33 (0x21)> + [1] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [2] #199.1.1.num.int <55 (0x37)> + [3] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [4] #195.1.2.num.int <33 (0x21)> + [5] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [6] #191.1.1.num.int <11 (0xb)> + [7] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0xc3, type 8, 196[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash + [1] #195.1.2.num.int <33 (0x21)> + [2] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [3] #199.1.1.num.int <55 (0x37)> + [4] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [5] #195.1.2.num.int <33 (0x21)> + [6] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [7] #191.1.1.num.int <11 (0xb)> + [8] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0xc7, type 6, 200[1] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.mem.code.ro <#186.1.7.mem.ro, ofs 0xc8, size 1> + [1] #200.1.2.hash + [2] #195.1.2.num.int <33 (0x21)> + [3] #194.1.2.mem.str.ro <#186.1.7.mem.ro, ofs 0x19, size 2, "cc"> + [4] #199.1.1.num.int <55 (0x37)> + [5] #198.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x23, size 2, "ee"> + [6] #195.1.2.num.int <33 (0x21)> + [7] #194.1.2.mem.str.ro <#186.1.7.mem.ro, ofs 0x19, size 2, "cc"> + [8] #191.1.1.num.int <11 (0xb)> + [9] #190.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0xf, size 2, "aa"> +IP: #186:0xc9, type 8, 202[6] +GC: ++#214.1.1.mem.str.ro +GC: ++#215.1.1.num.int +GC: ++#216.1.1.mem.code.ro +GC: ++#200.1.2.hash +GC: --#216.1.2.mem.code.ro +GC: --#200.1.3.hash +== backtrace == + [0] #217.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.2.num.int <99 (0x63)> + [1] #214.1.2.mem.str.ro <#186.1.7.mem.ro, ofs 0xbb, size 2, "xx"> + [2] #195.1.2.num.int <33 (0x21)> + [3] #194.1.2.mem.str.ro <#186.1.7.mem.ro, ofs 0x19, size 2, "cc"> + [4] #199.1.1.num.int <55 (0x37)> + [5] #198.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x23, size 2, "ee"> + [6] #195.1.2.num.int <33 (0x21)> + [7] #194.1.2.mem.str.ro <#186.1.7.mem.ro, ofs 0x19, size 2, "cc"> + [8] #191.1.1.num.int <11 (0xb)> + [9] #190.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0xf, size 2, "aa"> +IP: #216:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#217.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#216.1.1.mem.code.ro +GC: --#200.1.2.hash +GC: --#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.2.num.int <99 (0x63)> + [1] #214.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0xbb, size 2, "xx"> + [2] #195.1.2.num.int <33 (0x21)> + [3] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [4] #199.1.1.num.int <55 (0x37)> + [5] #198.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x23, size 2, "ee"> + [6] #195.1.2.num.int <33 (0x21)> + [7] #194.1.2.mem.str.ro <#186.1.6.mem.ro, ofs 0x19, size 2, "cc"> + [8] #191.1.1.num.int <11 (0xb)> + [9] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> diff --git a/tests/0017_dup/basic.log.ref b/tests/0017_dup/basic.log.ref new file mode 100644 index 0000000..d352412 --- /dev/null +++ b/tests/0017_dup/basic.log.ref @@ -0,0 +1,28 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <200 (0xc8)> + [1] #xxxx.1.2.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> +GC: ++#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <200 (0xc8)> + [1] #xxxx.1.3.num.int <200 (0xc8)> + [2] #xxxx.1.3.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> diff --git a/tests/0017_dup/code.log.ref b/tests/0017_dup/code.log.ref new file mode 100644 index 0000000..7615bcc --- /dev/null +++ b/tests/0017_dup/code.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d word 38 64 75 70 dup + 4 0x00011 word 38 64 75 70 dup diff --git a/tests/0017_dup/code1.log.ref b/tests/0017_dup/code1.log.ref new file mode 100644 index 0000000..a898c4b --- /dev/null +++ b/tests/0017_dup/code1.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d word 38 64 75 70 dup + 4 0x00011 xref 44 dup diff --git a/tests/0017_dup/code2.log.ref b/tests/0017_dup/code2.log.ref new file mode 100644 index 0000000..3fa78a0 --- /dev/null +++ b/tests/0017_dup/code2.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d prim 83 16 dup + 4 0x0000f prim 83 16 dup diff --git a/tests/0017_dup/main.gs b/tests/0017_dup/main.gs new file mode 100644 index 0000000..1e7ae84 --- /dev/null +++ b/tests/0017_dup/main.gs @@ -0,0 +1 @@ +100 200 dup dup diff --git a/tests/0017_dup/mem.log.ref b/tests/0017_dup/mem.log.ref new file mode 100644 index 0000000..ecc5c72 --- /dev/null +++ b/tests/0017_dup/mem.log.ref @@ -0,0 +1,756 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 24] + 8: 187.01, 0x001d6a8c[ 72] + 9: 188.01, 0x001d6adc[ 56] + 10: 0.00, 0x001d6b1c[14849252] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 64 91 c8 00 38 64 75 uQ..Bz.`.d...8du + 70 38 64 75 70 p8dup + #187.1.1.array + [ 0] #189.1.1.num.int <100 (0x64)> + [ 1] #190.1.3.num.int <200 (0xc8)> + [ 2] #190.1.3.num.int <200 (0xc8)> + [ 3] #190.1.3.num.int <200 (0xc8)> + #188.1.1.ctx.func + type 17, ip 0x15 (0x15) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.num.int <100 (0x64)> + #190.1.3.num.int <200 (0xc8)> diff --git a/tests/0017_dup/screen.log.ref b/tests/0017_dup/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0017_dup/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0017_dup/trace.log.ref b/tests/0017_dup/trace.log.ref new file mode 100644 index 0000000..a04ba4d --- /dev/null +++ b/tests/0017_dup/trace.log.ref @@ -0,0 +1,33 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <100 (0x64)> +IP: #186:0xa, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <200 (0xc8)> + [1] #189.1.1.num.int <100 (0x64)> +IP: #186:0xd, type 8, 14[3] +GC: ++#190.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <200 (0xc8)> + [1] #190.1.2.num.int <200 (0xc8)> + [2] #189.1.1.num.int <100 (0x64)> +IP: #186:0x11, type 8, 18[3] +GC: ++#190.1.2.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.3.num.int <200 (0xc8)> + [1] #190.1.3.num.int <200 (0xc8)> + [2] #190.1.3.num.int <200 (0xc8)> + [3] #189.1.1.num.int <100 (0x64)> diff --git a/tests/0018_pop/basic.log.ref b/tests/0018_pop/basic.log.ref new file mode 100644 index 0000000..d50d0dd --- /dev/null +++ b/tests/0018_pop/basic.log.ref @@ -0,0 +1,39 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> diff --git a/tests/0018_pop/code.log.ref b/tests/0018_pop/code.log.ref new file mode 100644 index 0000000..0653c6a --- /dev/null +++ b/tests/0018_pop/code.log.ref @@ -0,0 +1,13 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 7 entries (7 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 int 91 90 01 400 + 5 0x00013 word 38 70 6f 70 pop + 6 0x00017 word 38 70 6f 70 pop diff --git a/tests/0018_pop/code1.log.ref b/tests/0018_pop/code1.log.ref new file mode 100644 index 0000000..775b5ef --- /dev/null +++ b/tests/0018_pop/code1.log.ref @@ -0,0 +1,13 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 7 entries (7 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 int 91 90 01 400 + 5 0x00013 word 38 70 6f 70 pop + 6 0x00017 xref 44 pop diff --git a/tests/0018_pop/code2.log.ref b/tests/0018_pop/code2.log.ref new file mode 100644 index 0000000..0d28559 --- /dev/null +++ b/tests/0018_pop/code2.log.ref @@ -0,0 +1,13 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 7 entries (7 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 int 91 90 01 400 + 5 0x00013 prim 83 17 pop + 6 0x00015 prim 83 17 pop diff --git a/tests/0018_pop/main.gs b/tests/0018_pop/main.gs new file mode 100644 index 0000000..e8ec5ba --- /dev/null +++ b/tests/0018_pop/main.gs @@ -0,0 +1 @@ +100 200 300 400 pop pop diff --git a/tests/0018_pop/mem.log.ref b/tests/0018_pop/mem.log.ref new file mode 100644 index 0000000..f16b3db --- /dev/null +++ b/tests/0018_pop/mem.log.ref @@ -0,0 +1,756 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 28] + 8: 187.01, 0x001d6a90[ 72] + 9: 188.01, 0x001d6ae0[ 56] + 10: 193.01, 0x001d6b20[ 72] + 11: 0.00, 0x001d6b70[14849168] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 64 91 c8 00 91 2c 01 uQ..Bz.`.d....,. + 91 90 01 38 70 6f 70 38 70 6f 70 ...8pop8pop + #187.1.1.array + [ 0] #189.1.1.num.int <100 (0x64)> + [ 1] #190.1.1.num.int <200 (0xc8)> + #188.1.1.ctx.func + type 17, ip 0x1b (0x1b) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.num.int <100 (0x64)> + #190.1.1.num.int <200 (0xc8)> + #193.1.1.array diff --git a/tests/0018_pop/screen.log.ref b/tests/0018_pop/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0018_pop/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0018_pop/trace.log.ref b/tests/0018_pop/trace.log.ref new file mode 100644 index 0000000..a7c6ca1 --- /dev/null +++ b/tests/0018_pop/trace.log.ref @@ -0,0 +1,46 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <100 (0x64)> +IP: #186:0xa, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <200 (0xc8)> + [1] #189.1.1.num.int <100 (0x64)> +IP: #186:0xd, type 1, 300 (0x12c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <300 (0x12c)> + [1] #190.1.1.num.int <200 (0xc8)> + [2] #189.1.1.num.int <100 (0x64)> +IP: #186:0x10, type 1, 400 (0x190) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <400 (0x190)> + [1] #191.1.1.num.int <300 (0x12c)> + [2] #190.1.1.num.int <200 (0xc8)> + [3] #189.1.1.num.int <100 (0x64)> +IP: #186:0x13, type 8, 20[3] +GC: --#192.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <300 (0x12c)> + [1] #190.1.1.num.int <200 (0xc8)> + [2] #189.1.1.num.int <100 (0x64)> +IP: #186:0x17, type 8, 24[3] +GC: --#191.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <200 (0xc8)> + [1] #189.1.1.num.int <100 (0x64)> diff --git a/tests/0019_exch/basic.log.ref b/tests/0019_exch/basic.log.ref new file mode 100644 index 0000000..1259850 --- /dev/null +++ b/tests/0019_exch/basic.log.ref @@ -0,0 +1,33 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <400 (0x190)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> diff --git a/tests/0019_exch/code.log.ref b/tests/0019_exch/code.log.ref new file mode 100644 index 0000000..0beba3c --- /dev/null +++ b/tests/0019_exch/code.log.ref @@ -0,0 +1,12 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 6 entries (6 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 int 91 90 01 400 + 5 0x00013 word 48 65 78 63 68 exch diff --git a/tests/0019_exch/code1.log.ref b/tests/0019_exch/code1.log.ref new file mode 100644 index 0000000..0beba3c --- /dev/null +++ b/tests/0019_exch/code1.log.ref @@ -0,0 +1,12 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 6 entries (6 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 int 91 90 01 400 + 5 0x00013 word 48 65 78 63 68 exch diff --git a/tests/0019_exch/code2.log.ref b/tests/0019_exch/code2.log.ref new file mode 100644 index 0000000..a434c13 --- /dev/null +++ b/tests/0019_exch/code2.log.ref @@ -0,0 +1,12 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 6 entries (6 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 int 91 90 01 400 + 5 0x00013 prim 83 18 exch diff --git a/tests/0019_exch/main.gs b/tests/0019_exch/main.gs new file mode 100644 index 0000000..108156c --- /dev/null +++ b/tests/0019_exch/main.gs @@ -0,0 +1 @@ +100 200 300 400 exch diff --git a/tests/0019_exch/mem.log.ref b/tests/0019_exch/mem.log.ref new file mode 100644 index 0000000..41f2291 --- /dev/null +++ b/tests/0019_exch/mem.log.ref @@ -0,0 +1,758 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 24] + 8: 187.01, 0x001d6a8c[ 72] + 9: 188.01, 0x001d6adc[ 56] + 10: 0.00, 0x001d6b1c[14849252] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 64 91 c8 00 91 2c 01 uQ..Bz.`.d....,. + 91 90 01 48 65 78 63 68 ...Hexch + #187.1.1.array + [ 0] #189.1.1.num.int <100 (0x64)> + [ 1] #190.1.1.num.int <200 (0xc8)> + [ 2] #192.1.1.num.int <400 (0x190)> + [ 3] #191.1.1.num.int <300 (0x12c)> + #188.1.1.ctx.func + type 17, ip 0x18 (0x18) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.num.int <100 (0x64)> + #190.1.1.num.int <200 (0xc8)> + #191.1.1.num.int <300 (0x12c)> + #192.1.1.num.int <400 (0x190)> diff --git a/tests/0019_exch/screen.log.ref b/tests/0019_exch/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0019_exch/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0019_exch/trace.log.ref b/tests/0019_exch/trace.log.ref new file mode 100644 index 0000000..ee435de --- /dev/null +++ b/tests/0019_exch/trace.log.ref @@ -0,0 +1,39 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <100 (0x64)> +IP: #186:0xa, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <200 (0xc8)> + [1] #189.1.1.num.int <100 (0x64)> +IP: #186:0xd, type 1, 300 (0x12c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <300 (0x12c)> + [1] #190.1.1.num.int <200 (0xc8)> + [2] #189.1.1.num.int <100 (0x64)> +IP: #186:0x10, type 1, 400 (0x190) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <400 (0x190)> + [1] #191.1.1.num.int <300 (0x12c)> + [2] #190.1.1.num.int <200 (0xc8)> + [3] #189.1.1.num.int <100 (0x64)> +IP: #186:0x13, type 8, 20[4] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <300 (0x12c)> + [1] #192.1.1.num.int <400 (0x190)> + [2] #190.1.1.num.int <200 (0xc8)> + [3] #189.1.1.num.int <100 (0x64)> diff --git a/tests/0020_rot/basic.log.ref b/tests/0020_rot/basic.log.ref new file mode 100644 index 0000000..b55a3b9 --- /dev/null +++ b/tests/0020_rot/basic.log.ref @@ -0,0 +1,25 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.num.int <200 (0xc8)> diff --git a/tests/0020_rot/code.log.ref b/tests/0020_rot/code.log.ref new file mode 100644 index 0000000..84498fc --- /dev/null +++ b/tests/0020_rot/code.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 word 38 72 6f 74 rot diff --git a/tests/0020_rot/code1.log.ref b/tests/0020_rot/code1.log.ref new file mode 100644 index 0000000..84498fc --- /dev/null +++ b/tests/0020_rot/code1.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 word 38 72 6f 74 rot diff --git a/tests/0020_rot/code2.log.ref b/tests/0020_rot/code2.log.ref new file mode 100644 index 0000000..1c452db --- /dev/null +++ b/tests/0020_rot/code2.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 prim 83 19 rot diff --git a/tests/0020_rot/main.gs b/tests/0020_rot/main.gs new file mode 100644 index 0000000..8d80260 --- /dev/null +++ b/tests/0020_rot/main.gs @@ -0,0 +1 @@ +100 200 300 rot diff --git a/tests/0020_rot/mem.log.ref b/tests/0020_rot/mem.log.ref new file mode 100644 index 0000000..215ab6c --- /dev/null +++ b/tests/0020_rot/mem.log.ref @@ -0,0 +1,756 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 20] + 8: 187.01, 0x001d6a88[ 72] + 9: 188.01, 0x001d6ad8[ 56] + 10: 0.00, 0x001d6b18[14849256] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 64 91 c8 00 91 2c 01 uQ..Bz.`.d....,. + 38 72 6f 74 8rot + #187.1.1.array + [ 0] #190.1.1.num.int <200 (0xc8)> + [ 1] #191.1.1.num.int <300 (0x12c)> + [ 2] #189.1.1.num.int <100 (0x64)> + #188.1.1.ctx.func + type 17, ip 0x14 (0x14) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.num.int <100 (0x64)> + #190.1.1.num.int <200 (0xc8)> + #191.1.1.num.int <300 (0x12c)> diff --git a/tests/0020_rot/screen.log.ref b/tests/0020_rot/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0020_rot/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0020_rot/trace.log.ref b/tests/0020_rot/trace.log.ref new file mode 100644 index 0000000..ce392e7 --- /dev/null +++ b/tests/0020_rot/trace.log.ref @@ -0,0 +1,30 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <100 (0x64)> +IP: #186:0xa, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <200 (0xc8)> + [1] #189.1.1.num.int <100 (0x64)> +IP: #186:0xd, type 1, 300 (0x12c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <300 (0x12c)> + [1] #190.1.1.num.int <200 (0xc8)> + [2] #189.1.1.num.int <100 (0x64)> +IP: #186:0x10, type 8, 17[3] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <100 (0x64)> + [1] #191.1.1.num.int <300 (0x12c)> + [2] #190.1.1.num.int <200 (0xc8)> diff --git a/tests/0021_over/basic.log.ref b/tests/0021_over/basic.log.ref new file mode 100644 index 0000000..a77ad5b --- /dev/null +++ b/tests/0021_over/basic.log.ref @@ -0,0 +1,27 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.2.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> diff --git a/tests/0021_over/code.log.ref b/tests/0021_over/code.log.ref new file mode 100644 index 0000000..73b8d59 --- /dev/null +++ b/tests/0021_over/code.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 word 48 6f 76 65 72 over diff --git a/tests/0021_over/code1.log.ref b/tests/0021_over/code1.log.ref new file mode 100644 index 0000000..73b8d59 --- /dev/null +++ b/tests/0021_over/code1.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 word 48 6f 76 65 72 over diff --git a/tests/0021_over/code2.log.ref b/tests/0021_over/code2.log.ref new file mode 100644 index 0000000..562e18a --- /dev/null +++ b/tests/0021_over/code2.log.ref @@ -0,0 +1,11 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 5 entries (5 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 prim 83 1b over diff --git a/tests/0021_over/main.gs b/tests/0021_over/main.gs new file mode 100644 index 0000000..c3a57bd --- /dev/null +++ b/tests/0021_over/main.gs @@ -0,0 +1 @@ +100 200 300 over diff --git a/tests/0021_over/mem.log.ref b/tests/0021_over/mem.log.ref new file mode 100644 index 0000000..0d2ba93 --- /dev/null +++ b/tests/0021_over/mem.log.ref @@ -0,0 +1,757 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 24] + 8: 187.01, 0x001d6a8c[ 72] + 9: 188.01, 0x001d6adc[ 56] + 10: 0.00, 0x001d6b1c[14849252] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 64 91 c8 00 91 2c 01 uQ..Bz.`.d....,. + 48 6f 76 65 72 Hover + #187.1.1.array + [ 0] #189.1.1.num.int <100 (0x64)> + [ 1] #190.1.2.num.int <200 (0xc8)> + [ 2] #191.1.1.num.int <300 (0x12c)> + [ 3] #190.1.2.num.int <200 (0xc8)> + #188.1.1.ctx.func + type 17, ip 0x15 (0x15) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.num.int <100 (0x64)> + #190.1.2.num.int <200 (0xc8)> + #191.1.1.num.int <300 (0x12c)> diff --git a/tests/0021_over/screen.log.ref b/tests/0021_over/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0021_over/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0021_over/trace.log.ref b/tests/0021_over/trace.log.ref new file mode 100644 index 0000000..ada139b --- /dev/null +++ b/tests/0021_over/trace.log.ref @@ -0,0 +1,32 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <100 (0x64)> +IP: #186:0xa, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <200 (0xc8)> + [1] #189.1.1.num.int <100 (0x64)> +IP: #186:0xd, type 1, 300 (0x12c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <300 (0x12c)> + [1] #190.1.1.num.int <200 (0xc8)> + [2] #189.1.1.num.int <100 (0x64)> +IP: #186:0x10, type 8, 17[4] +GC: ++#190.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <200 (0xc8)> + [1] #191.1.1.num.int <300 (0x12c)> + [2] #190.1.2.num.int <200 (0xc8)> + [3] #189.1.1.num.int <100 (0x64)> diff --git a/tests/0022_index/basic.log.ref b/tests/0022_index/basic.log.ref new file mode 100644 index 0000000..dce4a6e --- /dev/null +++ b/tests/0022_index/basic.log.ref @@ -0,0 +1,100 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <500 (0x1f4)> + [1] #xxxx.1.1.num.int <400 (0x190)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <500 (0x1f4)> + [2] #xxxx.1.1.num.int <400 (0x190)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <500 (0x1f4)> + [1] #xxxx.1.2.num.int <500 (0x1f4)> + [2] #xxxx.1.1.num.int <400 (0x190)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.2.num.int <500 (0x1f4)> + [2] #xxxx.1.2.num.int <500 (0x1f4)> + [3] #xxxx.1.1.num.int <400 (0x190)> + [4] #xxxx.1.1.num.int <300 (0x12c)> + [5] #xxxx.1.1.num.int <200 (0xc8)> + [6] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <400 (0x190)> + [1] #xxxx.1.2.num.int <500 (0x1f4)> + [2] #xxxx.1.2.num.int <500 (0x1f4)> + [3] #xxxx.1.2.num.int <400 (0x190)> + [4] #xxxx.1.1.num.int <300 (0x12c)> + [5] #xxxx.1.1.num.int <200 (0xc8)> + [6] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.int <400 (0x190)> + [2] #xxxx.1.2.num.int <500 (0x1f4)> + [3] #xxxx.1.2.num.int <500 (0x1f4)> + [4] #xxxx.1.2.num.int <400 (0x190)> + [5] #xxxx.1.1.num.int <300 (0x12c)> + [6] #xxxx.1.1.num.int <200 (0xc8)> + [7] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <100 (0x64)> + [1] #xxxx.1.2.num.int <400 (0x190)> + [2] #xxxx.1.2.num.int <500 (0x1f4)> + [3] #xxxx.1.2.num.int <500 (0x1f4)> + [4] #xxxx.1.2.num.int <400 (0x190)> + [5] #xxxx.1.1.num.int <300 (0x12c)> + [6] #xxxx.1.1.num.int <200 (0xc8)> + [7] #xxxx.1.2.num.int <100 (0x64)> diff --git a/tests/0022_index/code.log.ref b/tests/0022_index/code.log.ref new file mode 100644 index 0000000..fc1fd6b --- /dev/null +++ b/tests/0022_index/code.log.ref @@ -0,0 +1,18 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 12 entries (12 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 int 91 90 01 400 + 5 0x00013 int 91 f4 01 500 + 3 6 0x00016 int 01 0 + 7 0x00017 word 58 69 6e 64 65 78 index + 4 8 0x0001d int 21 2 + 9 0x0001e word 58 69 6e 64 65 78 index + 5 10 0x00024 int 61 6 + 11 0x00025 word 58 69 6e 64 65 78 index diff --git a/tests/0022_index/code1.log.ref b/tests/0022_index/code1.log.ref new file mode 100644 index 0000000..8214130 --- /dev/null +++ b/tests/0022_index/code1.log.ref @@ -0,0 +1,18 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 12 entries (12 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 int 91 90 01 400 + 5 0x00013 int 91 f4 01 500 + 3 6 0x00016 int 01 0 + 7 0x00017 word 58 69 6e 64 65 78 index + 4 8 0x0001d int 21 2 + 9 0x0001e xref 74 index + 5 10 0x0001f int 61 6 + 11 0x00020 xref 84 09 index diff --git a/tests/0022_index/code2.log.ref b/tests/0022_index/code2.log.ref new file mode 100644 index 0000000..0cec8fc --- /dev/null +++ b/tests/0022_index/code2.log.ref @@ -0,0 +1,18 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 12 entries (12 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d int 91 2c 01 300 + 4 0x00010 int 91 90 01 400 + 5 0x00013 int 91 f4 01 500 + 3 6 0x00016 int 01 0 + 7 0x00017 prim 83 1c index + 4 8 0x00019 int 21 2 + 9 0x0001a prim 83 1c index + 5 10 0x0001c int 61 6 + 11 0x0001d prim 83 1c index diff --git a/tests/0022_index/main.gs b/tests/0022_index/main.gs new file mode 100644 index 0000000..43ee56d --- /dev/null +++ b/tests/0022_index/main.gs @@ -0,0 +1,5 @@ +100 200 300 400 500 + +0 index +2 index +6 index diff --git a/tests/0022_index/mem.log.ref b/tests/0022_index/mem.log.ref new file mode 100644 index 0000000..df11a39 --- /dev/null +++ b/tests/0022_index/mem.log.ref @@ -0,0 +1,766 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 44] + 8: 187.01, 0x001d6aa0[ 72] + 9: 188.01, 0x001d6af0[ 56] + 10: 195.01, 0x001d6b30[ 72] + 11: 0.00, 0x001d6b80[14849152] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 64 91 c8 00 91 2c 01 uQ..Bz.`.d....,. + 91 90 01 91 f4 01 01 58 69 6e 64 65 78 21 58 69 .......Xindex!Xi + 6e 64 65 78 61 58 69 6e 64 65 78 ndexaXindex + #187.1.1.array + [ 0] #189.1.2.num.int <100 (0x64)> + [ 1] #190.1.1.num.int <200 (0xc8)> + [ 2] #191.1.1.num.int <300 (0x12c)> + [ 3] #192.1.2.num.int <400 (0x190)> + [ 4] #193.1.2.num.int <500 (0x1f4)> + [ 5] #193.1.2.num.int <500 (0x1f4)> + [ 6] #192.1.2.num.int <400 (0x190)> + [ 7] #189.1.2.num.int <100 (0x64)> + #188.1.1.ctx.func + type 17, ip 0x2b (0x2b) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.2.num.int <100 (0x64)> + #190.1.1.num.int <200 (0xc8)> + #191.1.1.num.int <300 (0x12c)> + #192.1.2.num.int <400 (0x190)> + #193.1.2.num.int <500 (0x1f4)> + #195.1.1.array diff --git a/tests/0022_index/screen.log.ref b/tests/0022_index/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0022_index/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0022_index/trace.log.ref b/tests/0022_index/trace.log.ref new file mode 100644 index 0000000..757851a --- /dev/null +++ b/tests/0022_index/trace.log.ref @@ -0,0 +1,112 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <100 (0x64)> +IP: #186:0xa, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <200 (0xc8)> + [1] #189.1.1.num.int <100 (0x64)> +IP: #186:0xd, type 1, 300 (0x12c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <300 (0x12c)> + [1] #190.1.1.num.int <200 (0xc8)> + [2] #189.1.1.num.int <100 (0x64)> +IP: #186:0x10, type 1, 400 (0x190) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <400 (0x190)> + [1] #191.1.1.num.int <300 (0x12c)> + [2] #190.1.1.num.int <200 (0xc8)> + [3] #189.1.1.num.int <100 (0x64)> +IP: #186:0x13, type 1, 500 (0x1f4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <500 (0x1f4)> + [1] #192.1.1.num.int <400 (0x190)> + [2] #191.1.1.num.int <300 (0x12c)> + [3] #190.1.1.num.int <200 (0xc8)> + [4] #189.1.1.num.int <100 (0x64)> +IP: #186:0x16, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <0 (0x0)> + [1] #193.1.1.num.int <500 (0x1f4)> + [2] #192.1.1.num.int <400 (0x190)> + [3] #191.1.1.num.int <300 (0x12c)> + [4] #190.1.1.num.int <200 (0xc8)> + [5] #189.1.1.num.int <100 (0x64)> +IP: #186:0x17, type 8, 24[5] +GC: --#194.1.1.num.int +GC: ++#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.2.num.int <500 (0x1f4)> + [1] #193.1.2.num.int <500 (0x1f4)> + [2] #192.1.1.num.int <400 (0x190)> + [3] #191.1.1.num.int <300 (0x12c)> + [4] #190.1.1.num.int <200 (0xc8)> + [5] #189.1.1.num.int <100 (0x64)> +IP: #186:0x1d, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <2 (0x2)> + [1] #193.1.2.num.int <500 (0x1f4)> + [2] #193.1.2.num.int <500 (0x1f4)> + [3] #192.1.1.num.int <400 (0x190)> + [4] #191.1.1.num.int <300 (0x12c)> + [5] #190.1.1.num.int <200 (0xc8)> + [6] #189.1.1.num.int <100 (0x64)> +IP: #186:0x1e, type 8, 31[5] +GC: --#196.1.1.num.int +GC: ++#192.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.num.int <400 (0x190)> + [1] #193.1.2.num.int <500 (0x1f4)> + [2] #193.1.2.num.int <500 (0x1f4)> + [3] #192.1.2.num.int <400 (0x190)> + [4] #191.1.1.num.int <300 (0x12c)> + [5] #190.1.1.num.int <200 (0xc8)> + [6] #189.1.1.num.int <100 (0x64)> +IP: #186:0x24, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <6 (0x6)> + [1] #192.1.2.num.int <400 (0x190)> + [2] #193.1.2.num.int <500 (0x1f4)> + [3] #193.1.2.num.int <500 (0x1f4)> + [4] #192.1.2.num.int <400 (0x190)> + [5] #191.1.1.num.int <300 (0x12c)> + [6] #190.1.1.num.int <200 (0xc8)> + [7] #189.1.1.num.int <100 (0x64)> +IP: #186:0x25, type 8, 38[5] +GC: --#197.1.1.num.int +GC: ++#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.2.num.int <100 (0x64)> + [1] #192.1.2.num.int <400 (0x190)> + [2] #193.1.2.num.int <500 (0x1f4)> + [3] #193.1.2.num.int <500 (0x1f4)> + [4] #192.1.2.num.int <400 (0x190)> + [5] #191.1.1.num.int <300 (0x12c)> + [6] #190.1.1.num.int <200 (0xc8)> + [7] #189.1.2.num.int <100 (0x64)> diff --git a/tests/0023_roll/basic.log.ref b/tests/0023_roll/basic.log.ref new file mode 100644 index 0000000..1105d52 --- /dev/null +++ b/tests/0023_roll/basic.log.ref @@ -0,0 +1,193 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.num.int <3 (0x3)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <3 (0x3)> + [3] #xxxx.1.1.num.int <2 (0x2)> + [4] #xxxx.1.1.num.int <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> + [3] #xxxx.1.1.num.int <3 (0x3)> + [4] #xxxx.1.1.num.int <2 (0x2)> + [5] #xxxx.1.1.num.int <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <7 (0x7)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <3 (0x3)> + [5] #xxxx.1.1.num.int <2 (0x2)> + [6] #xxxx.1.1.num.int <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <7 (0x7)> + [1] #xxxx.1.1.num.int <7 (0x7)> + [2] #xxxx.1.1.num.int <6 (0x6)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <3 (0x3)> + [6] #xxxx.1.1.num.int <2 (0x2)> + [7] #xxxx.1.1.num.int <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <7 (0x7)> + [2] #xxxx.1.1.num.int <7 (0x7)> + [3] #xxxx.1.1.num.int <6 (0x6)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> + [6] #xxxx.1.1.num.int <3 (0x3)> + [7] #xxxx.1.1.num.int <2 (0x2)> + [8] #xxxx.1.1.num.int <1 (0x1)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <4 (0x4)> + [3] #xxxx.1.1.num.int <3 (0x3)> + [4] #xxxx.1.1.num.int <2 (0x2)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <7 (0x7)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <4 (0x4)> + [4] #xxxx.1.1.num.int <3 (0x3)> + [5] #xxxx.1.1.num.int <2 (0x2)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <7 (0x7)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <6 (0x6)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <3 (0x3)> + [6] #xxxx.1.1.num.int <2 (0x2)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <7 (0x7)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <6 (0x6)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <7 (0x7)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <3 (0x3)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <6 (0x6)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <7 (0x7)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <3 (0x3)> + [3] #xxxx.1.1.num.int <2 (0x2)> + [4] #xxxx.1.1.num.int <6 (0x6)> + [5] #xxxx.1.1.num.int <5 (0x5)> + [6] #xxxx.1.1.num.int <4 (0x4)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <7 (0x7)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <6 (0x6)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <7 (0x7)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <7 (0x7)> + [1] #xxxx.1.1.num.int <3 (0x3)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <6 (0x6)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <4 (0x4)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <7 (0x7)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <7 (0x7)> + [2] #xxxx.1.1.num.int <3 (0x3)> + [3] #xxxx.1.1.num.int <2 (0x2)> + [4] #xxxx.1.1.num.int <6 (0x6)> + [5] #xxxx.1.1.num.int <5 (0x5)> + [6] #xxxx.1.1.num.int <4 (0x4)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <7 (0x7)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <6 (0x6)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <4 (0x4)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <7 (0x7)> diff --git a/tests/0023_roll/code.log.ref b/tests/0023_roll/code.log.ref new file mode 100644 index 0000000..0b16770 --- /dev/null +++ b/tests/0023_roll/code.log.ref @@ -0,0 +1,26 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 20 entries (20 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 11 1 + 2 0x00009 int 21 2 + 3 0x0000a int 31 3 + 4 0x0000b int 41 4 + 5 0x0000c int 51 5 + 6 0x0000d int 61 6 + 7 0x0000e int 71 7 + 2 8 0x0000f int 71 7 + 9 0x00010 int 11 1 + 10 0x00011 word 48 72 6f 6c 6c roll + 3 11 0x00016 int 51 5 + 12 0x00017 int 81 fe -2 + 13 0x00019 word 48 72 6f 6c 6c roll + 4 14 0x0001e int 01 0 + 15 0x0001f int 01 0 + 16 0x00020 word 48 72 6f 6c 6c roll + 5 17 0x00025 int 71 7 + 18 0x00026 int 01 0 + 19 0x00027 word 48 72 6f 6c 6c roll diff --git a/tests/0023_roll/code1.log.ref b/tests/0023_roll/code1.log.ref new file mode 100644 index 0000000..a1232f3 --- /dev/null +++ b/tests/0023_roll/code1.log.ref @@ -0,0 +1,26 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 20 entries (20 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 11 1 + 2 0x00009 int 21 2 + 3 0x0000a int 31 3 + 4 0x0000b int 41 4 + 5 0x0000c int 51 5 + 6 0x0000d int 61 6 + 7 0x0000e int 71 7 + 2 8 0x0000f int 71 7 + 9 0x00010 int 11 1 + 10 0x00011 word 48 72 6f 6c 6c roll + 3 11 0x00016 int 51 5 + 12 0x00017 int 81 fe -2 + 13 0x00019 xref 84 08 roll + 4 14 0x0001b int 01 0 + 15 0x0001c int 01 0 + 16 0x0001d xref 84 0c roll + 5 17 0x0001f int 71 7 + 18 0x00020 int 01 0 + 19 0x00021 xref 84 10 roll diff --git a/tests/0023_roll/code2.log.ref b/tests/0023_roll/code2.log.ref new file mode 100644 index 0000000..4758548 --- /dev/null +++ b/tests/0023_roll/code2.log.ref @@ -0,0 +1,26 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 20 entries (20 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 11 1 + 2 0x00009 int 21 2 + 3 0x0000a int 31 3 + 4 0x0000b int 41 4 + 5 0x0000c int 51 5 + 6 0x0000d int 61 6 + 7 0x0000e int 71 7 + 2 8 0x0000f int 71 7 + 9 0x00010 int 11 1 + 10 0x00011 prim 83 1a roll + 3 11 0x00013 int 51 5 + 12 0x00014 int 81 fe -2 + 13 0x00016 prim 83 1a roll + 4 14 0x00018 int 01 0 + 15 0x00019 int 01 0 + 16 0x0001a prim 83 1a roll + 5 17 0x0001c int 71 7 + 18 0x0001d int 01 0 + 19 0x0001e prim 83 1a roll diff --git a/tests/0023_roll/main.gs b/tests/0023_roll/main.gs new file mode 100644 index 0000000..c8d5c1f --- /dev/null +++ b/tests/0023_roll/main.gs @@ -0,0 +1,5 @@ +1 2 3 4 5 6 7 +7 1 roll +5 -2 roll +0 0 roll +7 0 roll diff --git a/tests/0023_roll/mem.log.ref b/tests/0023_roll/mem.log.ref new file mode 100644 index 0000000..ecb9fe5 --- /dev/null +++ b/tests/0023_roll/mem.log.ref @@ -0,0 +1,767 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 44] + 8: 187.01, 0x001d6aa0[ 72] + 9: 188.01, 0x001d6af0[ 56] + 10: 198.01, 0x001d6b30[ 72] + 11: 0.00, 0x001d6b80[14849152] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 11 21 31 41 51 61 71 71 uQ..Bz.`.!1AQaqq + 11 48 72 6f 6c 6c 51 81 fe 48 72 6f 6c 6c 01 01 .HrollQ..Hroll.. + 48 72 6f 6c 6c 71 01 48 72 6f 6c 6c Hrollq.Hroll + #187.1.1.array + [ 0] #195.1.1.num.int <7 (0x7)> + [ 1] #189.1.1.num.int <1 (0x1)> + [ 2] #192.1.1.num.int <4 (0x4)> + [ 3] #193.1.1.num.int <5 (0x5)> + [ 4] #194.1.1.num.int <6 (0x6)> + [ 5] #190.1.1.num.int <2 (0x2)> + [ 6] #191.1.1.num.int <3 (0x3)> + #188.1.1.ctx.func + type 17, ip 0x2c (0x2c) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.num.int <1 (0x1)> + #190.1.1.num.int <2 (0x2)> + #191.1.1.num.int <3 (0x3)> + #192.1.1.num.int <4 (0x4)> + #193.1.1.num.int <5 (0x5)> + #194.1.1.num.int <6 (0x6)> + #195.1.1.num.int <7 (0x7)> + #198.1.1.array diff --git a/tests/0023_roll/screen.log.ref b/tests/0023_roll/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0023_roll/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0023_roll/trace.log.ref b/tests/0023_roll/trace.log.ref new file mode 100644 index 0000000..3aa2841 --- /dev/null +++ b/tests/0023_roll/trace.log.ref @@ -0,0 +1,213 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <1 (0x1)> +IP: #186:0x9, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <2 (0x2)> + [1] #189.1.1.num.int <1 (0x1)> +IP: #186:0xa, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <3 (0x3)> + [1] #190.1.1.num.int <2 (0x2)> + [2] #189.1.1.num.int <1 (0x1)> +IP: #186:0xb, type 1, 4 (0x4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <4 (0x4)> + [1] #191.1.1.num.int <3 (0x3)> + [2] #190.1.1.num.int <2 (0x2)> + [3] #189.1.1.num.int <1 (0x1)> +IP: #186:0xc, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <5 (0x5)> + [1] #192.1.1.num.int <4 (0x4)> + [2] #191.1.1.num.int <3 (0x3)> + [3] #190.1.1.num.int <2 (0x2)> + [4] #189.1.1.num.int <1 (0x1)> +IP: #186:0xd, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <6 (0x6)> + [1] #193.1.1.num.int <5 (0x5)> + [2] #192.1.1.num.int <4 (0x4)> + [3] #191.1.1.num.int <3 (0x3)> + [4] #190.1.1.num.int <2 (0x2)> + [5] #189.1.1.num.int <1 (0x1)> +IP: #186:0xe, type 1, 7 (0x7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <7 (0x7)> + [1] #194.1.1.num.int <6 (0x6)> + [2] #193.1.1.num.int <5 (0x5)> + [3] #192.1.1.num.int <4 (0x4)> + [4] #191.1.1.num.int <3 (0x3)> + [5] #190.1.1.num.int <2 (0x2)> + [6] #189.1.1.num.int <1 (0x1)> +IP: #186:0xf, type 1, 7 (0x7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <7 (0x7)> + [1] #195.1.1.num.int <7 (0x7)> + [2] #194.1.1.num.int <6 (0x6)> + [3] #193.1.1.num.int <5 (0x5)> + [4] #192.1.1.num.int <4 (0x4)> + [5] #191.1.1.num.int <3 (0x3)> + [6] #190.1.1.num.int <2 (0x2)> + [7] #189.1.1.num.int <1 (0x1)> +IP: #186:0x10, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <1 (0x1)> + [1] #196.1.1.num.int <7 (0x7)> + [2] #195.1.1.num.int <7 (0x7)> + [3] #194.1.1.num.int <6 (0x6)> + [4] #193.1.1.num.int <5 (0x5)> + [5] #192.1.1.num.int <4 (0x4)> + [6] #191.1.1.num.int <3 (0x3)> + [7] #190.1.1.num.int <2 (0x2)> + [8] #189.1.1.num.int <1 (0x1)> +IP: #186:0x11, type 8, 18[4] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <6 (0x6)> + [1] #193.1.1.num.int <5 (0x5)> + [2] #192.1.1.num.int <4 (0x4)> + [3] #191.1.1.num.int <3 (0x3)> + [4] #190.1.1.num.int <2 (0x2)> + [5] #189.1.1.num.int <1 (0x1)> + [6] #195.1.1.num.int <7 (0x7)> +IP: #186:0x16, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <5 (0x5)> + [1] #194.1.1.num.int <6 (0x6)> + [2] #193.1.1.num.int <5 (0x5)> + [3] #192.1.1.num.int <4 (0x4)> + [4] #191.1.1.num.int <3 (0x3)> + [5] #190.1.1.num.int <2 (0x2)> + [6] #189.1.1.num.int <1 (0x1)> + [7] #195.1.1.num.int <7 (0x7)> +IP: #186:0x17, type 1, -2 (0xfffffffffffffffe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #199.1.1.num.int <5 (0x5)> + [2] #194.1.1.num.int <6 (0x6)> + [3] #193.1.1.num.int <5 (0x5)> + [4] #192.1.1.num.int <4 (0x4)> + [5] #191.1.1.num.int <3 (0x3)> + [6] #190.1.1.num.int <2 (0x2)> + [7] #189.1.1.num.int <1 (0x1)> + [8] #195.1.1.num.int <7 (0x7)> +IP: #186:0x19, type 8, 26[4] +GC: --#200.1.1.num.int +GC: --#199.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <3 (0x3)> + [1] #190.1.1.num.int <2 (0x2)> + [2] #194.1.1.num.int <6 (0x6)> + [3] #193.1.1.num.int <5 (0x5)> + [4] #192.1.1.num.int <4 (0x4)> + [5] #189.1.1.num.int <1 (0x1)> + [6] #195.1.1.num.int <7 (0x7)> +IP: #186:0x1e, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <0 (0x0)> + [1] #191.1.1.num.int <3 (0x3)> + [2] #190.1.1.num.int <2 (0x2)> + [3] #194.1.1.num.int <6 (0x6)> + [4] #193.1.1.num.int <5 (0x5)> + [5] #192.1.1.num.int <4 (0x4)> + [6] #189.1.1.num.int <1 (0x1)> + [7] #195.1.1.num.int <7 (0x7)> +IP: #186:0x1f, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <0 (0x0)> + [1] #201.1.1.num.int <0 (0x0)> + [2] #191.1.1.num.int <3 (0x3)> + [3] #190.1.1.num.int <2 (0x2)> + [4] #194.1.1.num.int <6 (0x6)> + [5] #193.1.1.num.int <5 (0x5)> + [6] #192.1.1.num.int <4 (0x4)> + [7] #189.1.1.num.int <1 (0x1)> + [8] #195.1.1.num.int <7 (0x7)> +IP: #186:0x20, type 8, 33[4] +GC: --#202.1.1.num.int +GC: --#201.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <3 (0x3)> + [1] #190.1.1.num.int <2 (0x2)> + [2] #194.1.1.num.int <6 (0x6)> + [3] #193.1.1.num.int <5 (0x5)> + [4] #192.1.1.num.int <4 (0x4)> + [5] #189.1.1.num.int <1 (0x1)> + [6] #195.1.1.num.int <7 (0x7)> +IP: #186:0x25, type 1, 7 (0x7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <7 (0x7)> + [1] #191.1.1.num.int <3 (0x3)> + [2] #190.1.1.num.int <2 (0x2)> + [3] #194.1.1.num.int <6 (0x6)> + [4] #193.1.1.num.int <5 (0x5)> + [5] #192.1.1.num.int <4 (0x4)> + [6] #189.1.1.num.int <1 (0x1)> + [7] #195.1.1.num.int <7 (0x7)> +IP: #186:0x26, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <0 (0x0)> + [1] #203.1.1.num.int <7 (0x7)> + [2] #191.1.1.num.int <3 (0x3)> + [3] #190.1.1.num.int <2 (0x2)> + [4] #194.1.1.num.int <6 (0x6)> + [5] #193.1.1.num.int <5 (0x5)> + [6] #192.1.1.num.int <4 (0x4)> + [7] #189.1.1.num.int <1 (0x1)> + [8] #195.1.1.num.int <7 (0x7)> +IP: #186:0x27, type 8, 40[4] +GC: --#204.1.1.num.int +GC: --#203.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <3 (0x3)> + [1] #190.1.1.num.int <2 (0x2)> + [2] #194.1.1.num.int <6 (0x6)> + [3] #193.1.1.num.int <5 (0x5)> + [4] #192.1.1.num.int <4 (0x4)> + [5] #189.1.1.num.int <1 (0x1)> + [6] #195.1.1.num.int <7 (0x7)> diff --git a/tests/0024_exec/basic.log.ref b/tests/0024_exec/basic.log.ref new file mode 100644 index 0000000..15de3b9 --- /dev/null +++ b/tests/0024_exec/basic.log.ref @@ -0,0 +1,477 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_1"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo_2"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_1"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.2.mem.ref.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_3"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <50 (0x32)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_3"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo_4"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo_4"> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "foo_5"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "foo_4"> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_1"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "foo_5"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_4"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_4"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.10.mem.ro> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_2"> + [1] #xxxx.1.1.num.int <400 (0x190)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_1"> + [1] #xxxx.1.1.num.int <400 (0x190)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_1"> + [1] #xxxx.1.3.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.int <400 (0x190)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_1"> + [1] #xxxx.1.1.num.int <400 (0x190)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.2.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.int <400 (0x190)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.2.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.int <400 (0x190)> + [4] #xxxx.1.1.num.int <300 (0x12c)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.2.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.int <400 (0x190)> + [4] #xxxx.1.1.num.int <300 (0x12c)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_3"> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [4] #xxxx.1.1.num.int <400 (0x190)> + [5] #xxxx.1.1.num.int <300 (0x12c)> + [6] #xxxx.1.1.num.int <20 (0x14)> + [7] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <50 (0x32)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.2.mem.ref.ro <#xxxx.1.9.mem.ro, "foo_1"> + [4] #xxxx.1.1.num.int <400 (0x190)> + [5] #xxxx.1.1.num.int <300 (0x12c)> + [6] #xxxx.1.1.num.int <20 (0x14)> + [7] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [1] #xxxx.1.2.num.int <50 (0x32)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> + [4] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [5] #xxxx.1.1.num.int <400 (0x190)> + [6] #xxxx.1.1.num.int <300 (0x12c)> + [7] #xxxx.1.1.num.int <20 (0x14)> + [8] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [1] #xxxx.1.2.num.int <50 (0x32)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <10 (0xa)> + [4] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [5] #xxxx.1.1.num.int <400 (0x190)> + [6] #xxxx.1.1.num.int <300 (0x12c)> + [7] #xxxx.1.1.num.int <20 (0x14)> + [8] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [2] #xxxx.1.2.num.int <50 (0x32)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> + [5] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [6] #xxxx.1.1.num.int <400 (0x190)> + [7] #xxxx.1.1.num.int <300 (0x12c)> + [8] #xxxx.1.1.num.int <20 (0x14)> + [9] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [2] #xxxx.1.2.num.int <50 (0x32)> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.num.int <10 (0xa)> + [5] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [6] #xxxx.1.1.num.int <400 (0x190)> + [7] #xxxx.1.1.num.int <300 (0x12c)> + [8] #xxxx.1.1.num.int <20 (0x14)> + [9] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [3] #xxxx.1.2.num.int <50 (0x32)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [7] #xxxx.1.1.num.int <400 (0x190)> + [8] #xxxx.1.1.num.int <300 (0x12c)> + [9] #xxxx.1.1.num.int <20 (0x14)> + [10] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [3] #xxxx.1.2.num.int <50 (0x32)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [7] #xxxx.1.1.num.int <400 (0x190)> + [8] #xxxx.1.1.num.int <300 (0x12c)> + [9] #xxxx.1.1.num.int <20 (0x14)> + [10] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #0.0.nil + [2] #xxxx.1.1.num.int <30 (0x1e)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [4] #xxxx.1.2.num.int <50 (0x32)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> + [7] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [8] #xxxx.1.1.num.int <400 (0x190)> + [9] #xxxx.1.1.num.int <300 (0x12c)> + [10] #xxxx.1.1.num.int <20 (0x14)> + [11] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "foo_5"> + [1] #xxxx.1.2.hash + [2] #0.0.nil + [3] #xxxx.1.1.num.int <30 (0x1e)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "abc"> + [5] #xxxx.1.2.num.int <50 (0x32)> + [6] #xxxx.1.1.num.int <20 (0x14)> + [7] #xxxx.1.1.num.int <10 (0xa)> + [8] #xxxx.1.2.mem.ref.ro <#xxxx.1.11.mem.ro, "foo_1"> + [9] #xxxx.1.1.num.int <400 (0x190)> + [10] #xxxx.1.1.num.int <300 (0x12c)> + [11] #xxxx.1.1.num.int <20 (0x14)> + [12] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.11.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [1] #0.0.nil + [2] #xxxx.1.1.num.int <30 (0x1e)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [4] #xxxx.1.2.num.int <50 (0x32)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> + [7] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [8] #xxxx.1.1.num.int <400 (0x190)> + [9] #xxxx.1.1.num.int <300 (0x12c)> + [10] #xxxx.1.1.num.int <20 (0x14)> + [11] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [3] #xxxx.1.2.num.int <50 (0x32)> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.num.int <10 (0xa)> + [6] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [7] #xxxx.1.1.num.int <400 (0x190)> + [8] #xxxx.1.1.num.int <300 (0x12c)> + [9] #xxxx.1.1.num.int <20 (0x14)> + [10] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #0.0.nil + [2] #xxxx.1.1.num.int <30 (0x1e)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [4] #xxxx.1.2.num.int <50 (0x32)> + [5] #xxxx.1.1.num.int <20 (0x14)> + [6] #xxxx.1.1.num.int <10 (0xa)> + [7] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [8] #xxxx.1.1.num.int <400 (0x190)> + [9] #xxxx.1.1.num.int <300 (0x12c)> + [10] #xxxx.1.1.num.int <20 (0x14)> + [11] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #0.0.nil + [3] #xxxx.1.1.num.int <30 (0x1e)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [5] #xxxx.1.2.num.int <50 (0x32)> + [6] #xxxx.1.1.num.int <20 (0x14)> + [7] #xxxx.1.1.num.int <10 (0xa)> + [8] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [9] #xxxx.1.1.num.int <400 (0x190)> + [10] #xxxx.1.1.num.int <300 (0x12c)> + [11] #xxxx.1.1.num.int <20 (0x14)> + [12] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #0.0.nil + [3] #xxxx.1.1.num.int <30 (0x1e)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [5] #xxxx.1.2.num.int <50 (0x32)> + [6] #xxxx.1.1.num.int <20 (0x14)> + [7] #xxxx.1.1.num.int <10 (0xa)> + [8] #xxxx.1.2.mem.ref.ro <#xxxx.1.10.mem.ro, "foo_1"> + [9] #xxxx.1.1.num.int <400 (0x190)> + [10] #xxxx.1.1.num.int <300 (0x12c)> + [11] #xxxx.1.1.num.int <20 (0x14)> + [12] #xxxx.1.1.num.int <10 (0xa)> diff --git a/tests/0024_exec/code.log.ref b/tests/0024_exec/code.log.ref new file mode 100644 index 0000000..79513de --- /dev/null +++ b/tests/0024_exec/code.log.ref @@ -0,0 +1,48 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 42 entries (42 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e code 56 { + 3 0x0000f int 81 0a 10 + 4 0x00011 int 81 14 20 + 5 0x00013 prim 13 } + 6 0x00014 word 38 64 65 66 def + 2 7 0x00018 ref 59 66 6f 6f 5f 32 /foo_2 + 8 0x0001e ref 59 66 6f 6f 5f 31 /foo_1 + 9 0x00024 word 38 64 65 66 def + 3 10 0x00028 ref 59 66 6f 6f 5f 33 /foo_3 + 11 0x0002e int 81 32 50 + 12 0x00030 word 38 64 65 66 def + 4 13 0x00034 ref 59 66 6f 6f 5f 34 /foo_4 + 14 0x0003a word 18 28 ( + 15 0x0003c str 57 66 6f 6f 5f 35 "foo_5" + 16 0x00042 ref 59 66 6f 6f 5f 31 /foo_1 + 17 0x00048 word 18 29 ) + 18 0x0004a word 38 64 65 66 def + 5 19 0x0004e ref 59 66 6f 6f 5f 31 /foo_1 + 20 0x00054 word 48 65 78 65 63 exec + 7 21 0x00059 code 76 { + 22 0x0005a int 91 2c 01 300 + 23 0x0005d int 91 90 01 400 + 24 0x00060 prim 13 } + 25 0x00061 word 48 65 78 65 63 exec + 9 26 0x00066 ref 59 66 6f 6f 5f 32 /foo_2 + 27 0x0006c word 48 65 78 65 63 exec + 10 28 0x00071 word 58 66 6f 6f 5f 32 foo_2 + 29 0x00077 word 48 65 78 65 63 exec + 11 30 0x0007c ref 59 66 6f 6f 5f 33 /foo_3 + 31 0x00082 word 48 65 78 65 63 exec + 13 32 0x00087 str 37 61 62 63 "abc" + 33 0x0008b word 48 65 78 65 63 exec + 14 34 0x00090 int 81 1e 30 + 35 0x00092 word 48 65 78 65 63 exec + 15 36 0x00097 nil 00 nil + 37 0x00098 word 48 65 78 65 63 exec + 16 38 0x0009d word 58 66 6f 6f 5f 34 foo_4 + 39 0x000a3 str 57 66 6f 6f 5f 35 "foo_5" + 40 0x000a9 word 38 67 65 74 get + 41 0x000ad word 48 65 78 65 63 exec diff --git a/tests/0024_exec/code1.log.ref b/tests/0024_exec/code1.log.ref new file mode 100644 index 0000000..3f550d9 --- /dev/null +++ b/tests/0024_exec/code1.log.ref @@ -0,0 +1,48 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 42 entries (42 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e code 56 { + 3 0x0000f int 81 0a 10 + 4 0x00011 int 81 14 20 + 5 0x00013 prim 13 } + 6 0x00014 word 38 64 65 66 def + 2 7 0x00018 ref 59 66 6f 6f 5f 32 /foo_2 + 8 0x0001e xref 84 16 /foo_1 + 9 0x00020 xref 84 0c def + 3 10 0x00022 ref 59 66 6f 6f 5f 33 /foo_3 + 11 0x00028 int 81 32 50 + 12 0x0002a xref 84 16 def + 4 13 0x0002c ref 59 66 6f 6f 5f 34 /foo_4 + 14 0x00032 word 18 28 ( + 15 0x00034 str 57 66 6f 6f 5f 35 "foo_5" + 16 0x0003a xref 84 32 /foo_1 + 17 0x0003c word 18 29 ) + 18 0x0003e xref 84 2a def + 5 19 0x00040 xref 84 38 /foo_1 + 20 0x00042 word 48 65 78 65 63 exec + 7 21 0x00047 code 76 { + 22 0x00048 int 91 2c 01 300 + 23 0x0004b int 91 90 01 400 + 24 0x0004e prim 13 } + 25 0x0004f xref 84 0d exec + 9 26 0x00051 xref 84 39 /foo_2 + 27 0x00053 xref 84 11 exec + 10 28 0x00055 word 58 66 6f 6f 5f 32 foo_2 + 29 0x0005b xref 84 19 exec + 11 30 0x0005d xref 84 3b /foo_3 + 31 0x0005f xref 84 1d exec + 13 32 0x00061 str 37 61 62 63 "abc" + 33 0x00065 xref 84 23 exec + 14 34 0x00067 int 81 1e 30 + 35 0x00069 xref 84 27 exec + 15 36 0x0006b nil 00 nil + 37 0x0006c xref 84 2a exec + 16 38 0x0006e word 58 66 6f 6f 5f 34 foo_4 + 39 0x00074 xref 84 40 "foo_5" + 40 0x00076 word 38 67 65 74 get + 41 0x0007a xref 84 38 exec diff --git a/tests/0024_exec/code2.log.ref b/tests/0024_exec/code2.log.ref new file mode 100644 index 0000000..a5e248c --- /dev/null +++ b/tests/0024_exec/code2.log.ref @@ -0,0 +1,48 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 42 entries (42 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e code 56 { + 3 0x0000f int 81 0a 10 + 4 0x00011 int 81 14 20 + 5 0x00013 prim 13 } + 6 0x00014 prim 63 def + 2 7 0x00015 ref 59 66 6f 6f 5f 32 /foo_2 + 8 0x0001b xref 84 13 /foo_1 + 9 0x0001d prim 63 def + 3 10 0x0001e ref 59 66 6f 6f 5f 33 /foo_3 + 11 0x00024 int 81 32 50 + 12 0x00026 prim 63 def + 4 13 0x00027 ref 59 66 6f 6f 5f 34 /foo_4 + 14 0x0002d prim 43 ( + 15 0x0002e str 57 66 6f 6f 5f 35 "foo_5" + 16 0x00034 xref 84 2c /foo_1 + 17 0x00036 prim 53 ) + 18 0x00037 prim 63 def + 5 19 0x00038 xref 84 30 /foo_1 + 20 0x0003a prim 83 1d exec + 7 21 0x0003c code 76 { + 22 0x0003d int 91 2c 01 300 + 23 0x00040 int 91 90 01 400 + 24 0x00043 prim 13 } + 25 0x00044 prim 83 1d exec + 9 26 0x00046 xref 84 31 /foo_2 + 27 0x00048 prim 83 1d exec + 10 28 0x0004a word 58 66 6f 6f 5f 32 foo_2 + 29 0x00050 prim 83 1d exec + 11 30 0x00052 xref 84 34 /foo_3 + 31 0x00054 prim 83 1d exec + 13 32 0x00056 str 37 61 62 63 "abc" + 33 0x0005a prim 83 1d exec + 14 34 0x0005c int 81 1e 30 + 35 0x0005e prim 83 1d exec + 15 36 0x00060 nil 00 nil + 37 0x00061 prim 83 1d exec + 16 38 0x00063 word 58 66 6f 6f 5f 34 foo_4 + 39 0x00069 xref 84 3b "foo_5" + 40 0x0006b prim 83 12 get + 41 0x0006d prim 83 1d exec diff --git a/tests/0024_exec/main.gs b/tests/0024_exec/main.gs new file mode 100644 index 0000000..7888dab --- /dev/null +++ b/tests/0024_exec/main.gs @@ -0,0 +1,16 @@ +/foo_1 { 10 20 } def +/foo_2 /foo_1 def +/foo_3 50 def +/foo_4 ( "foo_5" /foo_1 ) def +/foo_1 exec + +{ 300 400 } exec + +/foo_2 exec +foo_2 exec +/foo_3 exec + +"abc" exec +30 exec +nil exec +foo_4 "foo_5" get exec diff --git a/tests/0024_exec/mem.log.ref b/tests/0024_exec/mem.log.ref new file mode 100644 index 0000000..812a626 --- /dev/null +++ b/tests/0024_exec/mem.log.ref @@ -0,0 +1,811 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 180] + 8: 187.01, 0x001d6b28[ 72] + 9: 188.01, 0x001d6b78[ 56] + 10: 198.01, 0x001d6bb8[ 20] + 11: 0.00, 0x001d6bd4[ 56] + 12: 201.01, 0x001d6c14[ 72] + 13: 0.00, 0x001d6c64[14848924] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x9, size 5, "foo_1"> => #190.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0xf, size 5> + #191.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x19, size 5, "foo_2"> => #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + #193.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x29, size 5, "foo_3"> => #194.1.2.num.int <50 (0x32)> + #195.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x35, size 5, "foo_4"> => #198.1.1.hash + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.10.mem.ro + 75 51 12 a9 42 7a ad 60 59 66 6f 6f 5f 31 56 81 uQ..Bz.`Yfoo_1V. + 0a 81 14 13 38 64 65 66 59 66 6f 6f 5f 32 59 66 ....8defYfoo_2Yf + 6f 6f 5f 31 38 64 65 66 59 66 6f 6f 5f 33 81 32 oo_18defYfoo_3.2 + 38 64 65 66 59 66 6f 6f 5f 34 18 28 57 66 6f 6f 8defYfoo_4.(Wfoo + 5f 35 59 66 6f 6f 5f 31 18 29 38 64 65 66 59 66 _5Yfoo_1.)8defYf + 6f 6f 5f 31 48 65 78 65 63 76 91 2c 01 91 90 01 oo_1Hexecv.,.... + 13 48 65 78 65 63 59 66 6f 6f 5f 32 48 65 78 65 .HexecYfoo_2Hexe + 63 58 66 6f 6f 5f 32 48 65 78 65 63 59 66 6f 6f cXfoo_2HexecYfoo + 5f 33 48 65 78 65 63 37 61 62 63 48 65 78 65 63 _3Hexec7abcHexec + 81 1e 48 65 78 65 63 00 48 65 78 65 63 58 66 6f ..Hexec.HexecXfo + 6f 5f 34 57 66 6f 6f 5f 35 38 67 65 74 48 65 78 o_4Wfoo_58getHex + 65 63 ec + #187.1.1.array + [ 0] #202.1.1.num.int <10 (0xa)> + [ 1] #203.1.1.num.int <20 (0x14)> + [ 2] #206.1.1.num.int <300 (0x12c)> + [ 3] #207.1.1.num.int <400 (0x190)> + [ 4] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [ 5] #210.1.1.num.int <10 (0xa)> + [ 6] #211.1.1.num.int <20 (0x14)> + [ 7] #194.1.2.num.int <50 (0x32)> + [ 8] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [ 9] #214.1.1.num.int <30 (0x1e)> + [10] #0.0.nil + [11] #217.1.1.num.int <10 (0xa)> + [12] #218.1.1.num.int <20 (0x14)> + #188.1.1.ctx.func + type 17, ip 0xb2 (0xb2) + code #186.1.10.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x9, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #190.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0xf, size 5> + 81 0a 81 14 13 ..... + #191.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x19, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #193.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x29, size 5, "foo_3"> + 66 6f 6f 5f 33 foo_3 + #194.1.2.num.int <50 (0x32)> + #195.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x35, size 5, "foo_4"> + 66 6f 6f 5f 34 foo_4 + #196.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x3d, size 5, "foo_5"> + 66 6f 6f 5f 35 foo_5 + #197.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x43, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #198.1.1.hash + #196.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x3d, size 5, "foo_5"> => #197.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x43, size 5, "foo_1"> + #201.1.1.array + #202.1.1.num.int <10 (0xa)> + #203.1.1.num.int <20 (0x14)> + #206.1.1.num.int <300 (0x12c)> + #207.1.1.num.int <400 (0x190)> + #210.1.1.num.int <10 (0xa)> + #211.1.1.num.int <20 (0x14)> + #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + 61 62 63 abc + #214.1.1.num.int <30 (0x1e)> + #217.1.1.num.int <10 (0xa)> + #218.1.1.num.int <20 (0x14)> diff --git a/tests/0024_exec/screen.log.ref b/tests/0024_exec/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0024_exec/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0024_exec/trace.log.ref b/tests/0024_exec/trace.log.ref new file mode 100644 index 0000000..fdd829d --- /dev/null +++ b/tests/0024_exec/trace.log.ref @@ -0,0 +1,525 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0xe, type 6, 15[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0xf, size 5> + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x14, type 8, 21[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.mem.code.ro +GC: --#190.1.2.mem.code.ro +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x18, type 9, 25[5] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x19, size 5, "foo_2"> +IP: #186:0x1e, type 9, 31[5] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x1f, size 5, "foo_1"> + [1] #191.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x19, size 5, "foo_2"> +IP: #186:0x24, type 8, 37[3] +GC: ++#191.1.1.mem.ref.ro +GC: ++#192.1.1.mem.ref.ro +GC: --#192.1.2.mem.ref.ro +GC: --#191.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x28, type 9, 41[5] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x29, size 5, "foo_3"> +IP: #186:0x2e, type 1, 50 (0x32) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <50 (0x32)> + [1] #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x29, size 5, "foo_3"> +IP: #186:0x30, type 8, 49[3] +GC: ++#193.1.1.mem.ref.ro +GC: ++#194.1.1.num.int +GC: --#194.1.2.num.int +GC: --#193.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x34, type 9, 53[5] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x35, size 5, "foo_4"> +IP: #186:0x3a, type 8, 59[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #195.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x35, size 5, "foo_4"> +IP: #186:0x3c, type 7, 61[5] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x3d, size 5, "foo_5"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #195.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x35, size 5, "foo_4"> +IP: #186:0x42, type 9, 67[5] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x43, size 5, "foo_1"> + [1] #196.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x3d, size 5, "foo_5"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #195.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x35, size 5, "foo_4"> +IP: #186:0x48, type 8, 73[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.hash + [1] #195.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x35, size 5, "foo_4"> +IP: #186:0x4a, type 8, 75[3] +GC: ++#195.1.1.mem.ref.ro +GC: ++#198.1.1.hash +GC: --#198.1.2.hash +GC: --#195.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x4e, type 9, 79[5] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x4f, size 5, "foo_1"> +IP: #186:0x54, type 8, 85[4] +GC: ++#190.1.1.mem.code.ro +GC: --#199.1.1.mem.ref.ro +GC: --#186.1.10.mem.ro +== backtrace == + [0] #200.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #190:0x0, type 1, 10 (0xa) +== backtrace == + [0] #200.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <10 (0xa)> +IP: #190:0x2, type 1, 20 (0x14) +== backtrace == + [0] #200.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <20 (0x14)> + [1] #202.1.1.num.int <10 (0xa)> +IP: #190:0x4, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#200.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#190.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <20 (0x14)> + [1] #202.1.1.num.int <10 (0xa)> +IP: #186:0x59, type 6, 90[7] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x5a, size 7> + [1] #203.1.1.num.int <20 (0x14)> + [2] #202.1.1.num.int <10 (0xa)> +IP: #186:0x61, type 8, 98[4] +GC: ++#204.1.1.mem.code.ro +GC: --#204.1.2.mem.code.ro +== backtrace == + [0] #205.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <20 (0x14)> + [1] #202.1.1.num.int <10 (0xa)> +IP: #204:0x0, type 1, 300 (0x12c) +== backtrace == + [0] #205.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <300 (0x12c)> + [1] #203.1.1.num.int <20 (0x14)> + [2] #202.1.1.num.int <10 (0xa)> +IP: #204:0x3, type 1, 400 (0x190) +== backtrace == + [0] #205.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <400 (0x190)> + [1] #206.1.1.num.int <300 (0x12c)> + [2] #203.1.1.num.int <20 (0x14)> + [3] #202.1.1.num.int <10 (0xa)> +IP: #204:0x6, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#205.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#204.1.1.mem.code.ro +GC: --#186.1.10.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <400 (0x190)> + [1] #206.1.1.num.int <300 (0x12c)> + [2] #203.1.1.num.int <20 (0x14)> + [3] #202.1.1.num.int <10 (0xa)> +IP: #186:0x66, type 9, 103[5] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x67, size 5, "foo_2"> + [1] #207.1.1.num.int <400 (0x190)> + [2] #206.1.1.num.int <300 (0x12c)> + [3] #203.1.1.num.int <20 (0x14)> + [4] #202.1.1.num.int <10 (0xa)> +IP: #186:0x6c, type 8, 109[4] +GC: ++#192.1.1.mem.ref.ro +GC: --#208.1.1.mem.ref.ro +GC: --#186.1.10.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.mem.ref.ro <#186.1.9.mem.ro, ofs 0x1f, size 5, "foo_1"> + [1] #207.1.1.num.int <400 (0x190)> + [2] #206.1.1.num.int <300 (0x12c)> + [3] #203.1.1.num.int <20 (0x14)> + [4] #202.1.1.num.int <10 (0xa)> +IP: #186:0x71, type 8, 114[5] +GC: ++#192.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.3.mem.ref.ro <#186.1.9.mem.ro, ofs 0x1f, size 5, "foo_1"> + [1] #192.1.3.mem.ref.ro <#186.1.9.mem.ro, ofs 0x1f, size 5, "foo_1"> + [2] #207.1.1.num.int <400 (0x190)> + [3] #206.1.1.num.int <300 (0x12c)> + [4] #203.1.1.num.int <20 (0x14)> + [5] #202.1.1.num.int <10 (0xa)> +IP: #186:0x77, type 8, 120[4] +GC: ++#190.1.1.mem.code.ro +GC: --#192.1.3.mem.ref.ro +== backtrace == + [0] #209.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.mem.ref.ro <#186.1.9.mem.ro, ofs 0x1f, size 5, "foo_1"> + [1] #207.1.1.num.int <400 (0x190)> + [2] #206.1.1.num.int <300 (0x12c)> + [3] #203.1.1.num.int <20 (0x14)> + [4] #202.1.1.num.int <10 (0xa)> +IP: #190:0x0, type 1, 10 (0xa) +== backtrace == + [0] #209.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <10 (0xa)> + [1] #192.1.2.mem.ref.ro <#186.1.9.mem.ro, ofs 0x1f, size 5, "foo_1"> + [2] #207.1.1.num.int <400 (0x190)> + [3] #206.1.1.num.int <300 (0x12c)> + [4] #203.1.1.num.int <20 (0x14)> + [5] #202.1.1.num.int <10 (0xa)> +IP: #190:0x2, type 1, 20 (0x14) +== backtrace == + [0] #209.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <20 (0x14)> + [1] #210.1.1.num.int <10 (0xa)> + [2] #192.1.2.mem.ref.ro <#186.1.9.mem.ro, ofs 0x1f, size 5, "foo_1"> + [3] #207.1.1.num.int <400 (0x190)> + [4] #206.1.1.num.int <300 (0x12c)> + [5] #203.1.1.num.int <20 (0x14)> + [6] #202.1.1.num.int <10 (0xa)> +IP: #190:0x4, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#209.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#190.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <20 (0x14)> + [1] #210.1.1.num.int <10 (0xa)> + [2] #192.1.2.mem.ref.ro <#186.1.9.mem.ro, ofs 0x1f, size 5, "foo_1"> + [3] #207.1.1.num.int <400 (0x190)> + [4] #206.1.1.num.int <300 (0x12c)> + [5] #203.1.1.num.int <20 (0x14)> + [6] #202.1.1.num.int <10 (0xa)> +IP: #186:0x7c, type 9, 125[5] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x7d, size 5, "foo_3"> + [1] #211.1.1.num.int <20 (0x14)> + [2] #210.1.1.num.int <10 (0xa)> + [3] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [4] #207.1.1.num.int <400 (0x190)> + [5] #206.1.1.num.int <300 (0x12c)> + [6] #203.1.1.num.int <20 (0x14)> + [7] #202.1.1.num.int <10 (0xa)> +IP: #186:0x82, type 8, 131[4] +GC: ++#194.1.1.num.int +GC: --#212.1.1.mem.ref.ro +GC: --#186.1.10.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.num.int <50 (0x32)> + [1] #211.1.1.num.int <20 (0x14)> + [2] #210.1.1.num.int <10 (0xa)> + [3] #192.1.2.mem.ref.ro <#186.1.9.mem.ro, ofs 0x1f, size 5, "foo_1"> + [4] #207.1.1.num.int <400 (0x190)> + [5] #206.1.1.num.int <300 (0x12c)> + [6] #203.1.1.num.int <20 (0x14)> + [7] #202.1.1.num.int <10 (0xa)> +IP: #186:0x87, type 7, 136[3] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [1] #194.1.2.num.int <50 (0x32)> + [2] #211.1.1.num.int <20 (0x14)> + [3] #210.1.1.num.int <10 (0xa)> + [4] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [5] #207.1.1.num.int <400 (0x190)> + [6] #206.1.1.num.int <300 (0x12c)> + [7] #203.1.1.num.int <20 (0x14)> + [8] #202.1.1.num.int <10 (0xa)> +IP: #186:0x8b, type 8, 140[4] +GC: ++#213.1.1.mem.str.ro +GC: --#213.1.2.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [1] #194.1.2.num.int <50 (0x32)> + [2] #211.1.1.num.int <20 (0x14)> + [3] #210.1.1.num.int <10 (0xa)> + [4] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [5] #207.1.1.num.int <400 (0x190)> + [6] #206.1.1.num.int <300 (0x12c)> + [7] #203.1.1.num.int <20 (0x14)> + [8] #202.1.1.num.int <10 (0xa)> +IP: #186:0x90, type 1, 30 (0x1e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.num.int <30 (0x1e)> + [1] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [2] #194.1.2.num.int <50 (0x32)> + [3] #211.1.1.num.int <20 (0x14)> + [4] #210.1.1.num.int <10 (0xa)> + [5] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [6] #207.1.1.num.int <400 (0x190)> + [7] #206.1.1.num.int <300 (0x12c)> + [8] #203.1.1.num.int <20 (0x14)> + [9] #202.1.1.num.int <10 (0xa)> +IP: #186:0x92, type 8, 147[4] +GC: ++#214.1.1.num.int +GC: --#214.1.2.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.num.int <30 (0x1e)> + [1] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [2] #194.1.2.num.int <50 (0x32)> + [3] #211.1.1.num.int <20 (0x14)> + [4] #210.1.1.num.int <10 (0xa)> + [5] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [6] #207.1.1.num.int <400 (0x190)> + [7] #206.1.1.num.int <300 (0x12c)> + [8] #203.1.1.num.int <20 (0x14)> + [9] #202.1.1.num.int <10 (0xa)> +IP: #186:0x97, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #214.1.1.num.int <30 (0x1e)> + [2] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [3] #194.1.2.num.int <50 (0x32)> + [4] #211.1.1.num.int <20 (0x14)> + [5] #210.1.1.num.int <10 (0xa)> + [6] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [7] #207.1.1.num.int <400 (0x190)> + [8] #206.1.1.num.int <300 (0x12c)> + [9] #203.1.1.num.int <20 (0x14)> + [10] #202.1.1.num.int <10 (0xa)> +IP: #186:0x98, type 8, 153[4] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #214.1.1.num.int <30 (0x1e)> + [2] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [3] #194.1.2.num.int <50 (0x32)> + [4] #211.1.1.num.int <20 (0x14)> + [5] #210.1.1.num.int <10 (0xa)> + [6] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [7] #207.1.1.num.int <400 (0x190)> + [8] #206.1.1.num.int <300 (0x12c)> + [9] #203.1.1.num.int <20 (0x14)> + [10] #202.1.1.num.int <10 (0xa)> +IP: #186:0x9d, type 8, 158[5] +GC: ++#198.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.2.hash + [1] #0.0.nil + [2] #214.1.1.num.int <30 (0x1e)> + [3] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [4] #194.1.2.num.int <50 (0x32)> + [5] #211.1.1.num.int <20 (0x14)> + [6] #210.1.1.num.int <10 (0xa)> + [7] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [8] #207.1.1.num.int <400 (0x190)> + [9] #206.1.1.num.int <300 (0x12c)> + [10] #203.1.1.num.int <20 (0x14)> + [11] #202.1.1.num.int <10 (0xa)> +IP: #186:0xa3, type 7, 164[5] +GC: ++#186.1.10.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0xa4, size 5, "foo_5"> + [1] #198.1.2.hash + [2] #0.0.nil + [3] #214.1.1.num.int <30 (0x1e)> + [4] #213.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x88, size 3, "abc"> + [5] #194.1.2.num.int <50 (0x32)> + [6] #211.1.1.num.int <20 (0x14)> + [7] #210.1.1.num.int <10 (0xa)> + [8] #192.1.2.mem.ref.ro <#186.1.11.mem.ro, ofs 0x1f, size 5, "foo_1"> + [9] #207.1.1.num.int <400 (0x190)> + [10] #206.1.1.num.int <300 (0x12c)> + [11] #203.1.1.num.int <20 (0x14)> + [12] #202.1.1.num.int <10 (0xa)> +IP: #186:0xa9, type 8, 170[3] +GC: ++#197.1.1.mem.ref.ro +GC: --#215.1.1.mem.str.ro +GC: --#186.1.11.mem.ro +GC: --#198.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x43, size 5, "foo_1"> + [1] #0.0.nil + [2] #214.1.1.num.int <30 (0x1e)> + [3] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [4] #194.1.2.num.int <50 (0x32)> + [5] #211.1.1.num.int <20 (0x14)> + [6] #210.1.1.num.int <10 (0xa)> + [7] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [8] #207.1.1.num.int <400 (0x190)> + [9] #206.1.1.num.int <300 (0x12c)> + [10] #203.1.1.num.int <20 (0x14)> + [11] #202.1.1.num.int <10 (0xa)> +IP: #186:0xad, type 8, 174[4] +GC: ++#190.1.1.mem.code.ro +GC: --#197.1.2.mem.ref.ro +== backtrace == + [0] #216.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #214.1.1.num.int <30 (0x1e)> + [2] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [3] #194.1.2.num.int <50 (0x32)> + [4] #211.1.1.num.int <20 (0x14)> + [5] #210.1.1.num.int <10 (0xa)> + [6] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [7] #207.1.1.num.int <400 (0x190)> + [8] #206.1.1.num.int <300 (0x12c)> + [9] #203.1.1.num.int <20 (0x14)> + [10] #202.1.1.num.int <10 (0xa)> +IP: #190:0x0, type 1, 10 (0xa) +== backtrace == + [0] #216.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <10 (0xa)> + [1] #0.0.nil + [2] #214.1.1.num.int <30 (0x1e)> + [3] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [4] #194.1.2.num.int <50 (0x32)> + [5] #211.1.1.num.int <20 (0x14)> + [6] #210.1.1.num.int <10 (0xa)> + [7] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [8] #207.1.1.num.int <400 (0x190)> + [9] #206.1.1.num.int <300 (0x12c)> + [10] #203.1.1.num.int <20 (0x14)> + [11] #202.1.1.num.int <10 (0xa)> +IP: #190:0x2, type 1, 20 (0x14) +== backtrace == + [0] #216.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.int <20 (0x14)> + [1] #217.1.1.num.int <10 (0xa)> + [2] #0.0.nil + [3] #214.1.1.num.int <30 (0x1e)> + [4] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [5] #194.1.2.num.int <50 (0x32)> + [6] #211.1.1.num.int <20 (0x14)> + [7] #210.1.1.num.int <10 (0xa)> + [8] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [9] #207.1.1.num.int <400 (0x190)> + [10] #206.1.1.num.int <300 (0x12c)> + [11] #203.1.1.num.int <20 (0x14)> + [12] #202.1.1.num.int <10 (0xa)> +IP: #190:0x4, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#216.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#190.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.int <20 (0x14)> + [1] #217.1.1.num.int <10 (0xa)> + [2] #0.0.nil + [3] #214.1.1.num.int <30 (0x1e)> + [4] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x88, size 3, "abc"> + [5] #194.1.2.num.int <50 (0x32)> + [6] #211.1.1.num.int <20 (0x14)> + [7] #210.1.1.num.int <10 (0xa)> + [8] #192.1.2.mem.ref.ro <#186.1.10.mem.ro, ofs 0x1f, size 5, "foo_1"> + [9] #207.1.1.num.int <400 (0x190)> + [10] #206.1.1.num.int <300 (0x12c)> + [11] #203.1.1.num.int <20 (0x14)> + [12] #202.1.1.num.int <10 (0xa)> diff --git a/tests/0025_add/basic.log.ref b/tests/0025_add/basic.log.ref new file mode 100644 index 0000000..13e36ee --- /dev/null +++ b/tests/0025_add/basic.log.ref @@ -0,0 +1,785 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2000 (0x7d0)> + [1] #xxxx.1.1.num.int <1000 (0x3e8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9 (0x9)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #0.0.nil + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.array + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <50 (0x32)> + [1] #xxxx.1.1.num.int <40 (0x28)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.array + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.array + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.array +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.array +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo_2"> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo_2"> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "ee"> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "dd"> + [1] #0.0.nil + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "dd"> + [2] #0.0.nil + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "ee"> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.hash + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "cc"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.hash + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo_2"> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "cc"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.hash + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "foo_2"> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "bb"> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "cc"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.hash + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "foo_2"> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "bb"> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "cc"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.hash + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "foo_2"> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.hash + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "foo_2"> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "foo_2"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.9.mem.ro> + [1] #xxxx.1.2.array + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.array +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.num.int <10 (0xa)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #0.0.nil + [2] #xxxx.1.2.num.int <10 (0xa)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <40 (0x28)> + [1] #xxxx.1.2.num.int <30 (0x1e)> + [2] #0.0.nil + [3] #xxxx.1.2.num.int <10 (0xa)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <50 (0x32)> + [1] #xxxx.1.2.num.int <40 (0x28)> + [2] #xxxx.1.2.num.int <30 (0x1e)> + [3] #0.0.nil + [4] #xxxx.1.2.num.int <10 (0xa)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.array +GC: --#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <50 (0x32)> + [1] #xxxx.1.2.num.int <40 (0x28)> + [2] #xxxx.1.2.num.int <30 (0x1e)> + [3] #0.0.nil + [4] #xxxx.1.2.num.int <10 (0xa)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <50 (0x32)> + [2] #xxxx.1.2.num.int <40 (0x28)> + [3] #xxxx.1.2.num.int <30 (0x1e)> + [4] #0.0.nil + [5] #xxxx.1.2.num.int <10 (0xa)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.9.mem.ro> + [1] #xxxx.1.2.hash + [2] #xxxx.1.2.num.int <50 (0x32)> + [3] #xxxx.1.2.num.int <40 (0x28)> + [4] #xxxx.1.2.num.int <30 (0x1e)> + [5] #0.0.nil + [6] #xxxx.1.2.num.int <10 (0xa)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <100 (0x64)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [2] #xxxx.1.2.num.int <50 (0x32)> + [3] #xxxx.1.2.num.int <40 (0x28)> + [4] #xxxx.1.2.num.int <30 (0x1e)> + [5] #0.0.nil + [6] #xxxx.1.2.num.int <10 (0xa)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <200 (0xc8)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [2] #xxxx.1.2.num.int <100 (0x64)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [4] #xxxx.1.2.num.int <50 (0x32)> + [5] #xxxx.1.2.num.int <40 (0x28)> + [6] #xxxx.1.2.num.int <30 (0x1e)> + [7] #0.0.nil + [8] #xxxx.1.2.num.int <10 (0xa)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <300 (0x12c)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [2] #xxxx.1.2.num.int <200 (0xc8)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [4] #xxxx.1.2.num.int <100 (0x64)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [6] #xxxx.1.2.num.int <50 (0x32)> + [7] #xxxx.1.2.num.int <40 (0x28)> + [8] #xxxx.1.2.num.int <30 (0x1e)> + [9] #0.0.nil + [10] #xxxx.1.2.num.int <10 (0xa)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <400 (0x190)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "dd"> + [2] #xxxx.1.2.num.int <300 (0x12c)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [4] #xxxx.1.2.num.int <200 (0xc8)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [6] #xxxx.1.2.num.int <100 (0x64)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [8] #xxxx.1.2.num.int <50 (0x32)> + [9] #xxxx.1.2.num.int <40 (0x28)> + [10] #xxxx.1.2.num.int <30 (0x1e)> + [11] #0.0.nil + [12] #xxxx.1.2.num.int <10 (0xa)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "ee"> + [2] #xxxx.1.2.num.int <400 (0x190)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "dd"> + [4] #xxxx.1.2.num.int <300 (0x12c)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [6] #xxxx.1.2.num.int <200 (0xc8)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [8] #xxxx.1.2.num.int <100 (0x64)> + [9] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [10] #xxxx.1.2.num.int <50 (0x32)> + [11] #xxxx.1.2.num.int <40 (0x28)> + [12] #xxxx.1.2.num.int <30 (0x1e)> + [13] #0.0.nil + [14] #xxxx.1.2.num.int <10 (0xa)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ee"> + [2] #xxxx.1.2.num.int <400 (0x190)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "dd"> + [4] #xxxx.1.2.num.int <300 (0x12c)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "cc"> + [6] #xxxx.1.2.num.int <200 (0xc8)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "bb"> + [8] #xxxx.1.2.num.int <100 (0x64)> + [9] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "aa"> + [10] #xxxx.1.2.num.int <50 (0x32)> + [11] #xxxx.1.2.num.int <40 (0x28)> + [12] #xxxx.1.2.num.int <30 (0x1e)> + [13] #0.0.nil + [14] #xxxx.1.2.num.int <10 (0xa)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "abc"> + [1] #0.0.nil + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "ee"> + [3] #xxxx.1.2.num.int <400 (0x190)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "dd"> + [5] #xxxx.1.2.num.int <300 (0x12c)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [7] #xxxx.1.2.num.int <200 (0xc8)> + [8] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [9] #xxxx.1.2.num.int <100 (0x64)> + [10] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [11] #xxxx.1.2.num.int <50 (0x32)> + [12] #xxxx.1.2.num.int <40 (0x28)> + [13] #xxxx.1.2.num.int <30 (0x1e)> + [14] #0.0.nil + [15] #xxxx.1.2.num.int <10 (0xa)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "12345"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [2] #0.0.nil + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "ee"> + [4] #xxxx.1.2.num.int <400 (0x190)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "dd"> + [6] #xxxx.1.2.num.int <300 (0x12c)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "cc"> + [8] #xxxx.1.2.num.int <200 (0xc8)> + [9] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "bb"> + [10] #xxxx.1.2.num.int <100 (0x64)> + [11] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "aa"> + [12] #xxxx.1.2.num.int <50 (0x32)> + [13] #xxxx.1.2.num.int <40 (0x28)> + [14] #xxxx.1.2.num.int <30 (0x1e)> + [15] #0.0.nil + [16] #xxxx.1.2.num.int <10 (0xa)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #0.0.nil + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ee"> + [3] #xxxx.1.2.num.int <400 (0x190)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "dd"> + [5] #xxxx.1.2.num.int <300 (0x12c)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "cc"> + [7] #xxxx.1.2.num.int <200 (0xc8)> + [8] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "bb"> + [9] #xxxx.1.2.num.int <100 (0x64)> + [10] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "aa"> + [11] #xxxx.1.2.num.int <50 (0x32)> + [12] #xxxx.1.2.num.int <40 (0x28)> + [13] #xxxx.1.2.num.int <30 (0x1e)> + [14] #0.0.nil + [15] #xxxx.1.2.num.int <10 (0xa)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "foo"> + [1] #xxxx.1.1.mem.str + [2] #0.0.nil + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "ee"> + [4] #xxxx.1.2.num.int <400 (0x190)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "dd"> + [6] #xxxx.1.2.num.int <300 (0x12c)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [8] #xxxx.1.2.num.int <200 (0xc8)> + [9] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [10] #xxxx.1.2.num.int <100 (0x64)> + [11] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [12] #xxxx.1.2.num.int <50 (0x32)> + [13] #xxxx.1.2.num.int <40 (0x28)> + [14] #xxxx.1.2.num.int <30 (0x1e)> + [15] #0.0.nil + [16] #xxxx.1.2.num.int <10 (0xa)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "123"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "foo"> + [2] #xxxx.1.1.mem.str + [3] #0.0.nil + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "ee"> + [5] #xxxx.1.2.num.int <400 (0x190)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "dd"> + [7] #xxxx.1.2.num.int <300 (0x12c)> + [8] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "cc"> + [9] #xxxx.1.2.num.int <200 (0xc8)> + [10] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "bb"> + [11] #xxxx.1.2.num.int <100 (0x64)> + [12] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "aa"> + [13] #xxxx.1.2.num.int <50 (0x32)> + [14] #xxxx.1.2.num.int <40 (0x28)> + [15] #xxxx.1.2.num.int <30 (0x1e)> + [16] #0.0.nil + [17] #xxxx.1.2.num.int <10 (0xa)> + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <1 (0x1)> + [20] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref + [1] #xxxx.1.1.mem.str + [2] #0.0.nil + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "ee"> + [4] #xxxx.1.2.num.int <400 (0x190)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "dd"> + [6] #xxxx.1.2.num.int <300 (0x12c)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "cc"> + [8] #xxxx.1.2.num.int <200 (0xc8)> + [9] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "bb"> + [10] #xxxx.1.2.num.int <100 (0x64)> + [11] #xxxx.1.2.mem.str.ro <#xxxx.1.8.mem.ro, "aa"> + [12] #xxxx.1.2.num.int <50 (0x32)> + [13] #xxxx.1.2.num.int <40 (0x28)> + [14] #xxxx.1.2.num.int <30 (0x1e)> + [15] #0.0.nil + [16] #xxxx.1.2.num.int <10 (0xa)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.int <3000 (0xbb8)> diff --git a/tests/0025_add/code.log.ref b/tests/0025_add/code.log.ref new file mode 100644 index 0000000..6f079d8 --- /dev/null +++ b/tests/0025_add/code.log.ref @@ -0,0 +1,59 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 53 entries (53 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 e8 03 1000 + 2 0x0000b int 91 d0 07 2000 + 3 0x0000e word 38 61 64 64 add + 3 4 0x00012 bool 12 true + 5 0x00013 bool 02 false + 6 0x00014 word 38 61 64 64 add + 4 7 0x00018 bool 12 true + 8 0x00019 int 81 09 9 + 9 0x0001b word 38 61 64 64 add + 6 10 0x0001f ref 59 66 6f 6f 5f 31 /foo_1 + 11 0x00025 word 18 5b [ + 12 0x00027 int 81 0a 10 + 13 0x00029 nil 00 nil + 14 0x0002a int 81 1e 30 + 15 0x0002c word 18 5d ] + 16 0x0002e word 18 5b [ + 17 0x00030 int 81 28 40 + 18 0x00032 int 81 32 50 + 19 0x00034 word 18 5d ] + 20 0x00036 word 38 61 64 64 add + 21 0x0003a word 38 64 65 66 def + 8 22 0x0003e ref 59 66 6f 6f 5f 32 /foo_2 + 23 0x00044 word 18 28 ( + 24 0x00046 str 27 61 61 "aa" + 25 0x00049 int 81 64 100 + 26 0x0004b str 27 65 65 "ee" + 27 0x0004e nil 00 nil + 28 0x0004f str 27 64 64 "dd" + 29 0x00052 int 91 90 01 400 + 30 0x00055 word 18 29 ) + 31 0x00057 word 18 28 ( + 32 0x00059 str 27 63 63 "cc" + 33 0x0005c int 91 2c 01 300 + 34 0x0005f str 27 62 62 "bb" + 35 0x00062 int 91 c8 00 200 + 36 0x00065 word 18 29 ) + 37 0x00067 word 38 61 64 64 add + 38 0x0006b word 38 64 65 66 def + 10 39 0x0006f word 58 66 6f 6f 5f 31 foo_1 + 40 0x00075 code 16 { + 41 0x00076 prim 13 } + 42 0x00077 word 68 66 6f 72 61 6c 6c forall + 11 43 0x0007e word 58 66 6f 6f 5f 32 foo_2 + 44 0x00084 code 16 { + 45 0x00085 prim 13 } + 46 0x00086 word 68 66 6f 72 61 6c 6c forall + 13 47 0x0008d str 37 61 62 63 "abc" + 48 0x00091 str 57 31 32 33 34 35 "12345" + 49 0x00097 word 38 61 64 64 add + 14 50 0x0009b ref 39 66 6f 6f /foo + 51 0x0009f str 37 31 32 33 "123" + 52 0x000a3 word 38 61 64 64 add diff --git a/tests/0025_add/code1.log.ref b/tests/0025_add/code1.log.ref new file mode 100644 index 0000000..c375deb --- /dev/null +++ b/tests/0025_add/code1.log.ref @@ -0,0 +1,59 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 53 entries (53 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 e8 03 1000 + 2 0x0000b int 91 d0 07 2000 + 3 0x0000e word 38 61 64 64 add + 3 4 0x00012 bool 12 true + 5 0x00013 bool 02 false + 6 0x00014 xref 64 add + 4 7 0x00015 bool 12 true + 8 0x00016 int 81 09 9 + 9 0x00018 xref 84 0a add + 6 10 0x0001a ref 59 66 6f 6f 5f 31 /foo_1 + 11 0x00020 word 18 5b [ + 12 0x00022 int 81 0a 10 + 13 0x00024 nil 00 nil + 14 0x00025 int 81 1e 30 + 15 0x00027 word 18 5d ] + 16 0x00029 word 18 5b [ + 17 0x0002b int 81 28 40 + 18 0x0002d int 81 32 50 + 19 0x0002f word 18 5d ] + 20 0x00031 xref 84 23 add + 21 0x00033 word 38 64 65 66 def + 8 22 0x00037 ref 59 66 6f 6f 5f 32 /foo_2 + 23 0x0003d word 18 28 ( + 24 0x0003f str 27 61 61 "aa" + 25 0x00042 int 81 64 100 + 26 0x00044 str 27 65 65 "ee" + 27 0x00047 nil 00 nil + 28 0x00048 str 27 64 64 "dd" + 29 0x0004b int 91 90 01 400 + 30 0x0004e word 18 29 ) + 31 0x00050 word 18 28 ( + 32 0x00052 str 27 63 63 "cc" + 33 0x00055 int 91 2c 01 300 + 34 0x00058 str 27 62 62 "bb" + 35 0x0005b int 91 c8 00 200 + 36 0x0005e word 18 29 ) + 37 0x00060 xref 84 52 add + 38 0x00062 xref 84 2f def + 10 39 0x00064 word 58 66 6f 6f 5f 31 foo_1 + 40 0x0006a code 16 { + 41 0x0006b prim 13 } + 42 0x0006c word 68 66 6f 72 61 6c 6c forall + 11 43 0x00073 word 58 66 6f 6f 5f 32 foo_2 + 44 0x00079 code 16 { + 45 0x0007a prim 13 } + 46 0x0007b xref 84 0f forall + 13 47 0x0007d str 37 61 62 63 "abc" + 48 0x00081 str 57 31 32 33 34 35 "12345" + 49 0x00087 xref 84 79 add + 14 50 0x00089 ref 39 66 6f 6f /foo + 51 0x0008d str 37 31 32 33 "123" + 52 0x00091 xref 84 83 add diff --git a/tests/0025_add/code2.log.ref b/tests/0025_add/code2.log.ref new file mode 100644 index 0000000..9cff7d7 --- /dev/null +++ b/tests/0025_add/code2.log.ref @@ -0,0 +1,59 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 53 entries (53 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 e8 03 1000 + 2 0x0000b int 91 d0 07 2000 + 3 0x0000e prim 83 1e add + 3 4 0x00010 bool 12 true + 5 0x00011 bool 02 false + 6 0x00012 prim 83 1e add + 4 7 0x00014 bool 12 true + 8 0x00015 int 81 09 9 + 9 0x00017 prim 83 1e add + 6 10 0x00019 ref 59 66 6f 6f 5f 31 /foo_1 + 11 0x0001f prim 23 [ + 12 0x00020 int 81 0a 10 + 13 0x00022 nil 00 nil + 14 0x00023 int 81 1e 30 + 15 0x00025 prim 33 ] + 16 0x00026 prim 23 [ + 17 0x00027 int 81 28 40 + 18 0x00029 int 81 32 50 + 19 0x0002b prim 33 ] + 20 0x0002c prim 83 1e add + 21 0x0002e prim 63 def + 8 22 0x0002f ref 59 66 6f 6f 5f 32 /foo_2 + 23 0x00035 prim 43 ( + 24 0x00036 str 27 61 61 "aa" + 25 0x00039 int 81 64 100 + 26 0x0003b str 27 65 65 "ee" + 27 0x0003e nil 00 nil + 28 0x0003f str 27 64 64 "dd" + 29 0x00042 int 91 90 01 400 + 30 0x00045 prim 53 ) + 31 0x00046 prim 43 ( + 32 0x00047 str 27 63 63 "cc" + 33 0x0004a int 91 2c 01 300 + 34 0x0004d str 27 62 62 "bb" + 35 0x00050 int 91 c8 00 200 + 36 0x00053 prim 53 ) + 37 0x00054 prim 83 1e add + 38 0x00056 prim 63 def + 10 39 0x00057 word 58 66 6f 6f 5f 31 foo_1 + 40 0x0005d code 16 { + 41 0x0005e prim 13 } + 42 0x0005f prim 83 0e forall + 11 43 0x00061 word 58 66 6f 6f 5f 32 foo_2 + 44 0x00067 code 16 { + 45 0x00068 prim 13 } + 46 0x00069 prim 83 0e forall + 13 47 0x0006b str 37 61 62 63 "abc" + 48 0x0006f str 57 31 32 33 34 35 "12345" + 49 0x00075 prim 83 1e add + 14 50 0x00077 ref 39 66 6f 6f /foo + 51 0x0007b str 37 31 32 33 "123" + 52 0x0007f prim 83 1e add diff --git a/tests/0025_add/main.gs b/tests/0025_add/main.gs new file mode 100644 index 0000000..635a636 --- /dev/null +++ b/tests/0025_add/main.gs @@ -0,0 +1,14 @@ +1000 2000 add + +true false add +true 9 add + +/foo_1 [ 10 nil 30 ] [ 40 50 ] add def + +/foo_2 ( "aa" 100 "ee" nil "dd" 400 ) ( "cc" 300 "bb" 200 ) add def + +foo_1 { } forall +foo_2 { } forall + +"abc" "12345" add +/foo "123" add diff --git a/tests/0025_add/mem.log.ref b/tests/0025_add/mem.log.ref new file mode 100644 index 0000000..979cc07 --- /dev/null +++ b/tests/0025_add/mem.log.ref @@ -0,0 +1,832 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 168] + 8: 226.01, 0x001d6b1c[ 8] + 9: 229.01, 0x001d6b2c[ 8] + 10: 0.00, 0x001d6b3c[ 40] + 11: 188.01, 0x001d6b6c[ 56] + 12: 192.01, 0x001d6bac[ 72] + 13: 0.00, 0x001d6bfc[ 44] + 14: 206.01, 0x001d6c30[ 92] + 15: 0.00, 0x001d6c94[ 28] + 16: 219.01, 0x001d6cb8[ 180] + 17: 0.00, 0x001d6d74[ 56] + 18: 187.01, 0x001d6db4[ 144] + 19: 0.00, 0x001d6e4c[14848436] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #199.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x20, size 5, "foo_1"> => #206.1.1.array + #207.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x3f, size 5, "foo_2"> => #219.1.1.hash + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.8.mem.ro + 75 51 12 a9 42 7a ad 60 91 e8 03 91 d0 07 38 61 uQ..Bz.`......8a + 64 64 12 02 38 61 64 64 12 81 09 38 61 64 64 59 dd..8add...8addY + 66 6f 6f 5f 31 18 5b 81 0a 00 81 1e 18 5d 18 5b foo_1.[......].[ + 81 28 81 32 18 5d 38 61 64 64 38 64 65 66 59 66 .(.2.]8add8defYf + 6f 6f 5f 32 18 28 27 61 61 81 64 27 65 65 00 27 oo_2.('aa.d'ee.' + 64 64 91 90 01 18 29 18 28 27 63 63 91 2c 01 27 dd....).('cc.,.' + 62 62 91 c8 00 18 29 38 61 64 64 38 64 65 66 58 bb....)8add8defX + 66 6f 6f 5f 31 16 13 68 66 6f 72 61 6c 6c 58 66 foo_1..hforallXf + 6f 6f 5f 32 16 13 68 66 6f 72 61 6c 6c 37 61 62 oo_2..hforall7ab + 63 57 31 32 33 34 35 38 61 64 64 39 66 6f 6f 37 cW123458add9foo7 + 31 32 33 38 61 64 64 1238add + #187.1.1.array + [ 0] #191.1.1.num.int <3000 (0xbb8)> + [ 1] #195.1.1.num.bool <1 (0x1)> + [ 2] #198.1.1.num.bool <0 (0x0)> + [ 3] #200.1.2.num.int <10 (0xa)> + [ 4] #0.0.nil + [ 5] #201.1.2.num.int <30 (0x1e)> + [ 6] #203.1.2.num.int <40 (0x28)> + [ 7] #204.1.2.num.int <50 (0x32)> + [ 8] #208.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x47, size 2, "aa"> + [ 9] #209.1.2.num.int <100 (0x64)> + [10] #216.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "bb"> + [11] #217.1.2.num.int <200 (0xc8)> + [12] #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x5a, size 2, "cc"> + [13] #215.1.2.num.int <300 (0x12c)> + [14] #211.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x50, size 2, "dd"> + [15] #212.1.2.num.int <400 (0x190)> + [16] #210.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x4c, size 2, "ee"> + [17] #0.0.nil + [18] #226.1.1.mem.str + [19] #229.1.1.mem.ref + #188.1.1.ctx.func + type 17, ip 0xa7 (0xa7) + code #186.1.8.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.int <3000 (0xbb8)> + #192.1.1.array + #195.1.1.num.bool <1 (0x1)> + #198.1.1.num.bool <0 (0x0)> + #199.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x20, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #200.1.2.num.int <10 (0xa)> + #201.1.2.num.int <30 (0x1e)> + #203.1.2.num.int <40 (0x28)> + #204.1.2.num.int <50 (0x32)> + #206.1.1.array + [ 0] #200.1.2.num.int <10 (0xa)> + [ 1] #0.0.nil + [ 2] #201.1.2.num.int <30 (0x1e)> + [ 3] #203.1.2.num.int <40 (0x28)> + [ 4] #204.1.2.num.int <50 (0x32)> + #207.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x3f, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #208.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x47, size 2, "aa"> + 61 61 aa + #209.1.2.num.int <100 (0x64)> + #210.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x4c, size 2, "ee"> + 65 65 ee + #211.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x50, size 2, "dd"> + 64 64 dd + #212.1.2.num.int <400 (0x190)> + #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x5a, size 2, "cc"> + 63 63 cc + #215.1.2.num.int <300 (0x12c)> + #216.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "bb"> + 62 62 bb + #217.1.2.num.int <200 (0xc8)> + #219.1.1.hash + #208.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x47, size 2, "aa"> => #209.1.2.num.int <100 (0x64)> + #216.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "bb"> => #217.1.2.num.int <200 (0xc8)> + #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x5a, size 2, "cc"> => #215.1.2.num.int <300 (0x12c)> + #211.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x50, size 2, "dd"> => #212.1.2.num.int <400 (0x190)> + #210.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x4c, size 2, "ee"> => #0.0.nil + #226.1.1.mem.str + 61 62 63 31 32 33 34 35 abc12345 + #229.1.1.mem.ref + 66 6f 6f 31 32 33 foo123 diff --git a/tests/0025_add/screen.log.ref b/tests/0025_add/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0025_add/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0025_add/trace.log.ref b/tests/0025_add/trace.log.ref new file mode 100644 index 0000000..36836c6 --- /dev/null +++ b/tests/0025_add/trace.log.ref @@ -0,0 +1,846 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 1000 (0x3e8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <1000 (0x3e8)> +IP: #186:0xb, type 1, 2000 (0x7d0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <2000 (0x7d0)> + [1] #189.1.1.num.int <1000 (0x3e8)> +IP: #186:0xe, type 8, 15[3] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x12, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x13, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.bool <0 (0x0)> + [1] #193.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x14, type 8, 21[3] +GC: --#194.1.1.num.bool +GC: --#193.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x18, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x19, type 1, 9 (0x9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <9 (0x9)> + [1] #196.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x1b, type 8, 28[3] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x1f, type 9, 32[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x20, size 5, "foo_1"> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x25, type 8, 38[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #199.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x20, size 5, "foo_1"> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x27, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <10 (0xa)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #199.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x20, size 5, "foo_1"> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x29, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #200.1.1.num.int <10 (0xa)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #199.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x20, size 5, "foo_1"> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x2a, type 1, 30 (0x1e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <30 (0x1e)> + [1] #0.0.nil + [2] #200.1.1.num.int <10 (0xa)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #199.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x20, size 5, "foo_1"> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x2c, type 8, 45[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.array + [1] #199.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x20, size 5, "foo_1"> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x2e, type 8, 47[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #202.1.1.array + [2] #199.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x20, size 5, "foo_1"> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x30, type 1, 40 (0x28) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <40 (0x28)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #202.1.1.array + [3] #199.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x20, size 5, "foo_1"> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x32, type 1, 50 (0x32) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <50 (0x32)> + [1] #203.1.1.num.int <40 (0x28)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #202.1.1.array + [4] #199.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x20, size 5, "foo_1"> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x34, type 8, 53[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.array + [1] #202.1.1.array + [2] #199.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x20, size 5, "foo_1"> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x36, type 8, 55[3] +GC: ++#200.1.1.num.int +GC: ++#201.1.1.num.int +GC: ++#203.1.1.num.int +GC: ++#204.1.1.num.int +GC: --#205.1.1.array +GC: --#203.1.2.num.int +GC: --#204.1.2.num.int +GC: --#202.1.1.array +GC: --#200.1.2.num.int +GC: --#201.1.2.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.array + [1] #199.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x20, size 5, "foo_1"> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x3a, type 8, 59[3] +GC: ++#199.1.1.mem.ref.ro +GC: ++#206.1.1.array +GC: --#206.1.2.array +GC: --#199.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x3e, type 9, 63[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x3f, size 5, "foo_2"> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x44, type 8, 69[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #207.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x3f, size 5, "foo_2"> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x46, type 7, 71[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x47, size 2, "aa"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #207.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x3f, size 5, "foo_2"> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x49, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <100 (0x64)> + [1] #208.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x47, size 2, "aa"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #207.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x3f, size 5, "foo_2"> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x4b, type 7, 76[2] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x4c, size 2, "ee"> + [1] #209.1.1.num.int <100 (0x64)> + [2] #208.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x47, size 2, "aa"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #207.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x3f, size 5, "foo_2"> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x4e, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #210.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x4c, size 2, "ee"> + [2] #209.1.1.num.int <100 (0x64)> + [3] #208.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x47, size 2, "aa"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #207.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x3f, size 5, "foo_2"> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x4f, type 7, 80[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x50, size 2, "dd"> + [1] #0.0.nil + [2] #210.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x4c, size 2, "ee"> + [3] #209.1.1.num.int <100 (0x64)> + [4] #208.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x47, size 2, "aa"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #207.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x3f, size 5, "foo_2"> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x52, type 1, 400 (0x190) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.int <400 (0x190)> + [1] #211.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x50, size 2, "dd"> + [2] #0.0.nil + [3] #210.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x4c, size 2, "ee"> + [4] #209.1.1.num.int <100 (0x64)> + [5] #208.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x47, size 2, "aa"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #207.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x3f, size 5, "foo_2"> + [8] #198.1.1.num.bool <0 (0x0)> + [9] #195.1.1.num.bool <1 (0x1)> + [10] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x55, type 8, 86[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.hash + [1] #207.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x3f, size 5, "foo_2"> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x57, type 8, 88[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #213.1.1.hash + [2] #207.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x3f, size 5, "foo_2"> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x59, type 7, 90[2] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x5a, size 2, "cc"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #213.1.1.hash + [3] #207.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x3f, size 5, "foo_2"> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x5c, type 1, 300 (0x12c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <300 (0x12c)> + [1] #214.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x5a, size 2, "cc"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #213.1.1.hash + [4] #207.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x3f, size 5, "foo_2"> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x5f, type 7, 96[2] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "bb"> + [1] #215.1.1.num.int <300 (0x12c)> + [2] #214.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x5a, size 2, "cc"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #213.1.1.hash + [5] #207.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x3f, size 5, "foo_2"> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x62, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <200 (0xc8)> + [1] #216.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "bb"> + [2] #215.1.1.num.int <300 (0x12c)> + [3] #214.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x5a, size 2, "cc"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #213.1.1.hash + [6] #207.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x3f, size 5, "foo_2"> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x65, type 8, 102[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.hash + [1] #213.1.1.hash + [2] #207.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x3f, size 5, "foo_2"> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x67, type 8, 104[3] +GC: ++#208.1.1.mem.str.ro +GC: ++#209.1.1.num.int +GC: ++#211.1.1.mem.str.ro +GC: ++#212.1.1.num.int +GC: ++#210.1.1.mem.str.ro +GC: ++#216.1.1.mem.str.ro +GC: ++#217.1.1.num.int +GC: ++#214.1.1.mem.str.ro +GC: ++#215.1.1.num.int +GC: --#218.1.1.hash +GC: --#216.1.2.mem.str.ro +GC: --#217.1.2.num.int +GC: --#214.1.2.mem.str.ro +GC: --#215.1.2.num.int +GC: --#213.1.1.hash +GC: --#208.1.2.mem.str.ro +GC: --#209.1.2.num.int +GC: --#211.1.2.mem.str.ro +GC: --#212.1.2.num.int +GC: --#210.1.2.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.hash + [1] #207.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x3f, size 5, "foo_2"> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x6b, type 8, 108[3] +GC: ++#207.1.1.mem.ref.ro +GC: ++#219.1.1.hash +GC: --#219.1.2.hash +GC: --#207.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x6f, type 8, 112[5] +GC: ++#206.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.2.array + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x75, type 6, 118[1] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0x76, size 1> + [1] #206.1.2.array + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x77, type 8, 120[6] +GC: ++#200.1.1.num.int +GC: ++#220.1.1.mem.code.ro +GC: ++#206.1.2.array +GC: --#220.1.2.mem.code.ro +GC: --#206.1.3.array +== backtrace == + [0] #221.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.num.int <10 (0xa)> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.int <3000 (0xbb8)> +IP: #220:0x0, type 3, 1 (0x1) +== backtrace == + [0] #221.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #200.1.2.num.int <10 (0xa)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.int <3000 (0xbb8)> +IP: #220:0x0, type 3, 1 (0x1) +GC: ++#201.1.1.num.int +== backtrace == + [0] #221.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.2.num.int <30 (0x1e)> + [1] #0.0.nil + [2] #200.1.2.num.int <10 (0xa)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.int <3000 (0xbb8)> +IP: #220:0x0, type 3, 1 (0x1) +GC: ++#203.1.1.num.int +== backtrace == + [0] #221.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.2.num.int <40 (0x28)> + [1] #201.1.2.num.int <30 (0x1e)> + [2] #0.0.nil + [3] #200.1.2.num.int <10 (0xa)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.int <3000 (0xbb8)> +IP: #220:0x0, type 3, 1 (0x1) +GC: ++#204.1.1.num.int +== backtrace == + [0] #221.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.2.num.int <50 (0x32)> + [1] #203.1.2.num.int <40 (0x28)> + [2] #201.1.2.num.int <30 (0x1e)> + [3] #0.0.nil + [4] #200.1.2.num.int <10 (0xa)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.int <3000 (0xbb8)> +IP: #220:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#221.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#220.1.1.mem.code.ro +GC: --#206.1.2.array +GC: --#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.2.num.int <50 (0x32)> + [1] #203.1.2.num.int <40 (0x28)> + [2] #201.1.2.num.int <30 (0x1e)> + [3] #0.0.nil + [4] #200.1.2.num.int <10 (0xa)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x7e, type 8, 127[5] +GC: ++#219.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.2.hash + [1] #204.1.2.num.int <50 (0x32)> + [2] #203.1.2.num.int <40 (0x28)> + [3] #201.1.2.num.int <30 (0x1e)> + [4] #0.0.nil + [5] #200.1.2.num.int <10 (0xa)> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x84, type 6, 133[1] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0x85, size 1> + [1] #219.1.2.hash + [2] #204.1.2.num.int <50 (0x32)> + [3] #203.1.2.num.int <40 (0x28)> + [4] #201.1.2.num.int <30 (0x1e)> + [5] #0.0.nil + [6] #200.1.2.num.int <10 (0xa)> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x86, type 8, 135[6] +GC: ++#208.1.1.mem.str.ro +GC: ++#209.1.1.num.int +GC: ++#222.1.1.mem.code.ro +GC: ++#219.1.2.hash +GC: --#222.1.2.mem.code.ro +GC: --#219.1.3.hash +== backtrace == + [0] #223.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.2.num.int <100 (0x64)> + [1] #208.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x47, size 2, "aa"> + [2] #204.1.2.num.int <50 (0x32)> + [3] #203.1.2.num.int <40 (0x28)> + [4] #201.1.2.num.int <30 (0x1e)> + [5] #0.0.nil + [6] #200.1.2.num.int <10 (0xa)> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.int <3000 (0xbb8)> +IP: #222:0x0, type 3, 1 (0x1) +GC: ++#216.1.1.mem.str.ro +GC: ++#217.1.1.num.int +== backtrace == + [0] #223.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.2.num.int <200 (0xc8)> + [1] #216.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "bb"> + [2] #209.1.2.num.int <100 (0x64)> + [3] #208.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x47, size 2, "aa"> + [4] #204.1.2.num.int <50 (0x32)> + [5] #203.1.2.num.int <40 (0x28)> + [6] #201.1.2.num.int <30 (0x1e)> + [7] #0.0.nil + [8] #200.1.2.num.int <10 (0xa)> + [9] #198.1.1.num.bool <0 (0x0)> + [10] #195.1.1.num.bool <1 (0x1)> + [11] #191.1.1.num.int <3000 (0xbb8)> +IP: #222:0x0, type 3, 1 (0x1) +GC: ++#214.1.1.mem.str.ro +GC: ++#215.1.1.num.int +== backtrace == + [0] #223.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.2.num.int <300 (0x12c)> + [1] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [2] #217.1.2.num.int <200 (0xc8)> + [3] #216.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "bb"> + [4] #209.1.2.num.int <100 (0x64)> + [5] #208.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x47, size 2, "aa"> + [6] #204.1.2.num.int <50 (0x32)> + [7] #203.1.2.num.int <40 (0x28)> + [8] #201.1.2.num.int <30 (0x1e)> + [9] #0.0.nil + [10] #200.1.2.num.int <10 (0xa)> + [11] #198.1.1.num.bool <0 (0x0)> + [12] #195.1.1.num.bool <1 (0x1)> + [13] #191.1.1.num.int <3000 (0xbb8)> +IP: #222:0x0, type 3, 1 (0x1) +GC: ++#211.1.1.mem.str.ro +GC: ++#212.1.1.num.int +== backtrace == + [0] #223.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.2.num.int <400 (0x190)> + [1] #211.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x50, size 2, "dd"> + [2] #215.1.2.num.int <300 (0x12c)> + [3] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [4] #217.1.2.num.int <200 (0xc8)> + [5] #216.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "bb"> + [6] #209.1.2.num.int <100 (0x64)> + [7] #208.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x47, size 2, "aa"> + [8] #204.1.2.num.int <50 (0x32)> + [9] #203.1.2.num.int <40 (0x28)> + [10] #201.1.2.num.int <30 (0x1e)> + [11] #0.0.nil + [12] #200.1.2.num.int <10 (0xa)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.int <3000 (0xbb8)> +IP: #222:0x0, type 3, 1 (0x1) +GC: ++#210.1.1.mem.str.ro +== backtrace == + [0] #223.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #210.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "ee"> + [2] #212.1.2.num.int <400 (0x190)> + [3] #211.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x50, size 2, "dd"> + [4] #215.1.2.num.int <300 (0x12c)> + [5] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [6] #217.1.2.num.int <200 (0xc8)> + [7] #216.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "bb"> + [8] #209.1.2.num.int <100 (0x64)> + [9] #208.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x47, size 2, "aa"> + [10] #204.1.2.num.int <50 (0x32)> + [11] #203.1.2.num.int <40 (0x28)> + [12] #201.1.2.num.int <30 (0x1e)> + [13] #0.0.nil + [14] #200.1.2.num.int <10 (0xa)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.int <3000 (0xbb8)> +IP: #222:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#223.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#222.1.1.mem.code.ro +GC: --#219.1.2.hash +GC: --#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #210.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x4c, size 2, "ee"> + [2] #212.1.2.num.int <400 (0x190)> + [3] #211.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x50, size 2, "dd"> + [4] #215.1.2.num.int <300 (0x12c)> + [5] #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x5a, size 2, "cc"> + [6] #217.1.2.num.int <200 (0xc8)> + [7] #216.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "bb"> + [8] #209.1.2.num.int <100 (0x64)> + [9] #208.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x47, size 2, "aa"> + [10] #204.1.2.num.int <50 (0x32)> + [11] #203.1.2.num.int <40 (0x28)> + [12] #201.1.2.num.int <30 (0x1e)> + [13] #0.0.nil + [14] #200.1.2.num.int <10 (0xa)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x8d, type 7, 142[3] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x8e, size 3, "abc"> + [1] #0.0.nil + [2] #210.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "ee"> + [3] #212.1.2.num.int <400 (0x190)> + [4] #211.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x50, size 2, "dd"> + [5] #215.1.2.num.int <300 (0x12c)> + [6] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [7] #217.1.2.num.int <200 (0xc8)> + [8] #216.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "bb"> + [9] #209.1.2.num.int <100 (0x64)> + [10] #208.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x47, size 2, "aa"> + [11] #204.1.2.num.int <50 (0x32)> + [12] #203.1.2.num.int <40 (0x28)> + [13] #201.1.2.num.int <30 (0x1e)> + [14] #0.0.nil + [15] #200.1.2.num.int <10 (0xa)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x91, type 7, 146[5] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x92, size 5, "12345"> + [1] #224.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x8e, size 3, "abc"> + [2] #0.0.nil + [3] #210.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x4c, size 2, "ee"> + [4] #212.1.2.num.int <400 (0x190)> + [5] #211.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x50, size 2, "dd"> + [6] #215.1.2.num.int <300 (0x12c)> + [7] #214.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x5a, size 2, "cc"> + [8] #217.1.2.num.int <200 (0xc8)> + [9] #216.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x60, size 2, "bb"> + [10] #209.1.2.num.int <100 (0x64)> + [11] #208.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x47, size 2, "aa"> + [12] #204.1.2.num.int <50 (0x32)> + [13] #203.1.2.num.int <40 (0x28)> + [14] #201.1.2.num.int <30 (0x1e)> + [15] #0.0.nil + [16] #200.1.2.num.int <10 (0xa)> + [17] #198.1.1.num.bool <0 (0x0)> + [18] #195.1.1.num.bool <1 (0x1)> + [19] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x97, type 8, 152[3] +GC: --#225.1.1.mem.str.ro +GC: --#186.1.10.mem.ro +GC: --#224.1.1.mem.str.ro +GC: --#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.mem.str + [1] #0.0.nil + [2] #210.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x4c, size 2, "ee"> + [3] #212.1.2.num.int <400 (0x190)> + [4] #211.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x50, size 2, "dd"> + [5] #215.1.2.num.int <300 (0x12c)> + [6] #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x5a, size 2, "cc"> + [7] #217.1.2.num.int <200 (0xc8)> + [8] #216.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "bb"> + [9] #209.1.2.num.int <100 (0x64)> + [10] #208.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x47, size 2, "aa"> + [11] #204.1.2.num.int <50 (0x32)> + [12] #203.1.2.num.int <40 (0x28)> + [13] #201.1.2.num.int <30 (0x1e)> + [14] #0.0.nil + [15] #200.1.2.num.int <10 (0xa)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x9b, type 9, 156[3] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x9c, size 3, "foo"> + [1] #226.1.1.mem.str + [2] #0.0.nil + [3] #210.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "ee"> + [4] #212.1.2.num.int <400 (0x190)> + [5] #211.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x50, size 2, "dd"> + [6] #215.1.2.num.int <300 (0x12c)> + [7] #214.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [8] #217.1.2.num.int <200 (0xc8)> + [9] #216.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x60, size 2, "bb"> + [10] #209.1.2.num.int <100 (0x64)> + [11] #208.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x47, size 2, "aa"> + [12] #204.1.2.num.int <50 (0x32)> + [13] #203.1.2.num.int <40 (0x28)> + [14] #201.1.2.num.int <30 (0x1e)> + [15] #0.0.nil + [16] #200.1.2.num.int <10 (0xa)> + [17] #198.1.1.num.bool <0 (0x0)> + [18] #195.1.1.num.bool <1 (0x1)> + [19] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x9f, type 7, 160[3] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0xa0, size 3, "123"> + [1] #227.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x9c, size 3, "foo"> + [2] #226.1.1.mem.str + [3] #0.0.nil + [4] #210.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x4c, size 2, "ee"> + [5] #212.1.2.num.int <400 (0x190)> + [6] #211.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x50, size 2, "dd"> + [7] #215.1.2.num.int <300 (0x12c)> + [8] #214.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x5a, size 2, "cc"> + [9] #217.1.2.num.int <200 (0xc8)> + [10] #216.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x60, size 2, "bb"> + [11] #209.1.2.num.int <100 (0x64)> + [12] #208.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x47, size 2, "aa"> + [13] #204.1.2.num.int <50 (0x32)> + [14] #203.1.2.num.int <40 (0x28)> + [15] #201.1.2.num.int <30 (0x1e)> + [16] #0.0.nil + [17] #200.1.2.num.int <10 (0xa)> + [18] #198.1.1.num.bool <0 (0x0)> + [19] #195.1.1.num.bool <1 (0x1)> + [20] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0xa3, type 8, 164[3] +GC: --#228.1.1.mem.str.ro +GC: --#186.1.10.mem.ro +GC: --#227.1.1.mem.ref.ro +GC: --#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.mem.ref + [1] #226.1.1.mem.str + [2] #0.0.nil + [3] #210.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x4c, size 2, "ee"> + [4] #212.1.2.num.int <400 (0x190)> + [5] #211.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x50, size 2, "dd"> + [6] #215.1.2.num.int <300 (0x12c)> + [7] #214.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x5a, size 2, "cc"> + [8] #217.1.2.num.int <200 (0xc8)> + [9] #216.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x60, size 2, "bb"> + [10] #209.1.2.num.int <100 (0x64)> + [11] #208.1.2.mem.str.ro <#186.1.8.mem.ro, ofs 0x47, size 2, "aa"> + [12] #204.1.2.num.int <50 (0x32)> + [13] #203.1.2.num.int <40 (0x28)> + [14] #201.1.2.num.int <30 (0x1e)> + [15] #0.0.nil + [16] #200.1.2.num.int <10 (0xa)> + [17] #198.1.1.num.bool <0 (0x0)> + [18] #195.1.1.num.bool <1 (0x1)> + [19] #191.1.1.num.int <3000 (0xbb8)> diff --git a/tests/0026_sub/basic.log.ref b/tests/0026_sub/basic.log.ref new file mode 100644 index 0000000..d959488 --- /dev/null +++ b/tests/0026_sub/basic.log.ref @@ -0,0 +1,58 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3000 (0xbb8)> + [1] #xxxx.1.1.num.int <1000 (0x3e8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9 (0x9)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> diff --git a/tests/0026_sub/code.log.ref b/tests/0026_sub/code.log.ref new file mode 100644 index 0000000..8f4eec0 --- /dev/null +++ b/tests/0026_sub/code.log.ref @@ -0,0 +1,16 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 10 entries (10 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 e8 03 1000 + 2 0x0000b int 91 b8 0b 3000 + 3 0x0000e word 38 73 75 62 sub + 2 4 0x00012 bool 12 true + 5 0x00013 bool 02 false + 6 0x00014 word 38 73 75 62 sub + 3 7 0x00018 bool 12 true + 8 0x00019 int 81 09 9 + 9 0x0001b word 38 73 75 62 sub diff --git a/tests/0026_sub/code1.log.ref b/tests/0026_sub/code1.log.ref new file mode 100644 index 0000000..14e9708 --- /dev/null +++ b/tests/0026_sub/code1.log.ref @@ -0,0 +1,16 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 10 entries (10 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 e8 03 1000 + 2 0x0000b int 91 b8 0b 3000 + 3 0x0000e word 38 73 75 62 sub + 2 4 0x00012 bool 12 true + 5 0x00013 bool 02 false + 6 0x00014 xref 64 sub + 3 7 0x00015 bool 12 true + 8 0x00016 int 81 09 9 + 9 0x00018 xref 84 0a sub diff --git a/tests/0026_sub/code2.log.ref b/tests/0026_sub/code2.log.ref new file mode 100644 index 0000000..0adbd3f --- /dev/null +++ b/tests/0026_sub/code2.log.ref @@ -0,0 +1,16 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 10 entries (10 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 e8 03 1000 + 2 0x0000b int 91 b8 0b 3000 + 3 0x0000e prim 83 1f sub + 2 4 0x00010 bool 12 true + 5 0x00011 bool 02 false + 6 0x00012 prim 83 1f sub + 3 7 0x00014 bool 12 true + 8 0x00015 int 81 09 9 + 9 0x00017 prim 83 1f sub diff --git a/tests/0026_sub/main.gs b/tests/0026_sub/main.gs new file mode 100644 index 0000000..a5115e9 --- /dev/null +++ b/tests/0026_sub/main.gs @@ -0,0 +1,3 @@ +1000 3000 sub +true false sub +true 9 sub diff --git a/tests/0026_sub/mem.log.ref b/tests/0026_sub/mem.log.ref new file mode 100644 index 0000000..db3b9f7 --- /dev/null +++ b/tests/0026_sub/mem.log.ref @@ -0,0 +1,758 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 32] + 8: 187.01, 0x001d6a94[ 72] + 9: 188.01, 0x001d6ae4[ 56] + 10: 192.01, 0x001d6b24[ 72] + 11: 0.00, 0x001d6b74[14849164] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 91 e8 03 91 b8 0b 38 73 uQ..Bz.`......8s + 75 62 12 02 38 73 75 62 12 81 09 38 73 75 62 ub..8sub...8sub + #187.1.1.array + [ 0] #191.1.1.num.int <-2000 (0xfffffffffffff830)> + [ 1] #195.1.1.num.bool <1 (0x1)> + [ 2] #198.1.1.num.bool <0 (0x0)> + #188.1.1.ctx.func + type 17, ip 0x1f (0x1f) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.int <-2000 (0xfffffffffffff830)> + #192.1.1.array + #195.1.1.num.bool <1 (0x1)> + #198.1.1.num.bool <0 (0x0)> diff --git a/tests/0026_sub/screen.log.ref b/tests/0026_sub/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0026_sub/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0026_sub/trace.log.ref b/tests/0026_sub/trace.log.ref new file mode 100644 index 0000000..acbfa07 --- /dev/null +++ b/tests/0026_sub/trace.log.ref @@ -0,0 +1,68 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 1000 (0x3e8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <1000 (0x3e8)> +IP: #186:0xb, type 1, 3000 (0xbb8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <3000 (0xbb8)> + [1] #189.1.1.num.int <1000 (0x3e8)> +IP: #186:0xe, type 8, 15[3] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <-2000 (0xfffffffffffff830)> +IP: #186:0x12, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.int <-2000 (0xfffffffffffff830)> +IP: #186:0x13, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.bool <0 (0x0)> + [1] #193.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.int <-2000 (0xfffffffffffff830)> +IP: #186:0x14, type 8, 21[3] +GC: --#194.1.1.num.bool +GC: --#193.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.int <-2000 (0xfffffffffffff830)> +IP: #186:0x18, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.int <-2000 (0xfffffffffffff830)> +IP: #186:0x19, type 1, 9 (0x9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <9 (0x9)> + [1] #196.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.int <-2000 (0xfffffffffffff830)> +IP: #186:0x1b, type 8, 28[3] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.int <-2000 (0xfffffffffffff830)> diff --git a/tests/0027_mul/basic.log.ref b/tests/0027_mul/basic.log.ref new file mode 100644 index 0000000..cdc450f --- /dev/null +++ b/tests/0027_mul/basic.log.ref @@ -0,0 +1,172 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-20 (0xffffffffffffffec)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [1] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [2] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [3] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [2] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [3] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [4] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [3] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [4] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9 (0x9)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [5] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [4] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9223372036854772003 (0x7ffffffffffff123)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [5] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <16 (0x10)> + [1] #xxxx.1.1.num.int <9223372036854772003 (0x7ffffffffffff123)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [6] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-60880 (0xffffffffffff1230)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [5] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #xxxx.1.1.num.int <-60880 (0xffffffffffff1230)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [6] #xxxx.1.1.num.int <3000 (0xbb8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #xxxx.1.1.num.int <-60880 (0xffffffffffff1230)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [7] #xxxx.1.1.num.int <3000 (0xbb8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #xxxx.1.1.num.int <-60880 (0xffffffffffff1230)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <-2000 (0xfffffffffffff830)> + [6] #xxxx.1.1.num.int <3000 (0xbb8)> diff --git a/tests/0027_mul/code.log.ref b/tests/0027_mul/code.log.ref new file mode 100644 index 0000000..40f7970 --- /dev/null +++ b/tests/0027_mul/code.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 81 1e 30 + 3 0x0000c word 38 6d 75 6c mul + 2 4 0x00010 int 81 64 100 + 5 0x00012 int 81 ec -20 + 6 0x00014 word 38 6d 75 6c mul + 3 7 0x00018 bool 12 true + 8 0x00019 bool 12 true + 9 0x0001a word 38 6d 75 6c mul + 4 10 0x0001e bool 12 true + 11 0x0001f bool 02 false + 12 0x00020 word 38 6d 75 6c mul + 5 13 0x00024 bool 12 true + 14 0x00025 int 81 09 9 + 15 0x00027 word 38 6d 75 6c mul + 6 16 0x0002b int f1 23 f1 ff ff ff ff ff 0x7ffffffffffff123 + 7f + 17 0x00034 int 81 10 0x10 + 18 0x00036 word 38 6d 75 6c mul + 7 19 0x0003a int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 20 0x00043 int 81 ff -1 + 21 0x00045 word 38 6d 75 6c mul diff --git a/tests/0027_mul/code1.log.ref b/tests/0027_mul/code1.log.ref new file mode 100644 index 0000000..5208294 --- /dev/null +++ b/tests/0027_mul/code1.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 81 1e 30 + 3 0x0000c word 38 6d 75 6c mul + 2 4 0x00010 int 81 64 100 + 5 0x00012 int 81 ec -20 + 6 0x00014 xref 84 08 mul + 3 7 0x00016 bool 12 true + 8 0x00017 bool 12 true + 9 0x00018 xref 84 0c mul + 4 10 0x0001a bool 12 true + 11 0x0001b bool 02 false + 12 0x0001c xref 84 10 mul + 5 13 0x0001e bool 12 true + 14 0x0001f int 81 09 9 + 15 0x00021 xref 84 15 mul + 6 16 0x00023 int f1 23 f1 ff ff ff ff ff 0x7ffffffffffff123 + 7f + 17 0x0002c int 81 10 0x10 + 18 0x0002e xref 84 22 mul + 7 19 0x00030 int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 20 0x00039 int 81 ff -1 + 21 0x0003b xref 84 2f mul diff --git a/tests/0027_mul/code2.log.ref b/tests/0027_mul/code2.log.ref new file mode 100644 index 0000000..da27c35 --- /dev/null +++ b/tests/0027_mul/code2.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 81 1e 30 + 3 0x0000c prim 83 20 mul + 2 4 0x0000e int 81 64 100 + 5 0x00010 int 81 ec -20 + 6 0x00012 prim 83 20 mul + 3 7 0x00014 bool 12 true + 8 0x00015 bool 12 true + 9 0x00016 prim 83 20 mul + 4 10 0x00018 bool 12 true + 11 0x00019 bool 02 false + 12 0x0001a prim 83 20 mul + 5 13 0x0001c bool 12 true + 14 0x0001d int 81 09 9 + 15 0x0001f prim 83 20 mul + 6 16 0x00021 int f1 23 f1 ff ff ff ff ff 0x7ffffffffffff123 + 7f + 17 0x0002a int 81 10 0x10 + 18 0x0002c prim 83 20 mul + 7 19 0x0002e int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 20 0x00037 int 81 ff -1 + 21 0x00039 prim 83 20 mul diff --git a/tests/0027_mul/main.gs b/tests/0027_mul/main.gs new file mode 100644 index 0000000..f122af5 --- /dev/null +++ b/tests/0027_mul/main.gs @@ -0,0 +1,7 @@ +100 30 mul +100 -20 mul +true true mul +true false mul +true 9 mul +0x7ffffffffffff123 0x10 mul +-0x8000000000000000 -1 mul diff --git a/tests/0027_mul/mem.log.ref b/tests/0027_mul/mem.log.ref new file mode 100644 index 0000000..f3ad33c --- /dev/null +++ b/tests/0027_mul/mem.log.ref @@ -0,0 +1,769 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 76] + 8: 187.01, 0x001d6ac0[ 72] + 9: 188.01, 0x001d6b10[ 56] + 10: 192.01, 0x001d6b50[ 72] + 11: 0.00, 0x001d6ba0[14849120] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 64 81 1e 38 6d 75 6c uQ..Bz.`.d..8mul + 81 64 81 ec 38 6d 75 6c 12 12 38 6d 75 6c 12 02 .d..8mul..8mul.. + 38 6d 75 6c 12 81 09 38 6d 75 6c f1 23 f1 ff ff 8mul...8mul.#... + ff ff ff 7f 81 10 38 6d 75 6c f1 00 00 00 00 00 ......8mul...... + 00 00 80 81 ff 38 6d 75 6c .....8mul + #187.1.1.array + [ 0] #191.1.1.num.int <3000 (0xbb8)> + [ 1] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [ 2] #198.1.1.num.bool <1 (0x1)> + [ 3] #201.1.1.num.bool <0 (0x0)> + [ 4] #204.1.1.num.bool <1 (0x1)> + [ 5] #207.1.1.num.int <-60880 (0xffffffffffff1230)> + [ 6] #210.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + #188.1.1.ctx.func + type 17, ip 0x49 (0x49) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.int <3000 (0xbb8)> + #192.1.1.array + #195.1.1.num.int <-2000 (0xfffffffffffff830)> + #198.1.1.num.bool <1 (0x1)> + #201.1.1.num.bool <0 (0x0)> + #204.1.1.num.bool <1 (0x1)> + #207.1.1.num.int <-60880 (0xffffffffffff1230)> + #210.1.1.num.int <-9223372036854775808 (0x8000000000000000)> diff --git a/tests/0027_mul/screen.log.ref b/tests/0027_mul/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0027_mul/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0027_mul/trace.log.ref b/tests/0027_mul/trace.log.ref new file mode 100644 index 0000000..64926f3 --- /dev/null +++ b/tests/0027_mul/trace.log.ref @@ -0,0 +1,194 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <100 (0x64)> +IP: #186:0xa, type 1, 30 (0x1e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <30 (0x1e)> + [1] #189.1.1.num.int <100 (0x64)> +IP: #186:0xc, type 8, 13[3] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x10, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <100 (0x64)> + [1] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x12, type 1, -20 (0xffffffffffffffec) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <-20 (0xffffffffffffffec)> + [1] #193.1.1.num.int <100 (0x64)> + [2] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x14, type 8, 21[3] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [1] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x18, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [2] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x19, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.bool <1 (0x1)> + [1] #196.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [3] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x1a, type 8, 27[3] +GC: --#197.1.1.num.bool +GC: --#196.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [2] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x1e, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.bool <1 (0x1)> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [3] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x1f, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.bool <0 (0x0)> + [1] #199.1.1.num.bool <1 (0x1)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [4] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x20, type 8, 33[3] +GC: --#200.1.1.num.bool +GC: --#199.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [3] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x24, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.bool <1 (0x1)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [4] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x25, type 1, 9 (0x9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <9 (0x9)> + [1] #202.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [5] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x27, type 8, 40[3] +GC: --#203.1.1.num.int +GC: --#202.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.bool <1 (0x1)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [4] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x2b, type 1, 9223372036854772003 (0x7ffffffffffff123) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <9223372036854772003 (0x7ffffffffffff123)> + [1] #204.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [5] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x34, type 1, 16 (0x10) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <16 (0x10)> + [1] #205.1.1.num.int <9223372036854772003 (0x7ffffffffffff123)> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [6] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x36, type 8, 55[3] +GC: --#206.1.1.num.int +GC: --#205.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <-60880 (0xffffffffffff1230)> + [1] #204.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [5] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x3a, type 1, -9223372036854775808 (0x8000000000000000) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #207.1.1.num.int <-60880 (0xffffffffffff1230)> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [6] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x43, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #208.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #207.1.1.num.int <-60880 (0xffffffffffff1230)> + [3] #204.1.1.num.bool <1 (0x1)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [7] #191.1.1.num.int <3000 (0xbb8)> +IP: #186:0x45, type 8, 70[3] +GC: --#209.1.1.num.int +GC: --#208.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #207.1.1.num.int <-60880 (0xffffffffffff1230)> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.int <-2000 (0xfffffffffffff830)> + [6] #191.1.1.num.int <3000 (0xbb8)> diff --git a/tests/0028_div/basic.log.ref b/tests/0028_div/basic.log.ref new file mode 100644 index 0000000..fdb8ee6 --- /dev/null +++ b/tests/0028_div/basic.log.ref @@ -0,0 +1,1369 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <7 (0x7)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-20 (0xffffffffffffffec)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <7 (0x7)> + [1] #xxxx.1.1.num.int <-20 (0xffffffffffffffec)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-7 (0xfffffffffffffff9)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #xxxx.1.1.num.int <2 (0x2)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-20 (0xffffffffffffffec)> + [1] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #xxxx.1.1.num.int <2 (0x2)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-7 (0xfffffffffffffff9)> + [1] #xxxx.1.1.num.int <-20 (0xffffffffffffffec)> + [2] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #xxxx.1.1.num.int <2 (0x2)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #xxxx.1.1.num.int <2 (0x2)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30055 (0x7567)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #xxxx.1.1.num.int <2 (0x2)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <30055 (0x7567)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #xxxx.1.1.num.int <2 (0x2)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #xxxx.1.1.num.int <2 (0x2)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-30055 (0xffffffffffff8a99)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #xxxx.1.1.num.int <2 (0x2)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <-30055 (0xffffffffffff8a99)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.num.int <2 (0x2)> + [4] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #xxxx.1.1.num.int <2 (0x2)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.num.int <2 (0x2)> + [3] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #xxxx.1.1.num.int <2 (0x2)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30055 (0x7567)> + [1] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.num.int <2 (0x2)> + [4] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #xxxx.1.1.num.int <2 (0x2)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-100 (0xffffffffffffff9c)> + [1] #xxxx.1.1.num.int <30055 (0x7567)> + [2] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.num.int <2 (0x2)> + [5] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #xxxx.1.1.num.int <2 (0x2)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [1] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.num.int <2 (0x2)> + [4] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #xxxx.1.1.num.int <2 (0x2)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-30055 (0xffffffffffff8a99)> + [1] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [2] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.num.int <2 (0x2)> + [5] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #xxxx.1.1.num.int <2 (0x2)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-100 (0xffffffffffffff9c)> + [1] #xxxx.1.1.num.int <-30055 (0xffffffffffff8a99)> + [2] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #xxxx.1.1.num.int <300 (0x12c)> + [5] #xxxx.1.1.num.int <2 (0x2)> + [6] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #xxxx.1.1.num.int <2 (0x2)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [2] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.num.int <2 (0x2)> + [5] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #xxxx.1.1.num.int <2 (0x2)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #xxxx.1.1.num.int <300 (0x12c)> + [5] #xxxx.1.1.num.int <2 (0x2)> + [6] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #xxxx.1.1.num.int <2 (0x2)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <23054198967 (0x55e2328b7)> + [1] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #xxxx.1.1.num.int <300 (0x12c)> + [6] #xxxx.1.1.num.int <2 (0x2)> + [7] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #xxxx.1.1.num.int <2 (0x2)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <56899329 (0x3643701)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #xxxx.1.1.num.int <300 (0x12c)> + [5] #xxxx.1.1.num.int <2 (0x2)> + [6] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #xxxx.1.1.num.int <2 (0x2)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #xxxx.1.1.num.int <56899329 (0x3643701)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #xxxx.1.1.num.int <300 (0x12c)> + [6] #xxxx.1.1.num.int <2 (0x2)> + [7] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #xxxx.1.1.num.int <2 (0x2)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <23054198967 (0x55e2328b7)> + [1] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #xxxx.1.1.num.int <56899329 (0x3643701)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #xxxx.1.1.num.int <300 (0x12c)> + [7] #xxxx.1.1.num.int <2 (0x2)> + [8] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #xxxx.1.1.num.int <2 (0x2)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [1] #xxxx.1.1.num.int <56899329 (0x3643701)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #xxxx.1.1.num.int <300 (0x12c)> + [6] #xxxx.1.1.num.int <2 (0x2)> + [7] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #xxxx.1.1.num.int <2 (0x2)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [2] #xxxx.1.1.num.int <56899329 (0x3643701)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #xxxx.1.1.num.int <300 (0x12c)> + [7] #xxxx.1.1.num.int <2 (0x2)> + [8] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #xxxx.1.1.num.int <2 (0x2)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-23054198967 (0xfffffffaa1dcd749)> + [1] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #xxxx.1.1.num.int <56899329 (0x3643701)> + [4] #xxxx.1.1.num.int <300 (0x12c)> + [5] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #xxxx.1.1.num.int <300 (0x12c)> + [8] #xxxx.1.1.num.int <2 (0x2)> + [9] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #xxxx.1.1.num.int <2 (0x2)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [1] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [2] #xxxx.1.1.num.int <56899329 (0x3643701)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #xxxx.1.1.num.int <300 (0x12c)> + [7] #xxxx.1.1.num.int <2 (0x2)> + [8] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #xxxx.1.1.num.int <2 (0x2)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [2] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #xxxx.1.1.num.int <56899329 (0x3643701)> + [4] #xxxx.1.1.num.int <300 (0x12c)> + [5] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #xxxx.1.1.num.int <300 (0x12c)> + [8] #xxxx.1.1.num.int <2 (0x2)> + [9] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #xxxx.1.1.num.int <2 (0x2)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-23054198967 (0xfffffffaa1dcd749)> + [1] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #xxxx.1.1.num.int <56899329 (0x3643701)> + [5] #xxxx.1.1.num.int <300 (0x12c)> + [6] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #xxxx.1.1.num.int <300 (0x12c)> + [9] #xxxx.1.1.num.int <2 (0x2)> + [10] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #xxxx.1.1.num.int <2 (0x2)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <56899329 (0x3643701)> + [1] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [2] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #xxxx.1.1.num.int <56899329 (0x3643701)> + [4] #xxxx.1.1.num.int <300 (0x12c)> + [5] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #xxxx.1.1.num.int <300 (0x12c)> + [8] #xxxx.1.1.num.int <2 (0x2)> + [9] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #xxxx.1.1.num.int <2 (0x2)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #xxxx.1.1.num.int <56899329 (0x3643701)> + [2] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #xxxx.1.1.num.int <56899329 (0x3643701)> + [5] #xxxx.1.1.num.int <300 (0x12c)> + [6] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #xxxx.1.1.num.int <300 (0x12c)> + [9] #xxxx.1.1.num.int <2 (0x2)> + [10] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #xxxx.1.1.num.int <2 (0x2)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1193046 (0x123456)> + [1] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #xxxx.1.1.num.int <56899329 (0x3643701)> + [3] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #xxxx.1.1.num.int <56899329 (0x3643701)> + [6] #xxxx.1.1.num.int <300 (0x12c)> + [7] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #xxxx.1.1.num.int <300 (0x12c)> + [10] #xxxx.1.1.num.int <2 (0x2)> + [11] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #xxxx.1.1.num.int <2 (0x2)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [1] #xxxx.1.1.num.int <56899329 (0x3643701)> + [2] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #xxxx.1.1.num.int <56899329 (0x3643701)> + [5] #xxxx.1.1.num.int <300 (0x12c)> + [6] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #xxxx.1.1.num.int <300 (0x12c)> + [9] #xxxx.1.1.num.int <2 (0x2)> + [10] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #xxxx.1.1.num.int <2 (0x2)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [2] #xxxx.1.1.num.int <56899329 (0x3643701)> + [3] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #xxxx.1.1.num.int <56899329 (0x3643701)> + [6] #xxxx.1.1.num.int <300 (0x12c)> + [7] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #xxxx.1.1.num.int <300 (0x12c)> + [10] #xxxx.1.1.num.int <2 (0x2)> + [11] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #xxxx.1.1.num.int <2 (0x2)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1193046 (0x123456)> + [1] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [3] #xxxx.1.1.num.int <56899329 (0x3643701)> + [4] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #xxxx.1.1.num.int <56899329 (0x3643701)> + [7] #xxxx.1.1.num.int <300 (0x12c)> + [8] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #xxxx.1.1.num.int <300 (0x12c)> + [11] #xxxx.1.1.num.int <2 (0x2)> + [12] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #xxxx.1.1.num.int <2 (0x2)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [1] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [2] #xxxx.1.1.num.int <56899329 (0x3643701)> + [3] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #xxxx.1.1.num.int <56899329 (0x3643701)> + [6] #xxxx.1.1.num.int <300 (0x12c)> + [7] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #xxxx.1.1.num.int <300 (0x12c)> + [10] #xxxx.1.1.num.int <2 (0x2)> + [11] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #xxxx.1.1.num.int <2 (0x2)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [2] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [3] #xxxx.1.1.num.int <56899329 (0x3643701)> + [4] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #xxxx.1.1.num.int <56899329 (0x3643701)> + [7] #xxxx.1.1.num.int <300 (0x12c)> + [8] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #xxxx.1.1.num.int <300 (0x12c)> + [11] #xxxx.1.1.num.int <2 (0x2)> + [12] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #xxxx.1.1.num.int <2 (0x2)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1193046 (0xffffffffffedcbaa)> + [1] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [4] #xxxx.1.1.num.int <56899329 (0x3643701)> + [5] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #xxxx.1.1.num.int <56899329 (0x3643701)> + [8] #xxxx.1.1.num.int <300 (0x12c)> + [9] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #xxxx.1.1.num.int <300 (0x12c)> + [12] #xxxx.1.1.num.int <2 (0x2)> + [13] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #xxxx.1.1.num.int <2 (0x2)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [1] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [2] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [3] #xxxx.1.1.num.int <56899329 (0x3643701)> + [4] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #xxxx.1.1.num.int <56899329 (0x3643701)> + [7] #xxxx.1.1.num.int <300 (0x12c)> + [8] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #xxxx.1.1.num.int <300 (0x12c)> + [11] #xxxx.1.1.num.int <2 (0x2)> + [12] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #xxxx.1.1.num.int <2 (0x2)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [2] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [4] #xxxx.1.1.num.int <56899329 (0x3643701)> + [5] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #xxxx.1.1.num.int <56899329 (0x3643701)> + [8] #xxxx.1.1.num.int <300 (0x12c)> + [9] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #xxxx.1.1.num.int <300 (0x12c)> + [12] #xxxx.1.1.num.int <2 (0x2)> + [13] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #xxxx.1.1.num.int <2 (0x2)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1193046 (0xffffffffffedcbaa)> + [1] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [5] #xxxx.1.1.num.int <56899329 (0x3643701)> + [6] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #xxxx.1.1.num.int <56899329 (0x3643701)> + [9] #xxxx.1.1.num.int <300 (0x12c)> + [10] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #xxxx.1.1.num.int <300 (0x12c)> + [13] #xxxx.1.1.num.int <2 (0x2)> + [14] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #xxxx.1.1.num.int <2 (0x2)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [1] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [2] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [4] #xxxx.1.1.num.int <56899329 (0x3643701)> + [5] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #xxxx.1.1.num.int <56899329 (0x3643701)> + [8] #xxxx.1.1.num.int <300 (0x12c)> + [9] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #xxxx.1.1.num.int <300 (0x12c)> + [12] #xxxx.1.1.num.int <2 (0x2)> + [13] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #xxxx.1.1.num.int <2 (0x2)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [2] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [5] #xxxx.1.1.num.int <56899329 (0x3643701)> + [6] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #xxxx.1.1.num.int <56899329 (0x3643701)> + [9] #xxxx.1.1.num.int <300 (0x12c)> + [10] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #xxxx.1.1.num.int <300 (0x12c)> + [13] #xxxx.1.1.num.int <2 (0x2)> + [14] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #xxxx.1.1.num.int <2 (0x2)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [3] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [6] #xxxx.1.1.num.int <56899329 (0x3643701)> + [7] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #xxxx.1.1.num.int <56899329 (0x3643701)> + [10] #xxxx.1.1.num.int <300 (0x12c)> + [11] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #xxxx.1.1.num.int <300 (0x12c)> + [14] #xxxx.1.1.num.int <2 (0x2)> + [15] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #xxxx.1.1.num.int <2 (0x2)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [2] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [5] #xxxx.1.1.num.int <56899329 (0x3643701)> + [6] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #xxxx.1.1.num.int <56899329 (0x3643701)> + [9] #xxxx.1.1.num.int <300 (0x12c)> + [10] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #xxxx.1.1.num.int <300 (0x12c)> + [13] #xxxx.1.1.num.int <2 (0x2)> + [14] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #xxxx.1.1.num.int <2 (0x2)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [3] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [6] #xxxx.1.1.num.int <56899329 (0x3643701)> + [7] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #xxxx.1.1.num.int <56899329 (0x3643701)> + [10] #xxxx.1.1.num.int <300 (0x12c)> + [11] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #xxxx.1.1.num.int <300 (0x12c)> + [14] #xxxx.1.1.num.int <2 (0x2)> + [15] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #xxxx.1.1.num.int <2 (0x2)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [4] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [7] #xxxx.1.1.num.int <56899329 (0x3643701)> + [8] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #xxxx.1.1.num.int <56899329 (0x3643701)> + [11] #xxxx.1.1.num.int <300 (0x12c)> + [12] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #xxxx.1.1.num.int <300 (0x12c)> + [15] #xxxx.1.1.num.int <2 (0x2)> + [16] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #xxxx.1.1.num.int <2 (0x2)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [3] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [6] #xxxx.1.1.num.int <56899329 (0x3643701)> + [7] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #xxxx.1.1.num.int <56899329 (0x3643701)> + [10] #xxxx.1.1.num.int <300 (0x12c)> + [11] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #xxxx.1.1.num.int <300 (0x12c)> + [14] #xxxx.1.1.num.int <2 (0x2)> + [15] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #xxxx.1.1.num.int <2 (0x2)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.bool <1 (0x1)> + [1] #xxxx.2.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [4] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [7] #xxxx.1.1.num.int <56899329 (0x3643701)> + [8] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #xxxx.1.1.num.int <56899329 (0x3643701)> + [11] #xxxx.1.1.num.int <300 (0x12c)> + [12] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #xxxx.1.1.num.int <300 (0x12c)> + [15] #xxxx.1.1.num.int <2 (0x2)> + [16] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #xxxx.1.1.num.int <2 (0x2)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <9 (0x9)> + [1] #xxxx.2.1.num.bool <1 (0x1)> + [2] #xxxx.2.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [5] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [7] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [8] #xxxx.1.1.num.int <56899329 (0x3643701)> + [9] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [11] #xxxx.1.1.num.int <56899329 (0x3643701)> + [12] #xxxx.1.1.num.int <300 (0x12c)> + [13] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [15] #xxxx.1.1.num.int <300 (0x12c)> + [16] #xxxx.1.1.num.int <2 (0x2)> + [17] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #xxxx.1.1.num.int <2 (0x2)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.bool <1 (0x1)> + [1] #xxxx.2.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [4] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [7] #xxxx.1.1.num.int <56899329 (0x3643701)> + [8] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #xxxx.1.1.num.int <56899329 (0x3643701)> + [11] #xxxx.1.1.num.int <300 (0x12c)> + [12] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #xxxx.1.1.num.int <300 (0x12c)> + [15] #xxxx.1.1.num.int <2 (0x2)> + [16] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #xxxx.1.1.num.int <2 (0x2)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-9223372036854775807 (0x8000000000000001)> + [1] #xxxx.2.1.num.bool <1 (0x1)> + [2] #xxxx.2.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [5] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [7] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [8] #xxxx.1.1.num.int <56899329 (0x3643701)> + [9] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [11] #xxxx.1.1.num.int <56899329 (0x3643701)> + [12] #xxxx.1.1.num.int <300 (0x12c)> + [13] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [15] #xxxx.1.1.num.int <300 (0x12c)> + [16] #xxxx.1.1.num.int <2 (0x2)> + [17] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #xxxx.1.1.num.int <2 (0x2)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.2.1.num.int <-9223372036854775807 (0x8000000000000001)> + [2] #xxxx.2.1.num.bool <1 (0x1)> + [3] #xxxx.2.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [6] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [7] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [8] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [9] #xxxx.1.1.num.int <56899329 (0x3643701)> + [10] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [11] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [12] #xxxx.1.1.num.int <56899329 (0x3643701)> + [13] #xxxx.1.1.num.int <300 (0x12c)> + [14] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [15] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [16] #xxxx.1.1.num.int <300 (0x12c)> + [17] #xxxx.1.1.num.int <2 (0x2)> + [18] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [20] #xxxx.1.1.num.int <2 (0x2)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #xxxx.1.1.num.int <0 (0x0)> + [25] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #xxxx.2.1.num.bool <1 (0x1)> + [2] #xxxx.2.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [5] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [7] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [8] #xxxx.1.1.num.int <56899329 (0x3643701)> + [9] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [11] #xxxx.1.1.num.int <56899329 (0x3643701)> + [12] #xxxx.1.1.num.int <300 (0x12c)> + [13] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [15] #xxxx.1.1.num.int <300 (0x12c)> + [16] #xxxx.1.1.num.int <2 (0x2)> + [17] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #xxxx.1.1.num.int <2 (0x2)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #xxxx.2.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #xxxx.2.1.num.bool <1 (0x1)> + [3] #xxxx.2.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [6] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [7] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [8] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [9] #xxxx.1.1.num.int <56899329 (0x3643701)> + [10] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [11] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [12] #xxxx.1.1.num.int <56899329 (0x3643701)> + [13] #xxxx.1.1.num.int <300 (0x12c)> + [14] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [15] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [16] #xxxx.1.1.num.int <300 (0x12c)> + [17] #xxxx.1.1.num.int <2 (0x2)> + [18] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [20] #xxxx.1.1.num.int <2 (0x2)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #xxxx.1.1.num.int <0 (0x0)> + [25] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #xxxx.2.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [3] #xxxx.2.1.num.bool <1 (0x1)> + [4] #xxxx.2.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [7] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [8] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [9] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [10] #xxxx.1.1.num.int <56899329 (0x3643701)> + [11] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [12] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [13] #xxxx.1.1.num.int <56899329 (0x3643701)> + [14] #xxxx.1.1.num.int <300 (0x12c)> + [15] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [16] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [17] #xxxx.1.1.num.int <300 (0x12c)> + [18] #xxxx.1.1.num.int <2 (0x2)> + [19] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [20] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [21] #xxxx.1.1.num.int <2 (0x2)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #xxxx.1.1.num.int <0 (0x0)> + [25] #xxxx.1.1.num.int <0 (0x0)> + [26] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #xxxx.2.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [3] #xxxx.2.1.num.bool <1 (0x1)> + [4] #xxxx.2.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [7] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [8] #xxxx.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [9] #xxxx.1.1.num.int <1099512060032 (0x10000069880)> + [10] #xxxx.1.1.num.int <56899329 (0x3643701)> + [11] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [12] #xxxx.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [13] #xxxx.1.1.num.int <56899329 (0x3643701)> + [14] #xxxx.1.1.num.int <300 (0x12c)> + [15] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [16] #xxxx.1.1.num.int <-300 (0xfffffffffffffed4)> + [17] #xxxx.1.1.num.int <300 (0x12c)> + [18] #xxxx.1.1.num.int <2 (0x2)> + [19] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [20] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [21] #xxxx.1.1.num.int <2 (0x2)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #xxxx.1.1.num.int <0 (0x0)> + [25] #xxxx.1.1.num.int <0 (0x0)> + [26] #xxxx.1.1.num.int <0 (0x0)> +error 14 (div by zero), ip = #186 diff --git a/tests/0028_div/code.log.ref b/tests/0028_div/code.log.ref new file mode 100644 index 0000000..86d6c65 --- /dev/null +++ b/tests/0028_div/code.log.ref @@ -0,0 +1,95 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 79 entries (79 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 01 0 + 2 0x00009 int 11 1 + 3 0x0000a word 38 64 69 76 div + 2 4 0x0000e int 11 1 + 5 0x0000f int 21 2 + 6 0x00010 word 38 64 69 76 div + 3 7 0x00014 int 81 ff -1 + 8 0x00016 int 21 2 + 9 0x00017 word 38 64 69 76 div + 4 10 0x0001b int 11 1 + 11 0x0001c int 81 fe -2 + 12 0x0001e word 38 64 69 76 div + 5 13 0x00022 int 81 ff -1 + 14 0x00024 int 81 fe -2 + 15 0x00026 word 38 64 69 76 div + 6 16 0x0002a int 81 14 20 + 17 0x0002c int 71 7 + 18 0x0002d word 38 64 69 76 div + 7 19 0x00031 int 81 ec -20 + 20 0x00033 int 71 7 + 21 0x00034 word 38 64 69 76 div + 8 22 0x00038 int 81 14 20 + 23 0x0003a int 81 f9 -7 + 24 0x0003c word 38 64 69 76 div + 9 25 0x00040 int 81 ec -20 + 26 0x00042 int 81 f9 -7 + 27 0x00044 word 38 64 69 76 div + 10 28 0x00048 int 91 67 75 30055 + 29 0x0004b int 81 64 100 + 30 0x0004d word 38 64 69 76 div + 11 31 0x00051 int 91 99 8a -30055 + 32 0x00054 int 81 64 100 + 33 0x00056 word 38 64 69 76 div + 12 34 0x0005a int 91 67 75 30055 + 35 0x0005d int 81 9c -100 + 36 0x0005f word 38 64 69 76 div + 13 37 0x00063 int 91 99 8a -30055 + 38 0x00066 int 81 9c -100 + 39 0x00068 word 38 64 69 76 div + 14 40 0x0006c int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 41 0x00075 int c1 b7 28 23 5e 05 23054198967 + 42 0x0007b word 38 64 69 76 div + 15 43 0x0007f int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 44 0x00088 int c1 b7 28 23 5e 05 23054198967 + 45 0x0008e word 38 64 69 76 div + 16 46 0x00092 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 47 0x0009b int c1 49 d7 dc a1 fa -23054198967 + 48 0x000a1 word 38 64 69 76 div + 17 49 0x000a5 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 50 0x000ae int c1 49 d7 dc a1 fa -23054198967 + 51 0x000b4 word 38 64 69 76 div + 18 52 0x000b8 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 53 0x000c1 int a1 56 34 12 1193046 + 54 0x000c5 word 38 64 69 76 div + 19 55 0x000c9 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 56 0x000d2 int a1 56 34 12 1193046 + 57 0x000d6 word 38 64 69 76 div + 20 58 0x000da int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 59 0x000e3 int a1 aa cb ed -1193046 + 60 0x000e7 word 38 64 69 76 div + 21 61 0x000eb int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 62 0x000f4 int a1 aa cb ed -1193046 + 63 0x000f8 word 38 64 69 76 div + 22 64 0x000fc bool 12 true + 65 0x000fd bool 12 true + 66 0x000fe word 38 64 69 76 div + 23 67 0x00102 bool 02 false + 68 0x00103 bool 12 true + 69 0x00104 word 38 64 69 76 div + 24 70 0x00108 bool 12 true + 71 0x00109 int 81 09 9 + 72 0x0010b word 38 64 69 76 div + 25 73 0x0010f int f1 01 00 00 00 00 00 00 -0x7fffffffffffffff + 80 + 74 0x00118 int 81 ff -1 + 75 0x0011a word 38 64 69 76 div + 26 76 0x0011e int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 77 0x00127 int 81 ff -1 + 78 0x00129 word 38 64 69 76 div diff --git a/tests/0028_div/code1.log.ref b/tests/0028_div/code1.log.ref new file mode 100644 index 0000000..37a3d6c --- /dev/null +++ b/tests/0028_div/code1.log.ref @@ -0,0 +1,95 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 79 entries (79 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 01 0 + 2 0x00009 int 11 1 + 3 0x0000a word 38 64 69 76 div + 2 4 0x0000e int 11 1 + 5 0x0000f int 21 2 + 6 0x00010 xref 64 div + 3 7 0x00011 int 81 ff -1 + 8 0x00013 int 21 2 + 9 0x00014 xref 84 0a div + 4 10 0x00016 int 11 1 + 11 0x00017 int 81 fe -2 + 12 0x00019 xref 84 0f div + 5 13 0x0001b int 81 ff -1 + 14 0x0001d int 81 fe -2 + 15 0x0001f xref 84 15 div + 6 16 0x00021 int 81 14 20 + 17 0x00023 int 71 7 + 18 0x00024 xref 84 1a div + 7 19 0x00026 int 81 ec -20 + 20 0x00028 int 71 7 + 21 0x00029 xref 84 1f div + 8 22 0x0002b int 81 14 20 + 23 0x0002d int 81 f9 -7 + 24 0x0002f xref 84 25 div + 9 25 0x00031 int 81 ec -20 + 26 0x00033 int 81 f9 -7 + 27 0x00035 xref 84 2b div + 10 28 0x00037 int 91 67 75 30055 + 29 0x0003a int 81 64 100 + 30 0x0003c xref 84 32 div + 11 31 0x0003e int 91 99 8a -30055 + 32 0x00041 int 81 64 100 + 33 0x00043 xref 84 39 div + 12 34 0x00045 int 91 67 75 30055 + 35 0x00048 int 81 9c -100 + 36 0x0004a xref 84 40 div + 13 37 0x0004c int 91 99 8a -30055 + 38 0x0004f int 81 9c -100 + 39 0x00051 xref 84 47 div + 14 40 0x00053 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 41 0x0005c int c1 b7 28 23 5e 05 23054198967 + 42 0x00062 xref 84 58 div + 15 43 0x00064 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 44 0x0006d int c1 b7 28 23 5e 05 23054198967 + 45 0x00073 xref 84 69 div + 16 46 0x00075 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 47 0x0007e int c1 49 d7 dc a1 fa -23054198967 + 48 0x00084 xref 84 7a div + 17 49 0x00086 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 50 0x0008f int c1 49 d7 dc a1 fa -23054198967 + 51 0x00095 xref 84 8b div + 18 52 0x00097 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 53 0x000a0 int a1 56 34 12 1193046 + 54 0x000a4 xref 84 9a div + 19 55 0x000a6 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 56 0x000af int a1 56 34 12 1193046 + 57 0x000b3 xref 84 a9 div + 20 58 0x000b5 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 59 0x000be int a1 aa cb ed -1193046 + 60 0x000c2 xref 84 b8 div + 21 61 0x000c4 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 62 0x000cd int a1 aa cb ed -1193046 + 63 0x000d1 xref 84 c7 div + 22 64 0x000d3 bool 12 true + 65 0x000d4 bool 12 true + 66 0x000d5 xref 84 cb div + 23 67 0x000d7 bool 02 false + 68 0x000d8 bool 12 true + 69 0x000d9 xref 84 cf div + 24 70 0x000db bool 12 true + 71 0x000dc int 81 09 9 + 72 0x000de xref 84 d4 div + 25 73 0x000e0 int f1 01 00 00 00 00 00 00 -0x7fffffffffffffff + 80 + 74 0x000e9 int 81 ff -1 + 75 0x000eb xref 84 e1 div + 26 76 0x000ed int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 77 0x000f6 int 81 ff -1 + 78 0x000f8 xref 84 ee div diff --git a/tests/0028_div/code2.log.ref b/tests/0028_div/code2.log.ref new file mode 100644 index 0000000..3f0e4e6 --- /dev/null +++ b/tests/0028_div/code2.log.ref @@ -0,0 +1,95 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 79 entries (79 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 01 0 + 2 0x00009 int 11 1 + 3 0x0000a prim 83 21 div + 2 4 0x0000c int 11 1 + 5 0x0000d int 21 2 + 6 0x0000e prim 83 21 div + 3 7 0x00010 int 81 ff -1 + 8 0x00012 int 21 2 + 9 0x00013 prim 83 21 div + 4 10 0x00015 int 11 1 + 11 0x00016 int 81 fe -2 + 12 0x00018 prim 83 21 div + 5 13 0x0001a int 81 ff -1 + 14 0x0001c int 81 fe -2 + 15 0x0001e prim 83 21 div + 6 16 0x00020 int 81 14 20 + 17 0x00022 int 71 7 + 18 0x00023 prim 83 21 div + 7 19 0x00025 int 81 ec -20 + 20 0x00027 int 71 7 + 21 0x00028 prim 83 21 div + 8 22 0x0002a int 81 14 20 + 23 0x0002c int 81 f9 -7 + 24 0x0002e prim 83 21 div + 9 25 0x00030 int 81 ec -20 + 26 0x00032 int 81 f9 -7 + 27 0x00034 prim 83 21 div + 10 28 0x00036 int 91 67 75 30055 + 29 0x00039 int 81 64 100 + 30 0x0003b prim 83 21 div + 11 31 0x0003d int 91 99 8a -30055 + 32 0x00040 int 81 64 100 + 33 0x00042 prim 83 21 div + 12 34 0x00044 int 91 67 75 30055 + 35 0x00047 int 81 9c -100 + 36 0x00049 prim 83 21 div + 13 37 0x0004b int 91 99 8a -30055 + 38 0x0004e int 81 9c -100 + 39 0x00050 prim 83 21 div + 14 40 0x00052 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 41 0x0005b int c1 b7 28 23 5e 05 23054198967 + 42 0x00061 prim 83 21 div + 15 43 0x00063 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 44 0x0006c int c1 b7 28 23 5e 05 23054198967 + 45 0x00072 prim 83 21 div + 16 46 0x00074 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 47 0x0007d int c1 49 d7 dc a1 fa -23054198967 + 48 0x00083 prim 83 21 div + 17 49 0x00085 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 50 0x0008e int c1 49 d7 dc a1 fa -23054198967 + 51 0x00094 prim 83 21 div + 18 52 0x00096 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 53 0x0009f int a1 56 34 12 1193046 + 54 0x000a3 prim 83 21 div + 19 55 0x000a5 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 56 0x000ae int a1 56 34 12 1193046 + 57 0x000b2 prim 83 21 div + 20 58 0x000b4 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 59 0x000bd int a1 aa cb ed -1193046 + 60 0x000c1 prim 83 21 div + 21 61 0x000c3 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 62 0x000cc int a1 aa cb ed -1193046 + 63 0x000d0 prim 83 21 div + 22 64 0x000d2 bool 12 true + 65 0x000d3 bool 12 true + 66 0x000d4 prim 83 21 div + 23 67 0x000d6 bool 02 false + 68 0x000d7 bool 12 true + 69 0x000d8 prim 83 21 div + 24 70 0x000da bool 12 true + 71 0x000db int 81 09 9 + 72 0x000dd prim 83 21 div + 25 73 0x000df int f1 01 00 00 00 00 00 00 -0x7fffffffffffffff + 80 + 74 0x000e8 int 81 ff -1 + 75 0x000ea prim 83 21 div + 26 76 0x000ec int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 77 0x000f5 int 81 ff -1 + 78 0x000f7 prim 83 21 div diff --git a/tests/0028_div/main.gs b/tests/0028_div/main.gs new file mode 100644 index 0000000..f5d10e7 --- /dev/null +++ b/tests/0028_div/main.gs @@ -0,0 +1,26 @@ +0 1 div +1 2 div +-1 2 div +1 -2 div +-1 -2 div +20 7 div +-20 7 div +20 -7 div +-20 -7 div +30055 100 div +-30055 100 div +30055 -100 div +-30055 -100 div +1311768465173141119 23054198967 div +-1311768465173141119 23054198967 div +1311768465173141119 -23054198967 div +-1311768465173141119 -23054198967 div +1311768465173141119 1193046 div +-1311768465173141119 1193046 div +1311768465173141119 -1193046 div +-1311768465173141119 -1193046 div +true true div +false true div +true 9 div +-0x7fffffffffffffff -1 div +-0x8000000000000000 -1 div diff --git a/tests/0028_div/mem.log.ref b/tests/0028_div/mem.log.ref new file mode 100644 index 0000000..1a4c83d --- /dev/null +++ b/tests/0028_div/mem.log.ref @@ -0,0 +1,824 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 304] + 8: 0.00, 0x001d6ba4[ 72] + 9: 188.01, 0x001d6bf4[ 56] + 10: 192.01, 0x001d6c34[ 72] + 11: 187.01, 0x001d6c84[ 144] + 12: 0.00, 0x001d6d1c[14848740] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 01 11 38 64 69 76 11 21 uQ..Bz.`..8div.! + 38 64 69 76 81 ff 21 38 64 69 76 11 81 fe 38 64 8div..!8div...8d + 69 76 81 ff 81 fe 38 64 69 76 81 14 71 38 64 69 iv....8div..q8di + 76 81 ec 71 38 64 69 76 81 14 81 f9 38 64 69 76 v..q8div....8div + 81 ec 81 f9 38 64 69 76 91 67 75 81 64 38 64 69 ....8div.gu.d8di + 76 91 99 8a 81 64 38 64 69 76 91 67 75 81 9c 38 v....d8div.gu..8 + 64 69 76 91 99 8a 81 9c 38 64 69 76 f1 7f 56 34 div.....8div..V4 + 12 78 56 34 12 c1 b7 28 23 5e 05 38 64 69 76 f1 .xV4...(#^.8div. + 81 a9 cb ed 87 a9 cb ed c1 b7 28 23 5e 05 38 64 ..........(#^.8d + 69 76 f1 7f 56 34 12 78 56 34 12 c1 49 d7 dc a1 iv..V4.xV4..I... + fa 38 64 69 76 f1 81 a9 cb ed 87 a9 cb ed c1 49 .8div..........I + d7 dc a1 fa 38 64 69 76 f1 7f 56 34 12 78 56 34 ....8div..V4.xV4 + 12 a1 56 34 12 38 64 69 76 f1 81 a9 cb ed 87 a9 ..V4.8div....... + cb ed a1 56 34 12 38 64 69 76 f1 7f 56 34 12 78 ...V4.8div..V4.x + 56 34 12 a1 aa cb ed 38 64 69 76 f1 81 a9 cb ed V4.....8div..... + 87 a9 cb ed a1 aa cb ed 38 64 69 76 12 12 38 64 ........8div..8d + 69 76 02 12 38 64 69 76 12 81 09 38 64 69 76 f1 iv..8div...8div. + 01 00 00 00 00 00 00 80 81 ff 38 64 69 76 f1 00 ..........8div.. + 00 00 00 00 00 00 80 81 ff 38 64 69 76 .........8div + #187.1.1.array + [ 0] #191.1.1.num.int <0 (0x0)> + [ 1] #195.1.1.num.int <0 (0x0)> + [ 2] #198.1.1.num.int <0 (0x0)> + [ 3] #201.1.1.num.int <0 (0x0)> + [ 4] #204.1.1.num.int <0 (0x0)> + [ 5] #207.1.1.num.int <2 (0x2)> + [ 6] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [ 7] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [ 8] #216.1.1.num.int <2 (0x2)> + [ 9] #219.1.1.num.int <300 (0x12c)> + [10] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #228.1.1.num.int <300 (0x12c)> + [13] #231.1.1.num.int <56899329 (0x3643701)> + [14] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [15] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [16] #240.1.1.num.int <56899329 (0x3643701)> + [17] #243.1.1.num.int <1099512060032 (0x10000069880)> + [18] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [19] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [20] #252.1.1.num.int <1099512060032 (0x10000069880)> + [21] #255.1.1.num.bool <1 (0x1)> + [22] #189.2.1.num.bool <0 (0x0)> + [23] #194.2.1.num.bool <1 (0x1)> + [24] #199.2.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [25] #200.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [26] #202.2.1.num.int <-1 (0xffffffffffffffff)> + #188.1.1.ctx.func + type 17, ip 0x12d (0x129) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.2.1.num.bool <0 (0x0)> + #191.1.1.num.int <0 (0x0)> + #192.1.1.array + #194.2.1.num.bool <1 (0x1)> + #195.1.1.num.int <0 (0x0)> + #198.1.1.num.int <0 (0x0)> + #199.2.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + #200.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + #201.1.1.num.int <0 (0x0)> + #202.2.1.num.int <-1 (0xffffffffffffffff)> + #204.1.1.num.int <0 (0x0)> + #207.1.1.num.int <2 (0x2)> + #210.1.1.num.int <-2 (0xfffffffffffffffe)> + #213.1.1.num.int <-2 (0xfffffffffffffffe)> + #216.1.1.num.int <2 (0x2)> + #219.1.1.num.int <300 (0x12c)> + #222.1.1.num.int <-300 (0xfffffffffffffed4)> + #225.1.1.num.int <-300 (0xfffffffffffffed4)> + #228.1.1.num.int <300 (0x12c)> + #231.1.1.num.int <56899329 (0x3643701)> + #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + #240.1.1.num.int <56899329 (0x3643701)> + #243.1.1.num.int <1099512060032 (0x10000069880)> + #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + #252.1.1.num.int <1099512060032 (0x10000069880)> + #255.1.1.num.bool <1 (0x1)> diff --git a/tests/0028_div/screen.log.ref b/tests/0028_div/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0028_div/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0028_div/trace.log.ref b/tests/0028_div/trace.log.ref new file mode 100644 index 0000000..61bbb4a --- /dev/null +++ b/tests/0028_div/trace.log.ref @@ -0,0 +1,1448 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <0 (0x0)> +IP: #186:0x9, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <1 (0x1)> + [1] #189.1.1.num.int <0 (0x0)> +IP: #186:0xa, type 8, 11[3] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <0 (0x0)> +IP: #186:0xe, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <1 (0x1)> + [1] #191.1.1.num.int <0 (0x0)> +IP: #186:0xf, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <2 (0x2)> + [1] #193.1.1.num.int <1 (0x1)> + [2] #191.1.1.num.int <0 (0x0)> +IP: #186:0x10, type 8, 17[3] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <0 (0x0)> + [1] #191.1.1.num.int <0 (0x0)> +IP: #186:0x14, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #195.1.1.num.int <0 (0x0)> + [2] #191.1.1.num.int <0 (0x0)> +IP: #186:0x16, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <2 (0x2)> + [1] #196.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #195.1.1.num.int <0 (0x0)> + [3] #191.1.1.num.int <0 (0x0)> +IP: #186:0x17, type 8, 24[3] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <0 (0x0)> + [1] #195.1.1.num.int <0 (0x0)> + [2] #191.1.1.num.int <0 (0x0)> +IP: #186:0x1b, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <1 (0x1)> + [1] #198.1.1.num.int <0 (0x0)> + [2] #195.1.1.num.int <0 (0x0)> + [3] #191.1.1.num.int <0 (0x0)> +IP: #186:0x1c, type 1, -2 (0xfffffffffffffffe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #199.1.1.num.int <1 (0x1)> + [2] #198.1.1.num.int <0 (0x0)> + [3] #195.1.1.num.int <0 (0x0)> + [4] #191.1.1.num.int <0 (0x0)> +IP: #186:0x1e, type 8, 31[3] +GC: --#200.1.1.num.int +GC: --#199.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <0 (0x0)> + [1] #198.1.1.num.int <0 (0x0)> + [2] #195.1.1.num.int <0 (0x0)> + [3] #191.1.1.num.int <0 (0x0)> +IP: #186:0x22, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #201.1.1.num.int <0 (0x0)> + [2] #198.1.1.num.int <0 (0x0)> + [3] #195.1.1.num.int <0 (0x0)> + [4] #191.1.1.num.int <0 (0x0)> +IP: #186:0x24, type 1, -2 (0xfffffffffffffffe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #202.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #201.1.1.num.int <0 (0x0)> + [3] #198.1.1.num.int <0 (0x0)> + [4] #195.1.1.num.int <0 (0x0)> + [5] #191.1.1.num.int <0 (0x0)> +IP: #186:0x26, type 8, 39[3] +GC: --#203.1.1.num.int +GC: --#202.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <0 (0x0)> + [1] #201.1.1.num.int <0 (0x0)> + [2] #198.1.1.num.int <0 (0x0)> + [3] #195.1.1.num.int <0 (0x0)> + [4] #191.1.1.num.int <0 (0x0)> +IP: #186:0x2a, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <20 (0x14)> + [1] #204.1.1.num.int <0 (0x0)> + [2] #201.1.1.num.int <0 (0x0)> + [3] #198.1.1.num.int <0 (0x0)> + [4] #195.1.1.num.int <0 (0x0)> + [5] #191.1.1.num.int <0 (0x0)> +IP: #186:0x2c, type 1, 7 (0x7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <7 (0x7)> + [1] #205.1.1.num.int <20 (0x14)> + [2] #204.1.1.num.int <0 (0x0)> + [3] #201.1.1.num.int <0 (0x0)> + [4] #198.1.1.num.int <0 (0x0)> + [5] #195.1.1.num.int <0 (0x0)> + [6] #191.1.1.num.int <0 (0x0)> +IP: #186:0x2d, type 8, 46[3] +GC: --#206.1.1.num.int +GC: --#205.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <2 (0x2)> + [1] #204.1.1.num.int <0 (0x0)> + [2] #201.1.1.num.int <0 (0x0)> + [3] #198.1.1.num.int <0 (0x0)> + [4] #195.1.1.num.int <0 (0x0)> + [5] #191.1.1.num.int <0 (0x0)> +IP: #186:0x31, type 1, -20 (0xffffffffffffffec) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <-20 (0xffffffffffffffec)> + [1] #207.1.1.num.int <2 (0x2)> + [2] #204.1.1.num.int <0 (0x0)> + [3] #201.1.1.num.int <0 (0x0)> + [4] #198.1.1.num.int <0 (0x0)> + [5] #195.1.1.num.int <0 (0x0)> + [6] #191.1.1.num.int <0 (0x0)> +IP: #186:0x33, type 1, 7 (0x7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <7 (0x7)> + [1] #208.1.1.num.int <-20 (0xffffffffffffffec)> + [2] #207.1.1.num.int <2 (0x2)> + [3] #204.1.1.num.int <0 (0x0)> + [4] #201.1.1.num.int <0 (0x0)> + [5] #198.1.1.num.int <0 (0x0)> + [6] #195.1.1.num.int <0 (0x0)> + [7] #191.1.1.num.int <0 (0x0)> +IP: #186:0x34, type 8, 53[3] +GC: --#209.1.1.num.int +GC: --#208.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #207.1.1.num.int <2 (0x2)> + [2] #204.1.1.num.int <0 (0x0)> + [3] #201.1.1.num.int <0 (0x0)> + [4] #198.1.1.num.int <0 (0x0)> + [5] #195.1.1.num.int <0 (0x0)> + [6] #191.1.1.num.int <0 (0x0)> +IP: #186:0x38, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <20 (0x14)> + [1] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #207.1.1.num.int <2 (0x2)> + [3] #204.1.1.num.int <0 (0x0)> + [4] #201.1.1.num.int <0 (0x0)> + [5] #198.1.1.num.int <0 (0x0)> + [6] #195.1.1.num.int <0 (0x0)> + [7] #191.1.1.num.int <0 (0x0)> +IP: #186:0x3a, type 1, -7 (0xfffffffffffffff9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.int <-7 (0xfffffffffffffff9)> + [1] #211.1.1.num.int <20 (0x14)> + [2] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #207.1.1.num.int <2 (0x2)> + [4] #204.1.1.num.int <0 (0x0)> + [5] #201.1.1.num.int <0 (0x0)> + [6] #198.1.1.num.int <0 (0x0)> + [7] #195.1.1.num.int <0 (0x0)> + [8] #191.1.1.num.int <0 (0x0)> +IP: #186:0x3c, type 8, 61[3] +GC: --#212.1.1.num.int +GC: --#211.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #207.1.1.num.int <2 (0x2)> + [3] #204.1.1.num.int <0 (0x0)> + [4] #201.1.1.num.int <0 (0x0)> + [5] #198.1.1.num.int <0 (0x0)> + [6] #195.1.1.num.int <0 (0x0)> + [7] #191.1.1.num.int <0 (0x0)> +IP: #186:0x40, type 1, -20 (0xffffffffffffffec) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.num.int <-20 (0xffffffffffffffec)> + [1] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #207.1.1.num.int <2 (0x2)> + [4] #204.1.1.num.int <0 (0x0)> + [5] #201.1.1.num.int <0 (0x0)> + [6] #198.1.1.num.int <0 (0x0)> + [7] #195.1.1.num.int <0 (0x0)> + [8] #191.1.1.num.int <0 (0x0)> +IP: #186:0x42, type 1, -7 (0xfffffffffffffff9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <-7 (0xfffffffffffffff9)> + [1] #214.1.1.num.int <-20 (0xffffffffffffffec)> + [2] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #207.1.1.num.int <2 (0x2)> + [5] #204.1.1.num.int <0 (0x0)> + [6] #201.1.1.num.int <0 (0x0)> + [7] #198.1.1.num.int <0 (0x0)> + [8] #195.1.1.num.int <0 (0x0)> + [9] #191.1.1.num.int <0 (0x0)> +IP: #186:0x44, type 8, 69[3] +GC: --#215.1.1.num.int +GC: --#214.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <2 (0x2)> + [1] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [2] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #207.1.1.num.int <2 (0x2)> + [4] #204.1.1.num.int <0 (0x0)> + [5] #201.1.1.num.int <0 (0x0)> + [6] #198.1.1.num.int <0 (0x0)> + [7] #195.1.1.num.int <0 (0x0)> + [8] #191.1.1.num.int <0 (0x0)> +IP: #186:0x48, type 1, 30055 (0x7567) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <30055 (0x7567)> + [1] #216.1.1.num.int <2 (0x2)> + [2] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #207.1.1.num.int <2 (0x2)> + [5] #204.1.1.num.int <0 (0x0)> + [6] #201.1.1.num.int <0 (0x0)> + [7] #198.1.1.num.int <0 (0x0)> + [8] #195.1.1.num.int <0 (0x0)> + [9] #191.1.1.num.int <0 (0x0)> +IP: #186:0x4b, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.int <100 (0x64)> + [1] #217.1.1.num.int <30055 (0x7567)> + [2] #216.1.1.num.int <2 (0x2)> + [3] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #207.1.1.num.int <2 (0x2)> + [6] #204.1.1.num.int <0 (0x0)> + [7] #201.1.1.num.int <0 (0x0)> + [8] #198.1.1.num.int <0 (0x0)> + [9] #195.1.1.num.int <0 (0x0)> + [10] #191.1.1.num.int <0 (0x0)> +IP: #186:0x4d, type 8, 78[3] +GC: --#218.1.1.num.int +GC: --#217.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.int <300 (0x12c)> + [1] #216.1.1.num.int <2 (0x2)> + [2] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [3] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #207.1.1.num.int <2 (0x2)> + [5] #204.1.1.num.int <0 (0x0)> + [6] #201.1.1.num.int <0 (0x0)> + [7] #198.1.1.num.int <0 (0x0)> + [8] #195.1.1.num.int <0 (0x0)> + [9] #191.1.1.num.int <0 (0x0)> +IP: #186:0x51, type 1, -30055 (0xffffffffffff8a99) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.num.int <-30055 (0xffffffffffff8a99)> + [1] #219.1.1.num.int <300 (0x12c)> + [2] #216.1.1.num.int <2 (0x2)> + [3] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #207.1.1.num.int <2 (0x2)> + [6] #204.1.1.num.int <0 (0x0)> + [7] #201.1.1.num.int <0 (0x0)> + [8] #198.1.1.num.int <0 (0x0)> + [9] #195.1.1.num.int <0 (0x0)> + [10] #191.1.1.num.int <0 (0x0)> +IP: #186:0x54, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.int <100 (0x64)> + [1] #220.1.1.num.int <-30055 (0xffffffffffff8a99)> + [2] #219.1.1.num.int <300 (0x12c)> + [3] #216.1.1.num.int <2 (0x2)> + [4] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #207.1.1.num.int <2 (0x2)> + [7] #204.1.1.num.int <0 (0x0)> + [8] #201.1.1.num.int <0 (0x0)> + [9] #198.1.1.num.int <0 (0x0)> + [10] #195.1.1.num.int <0 (0x0)> + [11] #191.1.1.num.int <0 (0x0)> +IP: #186:0x56, type 8, 87[3] +GC: --#221.1.1.num.int +GC: --#220.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [1] #219.1.1.num.int <300 (0x12c)> + [2] #216.1.1.num.int <2 (0x2)> + [3] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [4] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #207.1.1.num.int <2 (0x2)> + [6] #204.1.1.num.int <0 (0x0)> + [7] #201.1.1.num.int <0 (0x0)> + [8] #198.1.1.num.int <0 (0x0)> + [9] #195.1.1.num.int <0 (0x0)> + [10] #191.1.1.num.int <0 (0x0)> +IP: #186:0x5a, type 1, 30055 (0x7567) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.num.int <30055 (0x7567)> + [1] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [2] #219.1.1.num.int <300 (0x12c)> + [3] #216.1.1.num.int <2 (0x2)> + [4] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #207.1.1.num.int <2 (0x2)> + [7] #204.1.1.num.int <0 (0x0)> + [8] #201.1.1.num.int <0 (0x0)> + [9] #198.1.1.num.int <0 (0x0)> + [10] #195.1.1.num.int <0 (0x0)> + [11] #191.1.1.num.int <0 (0x0)> +IP: #186:0x5d, type 1, -100 (0xffffffffffffff9c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.num.int <-100 (0xffffffffffffff9c)> + [1] #223.1.1.num.int <30055 (0x7567)> + [2] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #219.1.1.num.int <300 (0x12c)> + [4] #216.1.1.num.int <2 (0x2)> + [5] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #207.1.1.num.int <2 (0x2)> + [8] #204.1.1.num.int <0 (0x0)> + [9] #201.1.1.num.int <0 (0x0)> + [10] #198.1.1.num.int <0 (0x0)> + [11] #195.1.1.num.int <0 (0x0)> + [12] #191.1.1.num.int <0 (0x0)> +IP: #186:0x5f, type 8, 96[3] +GC: --#224.1.1.num.int +GC: --#223.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [1] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [2] #219.1.1.num.int <300 (0x12c)> + [3] #216.1.1.num.int <2 (0x2)> + [4] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [5] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #207.1.1.num.int <2 (0x2)> + [7] #204.1.1.num.int <0 (0x0)> + [8] #201.1.1.num.int <0 (0x0)> + [9] #198.1.1.num.int <0 (0x0)> + [10] #195.1.1.num.int <0 (0x0)> + [11] #191.1.1.num.int <0 (0x0)> +IP: #186:0x63, type 1, -30055 (0xffffffffffff8a99) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.int <-30055 (0xffffffffffff8a99)> + [1] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [2] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #219.1.1.num.int <300 (0x12c)> + [4] #216.1.1.num.int <2 (0x2)> + [5] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #207.1.1.num.int <2 (0x2)> + [8] #204.1.1.num.int <0 (0x0)> + [9] #201.1.1.num.int <0 (0x0)> + [10] #198.1.1.num.int <0 (0x0)> + [11] #195.1.1.num.int <0 (0x0)> + [12] #191.1.1.num.int <0 (0x0)> +IP: #186:0x66, type 1, -100 (0xffffffffffffff9c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <-100 (0xffffffffffffff9c)> + [1] #226.1.1.num.int <-30055 (0xffffffffffff8a99)> + [2] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #219.1.1.num.int <300 (0x12c)> + [5] #216.1.1.num.int <2 (0x2)> + [6] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #207.1.1.num.int <2 (0x2)> + [9] #204.1.1.num.int <0 (0x0)> + [10] #201.1.1.num.int <0 (0x0)> + [11] #198.1.1.num.int <0 (0x0)> + [12] #195.1.1.num.int <0 (0x0)> + [13] #191.1.1.num.int <0 (0x0)> +IP: #186:0x68, type 8, 105[3] +GC: --#227.1.1.num.int +GC: --#226.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <300 (0x12c)> + [1] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [2] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #219.1.1.num.int <300 (0x12c)> + [4] #216.1.1.num.int <2 (0x2)> + [5] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [6] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #207.1.1.num.int <2 (0x2)> + [8] #204.1.1.num.int <0 (0x0)> + [9] #201.1.1.num.int <0 (0x0)> + [10] #198.1.1.num.int <0 (0x0)> + [11] #195.1.1.num.int <0 (0x0)> + [12] #191.1.1.num.int <0 (0x0)> +IP: #186:0x6c, type 1, 1311768465173141119 (0x123456781234567f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #228.1.1.num.int <300 (0x12c)> + [2] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #219.1.1.num.int <300 (0x12c)> + [5] #216.1.1.num.int <2 (0x2)> + [6] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #207.1.1.num.int <2 (0x2)> + [9] #204.1.1.num.int <0 (0x0)> + [10] #201.1.1.num.int <0 (0x0)> + [11] #198.1.1.num.int <0 (0x0)> + [12] #195.1.1.num.int <0 (0x0)> + [13] #191.1.1.num.int <0 (0x0)> +IP: #186:0x75, type 1, 23054198967 (0x55e2328b7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.num.int <23054198967 (0x55e2328b7)> + [1] #229.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #228.1.1.num.int <300 (0x12c)> + [3] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #219.1.1.num.int <300 (0x12c)> + [6] #216.1.1.num.int <2 (0x2)> + [7] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #207.1.1.num.int <2 (0x2)> + [10] #204.1.1.num.int <0 (0x0)> + [11] #201.1.1.num.int <0 (0x0)> + [12] #198.1.1.num.int <0 (0x0)> + [13] #195.1.1.num.int <0 (0x0)> + [14] #191.1.1.num.int <0 (0x0)> +IP: #186:0x7b, type 8, 124[3] +GC: --#230.1.1.num.int +GC: --#229.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.int <56899329 (0x3643701)> + [1] #228.1.1.num.int <300 (0x12c)> + [2] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [3] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #219.1.1.num.int <300 (0x12c)> + [5] #216.1.1.num.int <2 (0x2)> + [6] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [7] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #207.1.1.num.int <2 (0x2)> + [9] #204.1.1.num.int <0 (0x0)> + [10] #201.1.1.num.int <0 (0x0)> + [11] #198.1.1.num.int <0 (0x0)> + [12] #195.1.1.num.int <0 (0x0)> + [13] #191.1.1.num.int <0 (0x0)> +IP: #186:0x7f, type 1, -1311768465173141119 (0xedcba987edcba981) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #231.1.1.num.int <56899329 (0x3643701)> + [2] #228.1.1.num.int <300 (0x12c)> + [3] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #219.1.1.num.int <300 (0x12c)> + [6] #216.1.1.num.int <2 (0x2)> + [7] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #207.1.1.num.int <2 (0x2)> + [10] #204.1.1.num.int <0 (0x0)> + [11] #201.1.1.num.int <0 (0x0)> + [12] #198.1.1.num.int <0 (0x0)> + [13] #195.1.1.num.int <0 (0x0)> + [14] #191.1.1.num.int <0 (0x0)> +IP: #186:0x88, type 1, 23054198967 (0x55e2328b7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.num.int <23054198967 (0x55e2328b7)> + [1] #232.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #231.1.1.num.int <56899329 (0x3643701)> + [3] #228.1.1.num.int <300 (0x12c)> + [4] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #219.1.1.num.int <300 (0x12c)> + [7] #216.1.1.num.int <2 (0x2)> + [8] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #207.1.1.num.int <2 (0x2)> + [11] #204.1.1.num.int <0 (0x0)> + [12] #201.1.1.num.int <0 (0x0)> + [13] #198.1.1.num.int <0 (0x0)> + [14] #195.1.1.num.int <0 (0x0)> + [15] #191.1.1.num.int <0 (0x0)> +IP: #186:0x8e, type 8, 143[3] +GC: --#233.1.1.num.int +GC: --#232.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [1] #231.1.1.num.int <56899329 (0x3643701)> + [2] #228.1.1.num.int <300 (0x12c)> + [3] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [4] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #219.1.1.num.int <300 (0x12c)> + [6] #216.1.1.num.int <2 (0x2)> + [7] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [8] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #207.1.1.num.int <2 (0x2)> + [10] #204.1.1.num.int <0 (0x0)> + [11] #201.1.1.num.int <0 (0x0)> + [12] #198.1.1.num.int <0 (0x0)> + [13] #195.1.1.num.int <0 (0x0)> + [14] #191.1.1.num.int <0 (0x0)> +IP: #186:0x92, type 1, 1311768465173141119 (0x123456781234567f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [2] #231.1.1.num.int <56899329 (0x3643701)> + [3] #228.1.1.num.int <300 (0x12c)> + [4] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #219.1.1.num.int <300 (0x12c)> + [7] #216.1.1.num.int <2 (0x2)> + [8] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #207.1.1.num.int <2 (0x2)> + [11] #204.1.1.num.int <0 (0x0)> + [12] #201.1.1.num.int <0 (0x0)> + [13] #198.1.1.num.int <0 (0x0)> + [14] #195.1.1.num.int <0 (0x0)> + [15] #191.1.1.num.int <0 (0x0)> +IP: #186:0x9b, type 1, -23054198967 (0xfffffffaa1dcd749) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <-23054198967 (0xfffffffaa1dcd749)> + [1] #235.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #231.1.1.num.int <56899329 (0x3643701)> + [4] #228.1.1.num.int <300 (0x12c)> + [5] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #219.1.1.num.int <300 (0x12c)> + [8] #216.1.1.num.int <2 (0x2)> + [9] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #207.1.1.num.int <2 (0x2)> + [12] #204.1.1.num.int <0 (0x0)> + [13] #201.1.1.num.int <0 (0x0)> + [14] #198.1.1.num.int <0 (0x0)> + [15] #195.1.1.num.int <0 (0x0)> + [16] #191.1.1.num.int <0 (0x0)> +IP: #186:0xa1, type 8, 162[3] +GC: --#236.1.1.num.int +GC: --#235.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [1] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [2] #231.1.1.num.int <56899329 (0x3643701)> + [3] #228.1.1.num.int <300 (0x12c)> + [4] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [5] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #219.1.1.num.int <300 (0x12c)> + [7] #216.1.1.num.int <2 (0x2)> + [8] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [9] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #207.1.1.num.int <2 (0x2)> + [11] #204.1.1.num.int <0 (0x0)> + [12] #201.1.1.num.int <0 (0x0)> + [13] #198.1.1.num.int <0 (0x0)> + [14] #195.1.1.num.int <0 (0x0)> + [15] #191.1.1.num.int <0 (0x0)> +IP: #186:0xa5, type 1, -1311768465173141119 (0xedcba987edcba981) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [2] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #231.1.1.num.int <56899329 (0x3643701)> + [4] #228.1.1.num.int <300 (0x12c)> + [5] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #219.1.1.num.int <300 (0x12c)> + [8] #216.1.1.num.int <2 (0x2)> + [9] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #207.1.1.num.int <2 (0x2)> + [12] #204.1.1.num.int <0 (0x0)> + [13] #201.1.1.num.int <0 (0x0)> + [14] #198.1.1.num.int <0 (0x0)> + [15] #195.1.1.num.int <0 (0x0)> + [16] #191.1.1.num.int <0 (0x0)> +IP: #186:0xae, type 1, -23054198967 (0xfffffffaa1dcd749) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.num.int <-23054198967 (0xfffffffaa1dcd749)> + [1] #238.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #231.1.1.num.int <56899329 (0x3643701)> + [5] #228.1.1.num.int <300 (0x12c)> + [6] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #219.1.1.num.int <300 (0x12c)> + [9] #216.1.1.num.int <2 (0x2)> + [10] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #207.1.1.num.int <2 (0x2)> + [13] #204.1.1.num.int <0 (0x0)> + [14] #201.1.1.num.int <0 (0x0)> + [15] #198.1.1.num.int <0 (0x0)> + [16] #195.1.1.num.int <0 (0x0)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xb4, type 8, 181[3] +GC: --#239.1.1.num.int +GC: --#238.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.num.int <56899329 (0x3643701)> + [1] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [2] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #231.1.1.num.int <56899329 (0x3643701)> + [4] #228.1.1.num.int <300 (0x12c)> + [5] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [6] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #219.1.1.num.int <300 (0x12c)> + [8] #216.1.1.num.int <2 (0x2)> + [9] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [10] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #207.1.1.num.int <2 (0x2)> + [12] #204.1.1.num.int <0 (0x0)> + [13] #201.1.1.num.int <0 (0x0)> + [14] #198.1.1.num.int <0 (0x0)> + [15] #195.1.1.num.int <0 (0x0)> + [16] #191.1.1.num.int <0 (0x0)> +IP: #186:0xb8, type 1, 1311768465173141119 (0x123456781234567f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #240.1.1.num.int <56899329 (0x3643701)> + [2] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #231.1.1.num.int <56899329 (0x3643701)> + [5] #228.1.1.num.int <300 (0x12c)> + [6] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #219.1.1.num.int <300 (0x12c)> + [9] #216.1.1.num.int <2 (0x2)> + [10] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #207.1.1.num.int <2 (0x2)> + [13] #204.1.1.num.int <0 (0x0)> + [14] #201.1.1.num.int <0 (0x0)> + [15] #198.1.1.num.int <0 (0x0)> + [16] #195.1.1.num.int <0 (0x0)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xc1, type 1, 1193046 (0x123456) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <1193046 (0x123456)> + [1] #241.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #240.1.1.num.int <56899329 (0x3643701)> + [3] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #231.1.1.num.int <56899329 (0x3643701)> + [6] #228.1.1.num.int <300 (0x12c)> + [7] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #219.1.1.num.int <300 (0x12c)> + [10] #216.1.1.num.int <2 (0x2)> + [11] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #207.1.1.num.int <2 (0x2)> + [14] #204.1.1.num.int <0 (0x0)> + [15] #201.1.1.num.int <0 (0x0)> + [16] #198.1.1.num.int <0 (0x0)> + [17] #195.1.1.num.int <0 (0x0)> + [18] #191.1.1.num.int <0 (0x0)> +IP: #186:0xc5, type 8, 198[3] +GC: --#242.1.1.num.int +GC: --#241.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.num.int <1099512060032 (0x10000069880)> + [1] #240.1.1.num.int <56899329 (0x3643701)> + [2] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [3] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #231.1.1.num.int <56899329 (0x3643701)> + [5] #228.1.1.num.int <300 (0x12c)> + [6] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [7] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #219.1.1.num.int <300 (0x12c)> + [9] #216.1.1.num.int <2 (0x2)> + [10] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [11] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #207.1.1.num.int <2 (0x2)> + [13] #204.1.1.num.int <0 (0x0)> + [14] #201.1.1.num.int <0 (0x0)> + [15] #198.1.1.num.int <0 (0x0)> + [16] #195.1.1.num.int <0 (0x0)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xc9, type 1, -1311768465173141119 (0xedcba987edcba981) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #243.1.1.num.int <1099512060032 (0x10000069880)> + [2] #240.1.1.num.int <56899329 (0x3643701)> + [3] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #231.1.1.num.int <56899329 (0x3643701)> + [6] #228.1.1.num.int <300 (0x12c)> + [7] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #219.1.1.num.int <300 (0x12c)> + [10] #216.1.1.num.int <2 (0x2)> + [11] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #207.1.1.num.int <2 (0x2)> + [14] #204.1.1.num.int <0 (0x0)> + [15] #201.1.1.num.int <0 (0x0)> + [16] #198.1.1.num.int <0 (0x0)> + [17] #195.1.1.num.int <0 (0x0)> + [18] #191.1.1.num.int <0 (0x0)> +IP: #186:0xd2, type 1, 1193046 (0x123456) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.num.int <1193046 (0x123456)> + [1] #244.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #243.1.1.num.int <1099512060032 (0x10000069880)> + [3] #240.1.1.num.int <56899329 (0x3643701)> + [4] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #231.1.1.num.int <56899329 (0x3643701)> + [7] #228.1.1.num.int <300 (0x12c)> + [8] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #219.1.1.num.int <300 (0x12c)> + [11] #216.1.1.num.int <2 (0x2)> + [12] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #207.1.1.num.int <2 (0x2)> + [15] #204.1.1.num.int <0 (0x0)> + [16] #201.1.1.num.int <0 (0x0)> + [17] #198.1.1.num.int <0 (0x0)> + [18] #195.1.1.num.int <0 (0x0)> + [19] #191.1.1.num.int <0 (0x0)> +IP: #186:0xd6, type 8, 215[3] +GC: --#245.1.1.num.int +GC: --#244.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [1] #243.1.1.num.int <1099512060032 (0x10000069880)> + [2] #240.1.1.num.int <56899329 (0x3643701)> + [3] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [4] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #231.1.1.num.int <56899329 (0x3643701)> + [6] #228.1.1.num.int <300 (0x12c)> + [7] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [8] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #219.1.1.num.int <300 (0x12c)> + [10] #216.1.1.num.int <2 (0x2)> + [11] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [12] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #207.1.1.num.int <2 (0x2)> + [14] #204.1.1.num.int <0 (0x0)> + [15] #201.1.1.num.int <0 (0x0)> + [16] #198.1.1.num.int <0 (0x0)> + [17] #195.1.1.num.int <0 (0x0)> + [18] #191.1.1.num.int <0 (0x0)> +IP: #186:0xda, type 1, 1311768465173141119 (0x123456781234567f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [2] #243.1.1.num.int <1099512060032 (0x10000069880)> + [3] #240.1.1.num.int <56899329 (0x3643701)> + [4] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #231.1.1.num.int <56899329 (0x3643701)> + [7] #228.1.1.num.int <300 (0x12c)> + [8] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #219.1.1.num.int <300 (0x12c)> + [11] #216.1.1.num.int <2 (0x2)> + [12] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #207.1.1.num.int <2 (0x2)> + [15] #204.1.1.num.int <0 (0x0)> + [16] #201.1.1.num.int <0 (0x0)> + [17] #198.1.1.num.int <0 (0x0)> + [18] #195.1.1.num.int <0 (0x0)> + [19] #191.1.1.num.int <0 (0x0)> +IP: #186:0xe3, type 1, -1193046 (0xffffffffffedcbaa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #248.1.1.num.int <-1193046 (0xffffffffffedcbaa)> + [1] #247.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #243.1.1.num.int <1099512060032 (0x10000069880)> + [4] #240.1.1.num.int <56899329 (0x3643701)> + [5] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #231.1.1.num.int <56899329 (0x3643701)> + [8] #228.1.1.num.int <300 (0x12c)> + [9] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #219.1.1.num.int <300 (0x12c)> + [12] #216.1.1.num.int <2 (0x2)> + [13] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #207.1.1.num.int <2 (0x2)> + [16] #204.1.1.num.int <0 (0x0)> + [17] #201.1.1.num.int <0 (0x0)> + [18] #198.1.1.num.int <0 (0x0)> + [19] #195.1.1.num.int <0 (0x0)> + [20] #191.1.1.num.int <0 (0x0)> +IP: #186:0xe7, type 8, 232[3] +GC: --#248.1.1.num.int +GC: --#247.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [1] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [2] #243.1.1.num.int <1099512060032 (0x10000069880)> + [3] #240.1.1.num.int <56899329 (0x3643701)> + [4] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [5] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #231.1.1.num.int <56899329 (0x3643701)> + [7] #228.1.1.num.int <300 (0x12c)> + [8] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [9] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #219.1.1.num.int <300 (0x12c)> + [11] #216.1.1.num.int <2 (0x2)> + [12] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [13] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #207.1.1.num.int <2 (0x2)> + [15] #204.1.1.num.int <0 (0x0)> + [16] #201.1.1.num.int <0 (0x0)> + [17] #198.1.1.num.int <0 (0x0)> + [18] #195.1.1.num.int <0 (0x0)> + [19] #191.1.1.num.int <0 (0x0)> +IP: #186:0xeb, type 1, -1311768465173141119 (0xedcba987edcba981) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #250.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [2] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #243.1.1.num.int <1099512060032 (0x10000069880)> + [4] #240.1.1.num.int <56899329 (0x3643701)> + [5] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #231.1.1.num.int <56899329 (0x3643701)> + [8] #228.1.1.num.int <300 (0x12c)> + [9] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #219.1.1.num.int <300 (0x12c)> + [12] #216.1.1.num.int <2 (0x2)> + [13] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #207.1.1.num.int <2 (0x2)> + [16] #204.1.1.num.int <0 (0x0)> + [17] #201.1.1.num.int <0 (0x0)> + [18] #198.1.1.num.int <0 (0x0)> + [19] #195.1.1.num.int <0 (0x0)> + [20] #191.1.1.num.int <0 (0x0)> +IP: #186:0xf4, type 1, -1193046 (0xffffffffffedcbaa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #251.1.1.num.int <-1193046 (0xffffffffffedcbaa)> + [1] #250.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #243.1.1.num.int <1099512060032 (0x10000069880)> + [5] #240.1.1.num.int <56899329 (0x3643701)> + [6] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #231.1.1.num.int <56899329 (0x3643701)> + [9] #228.1.1.num.int <300 (0x12c)> + [10] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #219.1.1.num.int <300 (0x12c)> + [13] #216.1.1.num.int <2 (0x2)> + [14] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #207.1.1.num.int <2 (0x2)> + [17] #204.1.1.num.int <0 (0x0)> + [18] #201.1.1.num.int <0 (0x0)> + [19] #198.1.1.num.int <0 (0x0)> + [20] #195.1.1.num.int <0 (0x0)> + [21] #191.1.1.num.int <0 (0x0)> +IP: #186:0xf8, type 8, 249[3] +GC: --#251.1.1.num.int +GC: --#250.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #252.1.1.num.int <1099512060032 (0x10000069880)> + [1] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [2] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #243.1.1.num.int <1099512060032 (0x10000069880)> + [4] #240.1.1.num.int <56899329 (0x3643701)> + [5] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [6] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #231.1.1.num.int <56899329 (0x3643701)> + [8] #228.1.1.num.int <300 (0x12c)> + [9] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [10] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #219.1.1.num.int <300 (0x12c)> + [12] #216.1.1.num.int <2 (0x2)> + [13] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [14] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #207.1.1.num.int <2 (0x2)> + [16] #204.1.1.num.int <0 (0x0)> + [17] #201.1.1.num.int <0 (0x0)> + [18] #198.1.1.num.int <0 (0x0)> + [19] #195.1.1.num.int <0 (0x0)> + [20] #191.1.1.num.int <0 (0x0)> +IP: #186:0xfc, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #253.1.1.num.bool <1 (0x1)> + [1] #252.1.1.num.int <1099512060032 (0x10000069880)> + [2] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #243.1.1.num.int <1099512060032 (0x10000069880)> + [5] #240.1.1.num.int <56899329 (0x3643701)> + [6] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #231.1.1.num.int <56899329 (0x3643701)> + [9] #228.1.1.num.int <300 (0x12c)> + [10] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #219.1.1.num.int <300 (0x12c)> + [13] #216.1.1.num.int <2 (0x2)> + [14] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #207.1.1.num.int <2 (0x2)> + [17] #204.1.1.num.int <0 (0x0)> + [18] #201.1.1.num.int <0 (0x0)> + [19] #198.1.1.num.int <0 (0x0)> + [20] #195.1.1.num.int <0 (0x0)> + [21] #191.1.1.num.int <0 (0x0)> +IP: #186:0xfd, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #254.1.1.num.bool <1 (0x1)> + [1] #253.1.1.num.bool <1 (0x1)> + [2] #252.1.1.num.int <1099512060032 (0x10000069880)> + [3] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #243.1.1.num.int <1099512060032 (0x10000069880)> + [6] #240.1.1.num.int <56899329 (0x3643701)> + [7] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #231.1.1.num.int <56899329 (0x3643701)> + [10] #228.1.1.num.int <300 (0x12c)> + [11] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #219.1.1.num.int <300 (0x12c)> + [14] #216.1.1.num.int <2 (0x2)> + [15] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #207.1.1.num.int <2 (0x2)> + [18] #204.1.1.num.int <0 (0x0)> + [19] #201.1.1.num.int <0 (0x0)> + [20] #198.1.1.num.int <0 (0x0)> + [21] #195.1.1.num.int <0 (0x0)> + [22] #191.1.1.num.int <0 (0x0)> +IP: #186:0xfe, type 8, 255[3] +GC: --#254.1.1.num.bool +GC: --#253.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.1.1.num.bool <1 (0x1)> + [1] #252.1.1.num.int <1099512060032 (0x10000069880)> + [2] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [3] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #243.1.1.num.int <1099512060032 (0x10000069880)> + [5] #240.1.1.num.int <56899329 (0x3643701)> + [6] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [7] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #231.1.1.num.int <56899329 (0x3643701)> + [9] #228.1.1.num.int <300 (0x12c)> + [10] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [11] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #219.1.1.num.int <300 (0x12c)> + [13] #216.1.1.num.int <2 (0x2)> + [14] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [15] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #207.1.1.num.int <2 (0x2)> + [17] #204.1.1.num.int <0 (0x0)> + [18] #201.1.1.num.int <0 (0x0)> + [19] #198.1.1.num.int <0 (0x0)> + [20] #195.1.1.num.int <0 (0x0)> + [21] #191.1.1.num.int <0 (0x0)> +IP: #186:0x102, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.1.1.num.bool <0 (0x0)> + [1] #255.1.1.num.bool <1 (0x1)> + [2] #252.1.1.num.int <1099512060032 (0x10000069880)> + [3] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #243.1.1.num.int <1099512060032 (0x10000069880)> + [6] #240.1.1.num.int <56899329 (0x3643701)> + [7] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #231.1.1.num.int <56899329 (0x3643701)> + [10] #228.1.1.num.int <300 (0x12c)> + [11] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #219.1.1.num.int <300 (0x12c)> + [14] #216.1.1.num.int <2 (0x2)> + [15] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #207.1.1.num.int <2 (0x2)> + [18] #204.1.1.num.int <0 (0x0)> + [19] #201.1.1.num.int <0 (0x0)> + [20] #198.1.1.num.int <0 (0x0)> + [21] #195.1.1.num.int <0 (0x0)> + [22] #191.1.1.num.int <0 (0x0)> +IP: #186:0x103, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #257.1.1.num.bool <1 (0x1)> + [1] #256.1.1.num.bool <0 (0x0)> + [2] #255.1.1.num.bool <1 (0x1)> + [3] #252.1.1.num.int <1099512060032 (0x10000069880)> + [4] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #243.1.1.num.int <1099512060032 (0x10000069880)> + [7] #240.1.1.num.int <56899329 (0x3643701)> + [8] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #231.1.1.num.int <56899329 (0x3643701)> + [11] #228.1.1.num.int <300 (0x12c)> + [12] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #219.1.1.num.int <300 (0x12c)> + [15] #216.1.1.num.int <2 (0x2)> + [16] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #207.1.1.num.int <2 (0x2)> + [19] #204.1.1.num.int <0 (0x0)> + [20] #201.1.1.num.int <0 (0x0)> + [21] #198.1.1.num.int <0 (0x0)> + [22] #195.1.1.num.int <0 (0x0)> + [23] #191.1.1.num.int <0 (0x0)> +IP: #186:0x104, type 8, 261[3] +GC: --#257.1.1.num.bool +GC: --#256.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.2.1.num.bool <0 (0x0)> + [1] #255.1.1.num.bool <1 (0x1)> + [2] #252.1.1.num.int <1099512060032 (0x10000069880)> + [3] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [4] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #243.1.1.num.int <1099512060032 (0x10000069880)> + [6] #240.1.1.num.int <56899329 (0x3643701)> + [7] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [8] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #231.1.1.num.int <56899329 (0x3643701)> + [10] #228.1.1.num.int <300 (0x12c)> + [11] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [12] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #219.1.1.num.int <300 (0x12c)> + [14] #216.1.1.num.int <2 (0x2)> + [15] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [16] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #207.1.1.num.int <2 (0x2)> + [18] #204.1.1.num.int <0 (0x0)> + [19] #201.1.1.num.int <0 (0x0)> + [20] #198.1.1.num.int <0 (0x0)> + [21] #195.1.1.num.int <0 (0x0)> + [22] #191.1.1.num.int <0 (0x0)> +IP: #186:0x108, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.2.1.num.bool <1 (0x1)> + [1] #189.2.1.num.bool <0 (0x0)> + [2] #255.1.1.num.bool <1 (0x1)> + [3] #252.1.1.num.int <1099512060032 (0x10000069880)> + [4] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #243.1.1.num.int <1099512060032 (0x10000069880)> + [7] #240.1.1.num.int <56899329 (0x3643701)> + [8] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #231.1.1.num.int <56899329 (0x3643701)> + [11] #228.1.1.num.int <300 (0x12c)> + [12] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #219.1.1.num.int <300 (0x12c)> + [15] #216.1.1.num.int <2 (0x2)> + [16] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #207.1.1.num.int <2 (0x2)> + [19] #204.1.1.num.int <0 (0x0)> + [20] #201.1.1.num.int <0 (0x0)> + [21] #198.1.1.num.int <0 (0x0)> + [22] #195.1.1.num.int <0 (0x0)> + [23] #191.1.1.num.int <0 (0x0)> +IP: #186:0x109, type 1, 9 (0x9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.2.1.num.int <9 (0x9)> + [1] #190.2.1.num.bool <1 (0x1)> + [2] #189.2.1.num.bool <0 (0x0)> + [3] #255.1.1.num.bool <1 (0x1)> + [4] #252.1.1.num.int <1099512060032 (0x10000069880)> + [5] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [7] #243.1.1.num.int <1099512060032 (0x10000069880)> + [8] #240.1.1.num.int <56899329 (0x3643701)> + [9] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [11] #231.1.1.num.int <56899329 (0x3643701)> + [12] #228.1.1.num.int <300 (0x12c)> + [13] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [15] #219.1.1.num.int <300 (0x12c)> + [16] #216.1.1.num.int <2 (0x2)> + [17] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #207.1.1.num.int <2 (0x2)> + [20] #204.1.1.num.int <0 (0x0)> + [21] #201.1.1.num.int <0 (0x0)> + [22] #198.1.1.num.int <0 (0x0)> + [23] #195.1.1.num.int <0 (0x0)> + [24] #191.1.1.num.int <0 (0x0)> +IP: #186:0x10b, type 8, 268[3] +GC: --#193.2.1.num.int +GC: --#190.2.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.2.1.num.bool <1 (0x1)> + [1] #189.2.1.num.bool <0 (0x0)> + [2] #255.1.1.num.bool <1 (0x1)> + [3] #252.1.1.num.int <1099512060032 (0x10000069880)> + [4] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [5] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #243.1.1.num.int <1099512060032 (0x10000069880)> + [7] #240.1.1.num.int <56899329 (0x3643701)> + [8] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [9] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #231.1.1.num.int <56899329 (0x3643701)> + [11] #228.1.1.num.int <300 (0x12c)> + [12] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [13] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #219.1.1.num.int <300 (0x12c)> + [15] #216.1.1.num.int <2 (0x2)> + [16] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [17] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #207.1.1.num.int <2 (0x2)> + [19] #204.1.1.num.int <0 (0x0)> + [20] #201.1.1.num.int <0 (0x0)> + [21] #198.1.1.num.int <0 (0x0)> + [22] #195.1.1.num.int <0 (0x0)> + [23] #191.1.1.num.int <0 (0x0)> +IP: #186:0x10f, type 1, -9223372036854775807 (0x8000000000000001) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.2.1.num.int <-9223372036854775807 (0x8000000000000001)> + [1] #194.2.1.num.bool <1 (0x1)> + [2] #189.2.1.num.bool <0 (0x0)> + [3] #255.1.1.num.bool <1 (0x1)> + [4] #252.1.1.num.int <1099512060032 (0x10000069880)> + [5] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [7] #243.1.1.num.int <1099512060032 (0x10000069880)> + [8] #240.1.1.num.int <56899329 (0x3643701)> + [9] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [11] #231.1.1.num.int <56899329 (0x3643701)> + [12] #228.1.1.num.int <300 (0x12c)> + [13] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [15] #219.1.1.num.int <300 (0x12c)> + [16] #216.1.1.num.int <2 (0x2)> + [17] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #207.1.1.num.int <2 (0x2)> + [20] #204.1.1.num.int <0 (0x0)> + [21] #201.1.1.num.int <0 (0x0)> + [22] #198.1.1.num.int <0 (0x0)> + [23] #195.1.1.num.int <0 (0x0)> + [24] #191.1.1.num.int <0 (0x0)> +IP: #186:0x118, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #196.2.1.num.int <-9223372036854775807 (0x8000000000000001)> + [2] #194.2.1.num.bool <1 (0x1)> + [3] #189.2.1.num.bool <0 (0x0)> + [4] #255.1.1.num.bool <1 (0x1)> + [5] #252.1.1.num.int <1099512060032 (0x10000069880)> + [6] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [7] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [8] #243.1.1.num.int <1099512060032 (0x10000069880)> + [9] #240.1.1.num.int <56899329 (0x3643701)> + [10] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [11] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [12] #231.1.1.num.int <56899329 (0x3643701)> + [13] #228.1.1.num.int <300 (0x12c)> + [14] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [15] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [16] #219.1.1.num.int <300 (0x12c)> + [17] #216.1.1.num.int <2 (0x2)> + [18] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [20] #207.1.1.num.int <2 (0x2)> + [21] #204.1.1.num.int <0 (0x0)> + [22] #201.1.1.num.int <0 (0x0)> + [23] #198.1.1.num.int <0 (0x0)> + [24] #195.1.1.num.int <0 (0x0)> + [25] #191.1.1.num.int <0 (0x0)> +IP: #186:0x11a, type 8, 283[3] +GC: --#197.2.1.num.int +GC: --#196.2.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.2.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #194.2.1.num.bool <1 (0x1)> + [2] #189.2.1.num.bool <0 (0x0)> + [3] #255.1.1.num.bool <1 (0x1)> + [4] #252.1.1.num.int <1099512060032 (0x10000069880)> + [5] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [6] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [7] #243.1.1.num.int <1099512060032 (0x10000069880)> + [8] #240.1.1.num.int <56899329 (0x3643701)> + [9] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [10] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [11] #231.1.1.num.int <56899329 (0x3643701)> + [12] #228.1.1.num.int <300 (0x12c)> + [13] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [14] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [15] #219.1.1.num.int <300 (0x12c)> + [16] #216.1.1.num.int <2 (0x2)> + [17] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [18] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #207.1.1.num.int <2 (0x2)> + [20] #204.1.1.num.int <0 (0x0)> + [21] #201.1.1.num.int <0 (0x0)> + [22] #198.1.1.num.int <0 (0x0)> + [23] #195.1.1.num.int <0 (0x0)> + [24] #191.1.1.num.int <0 (0x0)> +IP: #186:0x11e, type 1, -9223372036854775808 (0x8000000000000000) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #199.2.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #194.2.1.num.bool <1 (0x1)> + [3] #189.2.1.num.bool <0 (0x0)> + [4] #255.1.1.num.bool <1 (0x1)> + [5] #252.1.1.num.int <1099512060032 (0x10000069880)> + [6] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [7] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [8] #243.1.1.num.int <1099512060032 (0x10000069880)> + [9] #240.1.1.num.int <56899329 (0x3643701)> + [10] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [11] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [12] #231.1.1.num.int <56899329 (0x3643701)> + [13] #228.1.1.num.int <300 (0x12c)> + [14] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [15] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [16] #219.1.1.num.int <300 (0x12c)> + [17] #216.1.1.num.int <2 (0x2)> + [18] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [19] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [20] #207.1.1.num.int <2 (0x2)> + [21] #204.1.1.num.int <0 (0x0)> + [22] #201.1.1.num.int <0 (0x0)> + [23] #198.1.1.num.int <0 (0x0)> + [24] #195.1.1.num.int <0 (0x0)> + [25] #191.1.1.num.int <0 (0x0)> +IP: #186:0x127, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #200.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #199.2.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [3] #194.2.1.num.bool <1 (0x1)> + [4] #189.2.1.num.bool <0 (0x0)> + [5] #255.1.1.num.bool <1 (0x1)> + [6] #252.1.1.num.int <1099512060032 (0x10000069880)> + [7] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [8] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [9] #243.1.1.num.int <1099512060032 (0x10000069880)> + [10] #240.1.1.num.int <56899329 (0x3643701)> + [11] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [12] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [13] #231.1.1.num.int <56899329 (0x3643701)> + [14] #228.1.1.num.int <300 (0x12c)> + [15] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [16] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [17] #219.1.1.num.int <300 (0x12c)> + [18] #216.1.1.num.int <2 (0x2)> + [19] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [20] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [21] #207.1.1.num.int <2 (0x2)> + [22] #204.1.1.num.int <0 (0x0)> + [23] #201.1.1.num.int <0 (0x0)> + [24] #198.1.1.num.int <0 (0x0)> + [25] #195.1.1.num.int <0 (0x0)> + [26] #191.1.1.num.int <0 (0x0)> +IP: #186:0x129, type 8, 298[3] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #200.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #199.2.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [3] #194.2.1.num.bool <1 (0x1)> + [4] #189.2.1.num.bool <0 (0x0)> + [5] #255.1.1.num.bool <1 (0x1)> + [6] #252.1.1.num.int <1099512060032 (0x10000069880)> + [7] #249.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [8] #246.1.1.num.int <-1099512060032 (0xfffffefffff96780)> + [9] #243.1.1.num.int <1099512060032 (0x10000069880)> + [10] #240.1.1.num.int <56899329 (0x3643701)> + [11] #237.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [12] #234.1.1.num.int <-56899329 (0xfffffffffc9bc8ff)> + [13] #231.1.1.num.int <56899329 (0x3643701)> + [14] #228.1.1.num.int <300 (0x12c)> + [15] #225.1.1.num.int <-300 (0xfffffffffffffed4)> + [16] #222.1.1.num.int <-300 (0xfffffffffffffed4)> + [17] #219.1.1.num.int <300 (0x12c)> + [18] #216.1.1.num.int <2 (0x2)> + [19] #213.1.1.num.int <-2 (0xfffffffffffffffe)> + [20] #210.1.1.num.int <-2 (0xfffffffffffffffe)> + [21] #207.1.1.num.int <2 (0x2)> + [22] #204.1.1.num.int <0 (0x0)> + [23] #201.1.1.num.int <0 (0x0)> + [24] #198.1.1.num.int <0 (0x0)> + [25] #195.1.1.num.int <0 (0x0)> + [26] #191.1.1.num.int <0 (0x0)> +error 14 (div by zero), ip = #186:0x129 diff --git a/tests/0029_mod/basic.log.ref b/tests/0029_mod/basic.log.ref new file mode 100644 index 0000000..c85002d --- /dev/null +++ b/tests/0029_mod/basic.log.ref @@ -0,0 +1,1369 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <7 (0x7)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-20 (0xffffffffffffffec)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <7 (0x7)> + [1] #xxxx.1.1.num.int <-20 (0xffffffffffffffec)> + [2] #xxxx.1.1.num.int <6 (0x6)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [2] #xxxx.1.1.num.int <6 (0x6)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-7 (0xfffffffffffffff9)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #xxxx.1.1.num.int <6 (0x6)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [2] #xxxx.1.1.num.int <6 (0x6)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-20 (0xffffffffffffffec)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #xxxx.1.1.num.int <6 (0x6)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-7 (0xfffffffffffffff9)> + [1] #xxxx.1.1.num.int <-20 (0xffffffffffffffec)> + [2] #xxxx.1.1.num.int <6 (0x6)> + [3] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #xxxx.1.1.num.int <6 (0x6)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #xxxx.1.1.num.int <6 (0x6)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30055 (0x7567)> + [1] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [2] #xxxx.1.1.num.int <6 (0x6)> + [3] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #xxxx.1.1.num.int <6 (0x6)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <30055 (0x7567)> + [2] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #xxxx.1.1.num.int <6 (0x6)> + [4] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #xxxx.1.1.num.int <6 (0x6)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <55 (0x37)> + [1] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [2] #xxxx.1.1.num.int <6 (0x6)> + [3] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #xxxx.1.1.num.int <6 (0x6)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-30055 (0xffffffffffff8a99)> + [1] #xxxx.1.1.num.int <55 (0x37)> + [2] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #xxxx.1.1.num.int <6 (0x6)> + [4] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #xxxx.1.1.num.int <6 (0x6)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <-30055 (0xffffffffffff8a99)> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #xxxx.1.1.num.int <6 (0x6)> + [5] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #xxxx.1.1.num.int <6 (0x6)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [1] #xxxx.1.1.num.int <55 (0x37)> + [2] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #xxxx.1.1.num.int <6 (0x6)> + [4] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #xxxx.1.1.num.int <6 (0x6)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30055 (0x7567)> + [1] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #xxxx.1.1.num.int <6 (0x6)> + [5] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #xxxx.1.1.num.int <6 (0x6)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-100 (0xffffffffffffff9c)> + [1] #xxxx.1.1.num.int <30055 (0x7567)> + [2] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #xxxx.1.1.num.int <55 (0x37)> + [4] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #xxxx.1.1.num.int <6 (0x6)> + [6] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #xxxx.1.1.num.int <6 (0x6)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <55 (0x37)> + [1] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #xxxx.1.1.num.int <6 (0x6)> + [5] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #xxxx.1.1.num.int <6 (0x6)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-30055 (0xffffffffffff8a99)> + [1] #xxxx.1.1.num.int <55 (0x37)> + [2] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #xxxx.1.1.num.int <55 (0x37)> + [4] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #xxxx.1.1.num.int <6 (0x6)> + [6] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #xxxx.1.1.num.int <6 (0x6)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-100 (0xffffffffffffff9c)> + [1] #xxxx.1.1.num.int <-30055 (0xffffffffffff8a99)> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #xxxx.1.1.num.int <6 (0x6)> + [7] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #xxxx.1.1.num.int <6 (0x6)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [1] #xxxx.1.1.num.int <55 (0x37)> + [2] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #xxxx.1.1.num.int <55 (0x37)> + [4] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #xxxx.1.1.num.int <6 (0x6)> + [6] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #xxxx.1.1.num.int <6 (0x6)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #xxxx.1.1.num.int <6 (0x6)> + [7] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #xxxx.1.1.num.int <6 (0x6)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <23054198967 (0x55e2328b7)> + [1] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #xxxx.1.1.num.int <55 (0x37)> + [4] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #xxxx.1.1.num.int <55 (0x37)> + [6] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #xxxx.1.1.num.int <6 (0x6)> + [8] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #xxxx.1.1.num.int <6 (0x6)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [1] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [2] #xxxx.1.1.num.int <55 (0x37)> + [3] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #xxxx.1.1.num.int <6 (0x6)> + [7] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #xxxx.1.1.num.int <6 (0x6)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [2] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #xxxx.1.1.num.int <55 (0x37)> + [4] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #xxxx.1.1.num.int <55 (0x37)> + [6] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #xxxx.1.1.num.int <6 (0x6)> + [8] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #xxxx.1.1.num.int <6 (0x6)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <23054198967 (0x55e2328b7)> + [1] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #xxxx.1.1.num.int <55 (0x37)> + [7] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #xxxx.1.1.num.int <6 (0x6)> + [9] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #xxxx.1.1.num.int <6 (0x6)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [1] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [2] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #xxxx.1.1.num.int <55 (0x37)> + [4] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #xxxx.1.1.num.int <55 (0x37)> + [6] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #xxxx.1.1.num.int <6 (0x6)> + [8] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #xxxx.1.1.num.int <6 (0x6)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [2] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #xxxx.1.1.num.int <55 (0x37)> + [7] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #xxxx.1.1.num.int <6 (0x6)> + [9] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #xxxx.1.1.num.int <6 (0x6)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-23054198967 (0xfffffffaa1dcd749)> + [1] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #xxxx.1.1.num.int <55 (0x37)> + [6] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #xxxx.1.1.num.int <55 (0x37)> + [8] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #xxxx.1.1.num.int <6 (0x6)> + [10] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #xxxx.1.1.num.int <6 (0x6)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [1] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [2] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #xxxx.1.1.num.int <55 (0x37)> + [5] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #xxxx.1.1.num.int <55 (0x37)> + [7] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #xxxx.1.1.num.int <6 (0x6)> + [9] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #xxxx.1.1.num.int <6 (0x6)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [2] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #xxxx.1.1.num.int <55 (0x37)> + [6] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #xxxx.1.1.num.int <55 (0x37)> + [8] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #xxxx.1.1.num.int <6 (0x6)> + [10] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #xxxx.1.1.num.int <6 (0x6)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-23054198967 (0xfffffffaa1dcd749)> + [1] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #xxxx.1.1.num.int <55 (0x37)> + [7] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #xxxx.1.1.num.int <55 (0x37)> + [9] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #xxxx.1.1.num.int <6 (0x6)> + [11] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #xxxx.1.1.num.int <6 (0x6)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <1 (0x1)> + [17] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [1] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [2] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #xxxx.1.1.num.int <55 (0x37)> + [6] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #xxxx.1.1.num.int <55 (0x37)> + [8] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #xxxx.1.1.num.int <6 (0x6)> + [10] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #xxxx.1.1.num.int <6 (0x6)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [2] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #xxxx.1.1.num.int <55 (0x37)> + [7] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #xxxx.1.1.num.int <55 (0x37)> + [9] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #xxxx.1.1.num.int <6 (0x6)> + [11] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #xxxx.1.1.num.int <6 (0x6)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <1 (0x1)> + [17] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1193046 (0x123456)> + [1] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #xxxx.1.1.num.int <55 (0x37)> + [8] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #xxxx.1.1.num.int <55 (0x37)> + [10] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #xxxx.1.1.num.int <6 (0x6)> + [12] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #xxxx.1.1.num.int <6 (0x6)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <1 (0x1)> + [18] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <203647 (0x31b7f)> + [1] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [2] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #xxxx.1.1.num.int <55 (0x37)> + [7] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #xxxx.1.1.num.int <55 (0x37)> + [9] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #xxxx.1.1.num.int <6 (0x6)> + [11] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #xxxx.1.1.num.int <6 (0x6)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <1 (0x1)> + [17] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #xxxx.1.1.num.int <203647 (0x31b7f)> + [2] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #xxxx.1.1.num.int <55 (0x37)> + [8] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #xxxx.1.1.num.int <55 (0x37)> + [10] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #xxxx.1.1.num.int <6 (0x6)> + [12] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #xxxx.1.1.num.int <6 (0x6)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <1 (0x1)> + [18] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1193046 (0x123456)> + [1] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #xxxx.1.1.num.int <203647 (0x31b7f)> + [3] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #xxxx.1.1.num.int <55 (0x37)> + [9] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #xxxx.1.1.num.int <55 (0x37)> + [11] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #xxxx.1.1.num.int <6 (0x6)> + [13] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #xxxx.1.1.num.int <6 (0x6)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <1 (0x1)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <1 (0x1)> + [19] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [1] #xxxx.1.1.num.int <203647 (0x31b7f)> + [2] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #xxxx.1.1.num.int <55 (0x37)> + [8] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #xxxx.1.1.num.int <55 (0x37)> + [10] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #xxxx.1.1.num.int <6 (0x6)> + [12] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #xxxx.1.1.num.int <6 (0x6)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <1 (0x1)> + [18] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [2] #xxxx.1.1.num.int <203647 (0x31b7f)> + [3] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #xxxx.1.1.num.int <55 (0x37)> + [9] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #xxxx.1.1.num.int <55 (0x37)> + [11] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #xxxx.1.1.num.int <6 (0x6)> + [13] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #xxxx.1.1.num.int <6 (0x6)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <1 (0x1)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <1 (0x1)> + [19] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1193046 (0xffffffffffedcbaa)> + [1] #xxxx.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #xxxx.1.1.num.int <203647 (0x31b7f)> + [4] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #xxxx.1.1.num.int <55 (0x37)> + [10] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #xxxx.1.1.num.int <55 (0x37)> + [12] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #xxxx.1.1.num.int <6 (0x6)> + [14] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #xxxx.1.1.num.int <6 (0x6)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <1 (0x1)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <1 (0x1)> + [20] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <203647 (0x31b7f)> + [1] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [2] #xxxx.1.1.num.int <203647 (0x31b7f)> + [3] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #xxxx.1.1.num.int <55 (0x37)> + [9] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #xxxx.1.1.num.int <55 (0x37)> + [11] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #xxxx.1.1.num.int <6 (0x6)> + [13] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #xxxx.1.1.num.int <6 (0x6)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <1 (0x1)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <1 (0x1)> + [19] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #xxxx.1.1.num.int <203647 (0x31b7f)> + [2] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #xxxx.1.1.num.int <203647 (0x31b7f)> + [4] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #xxxx.1.1.num.int <55 (0x37)> + [10] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #xxxx.1.1.num.int <55 (0x37)> + [12] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #xxxx.1.1.num.int <6 (0x6)> + [14] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #xxxx.1.1.num.int <6 (0x6)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <1 (0x1)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <1 (0x1)> + [20] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1193046 (0xffffffffffedcbaa)> + [1] #xxxx.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #xxxx.1.1.num.int <203647 (0x31b7f)> + [3] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #xxxx.1.1.num.int <203647 (0x31b7f)> + [5] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #xxxx.1.1.num.int <55 (0x37)> + [11] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #xxxx.1.1.num.int <55 (0x37)> + [13] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #xxxx.1.1.num.int <6 (0x6)> + [15] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #xxxx.1.1.num.int <6 (0x6)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <1 (0x1)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <1 (0x1)> + [21] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [1] #xxxx.1.1.num.int <203647 (0x31b7f)> + [2] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #xxxx.1.1.num.int <203647 (0x31b7f)> + [4] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #xxxx.1.1.num.int <55 (0x37)> + [10] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #xxxx.1.1.num.int <55 (0x37)> + [12] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #xxxx.1.1.num.int <6 (0x6)> + [14] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #xxxx.1.1.num.int <6 (0x6)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <1 (0x1)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <1 (0x1)> + [20] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [2] #xxxx.1.1.num.int <203647 (0x31b7f)> + [3] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #xxxx.1.1.num.int <203647 (0x31b7f)> + [5] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #xxxx.1.1.num.int <55 (0x37)> + [11] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #xxxx.1.1.num.int <55 (0x37)> + [13] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #xxxx.1.1.num.int <6 (0x6)> + [15] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #xxxx.1.1.num.int <6 (0x6)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <1 (0x1)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <1 (0x1)> + [21] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #xxxx.1.1.num.int <203647 (0x31b7f)> + [4] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #xxxx.1.1.num.int <203647 (0x31b7f)> + [6] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #xxxx.1.1.num.int <55 (0x37)> + [12] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #xxxx.1.1.num.int <55 (0x37)> + [14] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #xxxx.1.1.num.int <6 (0x6)> + [16] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #xxxx.1.1.num.int <6 (0x6)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <1 (0x1)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <1 (0x1)> + [22] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [2] #xxxx.1.1.num.int <203647 (0x31b7f)> + [3] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #xxxx.1.1.num.int <203647 (0x31b7f)> + [5] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #xxxx.1.1.num.int <55 (0x37)> + [11] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #xxxx.1.1.num.int <55 (0x37)> + [13] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #xxxx.1.1.num.int <6 (0x6)> + [15] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #xxxx.1.1.num.int <6 (0x6)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <1 (0x1)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <1 (0x1)> + [21] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #xxxx.1.1.num.int <203647 (0x31b7f)> + [4] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #xxxx.1.1.num.int <203647 (0x31b7f)> + [6] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #xxxx.1.1.num.int <55 (0x37)> + [12] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #xxxx.1.1.num.int <55 (0x37)> + [14] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #xxxx.1.1.num.int <6 (0x6)> + [16] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #xxxx.1.1.num.int <6 (0x6)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <1 (0x1)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <1 (0x1)> + [22] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #xxxx.1.1.num.int <203647 (0x31b7f)> + [5] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [6] #xxxx.1.1.num.int <203647 (0x31b7f)> + [7] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [10] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [11] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #xxxx.1.1.num.int <55 (0x37)> + [13] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [14] #xxxx.1.1.num.int <55 (0x37)> + [15] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #xxxx.1.1.num.int <6 (0x6)> + [17] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [18] #xxxx.1.1.num.int <6 (0x6)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <1 (0x1)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <1 (0x1)> + [23] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #xxxx.1.1.num.int <203647 (0x31b7f)> + [4] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #xxxx.1.1.num.int <203647 (0x31b7f)> + [6] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #xxxx.1.1.num.int <55 (0x37)> + [12] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #xxxx.1.1.num.int <55 (0x37)> + [14] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #xxxx.1.1.num.int <6 (0x6)> + [16] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #xxxx.1.1.num.int <6 (0x6)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <1 (0x1)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <1 (0x1)> + [22] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.bool <1 (0x1)> + [1] #xxxx.2.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #xxxx.1.1.num.int <203647 (0x31b7f)> + [5] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [6] #xxxx.1.1.num.int <203647 (0x31b7f)> + [7] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [10] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [11] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #xxxx.1.1.num.int <55 (0x37)> + [13] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [14] #xxxx.1.1.num.int <55 (0x37)> + [15] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #xxxx.1.1.num.int <6 (0x6)> + [17] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [18] #xxxx.1.1.num.int <6 (0x6)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <1 (0x1)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <1 (0x1)> + [23] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <9 (0x9)> + [1] #xxxx.2.1.num.bool <1 (0x1)> + [2] #xxxx.2.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #xxxx.1.1.num.int <203647 (0x31b7f)> + [6] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [7] #xxxx.1.1.num.int <203647 (0x31b7f)> + [8] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [11] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [12] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #xxxx.1.1.num.int <55 (0x37)> + [14] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [15] #xxxx.1.1.num.int <55 (0x37)> + [16] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #xxxx.1.1.num.int <6 (0x6)> + [18] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [19] #xxxx.1.1.num.int <6 (0x6)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <1 (0x1)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <1 (0x1)> + [24] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.bool <1 (0x1)> + [1] #xxxx.2.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #xxxx.1.1.num.int <203647 (0x31b7f)> + [5] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [6] #xxxx.1.1.num.int <203647 (0x31b7f)> + [7] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [10] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [11] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #xxxx.1.1.num.int <55 (0x37)> + [13] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [14] #xxxx.1.1.num.int <55 (0x37)> + [15] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #xxxx.1.1.num.int <6 (0x6)> + [17] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [18] #xxxx.1.1.num.int <6 (0x6)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <1 (0x1)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <1 (0x1)> + [23] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-9223372036854775807 (0x8000000000000001)> + [1] #xxxx.2.1.num.bool <1 (0x1)> + [2] #xxxx.2.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #xxxx.1.1.num.int <203647 (0x31b7f)> + [6] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [7] #xxxx.1.1.num.int <203647 (0x31b7f)> + [8] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [11] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [12] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #xxxx.1.1.num.int <55 (0x37)> + [14] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [15] #xxxx.1.1.num.int <55 (0x37)> + [16] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #xxxx.1.1.num.int <6 (0x6)> + [18] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [19] #xxxx.1.1.num.int <6 (0x6)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <1 (0x1)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <1 (0x1)> + [24] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.2.1.num.int <-9223372036854775807 (0x8000000000000001)> + [2] #xxxx.2.1.num.bool <1 (0x1)> + [3] #xxxx.2.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [6] #xxxx.1.1.num.int <203647 (0x31b7f)> + [7] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [8] #xxxx.1.1.num.int <203647 (0x31b7f)> + [9] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [10] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [11] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [12] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [13] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [14] #xxxx.1.1.num.int <55 (0x37)> + [15] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [16] #xxxx.1.1.num.int <55 (0x37)> + [17] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [18] #xxxx.1.1.num.int <6 (0x6)> + [19] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [20] #xxxx.1.1.num.int <6 (0x6)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <1 (0x1)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <1 (0x1)> + [25] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <0 (0x0)> + [1] #xxxx.2.1.num.bool <1 (0x1)> + [2] #xxxx.2.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #xxxx.1.1.num.int <203647 (0x31b7f)> + [6] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [7] #xxxx.1.1.num.int <203647 (0x31b7f)> + [8] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [11] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [12] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #xxxx.1.1.num.int <55 (0x37)> + [14] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [15] #xxxx.1.1.num.int <55 (0x37)> + [16] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #xxxx.1.1.num.int <6 (0x6)> + [18] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [19] #xxxx.1.1.num.int <6 (0x6)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <1 (0x1)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <1 (0x1)> + [24] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #xxxx.2.1.num.int <0 (0x0)> + [2] #xxxx.2.1.num.bool <1 (0x1)> + [3] #xxxx.2.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [6] #xxxx.1.1.num.int <203647 (0x31b7f)> + [7] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [8] #xxxx.1.1.num.int <203647 (0x31b7f)> + [9] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [10] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [11] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [12] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [13] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [14] #xxxx.1.1.num.int <55 (0x37)> + [15] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [16] #xxxx.1.1.num.int <55 (0x37)> + [17] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [18] #xxxx.1.1.num.int <6 (0x6)> + [19] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [20] #xxxx.1.1.num.int <6 (0x6)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <1 (0x1)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <1 (0x1)> + [25] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #xxxx.2.1.num.int <0 (0x0)> + [3] #xxxx.2.1.num.bool <1 (0x1)> + [4] #xxxx.2.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [7] #xxxx.1.1.num.int <203647 (0x31b7f)> + [8] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [9] #xxxx.1.1.num.int <203647 (0x31b7f)> + [10] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [11] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [12] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [13] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [14] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [15] #xxxx.1.1.num.int <55 (0x37)> + [16] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [17] #xxxx.1.1.num.int <55 (0x37)> + [18] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [19] #xxxx.1.1.num.int <6 (0x6)> + [20] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [21] #xxxx.1.1.num.int <6 (0x6)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <1 (0x1)> + [24] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #xxxx.1.1.num.int <1 (0x1)> + [26] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #xxxx.2.1.num.int <0 (0x0)> + [3] #xxxx.2.1.num.bool <1 (0x1)> + [4] #xxxx.2.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [7] #xxxx.1.1.num.int <203647 (0x31b7f)> + [8] #xxxx.1.1.num.int <-203647 (0xfffffffffffce481)> + [9] #xxxx.1.1.num.int <203647 (0x31b7f)> + [10] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [11] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [12] #xxxx.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [13] #xxxx.1.1.num.int <13318347976 (0x319d5dcc8)> + [14] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [15] #xxxx.1.1.num.int <55 (0x37)> + [16] #xxxx.1.1.num.int <-55 (0xffffffffffffffc9)> + [17] #xxxx.1.1.num.int <55 (0x37)> + [18] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [19] #xxxx.1.1.num.int <6 (0x6)> + [20] #xxxx.1.1.num.int <-6 (0xfffffffffffffffa)> + [21] #xxxx.1.1.num.int <6 (0x6)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <1 (0x1)> + [24] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #xxxx.1.1.num.int <1 (0x1)> + [26] #xxxx.1.1.num.int <0 (0x0)> +error 14 (div by zero), ip = #186 diff --git a/tests/0029_mod/code.log.ref b/tests/0029_mod/code.log.ref new file mode 100644 index 0000000..9d1dadc --- /dev/null +++ b/tests/0029_mod/code.log.ref @@ -0,0 +1,95 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 79 entries (79 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 01 0 + 2 0x00009 int 11 1 + 3 0x0000a word 38 6d 6f 64 mod + 2 4 0x0000e int 11 1 + 5 0x0000f int 21 2 + 6 0x00010 word 38 6d 6f 64 mod + 3 7 0x00014 int 81 ff -1 + 8 0x00016 int 21 2 + 9 0x00017 word 38 6d 6f 64 mod + 4 10 0x0001b int 11 1 + 11 0x0001c int 81 fe -2 + 12 0x0001e word 38 6d 6f 64 mod + 5 13 0x00022 int 81 ff -1 + 14 0x00024 int 81 fe -2 + 15 0x00026 word 38 6d 6f 64 mod + 6 16 0x0002a int 81 14 20 + 17 0x0002c int 71 7 + 18 0x0002d word 38 6d 6f 64 mod + 7 19 0x00031 int 81 ec -20 + 20 0x00033 int 71 7 + 21 0x00034 word 38 6d 6f 64 mod + 8 22 0x00038 int 81 14 20 + 23 0x0003a int 81 f9 -7 + 24 0x0003c word 38 6d 6f 64 mod + 9 25 0x00040 int 81 ec -20 + 26 0x00042 int 81 f9 -7 + 27 0x00044 word 38 6d 6f 64 mod + 10 28 0x00048 int 91 67 75 30055 + 29 0x0004b int 81 64 100 + 30 0x0004d word 38 6d 6f 64 mod + 11 31 0x00051 int 91 99 8a -30055 + 32 0x00054 int 81 64 100 + 33 0x00056 word 38 6d 6f 64 mod + 12 34 0x0005a int 91 67 75 30055 + 35 0x0005d int 81 9c -100 + 36 0x0005f word 38 6d 6f 64 mod + 13 37 0x00063 int 91 99 8a -30055 + 38 0x00066 int 81 9c -100 + 39 0x00068 word 38 6d 6f 64 mod + 14 40 0x0006c int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 41 0x00075 int c1 b7 28 23 5e 05 23054198967 + 42 0x0007b word 38 6d 6f 64 mod + 15 43 0x0007f int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 44 0x00088 int c1 b7 28 23 5e 05 23054198967 + 45 0x0008e word 38 6d 6f 64 mod + 16 46 0x00092 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 47 0x0009b int c1 49 d7 dc a1 fa -23054198967 + 48 0x000a1 word 38 6d 6f 64 mod + 17 49 0x000a5 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 50 0x000ae int c1 49 d7 dc a1 fa -23054198967 + 51 0x000b4 word 38 6d 6f 64 mod + 18 52 0x000b8 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 53 0x000c1 int a1 56 34 12 1193046 + 54 0x000c5 word 38 6d 6f 64 mod + 19 55 0x000c9 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 56 0x000d2 int a1 56 34 12 1193046 + 57 0x000d6 word 38 6d 6f 64 mod + 20 58 0x000da int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 59 0x000e3 int a1 aa cb ed -1193046 + 60 0x000e7 word 38 6d 6f 64 mod + 21 61 0x000eb int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 62 0x000f4 int a1 aa cb ed -1193046 + 63 0x000f8 word 38 6d 6f 64 mod + 22 64 0x000fc bool 12 true + 65 0x000fd bool 12 true + 66 0x000fe word 38 6d 6f 64 mod + 23 67 0x00102 bool 02 false + 68 0x00103 bool 12 true + 69 0x00104 word 38 6d 6f 64 mod + 24 70 0x00108 bool 12 true + 71 0x00109 int 81 09 9 + 72 0x0010b word 38 6d 6f 64 mod + 25 73 0x0010f int f1 01 00 00 00 00 00 00 -0x7fffffffffffffff + 80 + 74 0x00118 int 81 ff -1 + 75 0x0011a word 38 6d 6f 64 mod + 26 76 0x0011e int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 77 0x00127 int 81 ff -1 + 78 0x00129 word 38 6d 6f 64 mod diff --git a/tests/0029_mod/code1.log.ref b/tests/0029_mod/code1.log.ref new file mode 100644 index 0000000..71e2f4c --- /dev/null +++ b/tests/0029_mod/code1.log.ref @@ -0,0 +1,95 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 79 entries (79 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 01 0 + 2 0x00009 int 11 1 + 3 0x0000a word 38 6d 6f 64 mod + 2 4 0x0000e int 11 1 + 5 0x0000f int 21 2 + 6 0x00010 xref 64 mod + 3 7 0x00011 int 81 ff -1 + 8 0x00013 int 21 2 + 9 0x00014 xref 84 0a mod + 4 10 0x00016 int 11 1 + 11 0x00017 int 81 fe -2 + 12 0x00019 xref 84 0f mod + 5 13 0x0001b int 81 ff -1 + 14 0x0001d int 81 fe -2 + 15 0x0001f xref 84 15 mod + 6 16 0x00021 int 81 14 20 + 17 0x00023 int 71 7 + 18 0x00024 xref 84 1a mod + 7 19 0x00026 int 81 ec -20 + 20 0x00028 int 71 7 + 21 0x00029 xref 84 1f mod + 8 22 0x0002b int 81 14 20 + 23 0x0002d int 81 f9 -7 + 24 0x0002f xref 84 25 mod + 9 25 0x00031 int 81 ec -20 + 26 0x00033 int 81 f9 -7 + 27 0x00035 xref 84 2b mod + 10 28 0x00037 int 91 67 75 30055 + 29 0x0003a int 81 64 100 + 30 0x0003c xref 84 32 mod + 11 31 0x0003e int 91 99 8a -30055 + 32 0x00041 int 81 64 100 + 33 0x00043 xref 84 39 mod + 12 34 0x00045 int 91 67 75 30055 + 35 0x00048 int 81 9c -100 + 36 0x0004a xref 84 40 mod + 13 37 0x0004c int 91 99 8a -30055 + 38 0x0004f int 81 9c -100 + 39 0x00051 xref 84 47 mod + 14 40 0x00053 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 41 0x0005c int c1 b7 28 23 5e 05 23054198967 + 42 0x00062 xref 84 58 mod + 15 43 0x00064 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 44 0x0006d int c1 b7 28 23 5e 05 23054198967 + 45 0x00073 xref 84 69 mod + 16 46 0x00075 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 47 0x0007e int c1 49 d7 dc a1 fa -23054198967 + 48 0x00084 xref 84 7a mod + 17 49 0x00086 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 50 0x0008f int c1 49 d7 dc a1 fa -23054198967 + 51 0x00095 xref 84 8b mod + 18 52 0x00097 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 53 0x000a0 int a1 56 34 12 1193046 + 54 0x000a4 xref 84 9a mod + 19 55 0x000a6 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 56 0x000af int a1 56 34 12 1193046 + 57 0x000b3 xref 84 a9 mod + 20 58 0x000b5 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 59 0x000be int a1 aa cb ed -1193046 + 60 0x000c2 xref 84 b8 mod + 21 61 0x000c4 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 62 0x000cd int a1 aa cb ed -1193046 + 63 0x000d1 xref 84 c7 mod + 22 64 0x000d3 bool 12 true + 65 0x000d4 bool 12 true + 66 0x000d5 xref 84 cb mod + 23 67 0x000d7 bool 02 false + 68 0x000d8 bool 12 true + 69 0x000d9 xref 84 cf mod + 24 70 0x000db bool 12 true + 71 0x000dc int 81 09 9 + 72 0x000de xref 84 d4 mod + 25 73 0x000e0 int f1 01 00 00 00 00 00 00 -0x7fffffffffffffff + 80 + 74 0x000e9 int 81 ff -1 + 75 0x000eb xref 84 e1 mod + 26 76 0x000ed int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 77 0x000f6 int 81 ff -1 + 78 0x000f8 xref 84 ee mod diff --git a/tests/0029_mod/code2.log.ref b/tests/0029_mod/code2.log.ref new file mode 100644 index 0000000..61c8b82 --- /dev/null +++ b/tests/0029_mod/code2.log.ref @@ -0,0 +1,95 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 79 entries (79 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 01 0 + 2 0x00009 int 11 1 + 3 0x0000a prim 83 22 mod + 2 4 0x0000c int 11 1 + 5 0x0000d int 21 2 + 6 0x0000e prim 83 22 mod + 3 7 0x00010 int 81 ff -1 + 8 0x00012 int 21 2 + 9 0x00013 prim 83 22 mod + 4 10 0x00015 int 11 1 + 11 0x00016 int 81 fe -2 + 12 0x00018 prim 83 22 mod + 5 13 0x0001a int 81 ff -1 + 14 0x0001c int 81 fe -2 + 15 0x0001e prim 83 22 mod + 6 16 0x00020 int 81 14 20 + 17 0x00022 int 71 7 + 18 0x00023 prim 83 22 mod + 7 19 0x00025 int 81 ec -20 + 20 0x00027 int 71 7 + 21 0x00028 prim 83 22 mod + 8 22 0x0002a int 81 14 20 + 23 0x0002c int 81 f9 -7 + 24 0x0002e prim 83 22 mod + 9 25 0x00030 int 81 ec -20 + 26 0x00032 int 81 f9 -7 + 27 0x00034 prim 83 22 mod + 10 28 0x00036 int 91 67 75 30055 + 29 0x00039 int 81 64 100 + 30 0x0003b prim 83 22 mod + 11 31 0x0003d int 91 99 8a -30055 + 32 0x00040 int 81 64 100 + 33 0x00042 prim 83 22 mod + 12 34 0x00044 int 91 67 75 30055 + 35 0x00047 int 81 9c -100 + 36 0x00049 prim 83 22 mod + 13 37 0x0004b int 91 99 8a -30055 + 38 0x0004e int 81 9c -100 + 39 0x00050 prim 83 22 mod + 14 40 0x00052 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 41 0x0005b int c1 b7 28 23 5e 05 23054198967 + 42 0x00061 prim 83 22 mod + 15 43 0x00063 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 44 0x0006c int c1 b7 28 23 5e 05 23054198967 + 45 0x00072 prim 83 22 mod + 16 46 0x00074 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 47 0x0007d int c1 49 d7 dc a1 fa -23054198967 + 48 0x00083 prim 83 22 mod + 17 49 0x00085 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 50 0x0008e int c1 49 d7 dc a1 fa -23054198967 + 51 0x00094 prim 83 22 mod + 18 52 0x00096 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 53 0x0009f int a1 56 34 12 1193046 + 54 0x000a3 prim 83 22 mod + 19 55 0x000a5 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 56 0x000ae int a1 56 34 12 1193046 + 57 0x000b2 prim 83 22 mod + 20 58 0x000b4 int f1 7f 56 34 12 78 56 34 1311768465173141119 + 12 + 59 0x000bd int a1 aa cb ed -1193046 + 60 0x000c1 prim 83 22 mod + 21 61 0x000c3 int f1 81 a9 cb ed 87 a9 cb -1311768465173141119 + ed + 62 0x000cc int a1 aa cb ed -1193046 + 63 0x000d0 prim 83 22 mod + 22 64 0x000d2 bool 12 true + 65 0x000d3 bool 12 true + 66 0x000d4 prim 83 22 mod + 23 67 0x000d6 bool 02 false + 68 0x000d7 bool 12 true + 69 0x000d8 prim 83 22 mod + 24 70 0x000da bool 12 true + 71 0x000db int 81 09 9 + 72 0x000dd prim 83 22 mod + 25 73 0x000df int f1 01 00 00 00 00 00 00 -0x7fffffffffffffff + 80 + 74 0x000e8 int 81 ff -1 + 75 0x000ea prim 83 22 mod + 26 76 0x000ec int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 77 0x000f5 int 81 ff -1 + 78 0x000f7 prim 83 22 mod diff --git a/tests/0029_mod/main.gs b/tests/0029_mod/main.gs new file mode 100644 index 0000000..cc857a1 --- /dev/null +++ b/tests/0029_mod/main.gs @@ -0,0 +1,26 @@ +0 1 mod +1 2 mod +-1 2 mod +1 -2 mod +-1 -2 mod +20 7 mod +-20 7 mod +20 -7 mod +-20 -7 mod +30055 100 mod +-30055 100 mod +30055 -100 mod +-30055 -100 mod +1311768465173141119 23054198967 mod +-1311768465173141119 23054198967 mod +1311768465173141119 -23054198967 mod +-1311768465173141119 -23054198967 mod +1311768465173141119 1193046 mod +-1311768465173141119 1193046 mod +1311768465173141119 -1193046 mod +-1311768465173141119 -1193046 mod +true true mod +false true mod +true 9 mod +-0x7fffffffffffffff -1 mod +-0x8000000000000000 -1 mod diff --git a/tests/0029_mod/mem.log.ref b/tests/0029_mod/mem.log.ref new file mode 100644 index 0000000..3397e63 --- /dev/null +++ b/tests/0029_mod/mem.log.ref @@ -0,0 +1,824 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 304] + 8: 0.00, 0x001d6ba4[ 72] + 9: 188.01, 0x001d6bf4[ 56] + 10: 192.01, 0x001d6c34[ 72] + 11: 187.01, 0x001d6c84[ 144] + 12: 0.00, 0x001d6d1c[14848740] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 01 11 38 6d 6f 64 11 21 uQ..Bz.`..8mod.! + 38 6d 6f 64 81 ff 21 38 6d 6f 64 11 81 fe 38 6d 8mod..!8mod...8m + 6f 64 81 ff 81 fe 38 6d 6f 64 81 14 71 38 6d 6f od....8mod..q8mo + 64 81 ec 71 38 6d 6f 64 81 14 81 f9 38 6d 6f 64 d..q8mod....8mod + 81 ec 81 f9 38 6d 6f 64 91 67 75 81 64 38 6d 6f ....8mod.gu.d8mo + 64 91 99 8a 81 64 38 6d 6f 64 91 67 75 81 9c 38 d....d8mod.gu..8 + 6d 6f 64 91 99 8a 81 9c 38 6d 6f 64 f1 7f 56 34 mod.....8mod..V4 + 12 78 56 34 12 c1 b7 28 23 5e 05 38 6d 6f 64 f1 .xV4...(#^.8mod. + 81 a9 cb ed 87 a9 cb ed c1 b7 28 23 5e 05 38 6d ..........(#^.8m + 6f 64 f1 7f 56 34 12 78 56 34 12 c1 49 d7 dc a1 od..V4.xV4..I... + fa 38 6d 6f 64 f1 81 a9 cb ed 87 a9 cb ed c1 49 .8mod..........I + d7 dc a1 fa 38 6d 6f 64 f1 7f 56 34 12 78 56 34 ....8mod..V4.xV4 + 12 a1 56 34 12 38 6d 6f 64 f1 81 a9 cb ed 87 a9 ..V4.8mod....... + cb ed a1 56 34 12 38 6d 6f 64 f1 7f 56 34 12 78 ...V4.8mod..V4.x + 56 34 12 a1 aa cb ed 38 6d 6f 64 f1 81 a9 cb ed V4.....8mod..... + 87 a9 cb ed a1 aa cb ed 38 6d 6f 64 12 12 38 6d ........8mod..8m + 6f 64 02 12 38 6d 6f 64 12 81 09 38 6d 6f 64 f1 od..8mod...8mod. + 01 00 00 00 00 00 00 80 81 ff 38 6d 6f 64 f1 00 ..........8mod.. + 00 00 00 00 00 00 80 81 ff 38 6d 6f 64 .........8mod + #187.1.1.array + [ 0] #191.1.1.num.int <0 (0x0)> + [ 1] #195.1.1.num.int <1 (0x1)> + [ 2] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [ 3] #201.1.1.num.int <1 (0x1)> + [ 4] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [ 5] #207.1.1.num.int <6 (0x6)> + [ 6] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [ 7] #213.1.1.num.int <6 (0x6)> + [ 8] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [ 9] #219.1.1.num.int <55 (0x37)> + [10] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #225.1.1.num.int <55 (0x37)> + [12] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [14] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [15] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [16] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [17] #243.1.1.num.int <203647 (0x31b7f)> + [18] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [19] #249.1.1.num.int <203647 (0x31b7f)> + [20] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [21] #255.1.1.num.bool <1 (0x1)> + [22] #189.2.1.num.bool <0 (0x0)> + [23] #194.2.1.num.bool <1 (0x1)> + [24] #199.2.1.num.int <0 (0x0)> + [25] #200.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [26] #202.2.1.num.int <-1 (0xffffffffffffffff)> + #188.1.1.ctx.func + type 17, ip 0x12d (0x129) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.2.1.num.bool <0 (0x0)> + #191.1.1.num.int <0 (0x0)> + #192.1.1.array + #194.2.1.num.bool <1 (0x1)> + #195.1.1.num.int <1 (0x1)> + #198.1.1.num.int <-1 (0xffffffffffffffff)> + #199.2.1.num.int <0 (0x0)> + #200.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + #201.1.1.num.int <1 (0x1)> + #202.2.1.num.int <-1 (0xffffffffffffffff)> + #204.1.1.num.int <-1 (0xffffffffffffffff)> + #207.1.1.num.int <6 (0x6)> + #210.1.1.num.int <-6 (0xfffffffffffffffa)> + #213.1.1.num.int <6 (0x6)> + #216.1.1.num.int <-6 (0xfffffffffffffffa)> + #219.1.1.num.int <55 (0x37)> + #222.1.1.num.int <-55 (0xffffffffffffffc9)> + #225.1.1.num.int <55 (0x37)> + #228.1.1.num.int <-55 (0xffffffffffffffc9)> + #231.1.1.num.int <13318347976 (0x319d5dcc8)> + #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + #237.1.1.num.int <13318347976 (0x319d5dcc8)> + #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + #243.1.1.num.int <203647 (0x31b7f)> + #246.1.1.num.int <-203647 (0xfffffffffffce481)> + #249.1.1.num.int <203647 (0x31b7f)> + #252.1.1.num.int <-203647 (0xfffffffffffce481)> + #255.1.1.num.bool <1 (0x1)> diff --git a/tests/0029_mod/screen.log.ref b/tests/0029_mod/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0029_mod/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0029_mod/trace.log.ref b/tests/0029_mod/trace.log.ref new file mode 100644 index 0000000..9929ca4 --- /dev/null +++ b/tests/0029_mod/trace.log.ref @@ -0,0 +1,1448 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <0 (0x0)> +IP: #186:0x9, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <1 (0x1)> + [1] #189.1.1.num.int <0 (0x0)> +IP: #186:0xa, type 8, 11[3] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <0 (0x0)> +IP: #186:0xe, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <1 (0x1)> + [1] #191.1.1.num.int <0 (0x0)> +IP: #186:0xf, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <2 (0x2)> + [1] #193.1.1.num.int <1 (0x1)> + [2] #191.1.1.num.int <0 (0x0)> +IP: #186:0x10, type 8, 17[3] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <1 (0x1)> + [1] #191.1.1.num.int <0 (0x0)> +IP: #186:0x14, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #195.1.1.num.int <1 (0x1)> + [2] #191.1.1.num.int <0 (0x0)> +IP: #186:0x16, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <2 (0x2)> + [1] #196.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #195.1.1.num.int <1 (0x1)> + [3] #191.1.1.num.int <0 (0x0)> +IP: #186:0x17, type 8, 24[3] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #195.1.1.num.int <1 (0x1)> + [2] #191.1.1.num.int <0 (0x0)> +IP: #186:0x1b, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <1 (0x1)> + [1] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #195.1.1.num.int <1 (0x1)> + [3] #191.1.1.num.int <0 (0x0)> +IP: #186:0x1c, type 1, -2 (0xfffffffffffffffe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #199.1.1.num.int <1 (0x1)> + [2] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #195.1.1.num.int <1 (0x1)> + [4] #191.1.1.num.int <0 (0x0)> +IP: #186:0x1e, type 8, 31[3] +GC: --#200.1.1.num.int +GC: --#199.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <1 (0x1)> + [1] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #195.1.1.num.int <1 (0x1)> + [3] #191.1.1.num.int <0 (0x0)> +IP: #186:0x22, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #201.1.1.num.int <1 (0x1)> + [2] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #195.1.1.num.int <1 (0x1)> + [4] #191.1.1.num.int <0 (0x0)> +IP: #186:0x24, type 1, -2 (0xfffffffffffffffe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #202.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #201.1.1.num.int <1 (0x1)> + [3] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #195.1.1.num.int <1 (0x1)> + [5] #191.1.1.num.int <0 (0x0)> +IP: #186:0x26, type 8, 39[3] +GC: --#203.1.1.num.int +GC: --#202.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #201.1.1.num.int <1 (0x1)> + [2] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #195.1.1.num.int <1 (0x1)> + [4] #191.1.1.num.int <0 (0x0)> +IP: #186:0x2a, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <20 (0x14)> + [1] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #201.1.1.num.int <1 (0x1)> + [3] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #195.1.1.num.int <1 (0x1)> + [5] #191.1.1.num.int <0 (0x0)> +IP: #186:0x2c, type 1, 7 (0x7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <7 (0x7)> + [1] #205.1.1.num.int <20 (0x14)> + [2] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #201.1.1.num.int <1 (0x1)> + [4] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #195.1.1.num.int <1 (0x1)> + [6] #191.1.1.num.int <0 (0x0)> +IP: #186:0x2d, type 8, 46[3] +GC: --#206.1.1.num.int +GC: --#205.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <6 (0x6)> + [1] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #201.1.1.num.int <1 (0x1)> + [3] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #195.1.1.num.int <1 (0x1)> + [5] #191.1.1.num.int <0 (0x0)> +IP: #186:0x31, type 1, -20 (0xffffffffffffffec) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <-20 (0xffffffffffffffec)> + [1] #207.1.1.num.int <6 (0x6)> + [2] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #201.1.1.num.int <1 (0x1)> + [4] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #195.1.1.num.int <1 (0x1)> + [6] #191.1.1.num.int <0 (0x0)> +IP: #186:0x33, type 1, 7 (0x7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <7 (0x7)> + [1] #208.1.1.num.int <-20 (0xffffffffffffffec)> + [2] #207.1.1.num.int <6 (0x6)> + [3] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #201.1.1.num.int <1 (0x1)> + [5] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #195.1.1.num.int <1 (0x1)> + [7] #191.1.1.num.int <0 (0x0)> +IP: #186:0x34, type 8, 53[3] +GC: --#209.1.1.num.int +GC: --#208.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [1] #207.1.1.num.int <6 (0x6)> + [2] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #201.1.1.num.int <1 (0x1)> + [4] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #195.1.1.num.int <1 (0x1)> + [6] #191.1.1.num.int <0 (0x0)> +IP: #186:0x38, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <20 (0x14)> + [1] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [2] #207.1.1.num.int <6 (0x6)> + [3] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #201.1.1.num.int <1 (0x1)> + [5] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #195.1.1.num.int <1 (0x1)> + [7] #191.1.1.num.int <0 (0x0)> +IP: #186:0x3a, type 1, -7 (0xfffffffffffffff9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.int <-7 (0xfffffffffffffff9)> + [1] #211.1.1.num.int <20 (0x14)> + [2] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #207.1.1.num.int <6 (0x6)> + [4] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #201.1.1.num.int <1 (0x1)> + [6] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #195.1.1.num.int <1 (0x1)> + [8] #191.1.1.num.int <0 (0x0)> +IP: #186:0x3c, type 8, 61[3] +GC: --#212.1.1.num.int +GC: --#211.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <6 (0x6)> + [1] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [2] #207.1.1.num.int <6 (0x6)> + [3] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #201.1.1.num.int <1 (0x1)> + [5] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #195.1.1.num.int <1 (0x1)> + [7] #191.1.1.num.int <0 (0x0)> +IP: #186:0x40, type 1, -20 (0xffffffffffffffec) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.num.int <-20 (0xffffffffffffffec)> + [1] #213.1.1.num.int <6 (0x6)> + [2] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #207.1.1.num.int <6 (0x6)> + [4] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #201.1.1.num.int <1 (0x1)> + [6] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #195.1.1.num.int <1 (0x1)> + [8] #191.1.1.num.int <0 (0x0)> +IP: #186:0x42, type 1, -7 (0xfffffffffffffff9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <-7 (0xfffffffffffffff9)> + [1] #214.1.1.num.int <-20 (0xffffffffffffffec)> + [2] #213.1.1.num.int <6 (0x6)> + [3] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #207.1.1.num.int <6 (0x6)> + [5] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #201.1.1.num.int <1 (0x1)> + [7] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #195.1.1.num.int <1 (0x1)> + [9] #191.1.1.num.int <0 (0x0)> +IP: #186:0x44, type 8, 69[3] +GC: --#215.1.1.num.int +GC: --#214.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [1] #213.1.1.num.int <6 (0x6)> + [2] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #207.1.1.num.int <6 (0x6)> + [4] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #201.1.1.num.int <1 (0x1)> + [6] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #195.1.1.num.int <1 (0x1)> + [8] #191.1.1.num.int <0 (0x0)> +IP: #186:0x48, type 1, 30055 (0x7567) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <30055 (0x7567)> + [1] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [2] #213.1.1.num.int <6 (0x6)> + [3] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #207.1.1.num.int <6 (0x6)> + [5] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #201.1.1.num.int <1 (0x1)> + [7] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #195.1.1.num.int <1 (0x1)> + [9] #191.1.1.num.int <0 (0x0)> +IP: #186:0x4b, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.int <100 (0x64)> + [1] #217.1.1.num.int <30055 (0x7567)> + [2] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #213.1.1.num.int <6 (0x6)> + [4] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #207.1.1.num.int <6 (0x6)> + [6] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #201.1.1.num.int <1 (0x1)> + [8] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #195.1.1.num.int <1 (0x1)> + [10] #191.1.1.num.int <0 (0x0)> +IP: #186:0x4d, type 8, 78[3] +GC: --#218.1.1.num.int +GC: --#217.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.int <55 (0x37)> + [1] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [2] #213.1.1.num.int <6 (0x6)> + [3] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #207.1.1.num.int <6 (0x6)> + [5] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #201.1.1.num.int <1 (0x1)> + [7] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #195.1.1.num.int <1 (0x1)> + [9] #191.1.1.num.int <0 (0x0)> +IP: #186:0x51, type 1, -30055 (0xffffffffffff8a99) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.num.int <-30055 (0xffffffffffff8a99)> + [1] #219.1.1.num.int <55 (0x37)> + [2] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #213.1.1.num.int <6 (0x6)> + [4] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #207.1.1.num.int <6 (0x6)> + [6] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #201.1.1.num.int <1 (0x1)> + [8] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #195.1.1.num.int <1 (0x1)> + [10] #191.1.1.num.int <0 (0x0)> +IP: #186:0x54, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.int <100 (0x64)> + [1] #220.1.1.num.int <-30055 (0xffffffffffff8a99)> + [2] #219.1.1.num.int <55 (0x37)> + [3] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #213.1.1.num.int <6 (0x6)> + [5] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #207.1.1.num.int <6 (0x6)> + [7] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #201.1.1.num.int <1 (0x1)> + [9] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #195.1.1.num.int <1 (0x1)> + [11] #191.1.1.num.int <0 (0x0)> +IP: #186:0x56, type 8, 87[3] +GC: --#221.1.1.num.int +GC: --#220.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [1] #219.1.1.num.int <55 (0x37)> + [2] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [3] #213.1.1.num.int <6 (0x6)> + [4] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #207.1.1.num.int <6 (0x6)> + [6] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #201.1.1.num.int <1 (0x1)> + [8] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #195.1.1.num.int <1 (0x1)> + [10] #191.1.1.num.int <0 (0x0)> +IP: #186:0x5a, type 1, 30055 (0x7567) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.num.int <30055 (0x7567)> + [1] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [2] #219.1.1.num.int <55 (0x37)> + [3] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #213.1.1.num.int <6 (0x6)> + [5] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #207.1.1.num.int <6 (0x6)> + [7] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #201.1.1.num.int <1 (0x1)> + [9] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #195.1.1.num.int <1 (0x1)> + [11] #191.1.1.num.int <0 (0x0)> +IP: #186:0x5d, type 1, -100 (0xffffffffffffff9c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.num.int <-100 (0xffffffffffffff9c)> + [1] #223.1.1.num.int <30055 (0x7567)> + [2] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #219.1.1.num.int <55 (0x37)> + [4] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #213.1.1.num.int <6 (0x6)> + [6] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #207.1.1.num.int <6 (0x6)> + [8] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #201.1.1.num.int <1 (0x1)> + [10] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #195.1.1.num.int <1 (0x1)> + [12] #191.1.1.num.int <0 (0x0)> +IP: #186:0x5f, type 8, 96[3] +GC: --#224.1.1.num.int +GC: --#223.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <55 (0x37)> + [1] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [2] #219.1.1.num.int <55 (0x37)> + [3] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [4] #213.1.1.num.int <6 (0x6)> + [5] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #207.1.1.num.int <6 (0x6)> + [7] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #201.1.1.num.int <1 (0x1)> + [9] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #195.1.1.num.int <1 (0x1)> + [11] #191.1.1.num.int <0 (0x0)> +IP: #186:0x63, type 1, -30055 (0xffffffffffff8a99) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.int <-30055 (0xffffffffffff8a99)> + [1] #225.1.1.num.int <55 (0x37)> + [2] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #219.1.1.num.int <55 (0x37)> + [4] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #213.1.1.num.int <6 (0x6)> + [6] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #207.1.1.num.int <6 (0x6)> + [8] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #201.1.1.num.int <1 (0x1)> + [10] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #195.1.1.num.int <1 (0x1)> + [12] #191.1.1.num.int <0 (0x0)> +IP: #186:0x66, type 1, -100 (0xffffffffffffff9c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <-100 (0xffffffffffffff9c)> + [1] #226.1.1.num.int <-30055 (0xffffffffffff8a99)> + [2] #225.1.1.num.int <55 (0x37)> + [3] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #219.1.1.num.int <55 (0x37)> + [5] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #213.1.1.num.int <6 (0x6)> + [7] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #207.1.1.num.int <6 (0x6)> + [9] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #201.1.1.num.int <1 (0x1)> + [11] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #195.1.1.num.int <1 (0x1)> + [13] #191.1.1.num.int <0 (0x0)> +IP: #186:0x68, type 8, 105[3] +GC: --#227.1.1.num.int +GC: --#226.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [1] #225.1.1.num.int <55 (0x37)> + [2] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #219.1.1.num.int <55 (0x37)> + [4] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [5] #213.1.1.num.int <6 (0x6)> + [6] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #207.1.1.num.int <6 (0x6)> + [8] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #201.1.1.num.int <1 (0x1)> + [10] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #195.1.1.num.int <1 (0x1)> + [12] #191.1.1.num.int <0 (0x0)> +IP: #186:0x6c, type 1, 1311768465173141119 (0x123456781234567f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [2] #225.1.1.num.int <55 (0x37)> + [3] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #219.1.1.num.int <55 (0x37)> + [5] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #213.1.1.num.int <6 (0x6)> + [7] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #207.1.1.num.int <6 (0x6)> + [9] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #201.1.1.num.int <1 (0x1)> + [11] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #195.1.1.num.int <1 (0x1)> + [13] #191.1.1.num.int <0 (0x0)> +IP: #186:0x75, type 1, 23054198967 (0x55e2328b7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.num.int <23054198967 (0x55e2328b7)> + [1] #229.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #225.1.1.num.int <55 (0x37)> + [4] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #219.1.1.num.int <55 (0x37)> + [6] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #213.1.1.num.int <6 (0x6)> + [8] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #207.1.1.num.int <6 (0x6)> + [10] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #201.1.1.num.int <1 (0x1)> + [12] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #195.1.1.num.int <1 (0x1)> + [14] #191.1.1.num.int <0 (0x0)> +IP: #186:0x7b, type 8, 124[3] +GC: --#230.1.1.num.int +GC: --#229.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [1] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [2] #225.1.1.num.int <55 (0x37)> + [3] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #219.1.1.num.int <55 (0x37)> + [5] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [6] #213.1.1.num.int <6 (0x6)> + [7] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #207.1.1.num.int <6 (0x6)> + [9] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #201.1.1.num.int <1 (0x1)> + [11] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #195.1.1.num.int <1 (0x1)> + [13] #191.1.1.num.int <0 (0x0)> +IP: #186:0x7f, type 1, -1311768465173141119 (0xedcba987edcba981) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [2] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #225.1.1.num.int <55 (0x37)> + [4] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #219.1.1.num.int <55 (0x37)> + [6] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #213.1.1.num.int <6 (0x6)> + [8] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #207.1.1.num.int <6 (0x6)> + [10] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #201.1.1.num.int <1 (0x1)> + [12] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #195.1.1.num.int <1 (0x1)> + [14] #191.1.1.num.int <0 (0x0)> +IP: #186:0x88, type 1, 23054198967 (0x55e2328b7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.num.int <23054198967 (0x55e2328b7)> + [1] #232.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #225.1.1.num.int <55 (0x37)> + [5] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #219.1.1.num.int <55 (0x37)> + [7] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #213.1.1.num.int <6 (0x6)> + [9] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #207.1.1.num.int <6 (0x6)> + [11] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #201.1.1.num.int <1 (0x1)> + [13] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #195.1.1.num.int <1 (0x1)> + [15] #191.1.1.num.int <0 (0x0)> +IP: #186:0x8e, type 8, 143[3] +GC: --#233.1.1.num.int +GC: --#232.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [1] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [2] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [3] #225.1.1.num.int <55 (0x37)> + [4] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #219.1.1.num.int <55 (0x37)> + [6] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [7] #213.1.1.num.int <6 (0x6)> + [8] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #207.1.1.num.int <6 (0x6)> + [10] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #201.1.1.num.int <1 (0x1)> + [12] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #195.1.1.num.int <1 (0x1)> + [14] #191.1.1.num.int <0 (0x0)> +IP: #186:0x92, type 1, 1311768465173141119 (0x123456781234567f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [2] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #225.1.1.num.int <55 (0x37)> + [5] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #219.1.1.num.int <55 (0x37)> + [7] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #213.1.1.num.int <6 (0x6)> + [9] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #207.1.1.num.int <6 (0x6)> + [11] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #201.1.1.num.int <1 (0x1)> + [13] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #195.1.1.num.int <1 (0x1)> + [15] #191.1.1.num.int <0 (0x0)> +IP: #186:0x9b, type 1, -23054198967 (0xfffffffaa1dcd749) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <-23054198967 (0xfffffffaa1dcd749)> + [1] #235.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #225.1.1.num.int <55 (0x37)> + [6] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #219.1.1.num.int <55 (0x37)> + [8] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #213.1.1.num.int <6 (0x6)> + [10] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #207.1.1.num.int <6 (0x6)> + [12] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #201.1.1.num.int <1 (0x1)> + [14] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #195.1.1.num.int <1 (0x1)> + [16] #191.1.1.num.int <0 (0x0)> +IP: #186:0xa1, type 8, 162[3] +GC: --#236.1.1.num.int +GC: --#235.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [1] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [2] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [4] #225.1.1.num.int <55 (0x37)> + [5] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #219.1.1.num.int <55 (0x37)> + [7] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [8] #213.1.1.num.int <6 (0x6)> + [9] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #207.1.1.num.int <6 (0x6)> + [11] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #201.1.1.num.int <1 (0x1)> + [13] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #195.1.1.num.int <1 (0x1)> + [15] #191.1.1.num.int <0 (0x0)> +IP: #186:0xa5, type 1, -1311768465173141119 (0xedcba987edcba981) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [2] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #225.1.1.num.int <55 (0x37)> + [6] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #219.1.1.num.int <55 (0x37)> + [8] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #213.1.1.num.int <6 (0x6)> + [10] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #207.1.1.num.int <6 (0x6)> + [12] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #201.1.1.num.int <1 (0x1)> + [14] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #195.1.1.num.int <1 (0x1)> + [16] #191.1.1.num.int <0 (0x0)> +IP: #186:0xae, type 1, -23054198967 (0xfffffffaa1dcd749) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.num.int <-23054198967 (0xfffffffaa1dcd749)> + [1] #238.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #225.1.1.num.int <55 (0x37)> + [7] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #219.1.1.num.int <55 (0x37)> + [9] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #213.1.1.num.int <6 (0x6)> + [11] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #207.1.1.num.int <6 (0x6)> + [13] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #201.1.1.num.int <1 (0x1)> + [15] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #195.1.1.num.int <1 (0x1)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xb4, type 8, 181[3] +GC: --#239.1.1.num.int +GC: --#238.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [1] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [2] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [5] #225.1.1.num.int <55 (0x37)> + [6] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #219.1.1.num.int <55 (0x37)> + [8] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [9] #213.1.1.num.int <6 (0x6)> + [10] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #207.1.1.num.int <6 (0x6)> + [12] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #201.1.1.num.int <1 (0x1)> + [14] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #195.1.1.num.int <1 (0x1)> + [16] #191.1.1.num.int <0 (0x0)> +IP: #186:0xb8, type 1, 1311768465173141119 (0x123456781234567f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [2] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #225.1.1.num.int <55 (0x37)> + [7] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #219.1.1.num.int <55 (0x37)> + [9] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #213.1.1.num.int <6 (0x6)> + [11] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #207.1.1.num.int <6 (0x6)> + [13] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #201.1.1.num.int <1 (0x1)> + [15] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #195.1.1.num.int <1 (0x1)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xc1, type 1, 1193046 (0x123456) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <1193046 (0x123456)> + [1] #241.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #225.1.1.num.int <55 (0x37)> + [8] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #219.1.1.num.int <55 (0x37)> + [10] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #213.1.1.num.int <6 (0x6)> + [12] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #207.1.1.num.int <6 (0x6)> + [14] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #201.1.1.num.int <1 (0x1)> + [16] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #195.1.1.num.int <1 (0x1)> + [18] #191.1.1.num.int <0 (0x0)> +IP: #186:0xc5, type 8, 198[3] +GC: --#242.1.1.num.int +GC: --#241.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.num.int <203647 (0x31b7f)> + [1] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [2] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [3] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [6] #225.1.1.num.int <55 (0x37)> + [7] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #219.1.1.num.int <55 (0x37)> + [9] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [10] #213.1.1.num.int <6 (0x6)> + [11] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #207.1.1.num.int <6 (0x6)> + [13] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #201.1.1.num.int <1 (0x1)> + [15] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #195.1.1.num.int <1 (0x1)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xc9, type 1, -1311768465173141119 (0xedcba987edcba981) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #243.1.1.num.int <203647 (0x31b7f)> + [2] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #225.1.1.num.int <55 (0x37)> + [8] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #219.1.1.num.int <55 (0x37)> + [10] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #213.1.1.num.int <6 (0x6)> + [12] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #207.1.1.num.int <6 (0x6)> + [14] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #201.1.1.num.int <1 (0x1)> + [16] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #195.1.1.num.int <1 (0x1)> + [18] #191.1.1.num.int <0 (0x0)> +IP: #186:0xd2, type 1, 1193046 (0x123456) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.num.int <1193046 (0x123456)> + [1] #244.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #243.1.1.num.int <203647 (0x31b7f)> + [3] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #225.1.1.num.int <55 (0x37)> + [9] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #219.1.1.num.int <55 (0x37)> + [11] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #213.1.1.num.int <6 (0x6)> + [13] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #207.1.1.num.int <6 (0x6)> + [15] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #201.1.1.num.int <1 (0x1)> + [17] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #195.1.1.num.int <1 (0x1)> + [19] #191.1.1.num.int <0 (0x0)> +IP: #186:0xd6, type 8, 215[3] +GC: --#245.1.1.num.int +GC: --#244.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [1] #243.1.1.num.int <203647 (0x31b7f)> + [2] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [3] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [4] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [7] #225.1.1.num.int <55 (0x37)> + [8] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #219.1.1.num.int <55 (0x37)> + [10] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [11] #213.1.1.num.int <6 (0x6)> + [12] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #207.1.1.num.int <6 (0x6)> + [14] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #201.1.1.num.int <1 (0x1)> + [16] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #195.1.1.num.int <1 (0x1)> + [18] #191.1.1.num.int <0 (0x0)> +IP: #186:0xda, type 1, 1311768465173141119 (0x123456781234567f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [1] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [2] #243.1.1.num.int <203647 (0x31b7f)> + [3] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #225.1.1.num.int <55 (0x37)> + [9] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #219.1.1.num.int <55 (0x37)> + [11] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #213.1.1.num.int <6 (0x6)> + [13] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #207.1.1.num.int <6 (0x6)> + [15] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #201.1.1.num.int <1 (0x1)> + [17] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #195.1.1.num.int <1 (0x1)> + [19] #191.1.1.num.int <0 (0x0)> +IP: #186:0xe3, type 1, -1193046 (0xffffffffffedcbaa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #248.1.1.num.int <-1193046 (0xffffffffffedcbaa)> + [1] #247.1.1.num.int <1311768465173141119 (0x123456781234567f)> + [2] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #243.1.1.num.int <203647 (0x31b7f)> + [4] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #225.1.1.num.int <55 (0x37)> + [10] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #219.1.1.num.int <55 (0x37)> + [12] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #213.1.1.num.int <6 (0x6)> + [14] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #207.1.1.num.int <6 (0x6)> + [16] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #201.1.1.num.int <1 (0x1)> + [18] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #195.1.1.num.int <1 (0x1)> + [20] #191.1.1.num.int <0 (0x0)> +IP: #186:0xe7, type 8, 232[3] +GC: --#248.1.1.num.int +GC: --#247.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #249.1.1.num.int <203647 (0x31b7f)> + [1] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [2] #243.1.1.num.int <203647 (0x31b7f)> + [3] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [4] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [5] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [8] #225.1.1.num.int <55 (0x37)> + [9] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #219.1.1.num.int <55 (0x37)> + [11] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [12] #213.1.1.num.int <6 (0x6)> + [13] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #207.1.1.num.int <6 (0x6)> + [15] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #201.1.1.num.int <1 (0x1)> + [17] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #195.1.1.num.int <1 (0x1)> + [19] #191.1.1.num.int <0 (0x0)> +IP: #186:0xeb, type 1, -1311768465173141119 (0xedcba987edcba981) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #250.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [1] #249.1.1.num.int <203647 (0x31b7f)> + [2] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #243.1.1.num.int <203647 (0x31b7f)> + [4] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #225.1.1.num.int <55 (0x37)> + [10] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #219.1.1.num.int <55 (0x37)> + [12] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #213.1.1.num.int <6 (0x6)> + [14] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #207.1.1.num.int <6 (0x6)> + [16] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #201.1.1.num.int <1 (0x1)> + [18] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #195.1.1.num.int <1 (0x1)> + [20] #191.1.1.num.int <0 (0x0)> +IP: #186:0xf4, type 1, -1193046 (0xffffffffffedcbaa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #251.1.1.num.int <-1193046 (0xffffffffffedcbaa)> + [1] #250.1.1.num.int <-1311768465173141119 (0xedcba987edcba981)> + [2] #249.1.1.num.int <203647 (0x31b7f)> + [3] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #243.1.1.num.int <203647 (0x31b7f)> + [5] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #225.1.1.num.int <55 (0x37)> + [11] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #219.1.1.num.int <55 (0x37)> + [13] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #213.1.1.num.int <6 (0x6)> + [15] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #207.1.1.num.int <6 (0x6)> + [17] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #201.1.1.num.int <1 (0x1)> + [19] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #195.1.1.num.int <1 (0x1)> + [21] #191.1.1.num.int <0 (0x0)> +IP: #186:0xf8, type 8, 249[3] +GC: --#251.1.1.num.int +GC: --#250.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [1] #249.1.1.num.int <203647 (0x31b7f)> + [2] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #243.1.1.num.int <203647 (0x31b7f)> + [4] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [5] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [6] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [9] #225.1.1.num.int <55 (0x37)> + [10] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #219.1.1.num.int <55 (0x37)> + [12] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [13] #213.1.1.num.int <6 (0x6)> + [14] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #207.1.1.num.int <6 (0x6)> + [16] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #201.1.1.num.int <1 (0x1)> + [18] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #195.1.1.num.int <1 (0x1)> + [20] #191.1.1.num.int <0 (0x0)> +IP: #186:0xfc, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #253.1.1.num.bool <1 (0x1)> + [1] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [2] #249.1.1.num.int <203647 (0x31b7f)> + [3] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #243.1.1.num.int <203647 (0x31b7f)> + [5] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #225.1.1.num.int <55 (0x37)> + [11] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #219.1.1.num.int <55 (0x37)> + [13] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #213.1.1.num.int <6 (0x6)> + [15] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #207.1.1.num.int <6 (0x6)> + [17] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #201.1.1.num.int <1 (0x1)> + [19] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #195.1.1.num.int <1 (0x1)> + [21] #191.1.1.num.int <0 (0x0)> +IP: #186:0xfd, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #254.1.1.num.bool <1 (0x1)> + [1] #253.1.1.num.bool <1 (0x1)> + [2] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #249.1.1.num.int <203647 (0x31b7f)> + [4] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #243.1.1.num.int <203647 (0x31b7f)> + [6] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #225.1.1.num.int <55 (0x37)> + [12] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #219.1.1.num.int <55 (0x37)> + [14] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #213.1.1.num.int <6 (0x6)> + [16] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #207.1.1.num.int <6 (0x6)> + [18] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #201.1.1.num.int <1 (0x1)> + [20] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #195.1.1.num.int <1 (0x1)> + [22] #191.1.1.num.int <0 (0x0)> +IP: #186:0xfe, type 8, 255[3] +GC: --#254.1.1.num.bool +GC: --#253.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.1.1.num.bool <1 (0x1)> + [1] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [2] #249.1.1.num.int <203647 (0x31b7f)> + [3] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #243.1.1.num.int <203647 (0x31b7f)> + [5] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [6] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [7] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [10] #225.1.1.num.int <55 (0x37)> + [11] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #219.1.1.num.int <55 (0x37)> + [13] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [14] #213.1.1.num.int <6 (0x6)> + [15] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #207.1.1.num.int <6 (0x6)> + [17] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #201.1.1.num.int <1 (0x1)> + [19] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #195.1.1.num.int <1 (0x1)> + [21] #191.1.1.num.int <0 (0x0)> +IP: #186:0x102, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.1.1.num.bool <0 (0x0)> + [1] #255.1.1.num.bool <1 (0x1)> + [2] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #249.1.1.num.int <203647 (0x31b7f)> + [4] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #243.1.1.num.int <203647 (0x31b7f)> + [6] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #225.1.1.num.int <55 (0x37)> + [12] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #219.1.1.num.int <55 (0x37)> + [14] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #213.1.1.num.int <6 (0x6)> + [16] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #207.1.1.num.int <6 (0x6)> + [18] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #201.1.1.num.int <1 (0x1)> + [20] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #195.1.1.num.int <1 (0x1)> + [22] #191.1.1.num.int <0 (0x0)> +IP: #186:0x103, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #257.1.1.num.bool <1 (0x1)> + [1] #256.1.1.num.bool <0 (0x0)> + [2] #255.1.1.num.bool <1 (0x1)> + [3] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #249.1.1.num.int <203647 (0x31b7f)> + [5] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [6] #243.1.1.num.int <203647 (0x31b7f)> + [7] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [10] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [11] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #225.1.1.num.int <55 (0x37)> + [13] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [14] #219.1.1.num.int <55 (0x37)> + [15] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #213.1.1.num.int <6 (0x6)> + [17] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [18] #207.1.1.num.int <6 (0x6)> + [19] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #201.1.1.num.int <1 (0x1)> + [21] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #195.1.1.num.int <1 (0x1)> + [23] #191.1.1.num.int <0 (0x0)> +IP: #186:0x104, type 8, 261[3] +GC: --#257.1.1.num.bool +GC: --#256.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.2.1.num.bool <0 (0x0)> + [1] #255.1.1.num.bool <1 (0x1)> + [2] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [3] #249.1.1.num.int <203647 (0x31b7f)> + [4] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #243.1.1.num.int <203647 (0x31b7f)> + [6] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [7] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [8] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [11] #225.1.1.num.int <55 (0x37)> + [12] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #219.1.1.num.int <55 (0x37)> + [14] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [15] #213.1.1.num.int <6 (0x6)> + [16] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #207.1.1.num.int <6 (0x6)> + [18] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #201.1.1.num.int <1 (0x1)> + [20] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #195.1.1.num.int <1 (0x1)> + [22] #191.1.1.num.int <0 (0x0)> +IP: #186:0x108, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.2.1.num.bool <1 (0x1)> + [1] #189.2.1.num.bool <0 (0x0)> + [2] #255.1.1.num.bool <1 (0x1)> + [3] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #249.1.1.num.int <203647 (0x31b7f)> + [5] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [6] #243.1.1.num.int <203647 (0x31b7f)> + [7] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [10] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [11] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #225.1.1.num.int <55 (0x37)> + [13] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [14] #219.1.1.num.int <55 (0x37)> + [15] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #213.1.1.num.int <6 (0x6)> + [17] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [18] #207.1.1.num.int <6 (0x6)> + [19] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #201.1.1.num.int <1 (0x1)> + [21] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #195.1.1.num.int <1 (0x1)> + [23] #191.1.1.num.int <0 (0x0)> +IP: #186:0x109, type 1, 9 (0x9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.2.1.num.int <9 (0x9)> + [1] #190.2.1.num.bool <1 (0x1)> + [2] #189.2.1.num.bool <0 (0x0)> + [3] #255.1.1.num.bool <1 (0x1)> + [4] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #249.1.1.num.int <203647 (0x31b7f)> + [6] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [7] #243.1.1.num.int <203647 (0x31b7f)> + [8] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [11] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [12] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #225.1.1.num.int <55 (0x37)> + [14] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [15] #219.1.1.num.int <55 (0x37)> + [16] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #213.1.1.num.int <6 (0x6)> + [18] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [19] #207.1.1.num.int <6 (0x6)> + [20] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #201.1.1.num.int <1 (0x1)> + [22] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #195.1.1.num.int <1 (0x1)> + [24] #191.1.1.num.int <0 (0x0)> +IP: #186:0x10b, type 8, 268[3] +GC: --#193.2.1.num.int +GC: --#190.2.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.2.1.num.bool <1 (0x1)> + [1] #189.2.1.num.bool <0 (0x0)> + [2] #255.1.1.num.bool <1 (0x1)> + [3] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [4] #249.1.1.num.int <203647 (0x31b7f)> + [5] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [6] #243.1.1.num.int <203647 (0x31b7f)> + [7] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [8] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [9] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [10] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [11] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [12] #225.1.1.num.int <55 (0x37)> + [13] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [14] #219.1.1.num.int <55 (0x37)> + [15] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [16] #213.1.1.num.int <6 (0x6)> + [17] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [18] #207.1.1.num.int <6 (0x6)> + [19] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #201.1.1.num.int <1 (0x1)> + [21] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #195.1.1.num.int <1 (0x1)> + [23] #191.1.1.num.int <0 (0x0)> +IP: #186:0x10f, type 1, -9223372036854775807 (0x8000000000000001) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.2.1.num.int <-9223372036854775807 (0x8000000000000001)> + [1] #194.2.1.num.bool <1 (0x1)> + [2] #189.2.1.num.bool <0 (0x0)> + [3] #255.1.1.num.bool <1 (0x1)> + [4] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #249.1.1.num.int <203647 (0x31b7f)> + [6] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [7] #243.1.1.num.int <203647 (0x31b7f)> + [8] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [11] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [12] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #225.1.1.num.int <55 (0x37)> + [14] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [15] #219.1.1.num.int <55 (0x37)> + [16] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #213.1.1.num.int <6 (0x6)> + [18] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [19] #207.1.1.num.int <6 (0x6)> + [20] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #201.1.1.num.int <1 (0x1)> + [22] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #195.1.1.num.int <1 (0x1)> + [24] #191.1.1.num.int <0 (0x0)> +IP: #186:0x118, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #196.2.1.num.int <-9223372036854775807 (0x8000000000000001)> + [2] #194.2.1.num.bool <1 (0x1)> + [3] #189.2.1.num.bool <0 (0x0)> + [4] #255.1.1.num.bool <1 (0x1)> + [5] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [6] #249.1.1.num.int <203647 (0x31b7f)> + [7] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [8] #243.1.1.num.int <203647 (0x31b7f)> + [9] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [10] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [11] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [12] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [13] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [14] #225.1.1.num.int <55 (0x37)> + [15] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [16] #219.1.1.num.int <55 (0x37)> + [17] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [18] #213.1.1.num.int <6 (0x6)> + [19] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [20] #207.1.1.num.int <6 (0x6)> + [21] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #201.1.1.num.int <1 (0x1)> + [23] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #195.1.1.num.int <1 (0x1)> + [25] #191.1.1.num.int <0 (0x0)> +IP: #186:0x11a, type 8, 283[3] +GC: --#197.2.1.num.int +GC: --#196.2.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.2.1.num.int <0 (0x0)> + [1] #194.2.1.num.bool <1 (0x1)> + [2] #189.2.1.num.bool <0 (0x0)> + [3] #255.1.1.num.bool <1 (0x1)> + [4] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [5] #249.1.1.num.int <203647 (0x31b7f)> + [6] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [7] #243.1.1.num.int <203647 (0x31b7f)> + [8] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [9] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [10] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [11] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [12] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [13] #225.1.1.num.int <55 (0x37)> + [14] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [15] #219.1.1.num.int <55 (0x37)> + [16] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [17] #213.1.1.num.int <6 (0x6)> + [18] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [19] #207.1.1.num.int <6 (0x6)> + [20] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #201.1.1.num.int <1 (0x1)> + [22] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #195.1.1.num.int <1 (0x1)> + [24] #191.1.1.num.int <0 (0x0)> +IP: #186:0x11e, type 1, -9223372036854775808 (0x8000000000000000) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #199.2.1.num.int <0 (0x0)> + [2] #194.2.1.num.bool <1 (0x1)> + [3] #189.2.1.num.bool <0 (0x0)> + [4] #255.1.1.num.bool <1 (0x1)> + [5] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [6] #249.1.1.num.int <203647 (0x31b7f)> + [7] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [8] #243.1.1.num.int <203647 (0x31b7f)> + [9] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [10] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [11] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [12] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [13] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [14] #225.1.1.num.int <55 (0x37)> + [15] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [16] #219.1.1.num.int <55 (0x37)> + [17] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [18] #213.1.1.num.int <6 (0x6)> + [19] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [20] #207.1.1.num.int <6 (0x6)> + [21] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #201.1.1.num.int <1 (0x1)> + [23] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #195.1.1.num.int <1 (0x1)> + [25] #191.1.1.num.int <0 (0x0)> +IP: #186:0x127, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #200.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #199.2.1.num.int <0 (0x0)> + [3] #194.2.1.num.bool <1 (0x1)> + [4] #189.2.1.num.bool <0 (0x0)> + [5] #255.1.1.num.bool <1 (0x1)> + [6] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [7] #249.1.1.num.int <203647 (0x31b7f)> + [8] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [9] #243.1.1.num.int <203647 (0x31b7f)> + [10] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [11] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [12] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [13] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [14] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [15] #225.1.1.num.int <55 (0x37)> + [16] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [17] #219.1.1.num.int <55 (0x37)> + [18] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [19] #213.1.1.num.int <6 (0x6)> + [20] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [21] #207.1.1.num.int <6 (0x6)> + [22] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #201.1.1.num.int <1 (0x1)> + [24] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #195.1.1.num.int <1 (0x1)> + [26] #191.1.1.num.int <0 (0x0)> +IP: #186:0x129, type 8, 298[3] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.2.1.num.int <-1 (0xffffffffffffffff)> + [1] #200.2.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #199.2.1.num.int <0 (0x0)> + [3] #194.2.1.num.bool <1 (0x1)> + [4] #189.2.1.num.bool <0 (0x0)> + [5] #255.1.1.num.bool <1 (0x1)> + [6] #252.1.1.num.int <-203647 (0xfffffffffffce481)> + [7] #249.1.1.num.int <203647 (0x31b7f)> + [8] #246.1.1.num.int <-203647 (0xfffffffffffce481)> + [9] #243.1.1.num.int <203647 (0x31b7f)> + [10] #240.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [11] #237.1.1.num.int <13318347976 (0x319d5dcc8)> + [12] #234.1.1.num.int <-13318347976 (0xfffffffce62a2338)> + [13] #231.1.1.num.int <13318347976 (0x319d5dcc8)> + [14] #228.1.1.num.int <-55 (0xffffffffffffffc9)> + [15] #225.1.1.num.int <55 (0x37)> + [16] #222.1.1.num.int <-55 (0xffffffffffffffc9)> + [17] #219.1.1.num.int <55 (0x37)> + [18] #216.1.1.num.int <-6 (0xfffffffffffffffa)> + [19] #213.1.1.num.int <6 (0x6)> + [20] #210.1.1.num.int <-6 (0xfffffffffffffffa)> + [21] #207.1.1.num.int <6 (0x6)> + [22] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #201.1.1.num.int <1 (0x1)> + [24] #198.1.1.num.int <-1 (0xffffffffffffffff)> + [25] #195.1.1.num.int <1 (0x1)> + [26] #191.1.1.num.int <0 (0x0)> +error 14 (div by zero), ip = #186:0x129 diff --git a/tests/0030_and/basic.log.ref b/tests/0030_and/basic.log.ref new file mode 100644 index 0000000..7bd5fd4 --- /dev/null +++ b/tests/0030_and/basic.log.ref @@ -0,0 +1,172 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <240 (0xf0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <53 (0x35)> + [1] #xxxx.1.1.num.int <240 (0xf0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <48 (0x30)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <131 (0x83)> + [1] #xxxx.1.1.num.int <48 (0x30)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <131 (0x83)> + [2] #xxxx.1.1.num.int <48 (0x30)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <48 (0x30)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <48 (0x30)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <131 (0x83)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <48 (0x30)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <48 (0x30)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> diff --git a/tests/0030_and/code.log.ref b/tests/0030_and/code.log.ref new file mode 100644 index 0000000..17f522e --- /dev/null +++ b/tests/0030_and/code.log.ref @@ -0,0 +1,28 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 bool 12 true + 3 0x0000a word 38 61 6e 64 and + 2 4 0x0000e bool 12 true + 5 0x0000f bool 02 false + 6 0x00010 word 38 61 6e 64 and + 3 7 0x00014 bool 02 false + 8 0x00015 bool 12 true + 9 0x00016 word 38 61 6e 64 and + 4 10 0x0001a bool 02 false + 11 0x0001b bool 02 false + 12 0x0001c word 38 61 6e 64 and + 5 13 0x00020 int 91 f0 00 0xf0 + 14 0x00023 int 81 35 0x35 + 15 0x00025 word 38 61 6e 64 and + 6 16 0x00029 int 91 83 00 0x83 + 17 0x0002c bool 12 true + 18 0x0002d word 38 61 6e 64 and + 7 19 0x00031 bool 12 true + 20 0x00032 int 91 83 00 0x83 + 21 0x00035 word 38 61 6e 64 and diff --git a/tests/0030_and/code1.log.ref b/tests/0030_and/code1.log.ref new file mode 100644 index 0000000..c2a2dfc --- /dev/null +++ b/tests/0030_and/code1.log.ref @@ -0,0 +1,28 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 bool 12 true + 3 0x0000a word 38 61 6e 64 and + 2 4 0x0000e bool 12 true + 5 0x0000f bool 02 false + 6 0x00010 xref 64 and + 3 7 0x00011 bool 02 false + 8 0x00012 bool 12 true + 9 0x00013 xref 84 09 and + 4 10 0x00015 bool 02 false + 11 0x00016 bool 02 false + 12 0x00017 xref 84 0d and + 5 13 0x00019 int 91 f0 00 0xf0 + 14 0x0001c int 81 35 0x35 + 15 0x0001e xref 84 14 and + 6 16 0x00020 int 91 83 00 0x83 + 17 0x00023 bool 12 true + 18 0x00024 xref 84 1a and + 7 19 0x00026 bool 12 true + 20 0x00027 int 91 83 00 0x83 + 21 0x0002a xref 84 20 and diff --git a/tests/0030_and/code2.log.ref b/tests/0030_and/code2.log.ref new file mode 100644 index 0000000..af18e53 --- /dev/null +++ b/tests/0030_and/code2.log.ref @@ -0,0 +1,28 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 bool 12 true + 3 0x0000a prim 83 27 and + 2 4 0x0000c bool 12 true + 5 0x0000d bool 02 false + 6 0x0000e prim 83 27 and + 3 7 0x00010 bool 02 false + 8 0x00011 bool 12 true + 9 0x00012 prim 83 27 and + 4 10 0x00014 bool 02 false + 11 0x00015 bool 02 false + 12 0x00016 prim 83 27 and + 5 13 0x00018 int 91 f0 00 0xf0 + 14 0x0001b int 81 35 0x35 + 15 0x0001d prim 83 27 and + 6 16 0x0001f int 91 83 00 0x83 + 17 0x00022 bool 12 true + 18 0x00023 prim 83 27 and + 7 19 0x00025 bool 12 true + 20 0x00026 int 91 83 00 0x83 + 21 0x00029 prim 83 27 and diff --git a/tests/0030_and/main.gs b/tests/0030_and/main.gs new file mode 100644 index 0000000..8b26e09 --- /dev/null +++ b/tests/0030_and/main.gs @@ -0,0 +1,7 @@ +true true and +true false and +false true and +false false and +0xf0 0x35 and +0x83 true and +true 0x83 and diff --git a/tests/0030_and/mem.log.ref b/tests/0030_and/mem.log.ref new file mode 100644 index 0000000..56724c4 --- /dev/null +++ b/tests/0030_and/mem.log.ref @@ -0,0 +1,768 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 60] + 8: 187.01, 0x001d6ab0[ 72] + 9: 188.01, 0x001d6b00[ 56] + 10: 192.01, 0x001d6b40[ 72] + 11: 0.00, 0x001d6b90[14849136] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 12 12 38 61 6e 64 12 02 uQ..Bz.`..8and.. + 38 61 6e 64 02 12 38 61 6e 64 02 02 38 61 6e 64 8and..8and..8and + 91 f0 00 81 35 38 61 6e 64 91 83 00 12 38 61 6e ....58and....8an + 64 12 91 83 00 38 61 6e 64 d....8and + #187.1.1.array + [ 0] #191.1.1.num.bool <1 (0x1)> + [ 1] #195.1.1.num.bool <0 (0x0)> + [ 2] #198.1.1.num.bool <0 (0x0)> + [ 3] #201.1.1.num.bool <0 (0x0)> + [ 4] #204.1.1.num.int <48 (0x30)> + [ 5] #207.1.1.num.int <1 (0x1)> + [ 6] #210.1.1.num.bool <1 (0x1)> + #188.1.1.ctx.func + type 17, ip 0x39 (0x39) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.bool <1 (0x1)> + #192.1.1.array + #195.1.1.num.bool <0 (0x0)> + #198.1.1.num.bool <0 (0x0)> + #201.1.1.num.bool <0 (0x0)> + #204.1.1.num.int <48 (0x30)> + #207.1.1.num.int <1 (0x1)> + #210.1.1.num.bool <1 (0x1)> diff --git a/tests/0030_and/screen.log.ref b/tests/0030_and/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0030_and/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0030_and/trace.log.ref b/tests/0030_and/trace.log.ref new file mode 100644 index 0000000..bbdcc05 --- /dev/null +++ b/tests/0030_and/trace.log.ref @@ -0,0 +1,194 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x9, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.bool <1 (0x1)> + [1] #189.1.1.num.bool <1 (0x1)> +IP: #186:0xa, type 8, 11[3] +GC: --#190.1.1.num.bool +GC: --#189.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xe, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xf, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.bool <0 (0x0)> + [1] #193.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x10, type 8, 17[3] +GC: --#194.1.1.num.bool +GC: --#193.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <0 (0x0)> + [1] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x14, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x15, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.bool <1 (0x1)> + [1] #196.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x16, type 8, 23[3] +GC: --#197.1.1.num.bool +GC: --#196.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x1a, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x1b, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.bool <0 (0x0)> + [1] #199.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x1c, type 8, 29[3] +GC: --#200.1.1.num.bool +GC: --#199.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x20, type 1, 240 (0xf0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <240 (0xf0)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x23, type 1, 53 (0x35) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <53 (0x35)> + [1] #202.1.1.num.int <240 (0xf0)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x25, type 8, 38[3] +GC: --#203.1.1.num.int +GC: --#202.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <48 (0x30)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x29, type 1, 131 (0x83) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <131 (0x83)> + [1] #204.1.1.num.int <48 (0x30)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x2c, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.bool <1 (0x1)> + [1] #205.1.1.num.int <131 (0x83)> + [2] #204.1.1.num.int <48 (0x30)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x2d, type 8, 46[3] +GC: --#206.1.1.num.bool +GC: --#205.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <1 (0x1)> + [1] #204.1.1.num.int <48 (0x30)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x31, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.bool <1 (0x1)> + [1] #207.1.1.num.int <1 (0x1)> + [2] #204.1.1.num.int <48 (0x30)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x32, type 1, 131 (0x83) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <131 (0x83)> + [1] #208.1.1.num.bool <1 (0x1)> + [2] #207.1.1.num.int <1 (0x1)> + [3] #204.1.1.num.int <48 (0x30)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <0 (0x0)> + [7] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x35, type 8, 54[3] +GC: --#209.1.1.num.int +GC: --#208.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.bool <1 (0x1)> + [1] #207.1.1.num.int <1 (0x1)> + [2] #204.1.1.num.int <48 (0x30)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <1 (0x1)> diff --git a/tests/0031_or/basic.log.ref b/tests/0031_or/basic.log.ref new file mode 100644 index 0000000..58acd92 --- /dev/null +++ b/tests/0031_or/basic.log.ref @@ -0,0 +1,172 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <240 (0xf0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <53 (0x35)> + [1] #xxxx.1.1.num.int <240 (0xf0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <245 (0xf5)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <131 (0x83)> + [1] #xxxx.1.1.num.int <245 (0xf5)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <131 (0x83)> + [2] #xxxx.1.1.num.int <245 (0xf5)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <131 (0x83)> + [1] #xxxx.1.1.num.int <245 (0xf5)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <131 (0x83)> + [2] #xxxx.1.1.num.int <245 (0xf5)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <131 (0x83)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <131 (0x83)> + [3] #xxxx.1.1.num.int <245 (0xf5)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <131 (0x83)> + [2] #xxxx.1.1.num.int <245 (0xf5)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> diff --git a/tests/0031_or/code.log.ref b/tests/0031_or/code.log.ref new file mode 100644 index 0000000..dfde04b --- /dev/null +++ b/tests/0031_or/code.log.ref @@ -0,0 +1,28 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 bool 12 true + 3 0x0000a word 28 6f 72 or + 2 4 0x0000d bool 12 true + 5 0x0000e bool 02 false + 6 0x0000f word 28 6f 72 or + 3 7 0x00012 bool 02 false + 8 0x00013 bool 12 true + 9 0x00014 word 28 6f 72 or + 4 10 0x00017 bool 02 false + 11 0x00018 bool 02 false + 12 0x00019 word 28 6f 72 or + 5 13 0x0001c int 91 f0 00 0xf0 + 14 0x0001f int 81 35 0x35 + 15 0x00021 word 28 6f 72 or + 6 16 0x00024 int 91 83 00 0x83 + 17 0x00027 bool 12 true + 18 0x00028 word 28 6f 72 or + 7 19 0x0002b bool 12 true + 20 0x0002c int 91 83 00 0x83 + 21 0x0002f word 28 6f 72 or diff --git a/tests/0031_or/code1.log.ref b/tests/0031_or/code1.log.ref new file mode 100644 index 0000000..f5f2820 --- /dev/null +++ b/tests/0031_or/code1.log.ref @@ -0,0 +1,28 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 bool 12 true + 3 0x0000a word 28 6f 72 or + 2 4 0x0000d bool 12 true + 5 0x0000e bool 02 false + 6 0x0000f xref 54 or + 3 7 0x00010 bool 02 false + 8 0x00011 bool 12 true + 9 0x00012 xref 84 08 or + 4 10 0x00014 bool 02 false + 11 0x00015 bool 02 false + 12 0x00016 xref 84 0c or + 5 13 0x00018 int 91 f0 00 0xf0 + 14 0x0001b int 81 35 0x35 + 15 0x0001d xref 84 13 or + 6 16 0x0001f int 91 83 00 0x83 + 17 0x00022 bool 12 true + 18 0x00023 xref 84 19 or + 7 19 0x00025 bool 12 true + 20 0x00026 int 91 83 00 0x83 + 21 0x00029 xref 84 1f or diff --git a/tests/0031_or/code2.log.ref b/tests/0031_or/code2.log.ref new file mode 100644 index 0000000..0585b52 --- /dev/null +++ b/tests/0031_or/code2.log.ref @@ -0,0 +1,28 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 bool 12 true + 3 0x0000a prim 83 28 or + 2 4 0x0000c bool 12 true + 5 0x0000d bool 02 false + 6 0x0000e prim 83 28 or + 3 7 0x00010 bool 02 false + 8 0x00011 bool 12 true + 9 0x00012 prim 83 28 or + 4 10 0x00014 bool 02 false + 11 0x00015 bool 02 false + 12 0x00016 prim 83 28 or + 5 13 0x00018 int 91 f0 00 0xf0 + 14 0x0001b int 81 35 0x35 + 15 0x0001d prim 83 28 or + 6 16 0x0001f int 91 83 00 0x83 + 17 0x00022 bool 12 true + 18 0x00023 prim 83 28 or + 7 19 0x00025 bool 12 true + 20 0x00026 int 91 83 00 0x83 + 21 0x00029 prim 83 28 or diff --git a/tests/0031_or/main.gs b/tests/0031_or/main.gs new file mode 100644 index 0000000..53e07d9 --- /dev/null +++ b/tests/0031_or/main.gs @@ -0,0 +1,7 @@ +true true or +true false or +false true or +false false or +0xf0 0x35 or +0x83 true or +true 0x83 or diff --git a/tests/0031_or/mem.log.ref b/tests/0031_or/mem.log.ref new file mode 100644 index 0000000..3df8305 --- /dev/null +++ b/tests/0031_or/mem.log.ref @@ -0,0 +1,768 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 52] + 8: 187.01, 0x001d6aa8[ 72] + 9: 188.01, 0x001d6af8[ 56] + 10: 192.01, 0x001d6b38[ 72] + 11: 0.00, 0x001d6b88[14849144] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 12 12 28 6f 72 12 02 28 uQ..Bz.`..(or..( + 6f 72 02 12 28 6f 72 02 02 28 6f 72 91 f0 00 81 or..(or..(or.... + 35 28 6f 72 91 83 00 12 28 6f 72 12 91 83 00 28 5(or....(or....( + 6f 72 or + #187.1.1.array + [ 0] #191.1.1.num.bool <1 (0x1)> + [ 1] #195.1.1.num.bool <1 (0x1)> + [ 2] #198.1.1.num.bool <1 (0x1)> + [ 3] #201.1.1.num.bool <0 (0x0)> + [ 4] #204.1.1.num.int <245 (0xf5)> + [ 5] #207.1.1.num.int <131 (0x83)> + [ 6] #210.1.1.num.bool <1 (0x1)> + #188.1.1.ctx.func + type 17, ip 0x32 (0x32) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.bool <1 (0x1)> + #192.1.1.array + #195.1.1.num.bool <1 (0x1)> + #198.1.1.num.bool <1 (0x1)> + #201.1.1.num.bool <0 (0x0)> + #204.1.1.num.int <245 (0xf5)> + #207.1.1.num.int <131 (0x83)> + #210.1.1.num.bool <1 (0x1)> diff --git a/tests/0031_or/screen.log.ref b/tests/0031_or/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0031_or/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0031_or/trace.log.ref b/tests/0031_or/trace.log.ref new file mode 100644 index 0000000..d32b004 --- /dev/null +++ b/tests/0031_or/trace.log.ref @@ -0,0 +1,194 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x9, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.bool <1 (0x1)> + [1] #189.1.1.num.bool <1 (0x1)> +IP: #186:0xa, type 8, 11[2] +GC: --#190.1.1.num.bool +GC: --#189.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xd, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xe, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.bool <0 (0x0)> + [1] #193.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xf, type 8, 16[2] +GC: --#194.1.1.num.bool +GC: --#193.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x12, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x13, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.bool <1 (0x1)> + [1] #196.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x14, type 8, 21[2] +GC: --#197.1.1.num.bool +GC: --#196.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x17, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x18, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.bool <0 (0x0)> + [1] #199.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x19, type 8, 26[2] +GC: --#200.1.1.num.bool +GC: --#199.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x1c, type 1, 240 (0xf0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <240 (0xf0)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x1f, type 1, 53 (0x35) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <53 (0x35)> + [1] #202.1.1.num.int <240 (0xf0)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x21, type 8, 34[2] +GC: --#203.1.1.num.int +GC: --#202.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <245 (0xf5)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x24, type 1, 131 (0x83) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <131 (0x83)> + [1] #204.1.1.num.int <245 (0xf5)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x27, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.bool <1 (0x1)> + [1] #205.1.1.num.int <131 (0x83)> + [2] #204.1.1.num.int <245 (0xf5)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x28, type 8, 41[2] +GC: --#206.1.1.num.bool +GC: --#205.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <131 (0x83)> + [1] #204.1.1.num.int <245 (0xf5)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x2b, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.bool <1 (0x1)> + [1] #207.1.1.num.int <131 (0x83)> + [2] #204.1.1.num.int <245 (0xf5)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x2c, type 1, 131 (0x83) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <131 (0x83)> + [1] #208.1.1.num.bool <1 (0x1)> + [2] #207.1.1.num.int <131 (0x83)> + [3] #204.1.1.num.int <245 (0xf5)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x2f, type 8, 48[2] +GC: --#209.1.1.num.int +GC: --#208.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.bool <1 (0x1)> + [1] #207.1.1.num.int <131 (0x83)> + [2] #204.1.1.num.int <245 (0xf5)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <1 (0x1)> diff --git a/tests/0032_xor/basic.log.ref b/tests/0032_xor/basic.log.ref new file mode 100644 index 0000000..543d93c --- /dev/null +++ b/tests/0032_xor/basic.log.ref @@ -0,0 +1,172 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <240 (0xf0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <53 (0x35)> + [1] #xxxx.1.1.num.int <240 (0xf0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <197 (0xc5)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <131 (0x83)> + [1] #xxxx.1.1.num.int <197 (0xc5)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <131 (0x83)> + [2] #xxxx.1.1.num.int <197 (0xc5)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <130 (0x82)> + [1] #xxxx.1.1.num.int <197 (0xc5)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <130 (0x82)> + [2] #xxxx.1.1.num.int <197 (0xc5)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <131 (0x83)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <130 (0x82)> + [3] #xxxx.1.1.num.int <197 (0xc5)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.int <130 (0x82)> + [2] #xxxx.1.1.num.int <197 (0xc5)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> diff --git a/tests/0032_xor/code.log.ref b/tests/0032_xor/code.log.ref new file mode 100644 index 0000000..96fc269 --- /dev/null +++ b/tests/0032_xor/code.log.ref @@ -0,0 +1,28 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 bool 12 true + 3 0x0000a word 38 78 6f 72 xor + 2 4 0x0000e bool 12 true + 5 0x0000f bool 02 false + 6 0x00010 word 38 78 6f 72 xor + 3 7 0x00014 bool 02 false + 8 0x00015 bool 12 true + 9 0x00016 word 38 78 6f 72 xor + 4 10 0x0001a bool 02 false + 11 0x0001b bool 02 false + 12 0x0001c word 38 78 6f 72 xor + 5 13 0x00020 int 91 f0 00 0xf0 + 14 0x00023 int 81 35 0x35 + 15 0x00025 word 38 78 6f 72 xor + 6 16 0x00029 int 91 83 00 0x83 + 17 0x0002c bool 12 true + 18 0x0002d word 38 78 6f 72 xor + 7 19 0x00031 bool 12 true + 20 0x00032 int 91 83 00 0x83 + 21 0x00035 word 38 78 6f 72 xor diff --git a/tests/0032_xor/code1.log.ref b/tests/0032_xor/code1.log.ref new file mode 100644 index 0000000..683b1a5 --- /dev/null +++ b/tests/0032_xor/code1.log.ref @@ -0,0 +1,28 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 bool 12 true + 3 0x0000a word 38 78 6f 72 xor + 2 4 0x0000e bool 12 true + 5 0x0000f bool 02 false + 6 0x00010 xref 64 xor + 3 7 0x00011 bool 02 false + 8 0x00012 bool 12 true + 9 0x00013 xref 84 09 xor + 4 10 0x00015 bool 02 false + 11 0x00016 bool 02 false + 12 0x00017 xref 84 0d xor + 5 13 0x00019 int 91 f0 00 0xf0 + 14 0x0001c int 81 35 0x35 + 15 0x0001e xref 84 14 xor + 6 16 0x00020 int 91 83 00 0x83 + 17 0x00023 bool 12 true + 18 0x00024 xref 84 1a xor + 7 19 0x00026 bool 12 true + 20 0x00027 int 91 83 00 0x83 + 21 0x0002a xref 84 20 xor diff --git a/tests/0032_xor/code2.log.ref b/tests/0032_xor/code2.log.ref new file mode 100644 index 0000000..84a8b1c --- /dev/null +++ b/tests/0032_xor/code2.log.ref @@ -0,0 +1,28 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 22 entries (22 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 bool 12 true + 2 0x00009 bool 12 true + 3 0x0000a prim 83 29 xor + 2 4 0x0000c bool 12 true + 5 0x0000d bool 02 false + 6 0x0000e prim 83 29 xor + 3 7 0x00010 bool 02 false + 8 0x00011 bool 12 true + 9 0x00012 prim 83 29 xor + 4 10 0x00014 bool 02 false + 11 0x00015 bool 02 false + 12 0x00016 prim 83 29 xor + 5 13 0x00018 int 91 f0 00 0xf0 + 14 0x0001b int 81 35 0x35 + 15 0x0001d prim 83 29 xor + 6 16 0x0001f int 91 83 00 0x83 + 17 0x00022 bool 12 true + 18 0x00023 prim 83 29 xor + 7 19 0x00025 bool 12 true + 20 0x00026 int 91 83 00 0x83 + 21 0x00029 prim 83 29 xor diff --git a/tests/0032_xor/main.gs b/tests/0032_xor/main.gs new file mode 100644 index 0000000..48ccedd --- /dev/null +++ b/tests/0032_xor/main.gs @@ -0,0 +1,7 @@ +true true xor +true false xor +false true xor +false false xor +0xf0 0x35 xor +0x83 true xor +true 0x83 xor diff --git a/tests/0032_xor/mem.log.ref b/tests/0032_xor/mem.log.ref new file mode 100644 index 0000000..b76b7c4 --- /dev/null +++ b/tests/0032_xor/mem.log.ref @@ -0,0 +1,768 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 60] + 8: 187.01, 0x001d6ab0[ 72] + 9: 188.01, 0x001d6b00[ 56] + 10: 192.01, 0x001d6b40[ 72] + 11: 0.00, 0x001d6b90[14849136] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 12 12 38 78 6f 72 12 02 uQ..Bz.`..8xor.. + 38 78 6f 72 02 12 38 78 6f 72 02 02 38 78 6f 72 8xor..8xor..8xor + 91 f0 00 81 35 38 78 6f 72 91 83 00 12 38 78 6f ....58xor....8xo + 72 12 91 83 00 38 78 6f 72 r....8xor + #187.1.1.array + [ 0] #191.1.1.num.bool <0 (0x0)> + [ 1] #195.1.1.num.bool <1 (0x1)> + [ 2] #198.1.1.num.bool <1 (0x1)> + [ 3] #201.1.1.num.bool <0 (0x0)> + [ 4] #204.1.1.num.int <197 (0xc5)> + [ 5] #207.1.1.num.int <130 (0x82)> + [ 6] #210.1.1.num.bool <0 (0x0)> + #188.1.1.ctx.func + type 17, ip 0x39 (0x39) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.bool <0 (0x0)> + #192.1.1.array + #195.1.1.num.bool <1 (0x1)> + #198.1.1.num.bool <1 (0x1)> + #201.1.1.num.bool <0 (0x0)> + #204.1.1.num.int <197 (0xc5)> + #207.1.1.num.int <130 (0x82)> + #210.1.1.num.bool <0 (0x0)> diff --git a/tests/0032_xor/screen.log.ref b/tests/0032_xor/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0032_xor/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0032_xor/trace.log.ref b/tests/0032_xor/trace.log.ref new file mode 100644 index 0000000..33aff9f --- /dev/null +++ b/tests/0032_xor/trace.log.ref @@ -0,0 +1,194 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.bool <1 (0x1)> +IP: #186:0x9, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.bool <1 (0x1)> + [1] #189.1.1.num.bool <1 (0x1)> +IP: #186:0xa, type 8, 11[3] +GC: --#190.1.1.num.bool +GC: --#189.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xe, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xf, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.bool <0 (0x0)> + [1] #193.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x10, type 8, 17[3] +GC: --#194.1.1.num.bool +GC: --#193.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x14, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x15, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.bool <1 (0x1)> + [1] #196.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x16, type 8, 23[3] +GC: --#197.1.1.num.bool +GC: --#196.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x1a, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x1b, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.bool <0 (0x0)> + [1] #199.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x1c, type 8, 29[3] +GC: --#200.1.1.num.bool +GC: --#199.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x20, type 1, 240 (0xf0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <240 (0xf0)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x23, type 1, 53 (0x35) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <53 (0x35)> + [1] #202.1.1.num.int <240 (0xf0)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x25, type 8, 38[3] +GC: --#203.1.1.num.int +GC: --#202.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <197 (0xc5)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x29, type 1, 131 (0x83) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <131 (0x83)> + [1] #204.1.1.num.int <197 (0xc5)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x2c, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.bool <1 (0x1)> + [1] #205.1.1.num.int <131 (0x83)> + [2] #204.1.1.num.int <197 (0xc5)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x2d, type 8, 46[3] +GC: --#206.1.1.num.bool +GC: --#205.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <130 (0x82)> + [1] #204.1.1.num.int <197 (0xc5)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x31, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.bool <1 (0x1)> + [1] #207.1.1.num.int <130 (0x82)> + [2] #204.1.1.num.int <197 (0xc5)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x32, type 1, 131 (0x83) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <131 (0x83)> + [1] #208.1.1.num.bool <1 (0x1)> + [2] #207.1.1.num.int <130 (0x82)> + [3] #204.1.1.num.int <197 (0xc5)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x35, type 8, 54[3] +GC: --#209.1.1.num.int +GC: --#208.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.bool <0 (0x0)> + [1] #207.1.1.num.int <130 (0x82)> + [2] #204.1.1.num.int <197 (0xc5)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <0 (0x0)> diff --git a/tests/0033_min/basic.log.ref b/tests/0033_min/basic.log.ref new file mode 100644 index 0000000..01e16bc --- /dev/null +++ b/tests/0033_min/basic.log.ref @@ -0,0 +1,139 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <100 (0x64)> diff --git a/tests/0033_min/code.log.ref b/tests/0033_min/code.log.ref new file mode 100644 index 0000000..30af658 --- /dev/null +++ b/tests/0033_min/code.log.ref @@ -0,0 +1,25 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 19 entries (19 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d word 38 6d 69 6e min + 2 4 0x00011 int 91 c8 00 200 + 5 0x00014 int 81 64 100 + 6 0x00016 word 38 6d 69 6e min + 3 7 0x0001a bool 12 true + 8 0x0001b bool 02 false + 9 0x0001c word 38 6d 69 6e min + 4 10 0x00020 bool 02 false + 11 0x00021 bool 12 true + 12 0x00022 word 38 6d 69 6e min + 5 13 0x00026 bool 12 true + 14 0x00027 int 81 64 100 + 15 0x00029 word 38 6d 69 6e min + 6 16 0x0002d int 81 64 100 + 17 0x0002f bool 12 true + 18 0x00030 word 38 6d 69 6e min diff --git a/tests/0033_min/code1.log.ref b/tests/0033_min/code1.log.ref new file mode 100644 index 0000000..9c1142c --- /dev/null +++ b/tests/0033_min/code1.log.ref @@ -0,0 +1,25 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 19 entries (19 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d word 38 6d 69 6e min + 2 4 0x00011 int 91 c8 00 200 + 5 0x00014 int 81 64 100 + 6 0x00016 xref 84 09 min + 3 7 0x00018 bool 12 true + 8 0x00019 bool 02 false + 9 0x0001a xref 84 0d min + 4 10 0x0001c bool 02 false + 11 0x0001d bool 12 true + 12 0x0001e xref 84 11 min + 5 13 0x00020 bool 12 true + 14 0x00021 int 81 64 100 + 15 0x00023 xref 84 16 min + 6 16 0x00025 int 81 64 100 + 17 0x00027 bool 12 true + 18 0x00028 xref 84 1b min diff --git a/tests/0033_min/code2.log.ref b/tests/0033_min/code2.log.ref new file mode 100644 index 0000000..848401d --- /dev/null +++ b/tests/0033_min/code2.log.ref @@ -0,0 +1,25 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 19 entries (19 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d prim 83 25 min + 2 4 0x0000f int 91 c8 00 200 + 5 0x00012 int 81 64 100 + 6 0x00014 prim 83 25 min + 3 7 0x00016 bool 12 true + 8 0x00017 bool 02 false + 9 0x00018 prim 83 25 min + 4 10 0x0001a bool 02 false + 11 0x0001b bool 12 true + 12 0x0001c prim 83 25 min + 5 13 0x0001e bool 12 true + 14 0x0001f int 81 64 100 + 15 0x00021 prim 83 25 min + 6 16 0x00023 int 81 64 100 + 17 0x00025 bool 12 true + 18 0x00026 prim 83 25 min diff --git a/tests/0033_min/main.gs b/tests/0033_min/main.gs new file mode 100644 index 0000000..b2c3e4a --- /dev/null +++ b/tests/0033_min/main.gs @@ -0,0 +1,6 @@ +100 200 min +200 100 min +true false min +false true min +true 100 min +100 true min diff --git a/tests/0033_min/mem.log.ref b/tests/0033_min/mem.log.ref new file mode 100644 index 0000000..581aca1 --- /dev/null +++ b/tests/0033_min/mem.log.ref @@ -0,0 +1,766 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 52] + 8: 187.01, 0x001d6aa8[ 72] + 9: 188.01, 0x001d6af8[ 56] + 10: 192.01, 0x001d6b38[ 72] + 11: 0.00, 0x001d6b88[14849144] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 64 91 c8 00 38 6d 69 uQ..Bz.`.d...8mi + 6e 91 c8 00 81 64 38 6d 69 6e 12 02 38 6d 69 6e n....d8min..8min + 02 12 38 6d 69 6e 12 81 64 38 6d 69 6e 81 64 12 ..8min..d8min.d. + 38 6d 69 6e 8min + #187.1.1.array + [ 0] #191.1.1.num.int <100 (0x64)> + [ 1] #195.1.1.num.int <100 (0x64)> + [ 2] #198.1.1.num.bool <0 (0x0)> + [ 3] #201.1.1.num.bool <0 (0x0)> + [ 4] #204.1.1.num.bool <1 (0x1)> + [ 5] #207.1.1.num.int <1 (0x1)> + #188.1.1.ctx.func + type 17, ip 0x34 (0x34) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.int <100 (0x64)> + #192.1.1.array + #195.1.1.num.int <100 (0x64)> + #198.1.1.num.bool <0 (0x0)> + #201.1.1.num.bool <0 (0x0)> + #204.1.1.num.bool <1 (0x1)> + #207.1.1.num.int <1 (0x1)> diff --git a/tests/0033_min/screen.log.ref b/tests/0033_min/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0033_min/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0033_min/trace.log.ref b/tests/0033_min/trace.log.ref new file mode 100644 index 0000000..8b2abfb --- /dev/null +++ b/tests/0033_min/trace.log.ref @@ -0,0 +1,158 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <100 (0x64)> +IP: #186:0xa, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <200 (0xc8)> + [1] #189.1.1.num.int <100 (0x64)> +IP: #186:0xd, type 8, 14[3] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <100 (0x64)> +IP: #186:0x11, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <200 (0xc8)> + [1] #191.1.1.num.int <100 (0x64)> +IP: #186:0x14, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <100 (0x64)> + [1] #193.1.1.num.int <200 (0xc8)> + [2] #191.1.1.num.int <100 (0x64)> +IP: #186:0x16, type 8, 23[3] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <100 (0x64)> + [1] #191.1.1.num.int <100 (0x64)> +IP: #186:0x1a, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.int <100 (0x64)> + [2] #191.1.1.num.int <100 (0x64)> +IP: #186:0x1b, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.bool <0 (0x0)> + [1] #196.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.int <100 (0x64)> + [3] #191.1.1.num.int <100 (0x64)> +IP: #186:0x1c, type 8, 29[3] +GC: --#197.1.1.num.bool +GC: --#196.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.int <100 (0x64)> + [2] #191.1.1.num.int <100 (0x64)> +IP: #186:0x20, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.int <100 (0x64)> + [3] #191.1.1.num.int <100 (0x64)> +IP: #186:0x21, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.bool <1 (0x1)> + [1] #199.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.int <100 (0x64)> + [4] #191.1.1.num.int <100 (0x64)> +IP: #186:0x22, type 8, 35[3] +GC: --#200.1.1.num.bool +GC: --#199.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.int <100 (0x64)> + [3] #191.1.1.num.int <100 (0x64)> +IP: #186:0x26, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.bool <1 (0x1)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.int <100 (0x64)> + [4] #191.1.1.num.int <100 (0x64)> +IP: #186:0x27, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <100 (0x64)> + [1] #202.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.int <100 (0x64)> + [5] #191.1.1.num.int <100 (0x64)> +IP: #186:0x29, type 8, 42[3] +GC: --#203.1.1.num.int +GC: --#202.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.bool <1 (0x1)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.int <100 (0x64)> + [4] #191.1.1.num.int <100 (0x64)> +IP: #186:0x2d, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <100 (0x64)> + [1] #204.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.int <100 (0x64)> + [5] #191.1.1.num.int <100 (0x64)> +IP: #186:0x2f, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.bool <1 (0x1)> + [1] #205.1.1.num.int <100 (0x64)> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.int <100 (0x64)> + [6] #191.1.1.num.int <100 (0x64)> +IP: #186:0x30, type 8, 49[3] +GC: --#206.1.1.num.bool +GC: --#205.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <1 (0x1)> + [1] #204.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.int <100 (0x64)> + [5] #191.1.1.num.int <100 (0x64)> diff --git a/tests/0034_max/basic.log.ref b/tests/0034_max/basic.log.ref new file mode 100644 index 0000000..7f11eaf --- /dev/null +++ b/tests/0034_max/basic.log.ref @@ -0,0 +1,139 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.int <200 (0xc8)> + [6] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.bool +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <200 (0xc8)> diff --git a/tests/0034_max/code.log.ref b/tests/0034_max/code.log.ref new file mode 100644 index 0000000..12f5883 --- /dev/null +++ b/tests/0034_max/code.log.ref @@ -0,0 +1,25 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 19 entries (19 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d word 38 6d 61 78 max + 2 4 0x00011 int 91 c8 00 200 + 5 0x00014 int 81 64 100 + 6 0x00016 word 38 6d 61 78 max + 3 7 0x0001a bool 12 true + 8 0x0001b bool 02 false + 9 0x0001c word 38 6d 61 78 max + 4 10 0x00020 bool 02 false + 11 0x00021 bool 12 true + 12 0x00022 word 38 6d 61 78 max + 5 13 0x00026 bool 12 true + 14 0x00027 int 81 64 100 + 15 0x00029 word 38 6d 61 78 max + 6 16 0x0002d int 81 64 100 + 17 0x0002f bool 12 true + 18 0x00030 word 38 6d 61 78 max diff --git a/tests/0034_max/code1.log.ref b/tests/0034_max/code1.log.ref new file mode 100644 index 0000000..74adcaa --- /dev/null +++ b/tests/0034_max/code1.log.ref @@ -0,0 +1,25 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 19 entries (19 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d word 38 6d 61 78 max + 2 4 0x00011 int 91 c8 00 200 + 5 0x00014 int 81 64 100 + 6 0x00016 xref 84 09 max + 3 7 0x00018 bool 12 true + 8 0x00019 bool 02 false + 9 0x0001a xref 84 0d max + 4 10 0x0001c bool 02 false + 11 0x0001d bool 12 true + 12 0x0001e xref 84 11 max + 5 13 0x00020 bool 12 true + 14 0x00021 int 81 64 100 + 15 0x00023 xref 84 16 max + 6 16 0x00025 int 81 64 100 + 17 0x00027 bool 12 true + 18 0x00028 xref 84 1b max diff --git a/tests/0034_max/code2.log.ref b/tests/0034_max/code2.log.ref new file mode 100644 index 0000000..3cc07a4 --- /dev/null +++ b/tests/0034_max/code2.log.ref @@ -0,0 +1,25 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 19 entries (19 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 64 100 + 2 0x0000a int 91 c8 00 200 + 3 0x0000d prim 83 26 max + 2 4 0x0000f int 91 c8 00 200 + 5 0x00012 int 81 64 100 + 6 0x00014 prim 83 26 max + 3 7 0x00016 bool 12 true + 8 0x00017 bool 02 false + 9 0x00018 prim 83 26 max + 4 10 0x0001a bool 02 false + 11 0x0001b bool 12 true + 12 0x0001c prim 83 26 max + 5 13 0x0001e bool 12 true + 14 0x0001f int 81 64 100 + 15 0x00021 prim 83 26 max + 6 16 0x00023 int 81 64 100 + 17 0x00025 bool 12 true + 18 0x00026 prim 83 26 max diff --git a/tests/0034_max/main.gs b/tests/0034_max/main.gs new file mode 100644 index 0000000..6097c07 --- /dev/null +++ b/tests/0034_max/main.gs @@ -0,0 +1,6 @@ +100 200 max +200 100 max +true false max +false true max +true 100 max +100 true max diff --git a/tests/0034_max/mem.log.ref b/tests/0034_max/mem.log.ref new file mode 100644 index 0000000..a206d1f --- /dev/null +++ b/tests/0034_max/mem.log.ref @@ -0,0 +1,766 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 52] + 8: 187.01, 0x001d6aa8[ 72] + 9: 188.01, 0x001d6af8[ 56] + 10: 192.01, 0x001d6b38[ 72] + 11: 0.00, 0x001d6b88[14849144] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 64 91 c8 00 38 6d 61 uQ..Bz.`.d...8ma + 78 91 c8 00 81 64 38 6d 61 78 12 02 38 6d 61 78 x....d8max..8max + 02 12 38 6d 61 78 12 81 64 38 6d 61 78 81 64 12 ..8max..d8max.d. + 38 6d 61 78 8max + #187.1.1.array + [ 0] #191.1.1.num.int <200 (0xc8)> + [ 1] #195.1.1.num.int <200 (0xc8)> + [ 2] #198.1.1.num.bool <1 (0x1)> + [ 3] #201.1.1.num.bool <1 (0x1)> + [ 4] #204.1.1.num.bool <0 (0x0)> + [ 5] #207.1.1.num.int <100 (0x64)> + #188.1.1.ctx.func + type 17, ip 0x34 (0x34) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.int <200 (0xc8)> + #192.1.1.array + #195.1.1.num.int <200 (0xc8)> + #198.1.1.num.bool <1 (0x1)> + #201.1.1.num.bool <1 (0x1)> + #204.1.1.num.bool <0 (0x0)> + #207.1.1.num.int <100 (0x64)> diff --git a/tests/0034_max/screen.log.ref b/tests/0034_max/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0034_max/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0034_max/trace.log.ref b/tests/0034_max/trace.log.ref new file mode 100644 index 0000000..8243a45 --- /dev/null +++ b/tests/0034_max/trace.log.ref @@ -0,0 +1,158 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <100 (0x64)> +IP: #186:0xa, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <200 (0xc8)> + [1] #189.1.1.num.int <100 (0x64)> +IP: #186:0xd, type 8, 14[3] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x11, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <200 (0xc8)> + [1] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x14, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <100 (0x64)> + [1] #193.1.1.num.int <200 (0xc8)> + [2] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x16, type 8, 23[3] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <200 (0xc8)> + [1] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x1a, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.int <200 (0xc8)> + [2] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x1b, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.bool <0 (0x0)> + [1] #196.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.int <200 (0xc8)> + [3] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x1c, type 8, 29[3] +GC: --#197.1.1.num.bool +GC: --#196.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.int <200 (0xc8)> + [2] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x20, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.int <200 (0xc8)> + [3] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x21, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.bool <1 (0x1)> + [1] #199.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.int <200 (0xc8)> + [4] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x22, type 8, 35[3] +GC: --#200.1.1.num.bool +GC: --#199.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <1 (0x1)> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.int <200 (0xc8)> + [3] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x26, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.bool <1 (0x1)> + [1] #201.1.1.num.bool <1 (0x1)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.int <200 (0xc8)> + [4] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x27, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <100 (0x64)> + [1] #202.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.int <200 (0xc8)> + [5] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x29, type 8, 42[3] +GC: --#203.1.1.num.int +GC: --#202.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.bool <0 (0x0)> + [1] #201.1.1.num.bool <1 (0x1)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.int <200 (0xc8)> + [4] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x2d, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <100 (0x64)> + [1] #204.1.1.num.bool <0 (0x0)> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.int <200 (0xc8)> + [5] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x2f, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.bool <1 (0x1)> + [1] #205.1.1.num.int <100 (0x64)> + [2] #204.1.1.num.bool <0 (0x0)> + [3] #201.1.1.num.bool <1 (0x1)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.int <200 (0xc8)> + [6] #191.1.1.num.int <200 (0xc8)> +IP: #186:0x30, type 8, 49[3] +GC: --#206.1.1.num.bool +GC: --#205.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <100 (0x64)> + [1] #204.1.1.num.bool <0 (0x0)> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.int <200 (0xc8)> + [5] #191.1.1.num.int <200 (0xc8)> diff --git a/tests/0035_neg/basic.log.ref b/tests/0035_neg/basic.log.ref new file mode 100644 index 0000000..d2a7563 --- /dev/null +++ b/tests/0035_neg/basic.log.ref @@ -0,0 +1,52 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-100 (0xffffffffffffff9c)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.1.1.num.int <100 (0x64)> diff --git a/tests/0035_neg/code.log.ref b/tests/0035_neg/code.log.ref new file mode 100644 index 0000000..4b10667 --- /dev/null +++ b/tests/0035_neg/code.log.ref @@ -0,0 +1,15 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 9 entries (9 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 9c -100 + 2 0x0000a word 38 6e 65 67 neg + 2 3 0x0000e int 91 c8 00 200 + 4 0x00011 word 38 6e 65 67 neg + 3 5 0x00015 bool 02 false + 6 0x00016 word 38 6e 65 67 neg + 4 7 0x0001a bool 12 true + 8 0x0001b word 38 6e 65 67 neg diff --git a/tests/0035_neg/code1.log.ref b/tests/0035_neg/code1.log.ref new file mode 100644 index 0000000..6e126a4 --- /dev/null +++ b/tests/0035_neg/code1.log.ref @@ -0,0 +1,15 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 9 entries (9 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 9c -100 + 2 0x0000a word 38 6e 65 67 neg + 2 3 0x0000e int 91 c8 00 200 + 4 0x00011 xref 74 neg + 3 5 0x00012 bool 02 false + 6 0x00013 xref 84 09 neg + 4 7 0x00015 bool 12 true + 8 0x00016 xref 84 0c neg diff --git a/tests/0035_neg/code2.log.ref b/tests/0035_neg/code2.log.ref new file mode 100644 index 0000000..e9c0392 --- /dev/null +++ b/tests/0035_neg/code2.log.ref @@ -0,0 +1,15 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 9 entries (9 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 9c -100 + 2 0x0000a prim 83 23 neg + 2 3 0x0000c int 91 c8 00 200 + 4 0x0000f prim 83 23 neg + 3 5 0x00011 bool 02 false + 6 0x00012 prim 83 23 neg + 4 7 0x00014 bool 12 true + 8 0x00015 prim 83 23 neg diff --git a/tests/0035_neg/main.gs b/tests/0035_neg/main.gs new file mode 100644 index 0000000..3a1f552 --- /dev/null +++ b/tests/0035_neg/main.gs @@ -0,0 +1,4 @@ +-100 neg +200 neg +false neg +true neg diff --git a/tests/0035_neg/mem.log.ref b/tests/0035_neg/mem.log.ref new file mode 100644 index 0000000..fb52bb7 --- /dev/null +++ b/tests/0035_neg/mem.log.ref @@ -0,0 +1,760 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 32] + 8: 187.01, 0x001d6a94[ 72] + 9: 188.01, 0x001d6ae4[ 56] + 10: 191.01, 0x001d6b24[ 72] + 11: 0.00, 0x001d6b74[14849164] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 9c 38 6e 65 67 91 c8 uQ..Bz.`..8neg.. + 00 38 6e 65 67 02 38 6e 65 67 12 38 6e 65 67 .8neg.8neg.8neg + #187.1.1.array + [ 0] #190.1.1.num.int <100 (0x64)> + [ 1] #193.1.1.num.int <-200 (0xffffffffffffff38)> + [ 2] #195.1.1.num.bool <0 (0x0)> + [ 3] #197.1.1.num.bool <1 (0x1)> + #188.1.1.ctx.func + type 17, ip 0x1f (0x1f) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #190.1.1.num.int <100 (0x64)> + #191.1.1.array + #193.1.1.num.int <-200 (0xffffffffffffff38)> + #195.1.1.num.bool <0 (0x0)> + #197.1.1.num.bool <1 (0x1)> diff --git a/tests/0035_neg/screen.log.ref b/tests/0035_neg/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0035_neg/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0035_neg/trace.log.ref b/tests/0035_neg/trace.log.ref new file mode 100644 index 0000000..aa7695e --- /dev/null +++ b/tests/0035_neg/trace.log.ref @@ -0,0 +1,61 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, -100 (0xffffffffffffff9c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <-100 (0xffffffffffffff9c)> +IP: #186:0xa, type 8, 11[3] +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <100 (0x64)> +IP: #186:0xe, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <200 (0xc8)> + [1] #190.1.1.num.int <100 (0x64)> +IP: #186:0x11, type 8, 18[3] +GC: --#192.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <-200 (0xffffffffffffff38)> + [1] #190.1.1.num.int <100 (0x64)> +IP: #186:0x15, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.bool <0 (0x0)> + [1] #193.1.1.num.int <-200 (0xffffffffffffff38)> + [2] #190.1.1.num.int <100 (0x64)> +IP: #186:0x16, type 8, 23[3] +GC: --#194.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <0 (0x0)> + [1] #193.1.1.num.int <-200 (0xffffffffffffff38)> + [2] #190.1.1.num.int <100 (0x64)> +IP: #186:0x1a, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #193.1.1.num.int <-200 (0xffffffffffffff38)> + [3] #190.1.1.num.int <100 (0x64)> +IP: #186:0x1b, type 8, 28[3] +GC: --#196.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #193.1.1.num.int <-200 (0xffffffffffffff38)> + [3] #190.1.1.num.int <100 (0x64)> diff --git a/tests/0036_not/basic.log.ref b/tests/0036_not/basic.log.ref new file mode 100644 index 0000000..363c9c0 --- /dev/null +++ b/tests/0036_not/basic.log.ref @@ -0,0 +1,52 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-512 (0xfffffffffffffe00)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <511 (0x1ff)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <255 (0xff)> + [1] #xxxx.1.1.num.int <511 (0x1ff)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [1] #xxxx.1.1.num.int <511 (0x1ff)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [2] #xxxx.1.1.num.int <511 (0x1ff)> +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [2] #xxxx.1.1.num.int <511 (0x1ff)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [3] #xxxx.1.1.num.int <511 (0x1ff)> +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [3] #xxxx.1.1.num.int <511 (0x1ff)> diff --git a/tests/0036_not/code.log.ref b/tests/0036_not/code.log.ref new file mode 100644 index 0000000..6477563 --- /dev/null +++ b/tests/0036_not/code.log.ref @@ -0,0 +1,15 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 9 entries (9 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 00 fe -0x200 + 2 0x0000b word 38 6e 6f 74 not + 2 3 0x0000f int 91 ff 00 0xff + 4 0x00012 word 38 6e 6f 74 not + 3 5 0x00016 bool 02 false + 6 0x00017 word 38 6e 6f 74 not + 4 7 0x0001b bool 12 true + 8 0x0001c word 38 6e 6f 74 not diff --git a/tests/0036_not/code1.log.ref b/tests/0036_not/code1.log.ref new file mode 100644 index 0000000..cde7f64 --- /dev/null +++ b/tests/0036_not/code1.log.ref @@ -0,0 +1,15 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 9 entries (9 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 00 fe -0x200 + 2 0x0000b word 38 6e 6f 74 not + 2 3 0x0000f int 91 ff 00 0xff + 4 0x00012 xref 74 not + 3 5 0x00013 bool 02 false + 6 0x00014 xref 84 09 not + 4 7 0x00016 bool 12 true + 8 0x00017 xref 84 0c not diff --git a/tests/0036_not/code2.log.ref b/tests/0036_not/code2.log.ref new file mode 100644 index 0000000..8a8e50f --- /dev/null +++ b/tests/0036_not/code2.log.ref @@ -0,0 +1,15 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 9 entries (9 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 00 fe -0x200 + 2 0x0000b prim 83 2a not + 2 3 0x0000d int 91 ff 00 0xff + 4 0x00010 prim 83 2a not + 3 5 0x00012 bool 02 false + 6 0x00013 prim 83 2a not + 4 7 0x00015 bool 12 true + 8 0x00016 prim 83 2a not diff --git a/tests/0036_not/main.gs b/tests/0036_not/main.gs new file mode 100644 index 0000000..8015cc2 --- /dev/null +++ b/tests/0036_not/main.gs @@ -0,0 +1,4 @@ +-0x200 not +0xff not +false not +true not diff --git a/tests/0036_not/mem.log.ref b/tests/0036_not/mem.log.ref new file mode 100644 index 0000000..2749a50 --- /dev/null +++ b/tests/0036_not/mem.log.ref @@ -0,0 +1,760 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 32] + 8: 187.01, 0x001d6a94[ 72] + 9: 188.01, 0x001d6ae4[ 56] + 10: 191.01, 0x001d6b24[ 72] + 11: 0.00, 0x001d6b74[14849164] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 91 00 fe 38 6e 6f 74 91 uQ..Bz.`...8not. + ff 00 38 6e 6f 74 02 38 6e 6f 74 12 38 6e 6f 74 ..8not.8not.8not + #187.1.1.array + [ 0] #190.1.1.num.int <511 (0x1ff)> + [ 1] #193.1.1.num.int <-256 (0xffffffffffffff00)> + [ 2] #195.1.1.num.bool <1 (0x1)> + [ 3] #197.1.1.num.bool <0 (0x0)> + #188.1.1.ctx.func + type 17, ip 0x20 (0x20) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #190.1.1.num.int <511 (0x1ff)> + #191.1.1.array + #193.1.1.num.int <-256 (0xffffffffffffff00)> + #195.1.1.num.bool <1 (0x1)> + #197.1.1.num.bool <0 (0x0)> diff --git a/tests/0036_not/screen.log.ref b/tests/0036_not/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0036_not/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0036_not/trace.log.ref b/tests/0036_not/trace.log.ref new file mode 100644 index 0000000..593a982 --- /dev/null +++ b/tests/0036_not/trace.log.ref @@ -0,0 +1,61 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, -512 (0xfffffffffffffe00) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <-512 (0xfffffffffffffe00)> +IP: #186:0xb, type 8, 12[3] +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <511 (0x1ff)> +IP: #186:0xf, type 1, 255 (0xff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <255 (0xff)> + [1] #190.1.1.num.int <511 (0x1ff)> +IP: #186:0x12, type 8, 19[3] +GC: --#192.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <-256 (0xffffffffffffff00)> + [1] #190.1.1.num.int <511 (0x1ff)> +IP: #186:0x16, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.bool <0 (0x0)> + [1] #193.1.1.num.int <-256 (0xffffffffffffff00)> + [2] #190.1.1.num.int <511 (0x1ff)> +IP: #186:0x17, type 8, 24[3] +GC: --#194.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <1 (0x1)> + [1] #193.1.1.num.int <-256 (0xffffffffffffff00)> + [2] #190.1.1.num.int <511 (0x1ff)> +IP: #186:0x1b, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #193.1.1.num.int <-256 (0xffffffffffffff00)> + [3] #190.1.1.num.int <511 (0x1ff)> +IP: #186:0x1c, type 8, 29[3] +GC: --#196.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #193.1.1.num.int <-256 (0xffffffffffffff00)> + [3] #190.1.1.num.int <511 (0x1ff)> diff --git a/tests/0037_abs/basic.log.ref b/tests/0037_abs/basic.log.ref new file mode 100644 index 0000000..371a386 --- /dev/null +++ b/tests/0037_abs/basic.log.ref @@ -0,0 +1,52 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-100 (0xffffffffffffff9c)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.bool +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> diff --git a/tests/0037_abs/code.log.ref b/tests/0037_abs/code.log.ref new file mode 100644 index 0000000..dae77b4 --- /dev/null +++ b/tests/0037_abs/code.log.ref @@ -0,0 +1,15 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 9 entries (9 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 9c -100 + 2 0x0000a word 38 61 62 73 abs + 2 3 0x0000e int 91 c8 00 200 + 4 0x00011 word 38 61 62 73 abs + 3 5 0x00015 bool 02 false + 6 0x00016 word 38 61 62 73 abs + 4 7 0x0001a bool 12 true + 8 0x0001b word 38 61 62 73 abs diff --git a/tests/0037_abs/code1.log.ref b/tests/0037_abs/code1.log.ref new file mode 100644 index 0000000..8805beb --- /dev/null +++ b/tests/0037_abs/code1.log.ref @@ -0,0 +1,15 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 9 entries (9 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 9c -100 + 2 0x0000a word 38 61 62 73 abs + 2 3 0x0000e int 91 c8 00 200 + 4 0x00011 xref 74 abs + 3 5 0x00012 bool 02 false + 6 0x00013 xref 84 09 abs + 4 7 0x00015 bool 12 true + 8 0x00016 xref 84 0c abs diff --git a/tests/0037_abs/code2.log.ref b/tests/0037_abs/code2.log.ref new file mode 100644 index 0000000..06be99c --- /dev/null +++ b/tests/0037_abs/code2.log.ref @@ -0,0 +1,15 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 9 entries (9 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 9c -100 + 2 0x0000a prim 83 24 abs + 2 3 0x0000c int 91 c8 00 200 + 4 0x0000f prim 83 24 abs + 3 5 0x00011 bool 02 false + 6 0x00012 prim 83 24 abs + 4 7 0x00014 bool 12 true + 8 0x00015 prim 83 24 abs diff --git a/tests/0037_abs/main.gs b/tests/0037_abs/main.gs new file mode 100644 index 0000000..9cb93c2 --- /dev/null +++ b/tests/0037_abs/main.gs @@ -0,0 +1,4 @@ +-100 abs +200 abs +false abs +true abs diff --git a/tests/0037_abs/mem.log.ref b/tests/0037_abs/mem.log.ref new file mode 100644 index 0000000..025942b --- /dev/null +++ b/tests/0037_abs/mem.log.ref @@ -0,0 +1,760 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 32] + 8: 187.01, 0x001d6a94[ 72] + 9: 188.01, 0x001d6ae4[ 56] + 10: 191.01, 0x001d6b24[ 72] + 11: 0.00, 0x001d6b74[14849164] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 9c 38 61 62 73 91 c8 uQ..Bz.`..8abs.. + 00 38 61 62 73 02 38 61 62 73 12 38 61 62 73 .8abs.8abs.8abs + #187.1.1.array + [ 0] #190.1.1.num.int <100 (0x64)> + [ 1] #193.1.1.num.int <200 (0xc8)> + [ 2] #195.1.1.num.bool <0 (0x0)> + [ 3] #197.1.1.num.bool <1 (0x1)> + #188.1.1.ctx.func + type 17, ip 0x1f (0x1f) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #190.1.1.num.int <100 (0x64)> + #191.1.1.array + #193.1.1.num.int <200 (0xc8)> + #195.1.1.num.bool <0 (0x0)> + #197.1.1.num.bool <1 (0x1)> diff --git a/tests/0037_abs/screen.log.ref b/tests/0037_abs/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0037_abs/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0037_abs/trace.log.ref b/tests/0037_abs/trace.log.ref new file mode 100644 index 0000000..e98cc26 --- /dev/null +++ b/tests/0037_abs/trace.log.ref @@ -0,0 +1,61 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, -100 (0xffffffffffffff9c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <-100 (0xffffffffffffff9c)> +IP: #186:0xa, type 8, 11[3] +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <100 (0x64)> +IP: #186:0xe, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <200 (0xc8)> + [1] #190.1.1.num.int <100 (0x64)> +IP: #186:0x11, type 8, 18[3] +GC: --#192.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <200 (0xc8)> + [1] #190.1.1.num.int <100 (0x64)> +IP: #186:0x15, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.bool <0 (0x0)> + [1] #193.1.1.num.int <200 (0xc8)> + [2] #190.1.1.num.int <100 (0x64)> +IP: #186:0x16, type 8, 23[3] +GC: --#194.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <0 (0x0)> + [1] #193.1.1.num.int <200 (0xc8)> + [2] #190.1.1.num.int <100 (0x64)> +IP: #186:0x1a, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #193.1.1.num.int <200 (0xc8)> + [3] #190.1.1.num.int <100 (0x64)> +IP: #186:0x1b, type 8, 28[3] +GC: --#196.1.1.num.bool +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #193.1.1.num.int <200 (0xc8)> + [3] #190.1.1.num.int <100 (0x64)> diff --git a/tests/0038_shl/basic.log.ref b/tests/0038_shl/basic.log.ref new file mode 100644 index 0000000..8fd0734 --- /dev/null +++ b/tests/0038_shl/basic.log.ref @@ -0,0 +1,282 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <16 (0x10)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <16 (0x10)> + [1] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <8 (0x8)> + [1] #xxxx.1.1.num.int <16 (0x10)> + [2] #xxxx.1.1.num.int <16 (0x10)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4096 (0x1000)> + [1] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [1] #xxxx.1.1.num.int <4096 (0x1000)> + [2] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <8 (0x8)> + [1] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [2] #xxxx.1.1.num.int <4096 (0x1000)> + [3] #xxxx.1.1.num.int <16 (0x10)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [1] #xxxx.1.1.num.int <4096 (0x1000)> + [2] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [2] #xxxx.1.1.num.int <4096 (0x1000)> + [3] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [3] #xxxx.1.1.num.int <4096 (0x1000)> + [4] #xxxx.1.1.num.int <16 (0x10)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [1] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [2] #xxxx.1.1.num.int <4096 (0x1000)> + [3] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <62 (0x3e)> + [1] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [2] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [3] #xxxx.1.1.num.int <4096 (0x1000)> + [4] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <62 (0x3e)> + [2] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [3] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [4] #xxxx.1.1.num.int <4096 (0x1000)> + [5] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <62 (0x3e)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <62 (0x3e)> + [3] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [4] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [5] #xxxx.1.1.num.int <4096 (0x1000)> + [6] #xxxx.1.1.num.int <16 (0x10)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [1] #xxxx.1.1.num.int <62 (0x3e)> + [2] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [3] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [4] #xxxx.1.1.num.int <4096 (0x1000)> + [5] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <63 (0x3f)> + [1] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [2] #xxxx.1.1.num.int <62 (0x3e)> + [3] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [4] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [5] #xxxx.1.1.num.int <4096 (0x1000)> + [6] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <63 (0x3f)> + [2] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [3] #xxxx.1.1.num.int <62 (0x3e)> + [4] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [5] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [6] #xxxx.1.1.num.int <4096 (0x1000)> + [7] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <63 (0x3f)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <63 (0x3f)> + [3] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [4] #xxxx.1.1.num.int <62 (0x3e)> + [5] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [6] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [7] #xxxx.1.1.num.int <4096 (0x1000)> + [8] #xxxx.1.1.num.int <16 (0x10)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #xxxx.1.1.num.int <63 (0x3f)> + [2] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [3] #xxxx.1.1.num.int <62 (0x3e)> + [4] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [5] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [6] #xxxx.1.1.num.int <4096 (0x1000)> + [7] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <64 (0x40)> + [1] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #xxxx.1.1.num.int <63 (0x3f)> + [3] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [4] #xxxx.1.1.num.int <62 (0x3e)> + [5] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [6] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [7] #xxxx.1.1.num.int <4096 (0x1000)> + [8] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <64 (0x40)> + [2] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [3] #xxxx.1.1.num.int <63 (0x3f)> + [4] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [5] #xxxx.1.1.num.int <62 (0x3e)> + [6] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [7] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [8] #xxxx.1.1.num.int <4096 (0x1000)> + [9] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <64 (0x40)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <64 (0x40)> + [3] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [4] #xxxx.1.1.num.int <63 (0x3f)> + [5] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [6] #xxxx.1.1.num.int <62 (0x3e)> + [7] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [8] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [9] #xxxx.1.1.num.int <4096 (0x1000)> + [10] #xxxx.1.1.num.int <16 (0x10)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <64 (0x40)> + [2] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [3] #xxxx.1.1.num.int <63 (0x3f)> + [4] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [5] #xxxx.1.1.num.int <62 (0x3e)> + [6] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [7] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [8] #xxxx.1.1.num.int <4096 (0x1000)> + [9] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <65 (0x41)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <64 (0x40)> + [3] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [4] #xxxx.1.1.num.int <63 (0x3f)> + [5] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [6] #xxxx.1.1.num.int <62 (0x3e)> + [7] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [8] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [9] #xxxx.1.1.num.int <4096 (0x1000)> + [10] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <65 (0x41)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <64 (0x40)> + [4] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [5] #xxxx.1.1.num.int <63 (0x3f)> + [6] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [7] #xxxx.1.1.num.int <62 (0x3e)> + [8] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [9] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [10] #xxxx.1.1.num.int <4096 (0x1000)> + [11] #xxxx.1.1.num.int <16 (0x10)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <65 (0x41)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <65 (0x41)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <64 (0x40)> + [5] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [6] #xxxx.1.1.num.int <63 (0x3f)> + [7] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [8] #xxxx.1.1.num.int <62 (0x3e)> + [9] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [10] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [11] #xxxx.1.1.num.int <4096 (0x1000)> + [12] #xxxx.1.1.num.int <16 (0x10)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <65 (0x41)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <64 (0x40)> + [4] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [5] #xxxx.1.1.num.int <63 (0x3f)> + [6] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [7] #xxxx.1.1.num.int <62 (0x3e)> + [8] #xxxx.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [9] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [10] #xxxx.1.1.num.int <4096 (0x1000)> + [11] #xxxx.1.1.num.int <16 (0x10)> diff --git a/tests/0038_shl/code.log.ref b/tests/0038_shl/code.log.ref new file mode 100644 index 0000000..a3a4b1d --- /dev/null +++ b/tests/0038_shl/code.log.ref @@ -0,0 +1,35 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 29 entries (29 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 10 0x10 + 2 0x0000a int 01 0 + 3 0x0000b word 38 73 68 6c shl + 2 4 0x0000f int 81 10 0x10 + 5 0x00011 int 81 08 8 + 6 0x00013 word 38 73 68 6c shl + 3 7 0x00017 int 81 f0 -0x10 + 8 0x00019 int 81 08 8 + 9 0x0001b word 38 73 68 6c shl + 4 10 0x0001f int 11 1 + 11 0x00020 int 81 fe -2 + 12 0x00022 word 38 73 68 6c shl + 5 13 0x00026 int 81 3e 62 + 6 14 0x00028 int 11 1 + 15 0x00029 int 81 3e 62 + 16 0x0002b word 38 73 68 6c shl + 7 17 0x0002f int 81 3f 63 + 8 18 0x00031 int 11 1 + 19 0x00032 int 81 3f 63 + 20 0x00034 word 38 73 68 6c shl + 9 21 0x00038 int 81 40 64 + 10 22 0x0003a int 11 1 + 23 0x0003b int 81 40 64 + 24 0x0003d word 38 73 68 6c shl + 11 25 0x00041 int 81 41 65 + 12 26 0x00043 int 11 1 + 27 0x00044 int 81 41 65 + 28 0x00046 word 38 73 68 6c shl diff --git a/tests/0038_shl/code1.log.ref b/tests/0038_shl/code1.log.ref new file mode 100644 index 0000000..65a13c1 --- /dev/null +++ b/tests/0038_shl/code1.log.ref @@ -0,0 +1,35 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 29 entries (29 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 10 0x10 + 2 0x0000a int 01 0 + 3 0x0000b word 38 73 68 6c shl + 2 4 0x0000f int 81 10 0x10 + 5 0x00011 int 81 08 8 + 6 0x00013 xref 84 08 shl + 3 7 0x00015 int 81 f0 -0x10 + 8 0x00017 int 81 08 8 + 9 0x00019 xref 84 0e shl + 4 10 0x0001b int 11 1 + 11 0x0001c int 81 fe -2 + 12 0x0001e xref 84 13 shl + 5 13 0x00020 int 81 3e 62 + 6 14 0x00022 int 11 1 + 15 0x00023 int 81 3e 62 + 16 0x00025 xref 84 1a shl + 7 17 0x00027 int 81 3f 63 + 8 18 0x00029 int 11 1 + 19 0x0002a int 81 3f 63 + 20 0x0002c xref 84 21 shl + 9 21 0x0002e int 81 40 64 + 10 22 0x00030 int 11 1 + 23 0x00031 int 81 40 64 + 24 0x00033 xref 84 28 shl + 11 25 0x00035 int 81 41 65 + 12 26 0x00037 int 11 1 + 27 0x00038 int 81 41 65 + 28 0x0003a xref 84 2f shl diff --git a/tests/0038_shl/code2.log.ref b/tests/0038_shl/code2.log.ref new file mode 100644 index 0000000..48699e1 --- /dev/null +++ b/tests/0038_shl/code2.log.ref @@ -0,0 +1,35 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 29 entries (29 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 81 10 0x10 + 2 0x0000a int 01 0 + 3 0x0000b prim 83 2b shl + 2 4 0x0000d int 81 10 0x10 + 5 0x0000f int 81 08 8 + 6 0x00011 prim 83 2b shl + 3 7 0x00013 int 81 f0 -0x10 + 8 0x00015 int 81 08 8 + 9 0x00017 prim 83 2b shl + 4 10 0x00019 int 11 1 + 11 0x0001a int 81 fe -2 + 12 0x0001c prim 83 2b shl + 5 13 0x0001e int 81 3e 62 + 6 14 0x00020 int 11 1 + 15 0x00021 int 81 3e 62 + 16 0x00023 prim 83 2b shl + 7 17 0x00025 int 81 3f 63 + 8 18 0x00027 int 11 1 + 19 0x00028 int 81 3f 63 + 20 0x0002a prim 83 2b shl + 9 21 0x0002c int 81 40 64 + 10 22 0x0002e int 11 1 + 23 0x0002f int 81 40 64 + 24 0x00031 prim 83 2b shl + 11 25 0x00033 int 81 41 65 + 12 26 0x00035 int 11 1 + 27 0x00036 int 81 41 65 + 28 0x00038 prim 83 2b shl diff --git a/tests/0038_shl/main.gs b/tests/0038_shl/main.gs new file mode 100644 index 0000000..a10496c --- /dev/null +++ b/tests/0038_shl/main.gs @@ -0,0 +1,12 @@ +0x10 0 shl +0x10 8 shl +-0x10 8 shl +1 -2 shl +62 +1 62 shl +63 +1 63 shl +64 +1 64 shl +65 +1 65 shl diff --git a/tests/0038_shl/mem.log.ref b/tests/0038_shl/mem.log.ref new file mode 100644 index 0000000..5c9b4cc --- /dev/null +++ b/tests/0038_shl/mem.log.ref @@ -0,0 +1,779 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 76] + 8: 187.01, 0x001d6ac0[ 72] + 9: 188.01, 0x001d6b10[ 56] + 10: 192.01, 0x001d6b50[ 72] + 11: 0.00, 0x001d6ba0[14849120] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 81 10 01 38 73 68 6c 81 uQ..Bz.`...8shl. + 10 81 08 38 73 68 6c 81 f0 81 08 38 73 68 6c 11 ...8shl....8shl. + 81 fe 38 73 68 6c 81 3e 11 81 3e 38 73 68 6c 81 ..8shl.>..>8shl. + 3f 11 81 3f 38 73 68 6c 81 40 11 81 40 38 73 68 ?..?8shl.@..@8sh + 6c 81 41 11 81 41 38 73 68 6c l.A..A8shl + #187.1.1.array + [ 0] #191.1.1.num.int <16 (0x10)> + [ 1] #195.1.1.num.int <4096 (0x1000)> + [ 2] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [ 3] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [ 4] #202.1.1.num.int <62 (0x3e)> + [ 5] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [ 6] #206.1.1.num.int <63 (0x3f)> + [ 7] #209.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [ 8] #210.1.1.num.int <64 (0x40)> + [ 9] #213.1.1.num.int <1 (0x1)> + [10] #214.1.1.num.int <65 (0x41)> + [11] #217.1.1.num.int <2 (0x2)> + #188.1.1.ctx.func + type 17, ip 0x4a (0x4a) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.int <16 (0x10)> + #192.1.1.array + #195.1.1.num.int <4096 (0x1000)> + #198.1.1.num.int <-4096 (0xfffffffffffff000)> + #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + #202.1.1.num.int <62 (0x3e)> + #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + #206.1.1.num.int <63 (0x3f)> + #209.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + #210.1.1.num.int <64 (0x40)> + #213.1.1.num.int <1 (0x1)> + #214.1.1.num.int <65 (0x41)> + #217.1.1.num.int <2 (0x2)> diff --git a/tests/0038_shl/screen.log.ref b/tests/0038_shl/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0038_shl/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0038_shl/trace.log.ref b/tests/0038_shl/trace.log.ref new file mode 100644 index 0000000..35855ff --- /dev/null +++ b/tests/0038_shl/trace.log.ref @@ -0,0 +1,311 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 16 (0x10) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <16 (0x10)> +IP: #186:0xa, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <0 (0x0)> + [1] #189.1.1.num.int <16 (0x10)> +IP: #186:0xb, type 8, 12[3] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <16 (0x10)> +IP: #186:0xf, type 1, 16 (0x10) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <16 (0x10)> + [1] #191.1.1.num.int <16 (0x10)> +IP: #186:0x11, type 1, 8 (0x8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <8 (0x8)> + [1] #193.1.1.num.int <16 (0x10)> + [2] #191.1.1.num.int <16 (0x10)> +IP: #186:0x13, type 8, 20[3] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <4096 (0x1000)> + [1] #191.1.1.num.int <16 (0x10)> +IP: #186:0x17, type 1, -16 (0xfffffffffffffff0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <-16 (0xfffffffffffffff0)> + [1] #195.1.1.num.int <4096 (0x1000)> + [2] #191.1.1.num.int <16 (0x10)> +IP: #186:0x19, type 1, 8 (0x8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <8 (0x8)> + [1] #196.1.1.num.int <-16 (0xfffffffffffffff0)> + [2] #195.1.1.num.int <4096 (0x1000)> + [3] #191.1.1.num.int <16 (0x10)> +IP: #186:0x1b, type 8, 28[3] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [1] #195.1.1.num.int <4096 (0x1000)> + [2] #191.1.1.num.int <16 (0x10)> +IP: #186:0x1f, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <1 (0x1)> + [1] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [2] #195.1.1.num.int <4096 (0x1000)> + [3] #191.1.1.num.int <16 (0x10)> +IP: #186:0x20, type 1, -2 (0xfffffffffffffffe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #199.1.1.num.int <1 (0x1)> + [2] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [3] #195.1.1.num.int <4096 (0x1000)> + [4] #191.1.1.num.int <16 (0x10)> +IP: #186:0x22, type 8, 35[3] +GC: --#200.1.1.num.int +GC: --#199.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [1] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [2] #195.1.1.num.int <4096 (0x1000)> + [3] #191.1.1.num.int <16 (0x10)> +IP: #186:0x26, type 1, 62 (0x3e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <62 (0x3e)> + [1] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [2] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [3] #195.1.1.num.int <4096 (0x1000)> + [4] #191.1.1.num.int <16 (0x10)> +IP: #186:0x28, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <1 (0x1)> + [1] #202.1.1.num.int <62 (0x3e)> + [2] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [3] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [4] #195.1.1.num.int <4096 (0x1000)> + [5] #191.1.1.num.int <16 (0x10)> +IP: #186:0x29, type 1, 62 (0x3e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <62 (0x3e)> + [1] #203.1.1.num.int <1 (0x1)> + [2] #202.1.1.num.int <62 (0x3e)> + [3] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [4] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [5] #195.1.1.num.int <4096 (0x1000)> + [6] #191.1.1.num.int <16 (0x10)> +IP: #186:0x2b, type 8, 44[3] +GC: --#204.1.1.num.int +GC: --#203.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [1] #202.1.1.num.int <62 (0x3e)> + [2] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [3] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [4] #195.1.1.num.int <4096 (0x1000)> + [5] #191.1.1.num.int <16 (0x10)> +IP: #186:0x2f, type 1, 63 (0x3f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <63 (0x3f)> + [1] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [2] #202.1.1.num.int <62 (0x3e)> + [3] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [4] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [5] #195.1.1.num.int <4096 (0x1000)> + [6] #191.1.1.num.int <16 (0x10)> +IP: #186:0x31, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <1 (0x1)> + [1] #206.1.1.num.int <63 (0x3f)> + [2] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [3] #202.1.1.num.int <62 (0x3e)> + [4] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [5] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [6] #195.1.1.num.int <4096 (0x1000)> + [7] #191.1.1.num.int <16 (0x10)> +IP: #186:0x32, type 1, 63 (0x3f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <63 (0x3f)> + [1] #207.1.1.num.int <1 (0x1)> + [2] #206.1.1.num.int <63 (0x3f)> + [3] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [4] #202.1.1.num.int <62 (0x3e)> + [5] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [6] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [7] #195.1.1.num.int <4096 (0x1000)> + [8] #191.1.1.num.int <16 (0x10)> +IP: #186:0x34, type 8, 53[3] +GC: --#208.1.1.num.int +GC: --#207.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #206.1.1.num.int <63 (0x3f)> + [2] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [3] #202.1.1.num.int <62 (0x3e)> + [4] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [5] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [6] #195.1.1.num.int <4096 (0x1000)> + [7] #191.1.1.num.int <16 (0x10)> +IP: #186:0x38, type 1, 64 (0x40) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <64 (0x40)> + [1] #209.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #206.1.1.num.int <63 (0x3f)> + [3] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [4] #202.1.1.num.int <62 (0x3e)> + [5] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [6] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [7] #195.1.1.num.int <4096 (0x1000)> + [8] #191.1.1.num.int <16 (0x10)> +IP: #186:0x3a, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <1 (0x1)> + [1] #210.1.1.num.int <64 (0x40)> + [2] #209.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [3] #206.1.1.num.int <63 (0x3f)> + [4] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [5] #202.1.1.num.int <62 (0x3e)> + [6] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [7] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [8] #195.1.1.num.int <4096 (0x1000)> + [9] #191.1.1.num.int <16 (0x10)> +IP: #186:0x3b, type 1, 64 (0x40) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.int <64 (0x40)> + [1] #211.1.1.num.int <1 (0x1)> + [2] #210.1.1.num.int <64 (0x40)> + [3] #209.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [4] #206.1.1.num.int <63 (0x3f)> + [5] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [6] #202.1.1.num.int <62 (0x3e)> + [7] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [8] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [9] #195.1.1.num.int <4096 (0x1000)> + [10] #191.1.1.num.int <16 (0x10)> +IP: #186:0x3d, type 8, 62[3] +GC: --#212.1.1.num.int +GC: --#211.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <1 (0x1)> + [1] #210.1.1.num.int <64 (0x40)> + [2] #209.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [3] #206.1.1.num.int <63 (0x3f)> + [4] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [5] #202.1.1.num.int <62 (0x3e)> + [6] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [7] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [8] #195.1.1.num.int <4096 (0x1000)> + [9] #191.1.1.num.int <16 (0x10)> +IP: #186:0x41, type 1, 65 (0x41) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.num.int <65 (0x41)> + [1] #213.1.1.num.int <1 (0x1)> + [2] #210.1.1.num.int <64 (0x40)> + [3] #209.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [4] #206.1.1.num.int <63 (0x3f)> + [5] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [6] #202.1.1.num.int <62 (0x3e)> + [7] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [8] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [9] #195.1.1.num.int <4096 (0x1000)> + [10] #191.1.1.num.int <16 (0x10)> +IP: #186:0x43, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <1 (0x1)> + [1] #214.1.1.num.int <65 (0x41)> + [2] #213.1.1.num.int <1 (0x1)> + [3] #210.1.1.num.int <64 (0x40)> + [4] #209.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [5] #206.1.1.num.int <63 (0x3f)> + [6] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [7] #202.1.1.num.int <62 (0x3e)> + [8] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [9] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [10] #195.1.1.num.int <4096 (0x1000)> + [11] #191.1.1.num.int <16 (0x10)> +IP: #186:0x44, type 1, 65 (0x41) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <65 (0x41)> + [1] #215.1.1.num.int <1 (0x1)> + [2] #214.1.1.num.int <65 (0x41)> + [3] #213.1.1.num.int <1 (0x1)> + [4] #210.1.1.num.int <64 (0x40)> + [5] #209.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [6] #206.1.1.num.int <63 (0x3f)> + [7] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [8] #202.1.1.num.int <62 (0x3e)> + [9] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [10] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [11] #195.1.1.num.int <4096 (0x1000)> + [12] #191.1.1.num.int <16 (0x10)> +IP: #186:0x46, type 8, 71[3] +GC: --#216.1.1.num.int +GC: --#215.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <2 (0x2)> + [1] #214.1.1.num.int <65 (0x41)> + [2] #213.1.1.num.int <1 (0x1)> + [3] #210.1.1.num.int <64 (0x40)> + [4] #209.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [5] #206.1.1.num.int <63 (0x3f)> + [6] #205.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [7] #202.1.1.num.int <62 (0x3e)> + [8] #201.1.1.num.int <4611686018427387904 (0x4000000000000000)> + [9] #198.1.1.num.int <-4096 (0xfffffffffffff000)> + [10] #195.1.1.num.int <4096 (0x1000)> + [11] #191.1.1.num.int <16 (0x10)> diff --git a/tests/0039_shr/basic.log.ref b/tests/0039_shr/basic.log.ref new file mode 100644 index 0000000..11192c5 --- /dev/null +++ b/tests/0039_shr/basic.log.ref @@ -0,0 +1,492 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4096 (0x1000)> + [1] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <8 (0x8)> + [1] #xxxx.1.1.num.int <4096 (0x1000)> + [2] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <16 (0x10)> + [1] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [1] #xxxx.1.1.num.int <16 (0x10)> + [2] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <8 (0x8)> + [1] #xxxx.1.1.num.int <-4096 (0xfffffffffffff000)> + [2] #xxxx.1.1.num.int <16 (0x10)> + [3] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [1] #xxxx.1.1.num.int <16 (0x10)> + [2] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4096 (0x1000)> + [1] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [2] #xxxx.1.1.num.int <16 (0x10)> + [3] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-60 (0xffffffffffffffc4)> + [1] #xxxx.1.1.num.int <4096 (0x1000)> + [2] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [3] #xxxx.1.1.num.int <16 (0x10)> + [4] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <256 (0x100)> + [1] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [2] #xxxx.1.1.num.int <16 (0x10)> + [3] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <62 (0x3e)> + [1] #xxxx.1.1.num.int <256 (0x100)> + [2] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [3] #xxxx.1.1.num.int <16 (0x10)> + [4] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #xxxx.1.1.num.int <62 (0x3e)> + [2] #xxxx.1.1.num.int <256 (0x100)> + [3] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [4] #xxxx.1.1.num.int <16 (0x10)> + [5] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <62 (0x3e)> + [1] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #xxxx.1.1.num.int <62 (0x3e)> + [3] #xxxx.1.1.num.int <256 (0x100)> + [4] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [5] #xxxx.1.1.num.int <16 (0x10)> + [6] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <62 (0x3e)> + [2] #xxxx.1.1.num.int <256 (0x100)> + [3] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [4] #xxxx.1.1.num.int <16 (0x10)> + [5] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <62 (0x3e)> + [3] #xxxx.1.1.num.int <256 (0x100)> + [4] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [5] #xxxx.1.1.num.int <16 (0x10)> + [6] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <62 (0x3e)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <62 (0x3e)> + [4] #xxxx.1.1.num.int <256 (0x100)> + [5] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [6] #xxxx.1.1.num.int <16 (0x10)> + [7] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <62 (0x3e)> + [3] #xxxx.1.1.num.int <256 (0x100)> + [4] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [5] #xxxx.1.1.num.int <16 (0x10)> + [6] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <63 (0x3f)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <62 (0x3e)> + [4] #xxxx.1.1.num.int <256 (0x100)> + [5] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [6] #xxxx.1.1.num.int <16 (0x10)> + [7] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #xxxx.1.1.num.int <63 (0x3f)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <62 (0x3e)> + [5] #xxxx.1.1.num.int <256 (0x100)> + [6] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [7] #xxxx.1.1.num.int <16 (0x10)> + [8] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <63 (0x3f)> + [1] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #xxxx.1.1.num.int <63 (0x3f)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <62 (0x3e)> + [6] #xxxx.1.1.num.int <256 (0x100)> + [7] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [8] #xxxx.1.1.num.int <16 (0x10)> + [9] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <63 (0x3f)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <62 (0x3e)> + [5] #xxxx.1.1.num.int <256 (0x100)> + [6] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [7] #xxxx.1.1.num.int <16 (0x10)> + [8] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <63 (0x3f)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <62 (0x3e)> + [6] #xxxx.1.1.num.int <256 (0x100)> + [7] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [8] #xxxx.1.1.num.int <16 (0x10)> + [9] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <63 (0x3f)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <63 (0x3f)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <62 (0x3e)> + [7] #xxxx.1.1.num.int <256 (0x100)> + [8] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [9] #xxxx.1.1.num.int <16 (0x10)> + [10] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <63 (0x3f)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <62 (0x3e)> + [6] #xxxx.1.1.num.int <256 (0x100)> + [7] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [8] #xxxx.1.1.num.int <16 (0x10)> + [9] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <64 (0x40)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <63 (0x3f)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <62 (0x3e)> + [7] #xxxx.1.1.num.int <256 (0x100)> + [8] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [9] #xxxx.1.1.num.int <16 (0x10)> + [10] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #xxxx.1.1.num.int <64 (0x40)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <63 (0x3f)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <62 (0x3e)> + [8] #xxxx.1.1.num.int <256 (0x100)> + [9] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [10] #xxxx.1.1.num.int <16 (0x10)> + [11] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <64 (0x40)> + [1] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #xxxx.1.1.num.int <64 (0x40)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <63 (0x3f)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <62 (0x3e)> + [9] #xxxx.1.1.num.int <256 (0x100)> + [10] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [11] #xxxx.1.1.num.int <16 (0x10)> + [12] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #xxxx.1.1.num.int <64 (0x40)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <63 (0x3f)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <62 (0x3e)> + [8] #xxxx.1.1.num.int <256 (0x100)> + [9] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [10] #xxxx.1.1.num.int <16 (0x10)> + [11] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #xxxx.1.1.num.int <64 (0x40)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <63 (0x3f)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <62 (0x3e)> + [9] #xxxx.1.1.num.int <256 (0x100)> + [10] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [11] #xxxx.1.1.num.int <16 (0x10)> + [12] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <64 (0x40)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [3] #xxxx.1.1.num.int <64 (0x40)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <63 (0x3f)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <62 (0x3e)> + [10] #xxxx.1.1.num.int <256 (0x100)> + [11] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [12] #xxxx.1.1.num.int <16 (0x10)> + [13] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #xxxx.1.1.num.int <64 (0x40)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <63 (0x3f)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <62 (0x3e)> + [9] #xxxx.1.1.num.int <256 (0x100)> + [10] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [11] #xxxx.1.1.num.int <16 (0x10)> + [12] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <65 (0x41)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [3] #xxxx.1.1.num.int <64 (0x40)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <63 (0x3f)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <62 (0x3e)> + [10] #xxxx.1.1.num.int <256 (0x100)> + [11] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [12] #xxxx.1.1.num.int <16 (0x10)> + [13] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #xxxx.1.1.num.int <65 (0x41)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [4] #xxxx.1.1.num.int <64 (0x40)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <63 (0x3f)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <62 (0x3e)> + [11] #xxxx.1.1.num.int <256 (0x100)> + [12] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [13] #xxxx.1.1.num.int <16 (0x10)> + [14] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <65 (0x41)> + [1] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #xxxx.1.1.num.int <65 (0x41)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [5] #xxxx.1.1.num.int <64 (0x40)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <63 (0x3f)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <62 (0x3e)> + [12] #xxxx.1.1.num.int <256 (0x100)> + [13] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [14] #xxxx.1.1.num.int <16 (0x10)> + [15] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4611686018427387903 (0x3fffffffffffffff)> + [1] #xxxx.1.1.num.int <65 (0x41)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [4] #xxxx.1.1.num.int <64 (0x40)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <63 (0x3f)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <62 (0x3e)> + [11] #xxxx.1.1.num.int <256 (0x100)> + [12] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [13] #xxxx.1.1.num.int <16 (0x10)> + [14] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <4611686018427387903 (0x3fffffffffffffff)> + [2] #xxxx.1.1.num.int <65 (0x41)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [5] #xxxx.1.1.num.int <64 (0x40)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <63 (0x3f)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <62 (0x3e)> + [12] #xxxx.1.1.num.int <256 (0x100)> + [13] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [14] #xxxx.1.1.num.int <16 (0x10)> + [15] #xxxx.1.1.num.int <4096 (0x1000)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <65 (0x41)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <4611686018427387903 (0x3fffffffffffffff)> + [3] #xxxx.1.1.num.int <65 (0x41)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [6] #xxxx.1.1.num.int <64 (0x40)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <63 (0x3f)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <62 (0x3e)> + [13] #xxxx.1.1.num.int <256 (0x100)> + [14] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [15] #xxxx.1.1.num.int <16 (0x10)> + [16] #xxxx.1.1.num.int <4096 (0x1000)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <4611686018427387903 (0x3fffffffffffffff)> + [2] #xxxx.1.1.num.int <65 (0x41)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [5] #xxxx.1.1.num.int <64 (0x40)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <63 (0x3f)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <62 (0x3e)> + [12] #xxxx.1.1.num.int <256 (0x100)> + [13] #xxxx.1.1.num.int <-16 (0xfffffffffffffff0)> + [14] #xxxx.1.1.num.int <16 (0x10)> + [15] #xxxx.1.1.num.int <4096 (0x1000)> diff --git a/tests/0039_shr/code.log.ref b/tests/0039_shr/code.log.ref new file mode 100644 index 0000000..da80718 --- /dev/null +++ b/tests/0039_shr/code.log.ref @@ -0,0 +1,51 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 41 entries (41 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 00 10 0x1000 + 2 0x0000b int 01 0 + 3 0x0000c word 38 73 68 72 shr + 2 4 0x00010 int 91 00 10 0x1000 + 5 0x00013 int 81 08 8 + 6 0x00015 word 38 73 68 72 shr + 3 7 0x00019 int 91 00 f0 -0x1000 + 8 0x0001c int 81 08 8 + 9 0x0001e word 38 73 68 72 shr + 4 10 0x00022 int 91 00 10 0x1000 + 11 0x00025 int 81 c4 -60 + 12 0x00027 word 38 73 68 72 shr + 5 13 0x0002b int 81 3e 62 + 6 14 0x0002d int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 15 0x00036 int 81 3e 62 + 16 0x00038 word 38 73 68 72 shr + 7 17 0x0003c int 81 ff 0xffffffffffffffff + 18 0x0003e int 81 3e 62 + 19 0x00040 word 38 73 68 72 shr + 8 20 0x00044 int 81 3f 63 + 9 21 0x00046 int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 22 0x0004f int 81 3f 63 + 23 0x00051 word 38 73 68 72 shr + 10 24 0x00055 int 81 ff 0xffffffffffffffff + 25 0x00057 int 81 3f 63 + 26 0x00059 word 38 73 68 72 shr + 11 27 0x0005d int 81 40 64 + 12 28 0x0005f int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 29 0x00068 int 81 40 64 + 30 0x0006a word 38 73 68 72 shr + 13 31 0x0006e int 81 ff 0xffffffffffffffff + 32 0x00070 int 81 40 64 + 33 0x00072 word 38 73 68 72 shr + 14 34 0x00076 int 81 41 65 + 15 35 0x00078 int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 36 0x00081 int 81 41 65 + 37 0x00083 word 38 73 68 72 shr + 16 38 0x00087 int 81 ff 0xffffffffffffffff + 39 0x00089 int 81 41 65 + 40 0x0008b word 38 73 68 72 shr diff --git a/tests/0039_shr/code1.log.ref b/tests/0039_shr/code1.log.ref new file mode 100644 index 0000000..d36eac3 --- /dev/null +++ b/tests/0039_shr/code1.log.ref @@ -0,0 +1,51 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 41 entries (41 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 00 10 0x1000 + 2 0x0000b int 01 0 + 3 0x0000c word 38 73 68 72 shr + 2 4 0x00010 int 91 00 10 0x1000 + 5 0x00013 int 81 08 8 + 6 0x00015 xref 84 09 shr + 3 7 0x00017 int 91 00 f0 -0x1000 + 8 0x0001a int 81 08 8 + 9 0x0001c xref 84 10 shr + 4 10 0x0001e int 91 00 10 0x1000 + 11 0x00021 int 81 c4 -60 + 12 0x00023 xref 84 17 shr + 5 13 0x00025 int 81 3e 62 + 6 14 0x00027 int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 15 0x00030 int 81 3e 62 + 16 0x00032 xref 84 26 shr + 7 17 0x00034 int 81 ff 0xffffffffffffffff + 18 0x00036 int 81 3e 62 + 19 0x00038 xref 84 2c shr + 8 20 0x0003a int 81 3f 63 + 9 21 0x0003c int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 22 0x00045 int 81 3f 63 + 23 0x00047 xref 84 3b shr + 10 24 0x00049 int 81 ff 0xffffffffffffffff + 25 0x0004b int 81 3f 63 + 26 0x0004d xref 84 41 shr + 11 27 0x0004f int 81 40 64 + 12 28 0x00051 int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 29 0x0005a int 81 40 64 + 30 0x0005c xref 84 50 shr + 13 31 0x0005e int 81 ff 0xffffffffffffffff + 32 0x00060 int 81 40 64 + 33 0x00062 xref 84 56 shr + 14 34 0x00064 int 81 41 65 + 15 35 0x00066 int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 36 0x0006f int 81 41 65 + 37 0x00071 xref 84 65 shr + 16 38 0x00073 int 81 ff 0xffffffffffffffff + 39 0x00075 int 81 41 65 + 40 0x00077 xref 84 6b shr diff --git a/tests/0039_shr/code2.log.ref b/tests/0039_shr/code2.log.ref new file mode 100644 index 0000000..b171f61 --- /dev/null +++ b/tests/0039_shr/code2.log.ref @@ -0,0 +1,51 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 41 entries (41 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 91 00 10 0x1000 + 2 0x0000b int 01 0 + 3 0x0000c prim 83 2c shr + 2 4 0x0000e int 91 00 10 0x1000 + 5 0x00011 int 81 08 8 + 6 0x00013 prim 83 2c shr + 3 7 0x00015 int 91 00 f0 -0x1000 + 8 0x00018 int 81 08 8 + 9 0x0001a prim 83 2c shr + 4 10 0x0001c int 91 00 10 0x1000 + 11 0x0001f int 81 c4 -60 + 12 0x00021 prim 83 2c shr + 5 13 0x00023 int 81 3e 62 + 6 14 0x00025 int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 15 0x0002e int 81 3e 62 + 16 0x00030 prim 83 2c shr + 7 17 0x00032 int 81 ff 0xffffffffffffffff + 18 0x00034 int 81 3e 62 + 19 0x00036 prim 83 2c shr + 8 20 0x00038 int 81 3f 63 + 9 21 0x0003a int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 22 0x00043 int 81 3f 63 + 23 0x00045 prim 83 2c shr + 10 24 0x00047 int 81 ff 0xffffffffffffffff + 25 0x00049 int 81 3f 63 + 26 0x0004b prim 83 2c shr + 11 27 0x0004d int 81 40 64 + 12 28 0x0004f int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 29 0x00058 int 81 40 64 + 30 0x0005a prim 83 2c shr + 13 31 0x0005c int 81 ff 0xffffffffffffffff + 32 0x0005e int 81 40 64 + 33 0x00060 prim 83 2c shr + 14 34 0x00062 int 81 41 65 + 15 35 0x00064 int f1 ff ff ff ff ff ff ff 0x7fffffffffffffff + 7f + 36 0x0006d int 81 41 65 + 37 0x0006f prim 83 2c shr + 16 38 0x00071 int 81 ff 0xffffffffffffffff + 39 0x00073 int 81 41 65 + 40 0x00075 prim 83 2c shr diff --git a/tests/0039_shr/main.gs b/tests/0039_shr/main.gs new file mode 100644 index 0000000..ddd31fd --- /dev/null +++ b/tests/0039_shr/main.gs @@ -0,0 +1,16 @@ +0x1000 0 shr +0x1000 8 shr +-0x1000 8 shr +0x1000 -60 shr +62 +0x7fffffffffffffff 62 shr +0xffffffffffffffff 62 shr +63 +0x7fffffffffffffff 63 shr +0xffffffffffffffff 63 shr +64 +0x7fffffffffffffff 64 shr +0xffffffffffffffff 64 shr +65 +0x7fffffffffffffff 65 shr +0xffffffffffffffff 65 shr diff --git a/tests/0039_shr/mem.log.ref b/tests/0039_shr/mem.log.ref new file mode 100644 index 0000000..45a274c --- /dev/null +++ b/tests/0039_shr/mem.log.ref @@ -0,0 +1,792 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 144] + 8: 0.00, 0x001d6b04[ 72] + 9: 188.01, 0x001d6b54[ 56] + 10: 192.01, 0x001d6b94[ 72] + 11: 187.01, 0x001d6be4[ 144] + 12: 0.00, 0x001d6c7c[14848900] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.1.mem.ro + 75 51 12 a9 42 7a ad 60 91 00 10 01 38 73 68 72 uQ..Bz.`....8shr + 91 00 10 81 08 38 73 68 72 91 00 f0 81 08 38 73 .....8shr.....8s + 68 72 91 00 10 81 c4 38 73 68 72 81 3e f1 ff ff hr.....8shr.>... + ff ff ff ff ff 7f 81 3e 38 73 68 72 81 ff 81 3e .......>8shr...> + 38 73 68 72 81 3f f1 ff ff ff ff ff ff ff 7f 81 8shr.?.......... + 3f 38 73 68 72 81 ff 81 3f 38 73 68 72 81 40 f1 ?8shr...?8shr.@. + ff ff ff ff ff ff ff 7f 81 40 38 73 68 72 81 ff .........@8shr.. + 81 40 38 73 68 72 81 41 f1 ff ff ff ff ff ff ff .@8shr.A........ + 7f 81 41 38 73 68 72 81 ff 81 41 38 73 68 72 ..A8shr...A8shr + #187.1.1.array + [ 0] #191.1.1.num.int <4096 (0x1000)> + [ 1] #195.1.1.num.int <16 (0x10)> + [ 2] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [ 3] #201.1.1.num.int <256 (0x100)> + [ 4] #202.1.1.num.int <62 (0x3e)> + [ 5] #205.1.1.num.int <1 (0x1)> + [ 6] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [ 7] #209.1.1.num.int <63 (0x3f)> + [ 8] #212.1.1.num.int <0 (0x0)> + [ 9] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #216.1.1.num.int <64 (0x40)> + [11] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [12] #222.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #223.1.1.num.int <65 (0x41)> + [14] #226.1.1.num.int <4611686018427387903 (0x3fffffffffffffff)> + [15] #229.1.1.num.int <-1 (0xffffffffffffffff)> + #188.1.1.ctx.func + type 17, ip 0x8f (0x8f) + code #186.1.1.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.int <4096 (0x1000)> + #192.1.1.array + #195.1.1.num.int <16 (0x10)> + #198.1.1.num.int <-16 (0xfffffffffffffff0)> + #201.1.1.num.int <256 (0x100)> + #202.1.1.num.int <62 (0x3e)> + #205.1.1.num.int <1 (0x1)> + #208.1.1.num.int <-1 (0xffffffffffffffff)> + #209.1.1.num.int <63 (0x3f)> + #212.1.1.num.int <0 (0x0)> + #215.1.1.num.int <-1 (0xffffffffffffffff)> + #216.1.1.num.int <64 (0x40)> + #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + #222.1.1.num.int <-1 (0xffffffffffffffff)> + #223.1.1.num.int <65 (0x41)> + #226.1.1.num.int <4611686018427387903 (0x3fffffffffffffff)> + #229.1.1.num.int <-1 (0xffffffffffffffff)> diff --git a/tests/0039_shr/screen.log.ref b/tests/0039_shr/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0039_shr/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0039_shr/trace.log.ref b/tests/0039_shr/trace.log.ref new file mode 100644 index 0000000..50e37f2 --- /dev/null +++ b/tests/0039_shr/trace.log.ref @@ -0,0 +1,533 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 4096 (0x1000) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <4096 (0x1000)> +IP: #186:0xb, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <0 (0x0)> + [1] #189.1.1.num.int <4096 (0x1000)> +IP: #186:0xc, type 8, 13[3] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x10, type 1, 4096 (0x1000) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <4096 (0x1000)> + [1] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x13, type 1, 8 (0x8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <8 (0x8)> + [1] #193.1.1.num.int <4096 (0x1000)> + [2] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x15, type 8, 22[3] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <16 (0x10)> + [1] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x19, type 1, -4096 (0xfffffffffffff000) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <-4096 (0xfffffffffffff000)> + [1] #195.1.1.num.int <16 (0x10)> + [2] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x1c, type 1, 8 (0x8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <8 (0x8)> + [1] #196.1.1.num.int <-4096 (0xfffffffffffff000)> + [2] #195.1.1.num.int <16 (0x10)> + [3] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x1e, type 8, 31[3] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [1] #195.1.1.num.int <16 (0x10)> + [2] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x22, type 1, 4096 (0x1000) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <4096 (0x1000)> + [1] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [2] #195.1.1.num.int <16 (0x10)> + [3] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x25, type 1, -60 (0xffffffffffffffc4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <-60 (0xffffffffffffffc4)> + [1] #199.1.1.num.int <4096 (0x1000)> + [2] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [3] #195.1.1.num.int <16 (0x10)> + [4] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x27, type 8, 40[3] +GC: --#200.1.1.num.int +GC: --#199.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <256 (0x100)> + [1] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [2] #195.1.1.num.int <16 (0x10)> + [3] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x2b, type 1, 62 (0x3e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <62 (0x3e)> + [1] #201.1.1.num.int <256 (0x100)> + [2] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [3] #195.1.1.num.int <16 (0x10)> + [4] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x2d, type 1, 9223372036854775807 (0x7fffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #202.1.1.num.int <62 (0x3e)> + [2] #201.1.1.num.int <256 (0x100)> + [3] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [4] #195.1.1.num.int <16 (0x10)> + [5] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x36, type 1, 62 (0x3e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <62 (0x3e)> + [1] #203.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #202.1.1.num.int <62 (0x3e)> + [3] #201.1.1.num.int <256 (0x100)> + [4] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [5] #195.1.1.num.int <16 (0x10)> + [6] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x38, type 8, 57[3] +GC: --#204.1.1.num.int +GC: --#203.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <1 (0x1)> + [1] #202.1.1.num.int <62 (0x3e)> + [2] #201.1.1.num.int <256 (0x100)> + [3] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [4] #195.1.1.num.int <16 (0x10)> + [5] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x3c, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #205.1.1.num.int <1 (0x1)> + [2] #202.1.1.num.int <62 (0x3e)> + [3] #201.1.1.num.int <256 (0x100)> + [4] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [5] #195.1.1.num.int <16 (0x10)> + [6] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x3e, type 1, 62 (0x3e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <62 (0x3e)> + [1] #206.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #205.1.1.num.int <1 (0x1)> + [3] #202.1.1.num.int <62 (0x3e)> + [4] #201.1.1.num.int <256 (0x100)> + [5] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [6] #195.1.1.num.int <16 (0x10)> + [7] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x40, type 8, 65[3] +GC: --#207.1.1.num.int +GC: --#206.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #205.1.1.num.int <1 (0x1)> + [2] #202.1.1.num.int <62 (0x3e)> + [3] #201.1.1.num.int <256 (0x100)> + [4] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [5] #195.1.1.num.int <16 (0x10)> + [6] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x44, type 1, 63 (0x3f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <63 (0x3f)> + [1] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #205.1.1.num.int <1 (0x1)> + [3] #202.1.1.num.int <62 (0x3e)> + [4] #201.1.1.num.int <256 (0x100)> + [5] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [6] #195.1.1.num.int <16 (0x10)> + [7] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x46, type 1, 9223372036854775807 (0x7fffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #209.1.1.num.int <63 (0x3f)> + [2] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #205.1.1.num.int <1 (0x1)> + [4] #202.1.1.num.int <62 (0x3e)> + [5] #201.1.1.num.int <256 (0x100)> + [6] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [7] #195.1.1.num.int <16 (0x10)> + [8] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x4f, type 1, 63 (0x3f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <63 (0x3f)> + [1] #210.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #209.1.1.num.int <63 (0x3f)> + [3] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #205.1.1.num.int <1 (0x1)> + [5] #202.1.1.num.int <62 (0x3e)> + [6] #201.1.1.num.int <256 (0x100)> + [7] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [8] #195.1.1.num.int <16 (0x10)> + [9] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x51, type 8, 82[3] +GC: --#211.1.1.num.int +GC: --#210.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.int <0 (0x0)> + [1] #209.1.1.num.int <63 (0x3f)> + [2] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #205.1.1.num.int <1 (0x1)> + [4] #202.1.1.num.int <62 (0x3e)> + [5] #201.1.1.num.int <256 (0x100)> + [6] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [7] #195.1.1.num.int <16 (0x10)> + [8] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x55, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #212.1.1.num.int <0 (0x0)> + [2] #209.1.1.num.int <63 (0x3f)> + [3] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #205.1.1.num.int <1 (0x1)> + [5] #202.1.1.num.int <62 (0x3e)> + [6] #201.1.1.num.int <256 (0x100)> + [7] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [8] #195.1.1.num.int <16 (0x10)> + [9] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x57, type 1, 63 (0x3f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.num.int <63 (0x3f)> + [1] #213.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #212.1.1.num.int <0 (0x0)> + [3] #209.1.1.num.int <63 (0x3f)> + [4] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #205.1.1.num.int <1 (0x1)> + [6] #202.1.1.num.int <62 (0x3e)> + [7] #201.1.1.num.int <256 (0x100)> + [8] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [9] #195.1.1.num.int <16 (0x10)> + [10] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x59, type 8, 90[3] +GC: --#214.1.1.num.int +GC: --#213.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #212.1.1.num.int <0 (0x0)> + [2] #209.1.1.num.int <63 (0x3f)> + [3] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #205.1.1.num.int <1 (0x1)> + [5] #202.1.1.num.int <62 (0x3e)> + [6] #201.1.1.num.int <256 (0x100)> + [7] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [8] #195.1.1.num.int <16 (0x10)> + [9] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x5d, type 1, 64 (0x40) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <64 (0x40)> + [1] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #212.1.1.num.int <0 (0x0)> + [3] #209.1.1.num.int <63 (0x3f)> + [4] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #205.1.1.num.int <1 (0x1)> + [6] #202.1.1.num.int <62 (0x3e)> + [7] #201.1.1.num.int <256 (0x100)> + [8] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [9] #195.1.1.num.int <16 (0x10)> + [10] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x5f, type 1, 9223372036854775807 (0x7fffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #216.1.1.num.int <64 (0x40)> + [2] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #212.1.1.num.int <0 (0x0)> + [4] #209.1.1.num.int <63 (0x3f)> + [5] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #205.1.1.num.int <1 (0x1)> + [7] #202.1.1.num.int <62 (0x3e)> + [8] #201.1.1.num.int <256 (0x100)> + [9] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [10] #195.1.1.num.int <16 (0x10)> + [11] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x68, type 1, 64 (0x40) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.int <64 (0x40)> + [1] #217.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #216.1.1.num.int <64 (0x40)> + [3] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #212.1.1.num.int <0 (0x0)> + [5] #209.1.1.num.int <63 (0x3f)> + [6] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #205.1.1.num.int <1 (0x1)> + [8] #202.1.1.num.int <62 (0x3e)> + [9] #201.1.1.num.int <256 (0x100)> + [10] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [11] #195.1.1.num.int <16 (0x10)> + [12] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x6a, type 8, 107[3] +GC: --#218.1.1.num.int +GC: --#217.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #216.1.1.num.int <64 (0x40)> + [2] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #212.1.1.num.int <0 (0x0)> + [4] #209.1.1.num.int <63 (0x3f)> + [5] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #205.1.1.num.int <1 (0x1)> + [7] #202.1.1.num.int <62 (0x3e)> + [8] #201.1.1.num.int <256 (0x100)> + [9] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [10] #195.1.1.num.int <16 (0x10)> + [11] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x6e, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #216.1.1.num.int <64 (0x40)> + [3] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #212.1.1.num.int <0 (0x0)> + [5] #209.1.1.num.int <63 (0x3f)> + [6] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #205.1.1.num.int <1 (0x1)> + [8] #202.1.1.num.int <62 (0x3e)> + [9] #201.1.1.num.int <256 (0x100)> + [10] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [11] #195.1.1.num.int <16 (0x10)> + [12] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x70, type 1, 64 (0x40) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.int <64 (0x40)> + [1] #220.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [3] #216.1.1.num.int <64 (0x40)> + [4] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #212.1.1.num.int <0 (0x0)> + [6] #209.1.1.num.int <63 (0x3f)> + [7] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #205.1.1.num.int <1 (0x1)> + [9] #202.1.1.num.int <62 (0x3e)> + [10] #201.1.1.num.int <256 (0x100)> + [11] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [12] #195.1.1.num.int <16 (0x10)> + [13] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x72, type 8, 115[3] +GC: --#221.1.1.num.int +GC: --#220.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #216.1.1.num.int <64 (0x40)> + [3] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #212.1.1.num.int <0 (0x0)> + [5] #209.1.1.num.int <63 (0x3f)> + [6] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #205.1.1.num.int <1 (0x1)> + [8] #202.1.1.num.int <62 (0x3e)> + [9] #201.1.1.num.int <256 (0x100)> + [10] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [11] #195.1.1.num.int <16 (0x10)> + [12] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x76, type 1, 65 (0x41) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.num.int <65 (0x41)> + [1] #222.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [3] #216.1.1.num.int <64 (0x40)> + [4] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #212.1.1.num.int <0 (0x0)> + [6] #209.1.1.num.int <63 (0x3f)> + [7] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #205.1.1.num.int <1 (0x1)> + [9] #202.1.1.num.int <62 (0x3e)> + [10] #201.1.1.num.int <256 (0x100)> + [11] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [12] #195.1.1.num.int <16 (0x10)> + [13] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x78, type 1, 9223372036854775807 (0x7fffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [1] #223.1.1.num.int <65 (0x41)> + [2] #222.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [4] #216.1.1.num.int <64 (0x40)> + [5] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #212.1.1.num.int <0 (0x0)> + [7] #209.1.1.num.int <63 (0x3f)> + [8] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #205.1.1.num.int <1 (0x1)> + [10] #202.1.1.num.int <62 (0x3e)> + [11] #201.1.1.num.int <256 (0x100)> + [12] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [13] #195.1.1.num.int <16 (0x10)> + [14] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x81, type 1, 65 (0x41) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <65 (0x41)> + [1] #224.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [2] #223.1.1.num.int <65 (0x41)> + [3] #222.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [5] #216.1.1.num.int <64 (0x40)> + [6] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #212.1.1.num.int <0 (0x0)> + [8] #209.1.1.num.int <63 (0x3f)> + [9] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #205.1.1.num.int <1 (0x1)> + [11] #202.1.1.num.int <62 (0x3e)> + [12] #201.1.1.num.int <256 (0x100)> + [13] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [14] #195.1.1.num.int <16 (0x10)> + [15] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x83, type 8, 132[3] +GC: --#225.1.1.num.int +GC: --#224.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.int <4611686018427387903 (0x3fffffffffffffff)> + [1] #223.1.1.num.int <65 (0x41)> + [2] #222.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [4] #216.1.1.num.int <64 (0x40)> + [5] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #212.1.1.num.int <0 (0x0)> + [7] #209.1.1.num.int <63 (0x3f)> + [8] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #205.1.1.num.int <1 (0x1)> + [10] #202.1.1.num.int <62 (0x3e)> + [11] #201.1.1.num.int <256 (0x100)> + [12] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [13] #195.1.1.num.int <16 (0x10)> + [14] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x87, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #226.1.1.num.int <4611686018427387903 (0x3fffffffffffffff)> + [2] #223.1.1.num.int <65 (0x41)> + [3] #222.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [5] #216.1.1.num.int <64 (0x40)> + [6] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #212.1.1.num.int <0 (0x0)> + [8] #209.1.1.num.int <63 (0x3f)> + [9] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #205.1.1.num.int <1 (0x1)> + [11] #202.1.1.num.int <62 (0x3e)> + [12] #201.1.1.num.int <256 (0x100)> + [13] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [14] #195.1.1.num.int <16 (0x10)> + [15] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x89, type 1, 65 (0x41) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <65 (0x41)> + [1] #227.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #226.1.1.num.int <4611686018427387903 (0x3fffffffffffffff)> + [3] #223.1.1.num.int <65 (0x41)> + [4] #222.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [6] #216.1.1.num.int <64 (0x40)> + [7] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #212.1.1.num.int <0 (0x0)> + [9] #209.1.1.num.int <63 (0x3f)> + [10] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #205.1.1.num.int <1 (0x1)> + [12] #202.1.1.num.int <62 (0x3e)> + [13] #201.1.1.num.int <256 (0x100)> + [14] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [15] #195.1.1.num.int <16 (0x10)> + [16] #191.1.1.num.int <4096 (0x1000)> +IP: #186:0x8b, type 8, 140[3] +GC: --#228.1.1.num.int +GC: --#227.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #226.1.1.num.int <4611686018427387903 (0x3fffffffffffffff)> + [2] #223.1.1.num.int <65 (0x41)> + [3] #222.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #219.1.1.num.int <9223372036854775807 (0x7fffffffffffffff)> + [5] #216.1.1.num.int <64 (0x40)> + [6] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #212.1.1.num.int <0 (0x0)> + [8] #209.1.1.num.int <63 (0x3f)> + [9] #208.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #205.1.1.num.int <1 (0x1)> + [11] #202.1.1.num.int <62 (0x3e)> + [12] #201.1.1.num.int <256 (0x100)> + [13] #198.1.1.num.int <-16 (0xfffffffffffffff0)> + [14] #195.1.1.num.int <16 (0x10)> + [15] #191.1.1.num.int <4096 (0x1000)> diff --git a/tests/0040_cmp/basic.log.ref b/tests/0040_cmp/basic.log.ref new file mode 100644 index 0000000..c400342 --- /dev/null +++ b/tests/0040_cmp/basic.log.ref @@ -0,0 +1,1091 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <5 (0x5)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abd"> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc1"> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "a"> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "foo"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <1 (0x1)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <1 (0x1)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.int <1 (0x1)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.2.array +GC: --#xxxx.1.3.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.array + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.4.array + [1] #xxxx.1.4.array + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.4.array +GC: --#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <1 (0x1)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <1 (0x1)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.array + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.int <1 (0x1)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.int <1 (0x1)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <0 (0x0)> +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <0 (0x0)> diff --git a/tests/0040_cmp/code.log.ref b/tests/0040_cmp/code.log.ref new file mode 100644 index 0000000..b40fdfa --- /dev/null +++ b/tests/0040_cmp/code.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 38 63 6d 70 cmp + 2 4 0x0000e int 51 5 + 5 0x0000f int 61 6 + 6 0x00010 word 38 63 6d 70 cmp + 3 7 0x00014 int 61 6 + 8 0x00015 int 51 5 + 9 0x00016 word 38 63 6d 70 cmp + 4 10 0x0001a str 37 61 62 63 "abc" + 11 0x0001e str 37 61 62 63 "abc" + 12 0x00022 word 38 63 6d 70 cmp + 5 13 0x00026 str 37 61 62 63 "abc" + 14 0x0002a str 37 61 62 64 "abd" + 15 0x0002e word 38 63 6d 70 cmp + 6 16 0x00032 str 37 61 62 63 "abc" + 17 0x00036 str 47 61 62 63 31 "abc1" + 18 0x0003b word 38 63 6d 70 cmp + 7 19 0x0003f str 37 61 62 64 "abd" + 20 0x00043 str 37 61 62 63 "abc" + 21 0x00047 word 38 63 6d 70 cmp + 8 22 0x0004b str 47 61 62 63 31 "abc1" + 23 0x00050 str 37 61 62 63 "abc" + 24 0x00054 word 38 63 6d 70 cmp + 9 25 0x00058 str 07 "" + 26 0x00059 str 07 "" + 27 0x0005a word 38 63 6d 70 cmp + 10 28 0x0005e str 07 "" + 29 0x0005f str 17 61 "a" + 30 0x00061 word 38 63 6d 70 cmp + 11 31 0x00065 str 17 61 "a" + 32 0x00067 str 07 "" + 33 0x00068 word 38 63 6d 70 cmp + 12 34 0x0006c ref 39 66 6f 6f /foo + 35 0x00070 str 37 66 6f 6f "foo" + 36 0x00074 word 38 63 6d 70 cmp + 13 37 0x00078 nil 00 nil + 38 0x00079 nil 00 nil + 39 0x0007a word 38 63 6d 70 cmp + 14 40 0x0007e nil 00 nil + 41 0x0007f int 31 3 + 42 0x00080 word 38 63 6d 70 cmp + 15 43 0x00084 int 51 5 + 44 0x00085 str 37 61 62 63 "abc" + 45 0x00089 word 38 63 6d 70 cmp + 16 46 0x0008d code 36 { + 47 0x0008e int 81 0a 10 + 48 0x00090 prim 13 } + 49 0x00091 code 36 { + 50 0x00092 int 81 0a 10 + 51 0x00094 prim 13 } + 52 0x00095 word 38 63 6d 70 cmp + 17 53 0x00099 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0009f word 18 5b [ + 55 0x000a1 int 11 1 + 56 0x000a2 int 21 2 + 57 0x000a3 int 31 3 + 58 0x000a4 word 18 5d ] + 59 0x000a6 word 38 64 65 66 def + 18 60 0x000aa ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x000b0 word 58 66 6f 6f 5f 31 foo_1 + 62 0x000b6 word 38 64 65 66 def + 19 63 0x000ba word 58 66 6f 6f 5f 31 foo_1 + 64 0x000c0 word 58 66 6f 6f 5f 32 foo_2 + 65 0x000c6 word 38 63 6d 70 cmp + 20 66 0x000ca word 18 5b [ + 67 0x000cc int 61 6 + 68 0x000cd word 18 5d ] + 69 0x000cf word 18 5b [ + 70 0x000d1 int 61 6 + 71 0x000d2 word 18 5d ] + 72 0x000d4 word 38 63 6d 70 cmp diff --git a/tests/0040_cmp/code1.log.ref b/tests/0040_cmp/code1.log.ref new file mode 100644 index 0000000..180785f --- /dev/null +++ b/tests/0040_cmp/code1.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 38 63 6d 70 cmp + 2 4 0x0000e int 51 5 + 5 0x0000f int 61 6 + 6 0x00010 xref 64 cmp + 3 7 0x00011 int 61 6 + 8 0x00012 int 51 5 + 9 0x00013 xref 84 09 cmp + 4 10 0x00015 str 37 61 62 63 "abc" + 11 0x00019 xref 44 "abc" + 12 0x0001a xref 84 10 cmp + 5 13 0x0001c xref 74 "abc" + 14 0x0001d str 37 61 62 64 "abd" + 15 0x00021 xref 84 17 cmp + 6 16 0x00023 xref 84 0e "abc" + 17 0x00025 str 47 61 62 63 31 "abc1" + 18 0x0002a xref 84 20 cmp + 7 19 0x0002c xref 84 0f "abd" + 20 0x0002e xref 84 19 "abc" + 21 0x00030 xref 84 26 cmp + 8 22 0x00032 xref 84 0d "abc1" + 23 0x00034 xref 84 1f "abc" + 24 0x00036 xref 84 2c cmp + 9 25 0x00038 str 07 "" + 26 0x00039 str 07 "" + 27 0x0003a xref 84 30 cmp + 10 28 0x0003c str 07 "" + 29 0x0003d str 17 61 "a" + 30 0x0003f xref 84 35 cmp + 11 31 0x00041 xref 44 "a" + 32 0x00042 str 07 "" + 33 0x00043 xref 84 39 cmp + 12 34 0x00045 ref 39 66 6f 6f /foo + 35 0x00049 str 37 66 6f 6f "foo" + 36 0x0004d xref 84 43 cmp + 13 37 0x0004f nil 00 nil + 38 0x00050 nil 00 nil + 39 0x00051 xref 84 47 cmp + 14 40 0x00053 nil 00 nil + 41 0x00054 int 31 3 + 42 0x00055 xref 84 4b cmp + 15 43 0x00057 int 51 5 + 44 0x00058 xref 84 43 "abc" + 45 0x0005a xref 84 50 cmp + 16 46 0x0005c code 36 { + 47 0x0005d int 81 0a 10 + 48 0x0005f prim 13 } + 49 0x00060 code 36 { + 50 0x00061 int 81 0a 10 + 51 0x00063 prim 13 } + 52 0x00064 xref 84 5a cmp + 17 53 0x00066 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006c word 18 5b [ + 55 0x0006e int 11 1 + 56 0x0006f int 21 2 + 57 0x00070 int 31 3 + 58 0x00071 word 18 5d ] + 59 0x00073 word 38 64 65 66 def + 18 60 0x00077 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x0007d word 58 66 6f 6f 5f 31 foo_1 + 62 0x00083 xref 84 10 def + 19 63 0x00085 xref 84 08 foo_1 + 64 0x00087 word 58 66 6f 6f 5f 32 foo_2 + 65 0x0008d xref 84 83 cmp + 20 66 0x0008f word 18 5b [ + 67 0x00091 int 61 6 + 68 0x00092 word 18 5d ] + 69 0x00094 word 18 5b [ + 70 0x00096 int 61 6 + 71 0x00097 word 18 5d ] + 72 0x00099 xref 84 8f cmp diff --git a/tests/0040_cmp/code2.log.ref b/tests/0040_cmp/code2.log.ref new file mode 100644 index 0000000..5914e28 --- /dev/null +++ b/tests/0040_cmp/code2.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a prim 83 33 cmp + 2 4 0x0000c int 51 5 + 5 0x0000d int 61 6 + 6 0x0000e prim 83 33 cmp + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 prim 83 33 cmp + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 prim 83 33 cmp + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 prim 83 33 cmp + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 prim 83 33 cmp + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f prim 83 33 cmp + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 prim 83 33 cmp + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 prim 83 33 cmp + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e prim 83 33 cmp + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 prim 83 33 cmp + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c prim 83 33 cmp + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 prim 83 33 cmp + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 prim 83 33 cmp + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 prim 83 33 cmp + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 prim 83 33 cmp + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b prim 23 [ + 55 0x0006c int 11 1 + 56 0x0006d int 21 2 + 57 0x0006e int 31 3 + 58 0x0006f prim 33 ] + 59 0x00070 prim 63 def + 18 60 0x00071 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x00077 word 58 66 6f 6f 5f 31 foo_1 + 62 0x0007d prim 63 def + 19 63 0x0007e xref 74 foo_1 + 64 0x0007f word 58 66 6f 6f 5f 32 foo_2 + 65 0x00085 prim 83 33 cmp + 20 66 0x00087 prim 23 [ + 67 0x00088 int 61 6 + 68 0x00089 prim 33 ] + 69 0x0008a prim 23 [ + 70 0x0008b int 61 6 + 71 0x0008c prim 33 ] + 72 0x0008d prim 83 33 cmp diff --git a/tests/0040_cmp/main.gs b/tests/0040_cmp/main.gs new file mode 100644 index 0000000..6738cb4 --- /dev/null +++ b/tests/0040_cmp/main.gs @@ -0,0 +1,20 @@ +5 5 cmp +5 6 cmp +6 5 cmp +"abc" "abc" cmp +"abc" "abd" cmp +"abc" "abc1" cmp +"abd" "abc" cmp +"abc1" "abc" cmp +"" "" cmp +"" "a" cmp +"a" "" cmp +/foo "foo" cmp +nil nil cmp +nil 3 cmp +5 "abc" cmp +{ 10 } { 10 } cmp +/foo_1 [ 1 2 3 ] def +/foo_2 foo_1 def +foo_1 foo_2 cmp +[ 6 ] [ 6 ] cmp diff --git a/tests/0040_cmp/mem.log.ref b/tests/0040_cmp/mem.log.ref new file mode 100644 index 0000000..81b02fc --- /dev/null +++ b/tests/0040_cmp/mem.log.ref @@ -0,0 +1,815 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 216] + 8: 239.01, 0x001d6b4c[ 20] + 9: 0.00, 0x001d6b68[ 44] + 10: 188.01, 0x001d6b9c[ 56] + 11: 192.01, 0x001d6bdc[ 72] + 12: 187.01, 0x001d6c2c[ 144] + 13: 0.00, 0x001d6cc4[14848828] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9a, size 5, "foo_1"> => #239.1.2.array + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0xab, size 5, "foo_2"> => #239.1.2.array + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.3.mem.ro + 75 51 12 a9 42 7a ad 60 51 51 38 63 6d 70 51 61 uQ..Bz.`QQ8cmpQa + 38 63 6d 70 61 51 38 63 6d 70 37 61 62 63 37 61 8cmpaQ8cmp7abc7a + 62 63 38 63 6d 70 37 61 62 63 37 61 62 64 38 63 bc8cmp7abc7abd8c + 6d 70 37 61 62 63 47 61 62 63 31 38 63 6d 70 37 mp7abcGabc18cmp7 + 61 62 64 37 61 62 63 38 63 6d 70 47 61 62 63 31 abd7abc8cmpGabc1 + 37 61 62 63 38 63 6d 70 07 07 38 63 6d 70 07 17 7abc8cmp..8cmp.. + 61 38 63 6d 70 17 61 07 38 63 6d 70 39 66 6f 6f a8cmp.a.8cmp9foo + 37 66 6f 6f 38 63 6d 70 00 00 38 63 6d 70 00 31 7foo8cmp..8cmp.1 + 38 63 6d 70 51 37 61 62 63 38 63 6d 70 36 81 0a 8cmpQ7abc8cmp6.. + 13 36 81 0a 13 38 63 6d 70 59 66 6f 6f 5f 31 18 .6...8cmpYfoo_1. + 5b 11 21 31 18 5d 38 64 65 66 59 66 6f 6f 5f 32 [.!1.]8defYfoo_2 + 58 66 6f 6f 5f 31 38 64 65 66 58 66 6f 6f 5f 31 Xfoo_18defXfoo_1 + 58 66 6f 6f 5f 32 38 63 6d 70 18 5b 61 18 5d 18 Xfoo_28cmp.[a.]. + 5b 61 18 5d 38 63 6d 70 [a.]8cmp + #187.1.1.array + [ 0] #191.1.1.num.int <0 (0x0)> + [ 1] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [ 2] #198.1.1.num.int <1 (0x1)> + [ 3] #201.1.1.num.int <0 (0x0)> + [ 4] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [ 5] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [ 6] #210.1.1.num.int <1 (0x1)> + [ 7] #213.1.1.num.int <1 (0x1)> + [ 8] #216.1.1.num.int <0 (0x0)> + [ 9] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #222.1.1.num.int <1 (0x1)> + [11] #225.1.1.num.int <1 (0x1)> + [12] #226.1.1.num.int <0 (0x0)> + [13] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #231.1.1.num.int <1 (0x1)> + [15] #234.1.1.num.int <0 (0x0)> + [16] #241.1.1.num.int <0 (0x0)> + [17] #246.1.1.num.int <-1 (0xffffffffffffffff)> + #188.1.1.ctx.func + type 17, ip 0xd8 (0xd8) + code #186.1.3.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.int <0 (0x0)> + #192.1.1.array + #195.1.1.num.int <-1 (0xffffffffffffffff)> + #198.1.1.num.int <1 (0x1)> + #201.1.1.num.int <0 (0x0)> + #204.1.1.num.int <-1 (0xffffffffffffffff)> + #207.1.1.num.int <-1 (0xffffffffffffffff)> + #210.1.1.num.int <1 (0x1)> + #213.1.1.num.int <1 (0x1)> + #216.1.1.num.int <0 (0x0)> + #219.1.1.num.int <-1 (0xffffffffffffffff)> + #222.1.1.num.int <1 (0x1)> + #225.1.1.num.int <1 (0x1)> + #226.1.1.num.int <0 (0x0)> + #228.1.1.num.int <-1 (0xffffffffffffffff)> + #231.1.1.num.int <1 (0x1)> + #234.1.1.num.int <0 (0x0)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9a, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #236.1.1.num.int <1 (0x1)> + #237.1.1.num.int <2 (0x2)> + #238.1.1.num.int <3 (0x3)> + #239.1.2.array + [ 0] #236.1.1.num.int <1 (0x1)> + [ 1] #237.1.1.num.int <2 (0x2)> + [ 2] #238.1.1.num.int <3 (0x3)> + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0xab, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #241.1.1.num.int <0 (0x0)> + #246.1.1.num.int <-1 (0xffffffffffffffff)> diff --git a/tests/0040_cmp/screen.log.ref b/tests/0040_cmp/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0040_cmp/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0040_cmp/trace.log.ref b/tests/0040_cmp/trace.log.ref new file mode 100644 index 0000000..8f445ee --- /dev/null +++ b/tests/0040_cmp/trace.log.ref @@ -0,0 +1,1160 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <5 (0x5)> +IP: #186:0x9, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <5 (0x5)> + [1] #189.1.1.num.int <5 (0x5)> +IP: #186:0xa, type 8, 11[3] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <0 (0x0)> +IP: #186:0xe, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <5 (0x5)> + [1] #191.1.1.num.int <0 (0x0)> +IP: #186:0xf, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <6 (0x6)> + [1] #193.1.1.num.int <5 (0x5)> + [2] #191.1.1.num.int <0 (0x0)> +IP: #186:0x10, type 8, 17[3] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #191.1.1.num.int <0 (0x0)> +IP: #186:0x14, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <6 (0x6)> + [1] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #191.1.1.num.int <0 (0x0)> +IP: #186:0x15, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <5 (0x5)> + [1] #196.1.1.num.int <6 (0x6)> + [2] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #191.1.1.num.int <0 (0x0)> +IP: #186:0x16, type 8, 23[3] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <1 (0x1)> + [1] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #191.1.1.num.int <0 (0x0)> +IP: #186:0x1a, type 7, 27[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x1b, size 3, "abc"> + [1] #198.1.1.num.int <1 (0x1)> + [2] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #191.1.1.num.int <0 (0x0)> +IP: #186:0x1e, type 7, 31[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x1f, size 3, "abc"> + [1] #199.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x1b, size 3, "abc"> + [2] #198.1.1.num.int <1 (0x1)> + [3] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #191.1.1.num.int <0 (0x0)> +IP: #186:0x22, type 8, 35[3] +GC: --#200.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#199.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <0 (0x0)> + [1] #198.1.1.num.int <1 (0x1)> + [2] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #191.1.1.num.int <0 (0x0)> +IP: #186:0x26, type 7, 39[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x27, size 3, "abc"> + [1] #201.1.1.num.int <0 (0x0)> + [2] #198.1.1.num.int <1 (0x1)> + [3] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #191.1.1.num.int <0 (0x0)> +IP: #186:0x2a, type 7, 43[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x2b, size 3, "abd"> + [1] #202.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x27, size 3, "abc"> + [2] #201.1.1.num.int <0 (0x0)> + [3] #198.1.1.num.int <1 (0x1)> + [4] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #191.1.1.num.int <0 (0x0)> +IP: #186:0x2e, type 8, 47[3] +GC: --#203.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#202.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #201.1.1.num.int <0 (0x0)> + [2] #198.1.1.num.int <1 (0x1)> + [3] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #191.1.1.num.int <0 (0x0)> +IP: #186:0x32, type 7, 51[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x33, size 3, "abc"> + [1] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #201.1.1.num.int <0 (0x0)> + [3] #198.1.1.num.int <1 (0x1)> + [4] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #191.1.1.num.int <0 (0x0)> +IP: #186:0x36, type 7, 55[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x37, size 4, "abc1"> + [1] #205.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x33, size 3, "abc"> + [2] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #201.1.1.num.int <0 (0x0)> + [4] #198.1.1.num.int <1 (0x1)> + [5] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #191.1.1.num.int <0 (0x0)> +IP: #186:0x3b, type 8, 60[3] +GC: --#206.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#205.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #201.1.1.num.int <0 (0x0)> + [3] #198.1.1.num.int <1 (0x1)> + [4] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #191.1.1.num.int <0 (0x0)> +IP: #186:0x3f, type 7, 64[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x40, size 3, "abd"> + [1] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #201.1.1.num.int <0 (0x0)> + [4] #198.1.1.num.int <1 (0x1)> + [5] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #191.1.1.num.int <0 (0x0)> +IP: #186:0x43, type 7, 68[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x44, size 3, "abc"> + [1] #208.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x40, size 3, "abd"> + [2] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #201.1.1.num.int <0 (0x0)> + [5] #198.1.1.num.int <1 (0x1)> + [6] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #191.1.1.num.int <0 (0x0)> +IP: #186:0x47, type 8, 72[3] +GC: --#209.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#208.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <1 (0x1)> + [1] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #201.1.1.num.int <0 (0x0)> + [4] #198.1.1.num.int <1 (0x1)> + [5] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #191.1.1.num.int <0 (0x0)> +IP: #186:0x4b, type 7, 76[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x4c, size 4, "abc1"> + [1] #210.1.1.num.int <1 (0x1)> + [2] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #201.1.1.num.int <0 (0x0)> + [5] #198.1.1.num.int <1 (0x1)> + [6] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #191.1.1.num.int <0 (0x0)> +IP: #186:0x50, type 7, 81[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x51, size 3, "abc"> + [1] #211.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x4c, size 4, "abc1"> + [2] #210.1.1.num.int <1 (0x1)> + [3] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #201.1.1.num.int <0 (0x0)> + [6] #198.1.1.num.int <1 (0x1)> + [7] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #191.1.1.num.int <0 (0x0)> +IP: #186:0x54, type 8, 85[3] +GC: --#212.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#211.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <1 (0x1)> + [1] #210.1.1.num.int <1 (0x1)> + [2] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #201.1.1.num.int <0 (0x0)> + [5] #198.1.1.num.int <1 (0x1)> + [6] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #191.1.1.num.int <0 (0x0)> +IP: #186:0x58, type 7, 89[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x59, size 0, ""> + [1] #213.1.1.num.int <1 (0x1)> + [2] #210.1.1.num.int <1 (0x1)> + [3] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #201.1.1.num.int <0 (0x0)> + [6] #198.1.1.num.int <1 (0x1)> + [7] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #191.1.1.num.int <0 (0x0)> +IP: #186:0x59, type 7, 90[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5a, size 0, ""> + [1] #214.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x59, size 0, ""> + [2] #213.1.1.num.int <1 (0x1)> + [3] #210.1.1.num.int <1 (0x1)> + [4] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #201.1.1.num.int <0 (0x0)> + [7] #198.1.1.num.int <1 (0x1)> + [8] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #191.1.1.num.int <0 (0x0)> +IP: #186:0x5a, type 8, 91[3] +GC: --#215.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#214.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <0 (0x0)> + [1] #213.1.1.num.int <1 (0x1)> + [2] #210.1.1.num.int <1 (0x1)> + [3] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #201.1.1.num.int <0 (0x0)> + [6] #198.1.1.num.int <1 (0x1)> + [7] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #191.1.1.num.int <0 (0x0)> +IP: #186:0x5e, type 7, 95[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x5f, size 0, ""> + [1] #216.1.1.num.int <0 (0x0)> + [2] #213.1.1.num.int <1 (0x1)> + [3] #210.1.1.num.int <1 (0x1)> + [4] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #201.1.1.num.int <0 (0x0)> + [7] #198.1.1.num.int <1 (0x1)> + [8] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #191.1.1.num.int <0 (0x0)> +IP: #186:0x5f, type 7, 96[1] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x60, size 1, "a"> + [1] #217.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5f, size 0, ""> + [2] #216.1.1.num.int <0 (0x0)> + [3] #213.1.1.num.int <1 (0x1)> + [4] #210.1.1.num.int <1 (0x1)> + [5] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #201.1.1.num.int <0 (0x0)> + [8] #198.1.1.num.int <1 (0x1)> + [9] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #191.1.1.num.int <0 (0x0)> +IP: #186:0x61, type 8, 98[3] +GC: --#218.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#217.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #216.1.1.num.int <0 (0x0)> + [2] #213.1.1.num.int <1 (0x1)> + [3] #210.1.1.num.int <1 (0x1)> + [4] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #201.1.1.num.int <0 (0x0)> + [7] #198.1.1.num.int <1 (0x1)> + [8] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #191.1.1.num.int <0 (0x0)> +IP: #186:0x65, type 7, 102[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x66, size 1, "a"> + [1] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #216.1.1.num.int <0 (0x0)> + [3] #213.1.1.num.int <1 (0x1)> + [4] #210.1.1.num.int <1 (0x1)> + [5] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #201.1.1.num.int <0 (0x0)> + [8] #198.1.1.num.int <1 (0x1)> + [9] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #191.1.1.num.int <0 (0x0)> +IP: #186:0x67, type 7, 104[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x68, size 0, ""> + [1] #220.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x66, size 1, "a"> + [2] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #216.1.1.num.int <0 (0x0)> + [4] #213.1.1.num.int <1 (0x1)> + [5] #210.1.1.num.int <1 (0x1)> + [6] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #201.1.1.num.int <0 (0x0)> + [9] #198.1.1.num.int <1 (0x1)> + [10] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #191.1.1.num.int <0 (0x0)> +IP: #186:0x68, type 8, 105[3] +GC: --#221.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#220.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.int <1 (0x1)> + [1] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #216.1.1.num.int <0 (0x0)> + [3] #213.1.1.num.int <1 (0x1)> + [4] #210.1.1.num.int <1 (0x1)> + [5] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #201.1.1.num.int <0 (0x0)> + [8] #198.1.1.num.int <1 (0x1)> + [9] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #191.1.1.num.int <0 (0x0)> +IP: #186:0x6c, type 9, 109[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x6d, size 3, "foo"> + [1] #222.1.1.num.int <1 (0x1)> + [2] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #216.1.1.num.int <0 (0x0)> + [4] #213.1.1.num.int <1 (0x1)> + [5] #210.1.1.num.int <1 (0x1)> + [6] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #201.1.1.num.int <0 (0x0)> + [9] #198.1.1.num.int <1 (0x1)> + [10] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #191.1.1.num.int <0 (0x0)> +IP: #186:0x70, type 7, 113[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x71, size 3, "foo"> + [1] #223.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x6d, size 3, "foo"> + [2] #222.1.1.num.int <1 (0x1)> + [3] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #216.1.1.num.int <0 (0x0)> + [5] #213.1.1.num.int <1 (0x1)> + [6] #210.1.1.num.int <1 (0x1)> + [7] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #201.1.1.num.int <0 (0x0)> + [10] #198.1.1.num.int <1 (0x1)> + [11] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #191.1.1.num.int <0 (0x0)> +IP: #186:0x74, type 8, 117[3] +GC: --#224.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#223.1.1.mem.ref.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <1 (0x1)> + [1] #222.1.1.num.int <1 (0x1)> + [2] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #216.1.1.num.int <0 (0x0)> + [4] #213.1.1.num.int <1 (0x1)> + [5] #210.1.1.num.int <1 (0x1)> + [6] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #201.1.1.num.int <0 (0x0)> + [9] #198.1.1.num.int <1 (0x1)> + [10] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #191.1.1.num.int <0 (0x0)> +IP: #186:0x78, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #225.1.1.num.int <1 (0x1)> + [2] #222.1.1.num.int <1 (0x1)> + [3] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #216.1.1.num.int <0 (0x0)> + [5] #213.1.1.num.int <1 (0x1)> + [6] #210.1.1.num.int <1 (0x1)> + [7] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #201.1.1.num.int <0 (0x0)> + [10] #198.1.1.num.int <1 (0x1)> + [11] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #191.1.1.num.int <0 (0x0)> +IP: #186:0x79, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #225.1.1.num.int <1 (0x1)> + [3] #222.1.1.num.int <1 (0x1)> + [4] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #216.1.1.num.int <0 (0x0)> + [6] #213.1.1.num.int <1 (0x1)> + [7] #210.1.1.num.int <1 (0x1)> + [8] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #201.1.1.num.int <0 (0x0)> + [11] #198.1.1.num.int <1 (0x1)> + [12] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #191.1.1.num.int <0 (0x0)> +IP: #186:0x7a, type 8, 123[3] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.int <0 (0x0)> + [1] #225.1.1.num.int <1 (0x1)> + [2] #222.1.1.num.int <1 (0x1)> + [3] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #216.1.1.num.int <0 (0x0)> + [5] #213.1.1.num.int <1 (0x1)> + [6] #210.1.1.num.int <1 (0x1)> + [7] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #201.1.1.num.int <0 (0x0)> + [10] #198.1.1.num.int <1 (0x1)> + [11] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #191.1.1.num.int <0 (0x0)> +IP: #186:0x7e, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #226.1.1.num.int <0 (0x0)> + [2] #225.1.1.num.int <1 (0x1)> + [3] #222.1.1.num.int <1 (0x1)> + [4] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #216.1.1.num.int <0 (0x0)> + [6] #213.1.1.num.int <1 (0x1)> + [7] #210.1.1.num.int <1 (0x1)> + [8] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #201.1.1.num.int <0 (0x0)> + [11] #198.1.1.num.int <1 (0x1)> + [12] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #191.1.1.num.int <0 (0x0)> +IP: #186:0x7f, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #226.1.1.num.int <0 (0x0)> + [3] #225.1.1.num.int <1 (0x1)> + [4] #222.1.1.num.int <1 (0x1)> + [5] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #216.1.1.num.int <0 (0x0)> + [7] #213.1.1.num.int <1 (0x1)> + [8] #210.1.1.num.int <1 (0x1)> + [9] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #201.1.1.num.int <0 (0x0)> + [12] #198.1.1.num.int <1 (0x1)> + [13] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #191.1.1.num.int <0 (0x0)> +IP: #186:0x80, type 8, 129[3] +GC: --#227.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #226.1.1.num.int <0 (0x0)> + [2] #225.1.1.num.int <1 (0x1)> + [3] #222.1.1.num.int <1 (0x1)> + [4] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #216.1.1.num.int <0 (0x0)> + [6] #213.1.1.num.int <1 (0x1)> + [7] #210.1.1.num.int <1 (0x1)> + [8] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #201.1.1.num.int <0 (0x0)> + [11] #198.1.1.num.int <1 (0x1)> + [12] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #191.1.1.num.int <0 (0x0)> +IP: #186:0x84, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <5 (0x5)> + [1] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #226.1.1.num.int <0 (0x0)> + [3] #225.1.1.num.int <1 (0x1)> + [4] #222.1.1.num.int <1 (0x1)> + [5] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #216.1.1.num.int <0 (0x0)> + [7] #213.1.1.num.int <1 (0x1)> + [8] #210.1.1.num.int <1 (0x1)> + [9] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #201.1.1.num.int <0 (0x0)> + [12] #198.1.1.num.int <1 (0x1)> + [13] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #191.1.1.num.int <0 (0x0)> +IP: #186:0x85, type 7, 134[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x86, size 3, "abc"> + [1] #229.1.1.num.int <5 (0x5)> + [2] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #226.1.1.num.int <0 (0x0)> + [4] #225.1.1.num.int <1 (0x1)> + [5] #222.1.1.num.int <1 (0x1)> + [6] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #216.1.1.num.int <0 (0x0)> + [8] #213.1.1.num.int <1 (0x1)> + [9] #210.1.1.num.int <1 (0x1)> + [10] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #201.1.1.num.int <0 (0x0)> + [13] #198.1.1.num.int <1 (0x1)> + [14] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #191.1.1.num.int <0 (0x0)> +IP: #186:0x89, type 8, 138[3] +GC: --#230.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +GC: --#229.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.int <1 (0x1)> + [1] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #226.1.1.num.int <0 (0x0)> + [3] #225.1.1.num.int <1 (0x1)> + [4] #222.1.1.num.int <1 (0x1)> + [5] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #216.1.1.num.int <0 (0x0)> + [7] #213.1.1.num.int <1 (0x1)> + [8] #210.1.1.num.int <1 (0x1)> + [9] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #201.1.1.num.int <0 (0x0)> + [12] #198.1.1.num.int <1 (0x1)> + [13] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #191.1.1.num.int <0 (0x0)> +IP: #186:0x8d, type 6, 142[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x8e, size 3> + [1] #231.1.1.num.int <1 (0x1)> + [2] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #226.1.1.num.int <0 (0x0)> + [4] #225.1.1.num.int <1 (0x1)> + [5] #222.1.1.num.int <1 (0x1)> + [6] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #216.1.1.num.int <0 (0x0)> + [8] #213.1.1.num.int <1 (0x1)> + [9] #210.1.1.num.int <1 (0x1)> + [10] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #201.1.1.num.int <0 (0x0)> + [13] #198.1.1.num.int <1 (0x1)> + [14] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #191.1.1.num.int <0 (0x0)> +IP: #186:0x91, type 6, 146[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x92, size 3> + [1] #232.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x8e, size 3> + [2] #231.1.1.num.int <1 (0x1)> + [3] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #226.1.1.num.int <0 (0x0)> + [5] #225.1.1.num.int <1 (0x1)> + [6] #222.1.1.num.int <1 (0x1)> + [7] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #216.1.1.num.int <0 (0x0)> + [9] #213.1.1.num.int <1 (0x1)> + [10] #210.1.1.num.int <1 (0x1)> + [11] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #201.1.1.num.int <0 (0x0)> + [14] #198.1.1.num.int <1 (0x1)> + [15] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #191.1.1.num.int <0 (0x0)> +IP: #186:0x95, type 8, 150[3] +GC: --#233.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +GC: --#232.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.int <0 (0x0)> + [1] #231.1.1.num.int <1 (0x1)> + [2] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #226.1.1.num.int <0 (0x0)> + [4] #225.1.1.num.int <1 (0x1)> + [5] #222.1.1.num.int <1 (0x1)> + [6] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #216.1.1.num.int <0 (0x0)> + [8] #213.1.1.num.int <1 (0x1)> + [9] #210.1.1.num.int <1 (0x1)> + [10] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #201.1.1.num.int <0 (0x0)> + [13] #198.1.1.num.int <1 (0x1)> + [14] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #191.1.1.num.int <0 (0x0)> +IP: #186:0x99, type 9, 154[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9a, size 5, "foo_1"> + [1] #234.1.1.num.int <0 (0x0)> + [2] #231.1.1.num.int <1 (0x1)> + [3] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #226.1.1.num.int <0 (0x0)> + [5] #225.1.1.num.int <1 (0x1)> + [6] #222.1.1.num.int <1 (0x1)> + [7] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #216.1.1.num.int <0 (0x0)> + [9] #213.1.1.num.int <1 (0x1)> + [10] #210.1.1.num.int <1 (0x1)> + [11] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #201.1.1.num.int <0 (0x0)> + [14] #198.1.1.num.int <1 (0x1)> + [15] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #191.1.1.num.int <0 (0x0)> +IP: #186:0x9f, type 8, 160[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9a, size 5, "foo_1"> + [2] #234.1.1.num.int <0 (0x0)> + [3] #231.1.1.num.int <1 (0x1)> + [4] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #226.1.1.num.int <0 (0x0)> + [6] #225.1.1.num.int <1 (0x1)> + [7] #222.1.1.num.int <1 (0x1)> + [8] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #216.1.1.num.int <0 (0x0)> + [10] #213.1.1.num.int <1 (0x1)> + [11] #210.1.1.num.int <1 (0x1)> + [12] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #201.1.1.num.int <0 (0x0)> + [15] #198.1.1.num.int <1 (0x1)> + [16] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xa1, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9a, size 5, "foo_1"> + [3] #234.1.1.num.int <0 (0x0)> + [4] #231.1.1.num.int <1 (0x1)> + [5] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #226.1.1.num.int <0 (0x0)> + [7] #225.1.1.num.int <1 (0x1)> + [8] #222.1.1.num.int <1 (0x1)> + [9] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #216.1.1.num.int <0 (0x0)> + [11] #213.1.1.num.int <1 (0x1)> + [12] #210.1.1.num.int <1 (0x1)> + [13] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #201.1.1.num.int <0 (0x0)> + [16] #198.1.1.num.int <1 (0x1)> + [17] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #191.1.1.num.int <0 (0x0)> +IP: #186:0xa2, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.num.int <2 (0x2)> + [1] #236.1.1.num.int <1 (0x1)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9a, size 5, "foo_1"> + [4] #234.1.1.num.int <0 (0x0)> + [5] #231.1.1.num.int <1 (0x1)> + [6] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #226.1.1.num.int <0 (0x0)> + [8] #225.1.1.num.int <1 (0x1)> + [9] #222.1.1.num.int <1 (0x1)> + [10] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #216.1.1.num.int <0 (0x0)> + [12] #213.1.1.num.int <1 (0x1)> + [13] #210.1.1.num.int <1 (0x1)> + [14] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #201.1.1.num.int <0 (0x0)> + [17] #198.1.1.num.int <1 (0x1)> + [18] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #191.1.1.num.int <0 (0x0)> +IP: #186:0xa3, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <3 (0x3)> + [1] #237.1.1.num.int <2 (0x2)> + [2] #236.1.1.num.int <1 (0x1)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9a, size 5, "foo_1"> + [5] #234.1.1.num.int <0 (0x0)> + [6] #231.1.1.num.int <1 (0x1)> + [7] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #226.1.1.num.int <0 (0x0)> + [9] #225.1.1.num.int <1 (0x1)> + [10] #222.1.1.num.int <1 (0x1)> + [11] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #216.1.1.num.int <0 (0x0)> + [13] #213.1.1.num.int <1 (0x1)> + [14] #210.1.1.num.int <1 (0x1)> + [15] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #201.1.1.num.int <0 (0x0)> + [18] #198.1.1.num.int <1 (0x1)> + [19] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #191.1.1.num.int <0 (0x0)> +IP: #186:0xa4, type 8, 165[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.array + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9a, size 5, "foo_1"> + [2] #234.1.1.num.int <0 (0x0)> + [3] #231.1.1.num.int <1 (0x1)> + [4] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #226.1.1.num.int <0 (0x0)> + [6] #225.1.1.num.int <1 (0x1)> + [7] #222.1.1.num.int <1 (0x1)> + [8] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #216.1.1.num.int <0 (0x0)> + [10] #213.1.1.num.int <1 (0x1)> + [11] #210.1.1.num.int <1 (0x1)> + [12] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #201.1.1.num.int <0 (0x0)> + [15] #198.1.1.num.int <1 (0x1)> + [16] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xa6, type 8, 167[3] +GC: ++#235.1.1.mem.ref.ro +GC: ++#239.1.1.array +GC: --#239.1.2.array +GC: --#235.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.int <0 (0x0)> + [1] #231.1.1.num.int <1 (0x1)> + [2] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #226.1.1.num.int <0 (0x0)> + [4] #225.1.1.num.int <1 (0x1)> + [5] #222.1.1.num.int <1 (0x1)> + [6] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #216.1.1.num.int <0 (0x0)> + [8] #213.1.1.num.int <1 (0x1)> + [9] #210.1.1.num.int <1 (0x1)> + [10] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #201.1.1.num.int <0 (0x0)> + [13] #198.1.1.num.int <1 (0x1)> + [14] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #191.1.1.num.int <0 (0x0)> +IP: #186:0xaa, type 9, 171[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0xab, size 5, "foo_2"> + [1] #234.1.1.num.int <0 (0x0)> + [2] #231.1.1.num.int <1 (0x1)> + [3] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #226.1.1.num.int <0 (0x0)> + [5] #225.1.1.num.int <1 (0x1)> + [6] #222.1.1.num.int <1 (0x1)> + [7] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #216.1.1.num.int <0 (0x0)> + [9] #213.1.1.num.int <1 (0x1)> + [10] #210.1.1.num.int <1 (0x1)> + [11] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #201.1.1.num.int <0 (0x0)> + [14] #198.1.1.num.int <1 (0x1)> + [15] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #191.1.1.num.int <0 (0x0)> +IP: #186:0xb0, type 8, 177[5] +GC: ++#239.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.2.array + [1] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0xab, size 5, "foo_2"> + [2] #234.1.1.num.int <0 (0x0)> + [3] #231.1.1.num.int <1 (0x1)> + [4] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #226.1.1.num.int <0 (0x0)> + [6] #225.1.1.num.int <1 (0x1)> + [7] #222.1.1.num.int <1 (0x1)> + [8] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #216.1.1.num.int <0 (0x0)> + [10] #213.1.1.num.int <1 (0x1)> + [11] #210.1.1.num.int <1 (0x1)> + [12] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #201.1.1.num.int <0 (0x0)> + [15] #198.1.1.num.int <1 (0x1)> + [16] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xb6, type 8, 183[3] +GC: ++#240.1.1.mem.ref.ro +GC: ++#239.1.2.array +GC: --#239.1.3.array +GC: --#240.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.int <0 (0x0)> + [1] #231.1.1.num.int <1 (0x1)> + [2] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #226.1.1.num.int <0 (0x0)> + [4] #225.1.1.num.int <1 (0x1)> + [5] #222.1.1.num.int <1 (0x1)> + [6] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #216.1.1.num.int <0 (0x0)> + [8] #213.1.1.num.int <1 (0x1)> + [9] #210.1.1.num.int <1 (0x1)> + [10] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #201.1.1.num.int <0 (0x0)> + [13] #198.1.1.num.int <1 (0x1)> + [14] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #191.1.1.num.int <0 (0x0)> +IP: #186:0xba, type 8, 187[5] +GC: ++#239.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.3.array + [1] #234.1.1.num.int <0 (0x0)> + [2] #231.1.1.num.int <1 (0x1)> + [3] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #226.1.1.num.int <0 (0x0)> + [5] #225.1.1.num.int <1 (0x1)> + [6] #222.1.1.num.int <1 (0x1)> + [7] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #216.1.1.num.int <0 (0x0)> + [9] #213.1.1.num.int <1 (0x1)> + [10] #210.1.1.num.int <1 (0x1)> + [11] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #201.1.1.num.int <0 (0x0)> + [14] #198.1.1.num.int <1 (0x1)> + [15] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #191.1.1.num.int <0 (0x0)> +IP: #186:0xc0, type 8, 193[5] +GC: ++#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.4.array + [1] #239.1.4.array + [2] #234.1.1.num.int <0 (0x0)> + [3] #231.1.1.num.int <1 (0x1)> + [4] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #226.1.1.num.int <0 (0x0)> + [6] #225.1.1.num.int <1 (0x1)> + [7] #222.1.1.num.int <1 (0x1)> + [8] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #216.1.1.num.int <0 (0x0)> + [10] #213.1.1.num.int <1 (0x1)> + [11] #210.1.1.num.int <1 (0x1)> + [12] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #201.1.1.num.int <0 (0x0)> + [15] #198.1.1.num.int <1 (0x1)> + [16] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xc6, type 8, 199[3] +GC: --#239.1.4.array +GC: --#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.1.1.num.int <0 (0x0)> + [1] #234.1.1.num.int <0 (0x0)> + [2] #231.1.1.num.int <1 (0x1)> + [3] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #226.1.1.num.int <0 (0x0)> + [5] #225.1.1.num.int <1 (0x1)> + [6] #222.1.1.num.int <1 (0x1)> + [7] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #216.1.1.num.int <0 (0x0)> + [9] #213.1.1.num.int <1 (0x1)> + [10] #210.1.1.num.int <1 (0x1)> + [11] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #201.1.1.num.int <0 (0x0)> + [14] #198.1.1.num.int <1 (0x1)> + [15] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #191.1.1.num.int <0 (0x0)> +IP: #186:0xca, type 8, 203[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #241.1.1.num.int <0 (0x0)> + [2] #234.1.1.num.int <0 (0x0)> + [3] #231.1.1.num.int <1 (0x1)> + [4] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #226.1.1.num.int <0 (0x0)> + [6] #225.1.1.num.int <1 (0x1)> + [7] #222.1.1.num.int <1 (0x1)> + [8] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #216.1.1.num.int <0 (0x0)> + [10] #213.1.1.num.int <1 (0x1)> + [11] #210.1.1.num.int <1 (0x1)> + [12] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #201.1.1.num.int <0 (0x0)> + [15] #198.1.1.num.int <1 (0x1)> + [16] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xcc, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #241.1.1.num.int <0 (0x0)> + [3] #234.1.1.num.int <0 (0x0)> + [4] #231.1.1.num.int <1 (0x1)> + [5] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #226.1.1.num.int <0 (0x0)> + [7] #225.1.1.num.int <1 (0x1)> + [8] #222.1.1.num.int <1 (0x1)> + [9] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #216.1.1.num.int <0 (0x0)> + [11] #213.1.1.num.int <1 (0x1)> + [12] #210.1.1.num.int <1 (0x1)> + [13] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #201.1.1.num.int <0 (0x0)> + [16] #198.1.1.num.int <1 (0x1)> + [17] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #191.1.1.num.int <0 (0x0)> +IP: #186:0xcd, type 8, 206[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.array + [1] #241.1.1.num.int <0 (0x0)> + [2] #234.1.1.num.int <0 (0x0)> + [3] #231.1.1.num.int <1 (0x1)> + [4] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #226.1.1.num.int <0 (0x0)> + [6] #225.1.1.num.int <1 (0x1)> + [7] #222.1.1.num.int <1 (0x1)> + [8] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #216.1.1.num.int <0 (0x0)> + [10] #213.1.1.num.int <1 (0x1)> + [11] #210.1.1.num.int <1 (0x1)> + [12] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #201.1.1.num.int <0 (0x0)> + [15] #198.1.1.num.int <1 (0x1)> + [16] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #191.1.1.num.int <0 (0x0)> +IP: #186:0xcf, type 8, 208[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #243.1.1.array + [2] #241.1.1.num.int <0 (0x0)> + [3] #234.1.1.num.int <0 (0x0)> + [4] #231.1.1.num.int <1 (0x1)> + [5] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #226.1.1.num.int <0 (0x0)> + [7] #225.1.1.num.int <1 (0x1)> + [8] #222.1.1.num.int <1 (0x1)> + [9] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #216.1.1.num.int <0 (0x0)> + [11] #213.1.1.num.int <1 (0x1)> + [12] #210.1.1.num.int <1 (0x1)> + [13] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #201.1.1.num.int <0 (0x0)> + [16] #198.1.1.num.int <1 (0x1)> + [17] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #191.1.1.num.int <0 (0x0)> +IP: #186:0xd1, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #243.1.1.array + [3] #241.1.1.num.int <0 (0x0)> + [4] #234.1.1.num.int <0 (0x0)> + [5] #231.1.1.num.int <1 (0x1)> + [6] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #226.1.1.num.int <0 (0x0)> + [8] #225.1.1.num.int <1 (0x1)> + [9] #222.1.1.num.int <1 (0x1)> + [10] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #216.1.1.num.int <0 (0x0)> + [12] #213.1.1.num.int <1 (0x1)> + [13] #210.1.1.num.int <1 (0x1)> + [14] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #201.1.1.num.int <0 (0x0)> + [17] #198.1.1.num.int <1 (0x1)> + [18] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #191.1.1.num.int <0 (0x0)> +IP: #186:0xd2, type 8, 211[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.array + [1] #243.1.1.array + [2] #241.1.1.num.int <0 (0x0)> + [3] #234.1.1.num.int <0 (0x0)> + [4] #231.1.1.num.int <1 (0x1)> + [5] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #226.1.1.num.int <0 (0x0)> + [7] #225.1.1.num.int <1 (0x1)> + [8] #222.1.1.num.int <1 (0x1)> + [9] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #216.1.1.num.int <0 (0x0)> + [11] #213.1.1.num.int <1 (0x1)> + [12] #210.1.1.num.int <1 (0x1)> + [13] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #201.1.1.num.int <0 (0x0)> + [16] #198.1.1.num.int <1 (0x1)> + [17] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #191.1.1.num.int <0 (0x0)> +IP: #186:0xd4, type 8, 213[3] +GC: --#245.1.1.array +GC: --#244.1.1.num.int +GC: --#243.1.1.array +GC: --#242.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #241.1.1.num.int <0 (0x0)> + [2] #234.1.1.num.int <0 (0x0)> + [3] #231.1.1.num.int <1 (0x1)> + [4] #228.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #226.1.1.num.int <0 (0x0)> + [6] #225.1.1.num.int <1 (0x1)> + [7] #222.1.1.num.int <1 (0x1)> + [8] #219.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #216.1.1.num.int <0 (0x0)> + [10] #213.1.1.num.int <1 (0x1)> + [11] #210.1.1.num.int <1 (0x1)> + [12] #207.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #204.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #201.1.1.num.int <0 (0x0)> + [15] #198.1.1.num.int <1 (0x1)> + [16] #195.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #191.1.1.num.int <0 (0x0)> diff --git a/tests/0041_eq/basic.log.ref b/tests/0041_eq/basic.log.ref new file mode 100644 index 0000000..a5c5929 --- /dev/null +++ b/tests/0041_eq/basic.log.ref @@ -0,0 +1,1091 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <5 (0x5)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abd"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc1"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "a"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "foo"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <0 (0x0)> + [20] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.2.array +GC: --#xxxx.1.3.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.array + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.4.array + [1] #xxxx.1.4.array + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.4.array +GC: --#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.array + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> diff --git a/tests/0041_eq/code.log.ref b/tests/0041_eq/code.log.ref new file mode 100644 index 0000000..100184f --- /dev/null +++ b/tests/0041_eq/code.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 65 71 eq + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f word 28 65 71 eq + 3 7 0x00012 int 61 6 + 8 0x00013 int 51 5 + 9 0x00014 word 28 65 71 eq + 4 10 0x00017 str 37 61 62 63 "abc" + 11 0x0001b str 37 61 62 63 "abc" + 12 0x0001f word 28 65 71 eq + 5 13 0x00022 str 37 61 62 63 "abc" + 14 0x00026 str 37 61 62 64 "abd" + 15 0x0002a word 28 65 71 eq + 6 16 0x0002d str 37 61 62 63 "abc" + 17 0x00031 str 47 61 62 63 31 "abc1" + 18 0x00036 word 28 65 71 eq + 7 19 0x00039 str 37 61 62 64 "abd" + 20 0x0003d str 37 61 62 63 "abc" + 21 0x00041 word 28 65 71 eq + 8 22 0x00044 str 47 61 62 63 31 "abc1" + 23 0x00049 str 37 61 62 63 "abc" + 24 0x0004d word 28 65 71 eq + 9 25 0x00050 str 07 "" + 26 0x00051 str 07 "" + 27 0x00052 word 28 65 71 eq + 10 28 0x00055 str 07 "" + 29 0x00056 str 17 61 "a" + 30 0x00058 word 28 65 71 eq + 11 31 0x0005b str 17 61 "a" + 32 0x0005d str 07 "" + 33 0x0005e word 28 65 71 eq + 12 34 0x00061 ref 39 66 6f 6f /foo + 35 0x00065 str 37 66 6f 6f "foo" + 36 0x00069 word 28 65 71 eq + 13 37 0x0006c nil 00 nil + 38 0x0006d nil 00 nil + 39 0x0006e word 28 65 71 eq + 14 40 0x00071 nil 00 nil + 41 0x00072 int 31 3 + 42 0x00073 word 28 65 71 eq + 15 43 0x00076 int 51 5 + 44 0x00077 str 37 61 62 63 "abc" + 45 0x0007b word 28 65 71 eq + 16 46 0x0007e code 36 { + 47 0x0007f int 81 0a 10 + 48 0x00081 prim 13 } + 49 0x00082 code 36 { + 50 0x00083 int 81 0a 10 + 51 0x00085 prim 13 } + 52 0x00086 word 28 65 71 eq + 17 53 0x00089 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0008f word 18 5b [ + 55 0x00091 int 11 1 + 56 0x00092 int 21 2 + 57 0x00093 int 31 3 + 58 0x00094 word 18 5d ] + 59 0x00096 word 38 64 65 66 def + 18 60 0x0009a ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x000a0 word 58 66 6f 6f 5f 31 foo_1 + 62 0x000a6 word 38 64 65 66 def + 19 63 0x000aa word 58 66 6f 6f 5f 31 foo_1 + 64 0x000b0 word 58 66 6f 6f 5f 32 foo_2 + 65 0x000b6 word 28 65 71 eq + 20 66 0x000b9 word 18 5b [ + 67 0x000bb int 61 6 + 68 0x000bc word 18 5d ] + 69 0x000be word 18 5b [ + 70 0x000c0 int 61 6 + 71 0x000c1 word 18 5d ] + 72 0x000c3 word 28 65 71 eq diff --git a/tests/0041_eq/code1.log.ref b/tests/0041_eq/code1.log.ref new file mode 100644 index 0000000..0b483be --- /dev/null +++ b/tests/0041_eq/code1.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 65 71 eq + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f xref 54 eq + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 xref 84 08 eq + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 xref 84 0f eq + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 xref 84 16 eq + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 xref 84 1f eq + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f xref 84 25 eq + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 xref 84 2b eq + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 xref 84 2f eq + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e xref 84 34 eq + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 xref 84 38 eq + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c xref 84 42 eq + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 xref 84 46 eq + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 xref 84 4a eq + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 xref 84 4f eq + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 xref 84 59 eq + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b word 18 5b [ + 55 0x0006d int 11 1 + 56 0x0006e int 21 2 + 57 0x0006f int 31 3 + 58 0x00070 word 18 5d ] + 59 0x00072 word 38 64 65 66 def + 18 60 0x00076 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x0007c word 58 66 6f 6f 5f 31 foo_1 + 62 0x00082 xref 84 10 def + 19 63 0x00084 xref 84 08 foo_1 + 64 0x00086 word 58 66 6f 6f 5f 32 foo_2 + 65 0x0008c xref 84 82 eq + 20 66 0x0008e word 18 5b [ + 67 0x00090 int 61 6 + 68 0x00091 word 18 5d ] + 69 0x00093 word 18 5b [ + 70 0x00095 int 61 6 + 71 0x00096 word 18 5d ] + 72 0x00098 xref 84 8e eq diff --git a/tests/0041_eq/code2.log.ref b/tests/0041_eq/code2.log.ref new file mode 100644 index 0000000..c8b03af --- /dev/null +++ b/tests/0041_eq/code2.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a prim 83 2d eq + 2 4 0x0000c int 51 5 + 5 0x0000d int 61 6 + 6 0x0000e prim 83 2d eq + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 prim 83 2d eq + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 prim 83 2d eq + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 prim 83 2d eq + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 prim 83 2d eq + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f prim 83 2d eq + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 prim 83 2d eq + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 prim 83 2d eq + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e prim 83 2d eq + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 prim 83 2d eq + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c prim 83 2d eq + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 prim 83 2d eq + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 prim 83 2d eq + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 prim 83 2d eq + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 prim 83 2d eq + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b prim 23 [ + 55 0x0006c int 11 1 + 56 0x0006d int 21 2 + 57 0x0006e int 31 3 + 58 0x0006f prim 33 ] + 59 0x00070 prim 63 def + 18 60 0x00071 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x00077 word 58 66 6f 6f 5f 31 foo_1 + 62 0x0007d prim 63 def + 19 63 0x0007e xref 74 foo_1 + 64 0x0007f word 58 66 6f 6f 5f 32 foo_2 + 65 0x00085 prim 83 2d eq + 20 66 0x00087 prim 23 [ + 67 0x00088 int 61 6 + 68 0x00089 prim 33 ] + 69 0x0008a prim 23 [ + 70 0x0008b int 61 6 + 71 0x0008c prim 33 ] + 72 0x0008d prim 83 2d eq diff --git a/tests/0041_eq/main.gs b/tests/0041_eq/main.gs new file mode 100644 index 0000000..dd63772 --- /dev/null +++ b/tests/0041_eq/main.gs @@ -0,0 +1,20 @@ +5 5 eq +5 6 eq +6 5 eq +"abc" "abc" eq +"abc" "abd" eq +"abc" "abc1" eq +"abd" "abc" eq +"abc1" "abc" eq +"" "" eq +"" "a" eq +"a" "" eq +/foo "foo" eq +nil nil eq +nil 3 eq +5 "abc" eq +{ 10 } { 10 } eq +/foo_1 [ 1 2 3 ] def +/foo_2 foo_1 def +foo_1 foo_2 eq +[ 6 ] [ 6 ] eq diff --git a/tests/0041_eq/mem.log.ref b/tests/0041_eq/mem.log.ref new file mode 100644 index 0000000..b33cf31 --- /dev/null +++ b/tests/0041_eq/mem.log.ref @@ -0,0 +1,814 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 200] + 8: 239.01, 0x001d6b3c[ 20] + 9: 0.00, 0x001d6b58[ 44] + 10: 188.01, 0x001d6b8c[ 56] + 11: 192.01, 0x001d6bcc[ 72] + 12: 187.01, 0x001d6c1c[ 144] + 13: 0.00, 0x001d6cb4[14848844] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> => #239.1.2.array + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> => #239.1.2.array + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.3.mem.ro + 75 51 12 a9 42 7a ad 60 51 51 28 65 71 51 61 28 uQ..Bz.`QQ(eqQa( + 65 71 61 51 28 65 71 37 61 62 63 37 61 62 63 28 eqaQ(eq7abc7abc( + 65 71 37 61 62 63 37 61 62 64 28 65 71 37 61 62 eq7abc7abd(eq7ab + 63 47 61 62 63 31 28 65 71 37 61 62 64 37 61 62 cGabc1(eq7abd7ab + 63 28 65 71 47 61 62 63 31 37 61 62 63 28 65 71 c(eqGabc17abc(eq + 07 07 28 65 71 07 17 61 28 65 71 17 61 07 28 65 ..(eq..a(eq.a.(e + 71 39 66 6f 6f 37 66 6f 6f 28 65 71 00 00 28 65 q9foo7foo(eq..(e + 71 00 31 28 65 71 51 37 61 62 63 28 65 71 36 81 q.1(eqQ7abc(eq6. + 0a 13 36 81 0a 13 28 65 71 59 66 6f 6f 5f 31 18 ..6...(eqYfoo_1. + 5b 11 21 31 18 5d 38 64 65 66 59 66 6f 6f 5f 32 [.!1.]8defYfoo_2 + 58 66 6f 6f 5f 31 38 64 65 66 58 66 6f 6f 5f 31 Xfoo_18defXfoo_1 + 58 66 6f 6f 5f 32 28 65 71 18 5b 61 18 5d 18 5b Xfoo_2(eq.[a.].[ + 61 18 5d 28 65 71 a.](eq + #187.1.1.array + [ 0] #191.1.1.num.bool <1 (0x1)> + [ 1] #195.1.1.num.bool <0 (0x0)> + [ 2] #198.1.1.num.bool <0 (0x0)> + [ 3] #201.1.1.num.bool <1 (0x1)> + [ 4] #204.1.1.num.bool <0 (0x0)> + [ 5] #207.1.1.num.bool <0 (0x0)> + [ 6] #210.1.1.num.bool <0 (0x0)> + [ 7] #213.1.1.num.bool <0 (0x0)> + [ 8] #216.1.1.num.bool <1 (0x1)> + [ 9] #219.1.1.num.bool <0 (0x0)> + [10] #222.1.1.num.bool <0 (0x0)> + [11] #225.1.1.num.bool <0 (0x0)> + [12] #226.1.1.num.bool <1 (0x1)> + [13] #228.1.1.num.bool <0 (0x0)> + [14] #231.1.1.num.bool <0 (0x0)> + [15] #234.1.1.num.bool <1 (0x1)> + [16] #241.1.1.num.bool <1 (0x1)> + [17] #246.1.1.num.bool <0 (0x0)> + #188.1.1.ctx.func + type 17, ip 0xc6 (0xc6) + code #186.1.3.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.bool <1 (0x1)> + #192.1.1.array + #195.1.1.num.bool <0 (0x0)> + #198.1.1.num.bool <0 (0x0)> + #201.1.1.num.bool <1 (0x1)> + #204.1.1.num.bool <0 (0x0)> + #207.1.1.num.bool <0 (0x0)> + #210.1.1.num.bool <0 (0x0)> + #213.1.1.num.bool <0 (0x0)> + #216.1.1.num.bool <1 (0x1)> + #219.1.1.num.bool <0 (0x0)> + #222.1.1.num.bool <0 (0x0)> + #225.1.1.num.bool <0 (0x0)> + #226.1.1.num.bool <1 (0x1)> + #228.1.1.num.bool <0 (0x0)> + #231.1.1.num.bool <0 (0x0)> + #234.1.1.num.bool <1 (0x1)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #236.1.1.num.int <1 (0x1)> + #237.1.1.num.int <2 (0x2)> + #238.1.1.num.int <3 (0x3)> + #239.1.2.array + [ 0] #236.1.1.num.int <1 (0x1)> + [ 1] #237.1.1.num.int <2 (0x2)> + [ 2] #238.1.1.num.int <3 (0x3)> + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #241.1.1.num.bool <1 (0x1)> + #246.1.1.num.bool <0 (0x0)> diff --git a/tests/0041_eq/screen.log.ref b/tests/0041_eq/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0041_eq/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0041_eq/trace.log.ref b/tests/0041_eq/trace.log.ref new file mode 100644 index 0000000..98fc444 --- /dev/null +++ b/tests/0041_eq/trace.log.ref @@ -0,0 +1,1160 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <5 (0x5)> +IP: #186:0x9, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <5 (0x5)> + [1] #189.1.1.num.int <5 (0x5)> +IP: #186:0xa, type 8, 11[2] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xd, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <5 (0x5)> + [1] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xe, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <6 (0x6)> + [1] #193.1.1.num.int <5 (0x5)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xf, type 8, 16[2] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <0 (0x0)> + [1] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x12, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <6 (0x6)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x13, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <5 (0x5)> + [1] #196.1.1.num.int <6 (0x6)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x14, type 8, 21[2] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x17, type 7, 24[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x18, size 3, "abc"> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x1b, type 7, 28[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x1c, size 3, "abc"> + [1] #199.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x18, size 3, "abc"> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x1f, type 8, 32[2] +GC: --#200.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#199.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <1 (0x1)> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x22, type 7, 35[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x23, size 3, "abc"> + [1] #201.1.1.num.bool <1 (0x1)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x26, type 7, 39[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x27, size 3, "abd"> + [1] #202.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x23, size 3, "abc"> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x2a, type 8, 43[2] +GC: --#203.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#202.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.bool <0 (0x0)> + [1] #201.1.1.num.bool <1 (0x1)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x2d, type 7, 46[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x2e, size 3, "abc"> + [1] #204.1.1.num.bool <0 (0x0)> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x31, type 7, 50[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x32, size 4, "abc1"> + [1] #205.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x2e, size 3, "abc"> + [2] #204.1.1.num.bool <0 (0x0)> + [3] #201.1.1.num.bool <1 (0x1)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x36, type 8, 55[2] +GC: --#206.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#205.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.bool <0 (0x0)> + [1] #204.1.1.num.bool <0 (0x0)> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x39, type 7, 58[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x3a, size 3, "abd"> + [1] #207.1.1.num.bool <0 (0x0)> + [2] #204.1.1.num.bool <0 (0x0)> + [3] #201.1.1.num.bool <1 (0x1)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x3d, type 7, 62[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3e, size 3, "abc"> + [1] #208.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3a, size 3, "abd"> + [2] #207.1.1.num.bool <0 (0x0)> + [3] #204.1.1.num.bool <0 (0x0)> + [4] #201.1.1.num.bool <1 (0x1)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <0 (0x0)> + [7] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x41, type 8, 66[2] +GC: --#209.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#208.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.bool <0 (0x0)> + [1] #207.1.1.num.bool <0 (0x0)> + [2] #204.1.1.num.bool <0 (0x0)> + [3] #201.1.1.num.bool <1 (0x1)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x44, type 7, 69[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x45, size 4, "abc1"> + [1] #210.1.1.num.bool <0 (0x0)> + [2] #207.1.1.num.bool <0 (0x0)> + [3] #204.1.1.num.bool <0 (0x0)> + [4] #201.1.1.num.bool <1 (0x1)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <0 (0x0)> + [7] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x49, type 7, 74[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x4a, size 3, "abc"> + [1] #211.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x45, size 4, "abc1"> + [2] #210.1.1.num.bool <0 (0x0)> + [3] #207.1.1.num.bool <0 (0x0)> + [4] #204.1.1.num.bool <0 (0x0)> + [5] #201.1.1.num.bool <1 (0x1)> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <0 (0x0)> + [8] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x4d, type 8, 78[2] +GC: --#212.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#211.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.bool <0 (0x0)> + [1] #210.1.1.num.bool <0 (0x0)> + [2] #207.1.1.num.bool <0 (0x0)> + [3] #204.1.1.num.bool <0 (0x0)> + [4] #201.1.1.num.bool <1 (0x1)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <0 (0x0)> + [7] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x50, type 7, 81[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x51, size 0, ""> + [1] #213.1.1.num.bool <0 (0x0)> + [2] #210.1.1.num.bool <0 (0x0)> + [3] #207.1.1.num.bool <0 (0x0)> + [4] #204.1.1.num.bool <0 (0x0)> + [5] #201.1.1.num.bool <1 (0x1)> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <0 (0x0)> + [8] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x51, type 7, 82[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x52, size 0, ""> + [1] #214.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x51, size 0, ""> + [2] #213.1.1.num.bool <0 (0x0)> + [3] #210.1.1.num.bool <0 (0x0)> + [4] #207.1.1.num.bool <0 (0x0)> + [5] #204.1.1.num.bool <0 (0x0)> + [6] #201.1.1.num.bool <1 (0x1)> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <0 (0x0)> + [9] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x52, type 8, 83[2] +GC: --#215.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#214.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.bool <1 (0x1)> + [1] #213.1.1.num.bool <0 (0x0)> + [2] #210.1.1.num.bool <0 (0x0)> + [3] #207.1.1.num.bool <0 (0x0)> + [4] #204.1.1.num.bool <0 (0x0)> + [5] #201.1.1.num.bool <1 (0x1)> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <0 (0x0)> + [8] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x55, type 7, 86[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x56, size 0, ""> + [1] #216.1.1.num.bool <1 (0x1)> + [2] #213.1.1.num.bool <0 (0x0)> + [3] #210.1.1.num.bool <0 (0x0)> + [4] #207.1.1.num.bool <0 (0x0)> + [5] #204.1.1.num.bool <0 (0x0)> + [6] #201.1.1.num.bool <1 (0x1)> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <0 (0x0)> + [9] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x56, type 7, 87[1] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x57, size 1, "a"> + [1] #217.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x56, size 0, ""> + [2] #216.1.1.num.bool <1 (0x1)> + [3] #213.1.1.num.bool <0 (0x0)> + [4] #210.1.1.num.bool <0 (0x0)> + [5] #207.1.1.num.bool <0 (0x0)> + [6] #204.1.1.num.bool <0 (0x0)> + [7] #201.1.1.num.bool <1 (0x1)> + [8] #198.1.1.num.bool <0 (0x0)> + [9] #195.1.1.num.bool <0 (0x0)> + [10] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x58, type 8, 89[2] +GC: --#218.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#217.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.bool <0 (0x0)> + [1] #216.1.1.num.bool <1 (0x1)> + [2] #213.1.1.num.bool <0 (0x0)> + [3] #210.1.1.num.bool <0 (0x0)> + [4] #207.1.1.num.bool <0 (0x0)> + [5] #204.1.1.num.bool <0 (0x0)> + [6] #201.1.1.num.bool <1 (0x1)> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <0 (0x0)> + [9] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x5b, type 7, 92[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x5c, size 1, "a"> + [1] #219.1.1.num.bool <0 (0x0)> + [2] #216.1.1.num.bool <1 (0x1)> + [3] #213.1.1.num.bool <0 (0x0)> + [4] #210.1.1.num.bool <0 (0x0)> + [5] #207.1.1.num.bool <0 (0x0)> + [6] #204.1.1.num.bool <0 (0x0)> + [7] #201.1.1.num.bool <1 (0x1)> + [8] #198.1.1.num.bool <0 (0x0)> + [9] #195.1.1.num.bool <0 (0x0)> + [10] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x5d, type 7, 94[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5e, size 0, ""> + [1] #220.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5c, size 1, "a"> + [2] #219.1.1.num.bool <0 (0x0)> + [3] #216.1.1.num.bool <1 (0x1)> + [4] #213.1.1.num.bool <0 (0x0)> + [5] #210.1.1.num.bool <0 (0x0)> + [6] #207.1.1.num.bool <0 (0x0)> + [7] #204.1.1.num.bool <0 (0x0)> + [8] #201.1.1.num.bool <1 (0x1)> + [9] #198.1.1.num.bool <0 (0x0)> + [10] #195.1.1.num.bool <0 (0x0)> + [11] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x5e, type 8, 95[2] +GC: --#221.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#220.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.bool <0 (0x0)> + [1] #219.1.1.num.bool <0 (0x0)> + [2] #216.1.1.num.bool <1 (0x1)> + [3] #213.1.1.num.bool <0 (0x0)> + [4] #210.1.1.num.bool <0 (0x0)> + [5] #207.1.1.num.bool <0 (0x0)> + [6] #204.1.1.num.bool <0 (0x0)> + [7] #201.1.1.num.bool <1 (0x1)> + [8] #198.1.1.num.bool <0 (0x0)> + [9] #195.1.1.num.bool <0 (0x0)> + [10] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x61, type 9, 98[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x62, size 3, "foo"> + [1] #222.1.1.num.bool <0 (0x0)> + [2] #219.1.1.num.bool <0 (0x0)> + [3] #216.1.1.num.bool <1 (0x1)> + [4] #213.1.1.num.bool <0 (0x0)> + [5] #210.1.1.num.bool <0 (0x0)> + [6] #207.1.1.num.bool <0 (0x0)> + [7] #204.1.1.num.bool <0 (0x0)> + [8] #201.1.1.num.bool <1 (0x1)> + [9] #198.1.1.num.bool <0 (0x0)> + [10] #195.1.1.num.bool <0 (0x0)> + [11] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x65, type 7, 102[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x66, size 3, "foo"> + [1] #223.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x62, size 3, "foo"> + [2] #222.1.1.num.bool <0 (0x0)> + [3] #219.1.1.num.bool <0 (0x0)> + [4] #216.1.1.num.bool <1 (0x1)> + [5] #213.1.1.num.bool <0 (0x0)> + [6] #210.1.1.num.bool <0 (0x0)> + [7] #207.1.1.num.bool <0 (0x0)> + [8] #204.1.1.num.bool <0 (0x0)> + [9] #201.1.1.num.bool <1 (0x1)> + [10] #198.1.1.num.bool <0 (0x0)> + [11] #195.1.1.num.bool <0 (0x0)> + [12] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x69, type 8, 106[2] +GC: --#224.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#223.1.1.mem.ref.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.bool <0 (0x0)> + [1] #222.1.1.num.bool <0 (0x0)> + [2] #219.1.1.num.bool <0 (0x0)> + [3] #216.1.1.num.bool <1 (0x1)> + [4] #213.1.1.num.bool <0 (0x0)> + [5] #210.1.1.num.bool <0 (0x0)> + [6] #207.1.1.num.bool <0 (0x0)> + [7] #204.1.1.num.bool <0 (0x0)> + [8] #201.1.1.num.bool <1 (0x1)> + [9] #198.1.1.num.bool <0 (0x0)> + [10] #195.1.1.num.bool <0 (0x0)> + [11] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x6c, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #225.1.1.num.bool <0 (0x0)> + [2] #222.1.1.num.bool <0 (0x0)> + [3] #219.1.1.num.bool <0 (0x0)> + [4] #216.1.1.num.bool <1 (0x1)> + [5] #213.1.1.num.bool <0 (0x0)> + [6] #210.1.1.num.bool <0 (0x0)> + [7] #207.1.1.num.bool <0 (0x0)> + [8] #204.1.1.num.bool <0 (0x0)> + [9] #201.1.1.num.bool <1 (0x1)> + [10] #198.1.1.num.bool <0 (0x0)> + [11] #195.1.1.num.bool <0 (0x0)> + [12] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x6d, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #225.1.1.num.bool <0 (0x0)> + [3] #222.1.1.num.bool <0 (0x0)> + [4] #219.1.1.num.bool <0 (0x0)> + [5] #216.1.1.num.bool <1 (0x1)> + [6] #213.1.1.num.bool <0 (0x0)> + [7] #210.1.1.num.bool <0 (0x0)> + [8] #207.1.1.num.bool <0 (0x0)> + [9] #204.1.1.num.bool <0 (0x0)> + [10] #201.1.1.num.bool <1 (0x1)> + [11] #198.1.1.num.bool <0 (0x0)> + [12] #195.1.1.num.bool <0 (0x0)> + [13] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x6e, type 8, 111[2] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.bool <1 (0x1)> + [1] #225.1.1.num.bool <0 (0x0)> + [2] #222.1.1.num.bool <0 (0x0)> + [3] #219.1.1.num.bool <0 (0x0)> + [4] #216.1.1.num.bool <1 (0x1)> + [5] #213.1.1.num.bool <0 (0x0)> + [6] #210.1.1.num.bool <0 (0x0)> + [7] #207.1.1.num.bool <0 (0x0)> + [8] #204.1.1.num.bool <0 (0x0)> + [9] #201.1.1.num.bool <1 (0x1)> + [10] #198.1.1.num.bool <0 (0x0)> + [11] #195.1.1.num.bool <0 (0x0)> + [12] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x71, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #226.1.1.num.bool <1 (0x1)> + [2] #225.1.1.num.bool <0 (0x0)> + [3] #222.1.1.num.bool <0 (0x0)> + [4] #219.1.1.num.bool <0 (0x0)> + [5] #216.1.1.num.bool <1 (0x1)> + [6] #213.1.1.num.bool <0 (0x0)> + [7] #210.1.1.num.bool <0 (0x0)> + [8] #207.1.1.num.bool <0 (0x0)> + [9] #204.1.1.num.bool <0 (0x0)> + [10] #201.1.1.num.bool <1 (0x1)> + [11] #198.1.1.num.bool <0 (0x0)> + [12] #195.1.1.num.bool <0 (0x0)> + [13] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x72, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #226.1.1.num.bool <1 (0x1)> + [3] #225.1.1.num.bool <0 (0x0)> + [4] #222.1.1.num.bool <0 (0x0)> + [5] #219.1.1.num.bool <0 (0x0)> + [6] #216.1.1.num.bool <1 (0x1)> + [7] #213.1.1.num.bool <0 (0x0)> + [8] #210.1.1.num.bool <0 (0x0)> + [9] #207.1.1.num.bool <0 (0x0)> + [10] #204.1.1.num.bool <0 (0x0)> + [11] #201.1.1.num.bool <1 (0x1)> + [12] #198.1.1.num.bool <0 (0x0)> + [13] #195.1.1.num.bool <0 (0x0)> + [14] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x73, type 8, 116[2] +GC: --#227.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.bool <0 (0x0)> + [1] #226.1.1.num.bool <1 (0x1)> + [2] #225.1.1.num.bool <0 (0x0)> + [3] #222.1.1.num.bool <0 (0x0)> + [4] #219.1.1.num.bool <0 (0x0)> + [5] #216.1.1.num.bool <1 (0x1)> + [6] #213.1.1.num.bool <0 (0x0)> + [7] #210.1.1.num.bool <0 (0x0)> + [8] #207.1.1.num.bool <0 (0x0)> + [9] #204.1.1.num.bool <0 (0x0)> + [10] #201.1.1.num.bool <1 (0x1)> + [11] #198.1.1.num.bool <0 (0x0)> + [12] #195.1.1.num.bool <0 (0x0)> + [13] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x76, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <5 (0x5)> + [1] #228.1.1.num.bool <0 (0x0)> + [2] #226.1.1.num.bool <1 (0x1)> + [3] #225.1.1.num.bool <0 (0x0)> + [4] #222.1.1.num.bool <0 (0x0)> + [5] #219.1.1.num.bool <0 (0x0)> + [6] #216.1.1.num.bool <1 (0x1)> + [7] #213.1.1.num.bool <0 (0x0)> + [8] #210.1.1.num.bool <0 (0x0)> + [9] #207.1.1.num.bool <0 (0x0)> + [10] #204.1.1.num.bool <0 (0x0)> + [11] #201.1.1.num.bool <1 (0x1)> + [12] #198.1.1.num.bool <0 (0x0)> + [13] #195.1.1.num.bool <0 (0x0)> + [14] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x77, type 7, 120[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x78, size 3, "abc"> + [1] #229.1.1.num.int <5 (0x5)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x7b, type 8, 124[2] +GC: --#230.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +GC: --#229.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.bool <0 (0x0)> + [1] #228.1.1.num.bool <0 (0x0)> + [2] #226.1.1.num.bool <1 (0x1)> + [3] #225.1.1.num.bool <0 (0x0)> + [4] #222.1.1.num.bool <0 (0x0)> + [5] #219.1.1.num.bool <0 (0x0)> + [6] #216.1.1.num.bool <1 (0x1)> + [7] #213.1.1.num.bool <0 (0x0)> + [8] #210.1.1.num.bool <0 (0x0)> + [9] #207.1.1.num.bool <0 (0x0)> + [10] #204.1.1.num.bool <0 (0x0)> + [11] #201.1.1.num.bool <1 (0x1)> + [12] #198.1.1.num.bool <0 (0x0)> + [13] #195.1.1.num.bool <0 (0x0)> + [14] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x7e, type 6, 127[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x7f, size 3> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x82, type 6, 131[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x83, size 3> + [1] #232.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x7f, size 3> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x86, type 8, 135[2] +GC: --#233.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +GC: --#232.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <1 (0x1)> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x89, type 9, 138[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x8f, type 8, 144[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x91, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x92, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.num.int <2 (0x2)> + [1] #236.1.1.num.int <1 (0x1)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [4] #234.1.1.num.bool <1 (0x1)> + [5] #231.1.1.num.bool <0 (0x0)> + [6] #228.1.1.num.bool <0 (0x0)> + [7] #226.1.1.num.bool <1 (0x1)> + [8] #225.1.1.num.bool <0 (0x0)> + [9] #222.1.1.num.bool <0 (0x0)> + [10] #219.1.1.num.bool <0 (0x0)> + [11] #216.1.1.num.bool <1 (0x1)> + [12] #213.1.1.num.bool <0 (0x0)> + [13] #210.1.1.num.bool <0 (0x0)> + [14] #207.1.1.num.bool <0 (0x0)> + [15] #204.1.1.num.bool <0 (0x0)> + [16] #201.1.1.num.bool <1 (0x1)> + [17] #198.1.1.num.bool <0 (0x0)> + [18] #195.1.1.num.bool <0 (0x0)> + [19] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x93, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <3 (0x3)> + [1] #237.1.1.num.int <2 (0x2)> + [2] #236.1.1.num.int <1 (0x1)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [5] #234.1.1.num.bool <1 (0x1)> + [6] #231.1.1.num.bool <0 (0x0)> + [7] #228.1.1.num.bool <0 (0x0)> + [8] #226.1.1.num.bool <1 (0x1)> + [9] #225.1.1.num.bool <0 (0x0)> + [10] #222.1.1.num.bool <0 (0x0)> + [11] #219.1.1.num.bool <0 (0x0)> + [12] #216.1.1.num.bool <1 (0x1)> + [13] #213.1.1.num.bool <0 (0x0)> + [14] #210.1.1.num.bool <0 (0x0)> + [15] #207.1.1.num.bool <0 (0x0)> + [16] #204.1.1.num.bool <0 (0x0)> + [17] #201.1.1.num.bool <1 (0x1)> + [18] #198.1.1.num.bool <0 (0x0)> + [19] #195.1.1.num.bool <0 (0x0)> + [20] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x94, type 8, 149[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.array + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x96, type 8, 151[3] +GC: ++#235.1.1.mem.ref.ro +GC: ++#239.1.1.array +GC: --#239.1.2.array +GC: --#235.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <1 (0x1)> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x9a, type 9, 155[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xa0, type 8, 161[5] +GC: ++#239.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.2.array + [1] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xa6, type 8, 167[3] +GC: ++#240.1.1.mem.ref.ro +GC: ++#239.1.2.array +GC: --#239.1.3.array +GC: --#240.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <1 (0x1)> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xaa, type 8, 171[5] +GC: ++#239.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.3.array + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xb0, type 8, 177[5] +GC: ++#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.4.array + [1] #239.1.4.array + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xb6, type 8, 183[2] +GC: --#239.1.4.array +GC: --#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.1.1.num.bool <1 (0x1)> + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xb9, type 8, 186[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #241.1.1.num.bool <1 (0x1)> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xbb, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #241.1.1.num.bool <1 (0x1)> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xbc, type 8, 189[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.array + [1] #241.1.1.num.bool <1 (0x1)> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xbe, type 8, 191[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #243.1.1.array + [2] #241.1.1.num.bool <1 (0x1)> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xc0, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #243.1.1.array + [3] #241.1.1.num.bool <1 (0x1)> + [4] #234.1.1.num.bool <1 (0x1)> + [5] #231.1.1.num.bool <0 (0x0)> + [6] #228.1.1.num.bool <0 (0x0)> + [7] #226.1.1.num.bool <1 (0x1)> + [8] #225.1.1.num.bool <0 (0x0)> + [9] #222.1.1.num.bool <0 (0x0)> + [10] #219.1.1.num.bool <0 (0x0)> + [11] #216.1.1.num.bool <1 (0x1)> + [12] #213.1.1.num.bool <0 (0x0)> + [13] #210.1.1.num.bool <0 (0x0)> + [14] #207.1.1.num.bool <0 (0x0)> + [15] #204.1.1.num.bool <0 (0x0)> + [16] #201.1.1.num.bool <1 (0x1)> + [17] #198.1.1.num.bool <0 (0x0)> + [18] #195.1.1.num.bool <0 (0x0)> + [19] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xc1, type 8, 194[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.array + [1] #243.1.1.array + [2] #241.1.1.num.bool <1 (0x1)> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xc3, type 8, 196[2] +GC: --#245.1.1.array +GC: --#244.1.1.num.int +GC: --#243.1.1.array +GC: --#242.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.num.bool <0 (0x0)> + [1] #241.1.1.num.bool <1 (0x1)> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> diff --git a/tests/0042_ne/basic.log.ref b/tests/0042_ne/basic.log.ref new file mode 100644 index 0000000..8fd1845 --- /dev/null +++ b/tests/0042_ne/basic.log.ref @@ -0,0 +1,1091 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <5 (0x5)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abd"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc1"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "a"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "foo"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.bool <1 (0x1)> + [20] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.2.array +GC: --#xxxx.1.3.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.array + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.4.array + [1] #xxxx.1.4.array + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.4.array +GC: --#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.array + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> diff --git a/tests/0042_ne/code.log.ref b/tests/0042_ne/code.log.ref new file mode 100644 index 0000000..963059d --- /dev/null +++ b/tests/0042_ne/code.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 6e 65 ne + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f word 28 6e 65 ne + 3 7 0x00012 int 61 6 + 8 0x00013 int 51 5 + 9 0x00014 word 28 6e 65 ne + 4 10 0x00017 str 37 61 62 63 "abc" + 11 0x0001b str 37 61 62 63 "abc" + 12 0x0001f word 28 6e 65 ne + 5 13 0x00022 str 37 61 62 63 "abc" + 14 0x00026 str 37 61 62 64 "abd" + 15 0x0002a word 28 6e 65 ne + 6 16 0x0002d str 37 61 62 63 "abc" + 17 0x00031 str 47 61 62 63 31 "abc1" + 18 0x00036 word 28 6e 65 ne + 7 19 0x00039 str 37 61 62 64 "abd" + 20 0x0003d str 37 61 62 63 "abc" + 21 0x00041 word 28 6e 65 ne + 8 22 0x00044 str 47 61 62 63 31 "abc1" + 23 0x00049 str 37 61 62 63 "abc" + 24 0x0004d word 28 6e 65 ne + 9 25 0x00050 str 07 "" + 26 0x00051 str 07 "" + 27 0x00052 word 28 6e 65 ne + 10 28 0x00055 str 07 "" + 29 0x00056 str 17 61 "a" + 30 0x00058 word 28 6e 65 ne + 11 31 0x0005b str 17 61 "a" + 32 0x0005d str 07 "" + 33 0x0005e word 28 6e 65 ne + 12 34 0x00061 ref 39 66 6f 6f /foo + 35 0x00065 str 37 66 6f 6f "foo" + 36 0x00069 word 28 6e 65 ne + 13 37 0x0006c nil 00 nil + 38 0x0006d nil 00 nil + 39 0x0006e word 28 6e 65 ne + 14 40 0x00071 nil 00 nil + 41 0x00072 int 31 3 + 42 0x00073 word 28 6e 65 ne + 15 43 0x00076 int 51 5 + 44 0x00077 str 37 61 62 63 "abc" + 45 0x0007b word 28 6e 65 ne + 16 46 0x0007e code 36 { + 47 0x0007f int 81 0a 10 + 48 0x00081 prim 13 } + 49 0x00082 code 36 { + 50 0x00083 int 81 0a 10 + 51 0x00085 prim 13 } + 52 0x00086 word 28 6e 65 ne + 17 53 0x00089 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0008f word 18 5b [ + 55 0x00091 int 11 1 + 56 0x00092 int 21 2 + 57 0x00093 int 31 3 + 58 0x00094 word 18 5d ] + 59 0x00096 word 38 64 65 66 def + 18 60 0x0009a ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x000a0 word 58 66 6f 6f 5f 31 foo_1 + 62 0x000a6 word 38 64 65 66 def + 19 63 0x000aa word 58 66 6f 6f 5f 31 foo_1 + 64 0x000b0 word 58 66 6f 6f 5f 32 foo_2 + 65 0x000b6 word 28 6e 65 ne + 20 66 0x000b9 word 18 5b [ + 67 0x000bb int 61 6 + 68 0x000bc word 18 5d ] + 69 0x000be word 18 5b [ + 70 0x000c0 int 61 6 + 71 0x000c1 word 18 5d ] + 72 0x000c3 word 28 6e 65 ne diff --git a/tests/0042_ne/code1.log.ref b/tests/0042_ne/code1.log.ref new file mode 100644 index 0000000..9490894 --- /dev/null +++ b/tests/0042_ne/code1.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 6e 65 ne + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f xref 54 ne + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 xref 84 08 ne + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 xref 84 0f ne + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 xref 84 16 ne + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 xref 84 1f ne + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f xref 84 25 ne + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 xref 84 2b ne + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 xref 84 2f ne + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e xref 84 34 ne + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 xref 84 38 ne + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c xref 84 42 ne + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 xref 84 46 ne + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 xref 84 4a ne + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 xref 84 4f ne + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 xref 84 59 ne + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b word 18 5b [ + 55 0x0006d int 11 1 + 56 0x0006e int 21 2 + 57 0x0006f int 31 3 + 58 0x00070 word 18 5d ] + 59 0x00072 word 38 64 65 66 def + 18 60 0x00076 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x0007c word 58 66 6f 6f 5f 31 foo_1 + 62 0x00082 xref 84 10 def + 19 63 0x00084 xref 84 08 foo_1 + 64 0x00086 word 58 66 6f 6f 5f 32 foo_2 + 65 0x0008c xref 84 82 ne + 20 66 0x0008e word 18 5b [ + 67 0x00090 int 61 6 + 68 0x00091 word 18 5d ] + 69 0x00093 word 18 5b [ + 70 0x00095 int 61 6 + 71 0x00096 word 18 5d ] + 72 0x00098 xref 84 8e ne diff --git a/tests/0042_ne/code2.log.ref b/tests/0042_ne/code2.log.ref new file mode 100644 index 0000000..bd788a2 --- /dev/null +++ b/tests/0042_ne/code2.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a prim 83 2e ne + 2 4 0x0000c int 51 5 + 5 0x0000d int 61 6 + 6 0x0000e prim 83 2e ne + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 prim 83 2e ne + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 prim 83 2e ne + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 prim 83 2e ne + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 prim 83 2e ne + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f prim 83 2e ne + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 prim 83 2e ne + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 prim 83 2e ne + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e prim 83 2e ne + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 prim 83 2e ne + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c prim 83 2e ne + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 prim 83 2e ne + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 prim 83 2e ne + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 prim 83 2e ne + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 prim 83 2e ne + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b prim 23 [ + 55 0x0006c int 11 1 + 56 0x0006d int 21 2 + 57 0x0006e int 31 3 + 58 0x0006f prim 33 ] + 59 0x00070 prim 63 def + 18 60 0x00071 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x00077 word 58 66 6f 6f 5f 31 foo_1 + 62 0x0007d prim 63 def + 19 63 0x0007e xref 74 foo_1 + 64 0x0007f word 58 66 6f 6f 5f 32 foo_2 + 65 0x00085 prim 83 2e ne + 20 66 0x00087 prim 23 [ + 67 0x00088 int 61 6 + 68 0x00089 prim 33 ] + 69 0x0008a prim 23 [ + 70 0x0008b int 61 6 + 71 0x0008c prim 33 ] + 72 0x0008d prim 83 2e ne diff --git a/tests/0042_ne/main.gs b/tests/0042_ne/main.gs new file mode 100644 index 0000000..8c8058b --- /dev/null +++ b/tests/0042_ne/main.gs @@ -0,0 +1,20 @@ +5 5 ne +5 6 ne +6 5 ne +"abc" "abc" ne +"abc" "abd" ne +"abc" "abc1" ne +"abd" "abc" ne +"abc1" "abc" ne +"" "" ne +"" "a" ne +"a" "" ne +/foo "foo" ne +nil nil ne +nil 3 ne +5 "abc" ne +{ 10 } { 10 } ne +/foo_1 [ 1 2 3 ] def +/foo_2 foo_1 def +foo_1 foo_2 ne +[ 6 ] [ 6 ] ne diff --git a/tests/0042_ne/mem.log.ref b/tests/0042_ne/mem.log.ref new file mode 100644 index 0000000..ba48cf9 --- /dev/null +++ b/tests/0042_ne/mem.log.ref @@ -0,0 +1,814 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 200] + 8: 239.01, 0x001d6b3c[ 20] + 9: 0.00, 0x001d6b58[ 44] + 10: 188.01, 0x001d6b8c[ 56] + 11: 192.01, 0x001d6bcc[ 72] + 12: 187.01, 0x001d6c1c[ 144] + 13: 0.00, 0x001d6cb4[14848844] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> => #239.1.2.array + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> => #239.1.2.array + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.3.mem.ro + 75 51 12 a9 42 7a ad 60 51 51 28 6e 65 51 61 28 uQ..Bz.`QQ(neQa( + 6e 65 61 51 28 6e 65 37 61 62 63 37 61 62 63 28 neaQ(ne7abc7abc( + 6e 65 37 61 62 63 37 61 62 64 28 6e 65 37 61 62 ne7abc7abd(ne7ab + 63 47 61 62 63 31 28 6e 65 37 61 62 64 37 61 62 cGabc1(ne7abd7ab + 63 28 6e 65 47 61 62 63 31 37 61 62 63 28 6e 65 c(neGabc17abc(ne + 07 07 28 6e 65 07 17 61 28 6e 65 17 61 07 28 6e ..(ne..a(ne.a.(n + 65 39 66 6f 6f 37 66 6f 6f 28 6e 65 00 00 28 6e e9foo7foo(ne..(n + 65 00 31 28 6e 65 51 37 61 62 63 28 6e 65 36 81 e.1(neQ7abc(ne6. + 0a 13 36 81 0a 13 28 6e 65 59 66 6f 6f 5f 31 18 ..6...(neYfoo_1. + 5b 11 21 31 18 5d 38 64 65 66 59 66 6f 6f 5f 32 [.!1.]8defYfoo_2 + 58 66 6f 6f 5f 31 38 64 65 66 58 66 6f 6f 5f 31 Xfoo_18defXfoo_1 + 58 66 6f 6f 5f 32 28 6e 65 18 5b 61 18 5d 18 5b Xfoo_2(ne.[a.].[ + 61 18 5d 28 6e 65 a.](ne + #187.1.1.array + [ 0] #191.1.1.num.bool <0 (0x0)> + [ 1] #195.1.1.num.bool <1 (0x1)> + [ 2] #198.1.1.num.bool <1 (0x1)> + [ 3] #201.1.1.num.bool <0 (0x0)> + [ 4] #204.1.1.num.bool <1 (0x1)> + [ 5] #207.1.1.num.bool <1 (0x1)> + [ 6] #210.1.1.num.bool <1 (0x1)> + [ 7] #213.1.1.num.bool <1 (0x1)> + [ 8] #216.1.1.num.bool <0 (0x0)> + [ 9] #219.1.1.num.bool <1 (0x1)> + [10] #222.1.1.num.bool <1 (0x1)> + [11] #225.1.1.num.bool <1 (0x1)> + [12] #226.1.1.num.bool <0 (0x0)> + [13] #228.1.1.num.bool <1 (0x1)> + [14] #231.1.1.num.bool <1 (0x1)> + [15] #234.1.1.num.bool <0 (0x0)> + [16] #241.1.1.num.bool <0 (0x0)> + [17] #246.1.1.num.bool <1 (0x1)> + #188.1.1.ctx.func + type 17, ip 0xc6 (0xc6) + code #186.1.3.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.bool <0 (0x0)> + #192.1.1.array + #195.1.1.num.bool <1 (0x1)> + #198.1.1.num.bool <1 (0x1)> + #201.1.1.num.bool <0 (0x0)> + #204.1.1.num.bool <1 (0x1)> + #207.1.1.num.bool <1 (0x1)> + #210.1.1.num.bool <1 (0x1)> + #213.1.1.num.bool <1 (0x1)> + #216.1.1.num.bool <0 (0x0)> + #219.1.1.num.bool <1 (0x1)> + #222.1.1.num.bool <1 (0x1)> + #225.1.1.num.bool <1 (0x1)> + #226.1.1.num.bool <0 (0x0)> + #228.1.1.num.bool <1 (0x1)> + #231.1.1.num.bool <1 (0x1)> + #234.1.1.num.bool <0 (0x0)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #236.1.1.num.int <1 (0x1)> + #237.1.1.num.int <2 (0x2)> + #238.1.1.num.int <3 (0x3)> + #239.1.2.array + [ 0] #236.1.1.num.int <1 (0x1)> + [ 1] #237.1.1.num.int <2 (0x2)> + [ 2] #238.1.1.num.int <3 (0x3)> + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #241.1.1.num.bool <0 (0x0)> + #246.1.1.num.bool <1 (0x1)> diff --git a/tests/0042_ne/screen.log.ref b/tests/0042_ne/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0042_ne/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0042_ne/trace.log.ref b/tests/0042_ne/trace.log.ref new file mode 100644 index 0000000..972b8df --- /dev/null +++ b/tests/0042_ne/trace.log.ref @@ -0,0 +1,1160 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <5 (0x5)> +IP: #186:0x9, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <5 (0x5)> + [1] #189.1.1.num.int <5 (0x5)> +IP: #186:0xa, type 8, 11[2] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xd, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <5 (0x5)> + [1] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xe, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <6 (0x6)> + [1] #193.1.1.num.int <5 (0x5)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xf, type 8, 16[2] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x12, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <6 (0x6)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x13, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <5 (0x5)> + [1] #196.1.1.num.int <6 (0x6)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x14, type 8, 21[2] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x17, type 7, 24[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x18, size 3, "abc"> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x1b, type 7, 28[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x1c, size 3, "abc"> + [1] #199.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x18, size 3, "abc"> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x1f, type 8, 32[2] +GC: --#200.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#199.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x22, type 7, 35[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x23, size 3, "abc"> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x26, type 7, 39[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x27, size 3, "abd"> + [1] #202.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x23, size 3, "abc"> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x2a, type 8, 43[2] +GC: --#203.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#202.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.bool <1 (0x1)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x2d, type 7, 46[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x2e, size 3, "abc"> + [1] #204.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x31, type 7, 50[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x32, size 4, "abc1"> + [1] #205.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x2e, size 3, "abc"> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x36, type 8, 55[2] +GC: --#206.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#205.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.bool <1 (0x1)> + [1] #204.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x39, type 7, 58[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x3a, size 3, "abd"> + [1] #207.1.1.num.bool <1 (0x1)> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x3d, type 7, 62[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3e, size 3, "abc"> + [1] #208.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3a, size 3, "abd"> + [2] #207.1.1.num.bool <1 (0x1)> + [3] #204.1.1.num.bool <1 (0x1)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x41, type 8, 66[2] +GC: --#209.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#208.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.bool <1 (0x1)> + [1] #207.1.1.num.bool <1 (0x1)> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x44, type 7, 69[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x45, size 4, "abc1"> + [1] #210.1.1.num.bool <1 (0x1)> + [2] #207.1.1.num.bool <1 (0x1)> + [3] #204.1.1.num.bool <1 (0x1)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x49, type 7, 74[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x4a, size 3, "abc"> + [1] #211.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x45, size 4, "abc1"> + [2] #210.1.1.num.bool <1 (0x1)> + [3] #207.1.1.num.bool <1 (0x1)> + [4] #204.1.1.num.bool <1 (0x1)> + [5] #201.1.1.num.bool <0 (0x0)> + [6] #198.1.1.num.bool <1 (0x1)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x4d, type 8, 78[2] +GC: --#212.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#211.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.bool <1 (0x1)> + [1] #210.1.1.num.bool <1 (0x1)> + [2] #207.1.1.num.bool <1 (0x1)> + [3] #204.1.1.num.bool <1 (0x1)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x50, type 7, 81[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x51, size 0, ""> + [1] #213.1.1.num.bool <1 (0x1)> + [2] #210.1.1.num.bool <1 (0x1)> + [3] #207.1.1.num.bool <1 (0x1)> + [4] #204.1.1.num.bool <1 (0x1)> + [5] #201.1.1.num.bool <0 (0x0)> + [6] #198.1.1.num.bool <1 (0x1)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x51, type 7, 82[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x52, size 0, ""> + [1] #214.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x51, size 0, ""> + [2] #213.1.1.num.bool <1 (0x1)> + [3] #210.1.1.num.bool <1 (0x1)> + [4] #207.1.1.num.bool <1 (0x1)> + [5] #204.1.1.num.bool <1 (0x1)> + [6] #201.1.1.num.bool <0 (0x0)> + [7] #198.1.1.num.bool <1 (0x1)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x52, type 8, 83[2] +GC: --#215.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#214.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.bool <0 (0x0)> + [1] #213.1.1.num.bool <1 (0x1)> + [2] #210.1.1.num.bool <1 (0x1)> + [3] #207.1.1.num.bool <1 (0x1)> + [4] #204.1.1.num.bool <1 (0x1)> + [5] #201.1.1.num.bool <0 (0x0)> + [6] #198.1.1.num.bool <1 (0x1)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x55, type 7, 86[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x56, size 0, ""> + [1] #216.1.1.num.bool <0 (0x0)> + [2] #213.1.1.num.bool <1 (0x1)> + [3] #210.1.1.num.bool <1 (0x1)> + [4] #207.1.1.num.bool <1 (0x1)> + [5] #204.1.1.num.bool <1 (0x1)> + [6] #201.1.1.num.bool <0 (0x0)> + [7] #198.1.1.num.bool <1 (0x1)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x56, type 7, 87[1] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x57, size 1, "a"> + [1] #217.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x56, size 0, ""> + [2] #216.1.1.num.bool <0 (0x0)> + [3] #213.1.1.num.bool <1 (0x1)> + [4] #210.1.1.num.bool <1 (0x1)> + [5] #207.1.1.num.bool <1 (0x1)> + [6] #204.1.1.num.bool <1 (0x1)> + [7] #201.1.1.num.bool <0 (0x0)> + [8] #198.1.1.num.bool <1 (0x1)> + [9] #195.1.1.num.bool <1 (0x1)> + [10] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x58, type 8, 89[2] +GC: --#218.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#217.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.bool <1 (0x1)> + [1] #216.1.1.num.bool <0 (0x0)> + [2] #213.1.1.num.bool <1 (0x1)> + [3] #210.1.1.num.bool <1 (0x1)> + [4] #207.1.1.num.bool <1 (0x1)> + [5] #204.1.1.num.bool <1 (0x1)> + [6] #201.1.1.num.bool <0 (0x0)> + [7] #198.1.1.num.bool <1 (0x1)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x5b, type 7, 92[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x5c, size 1, "a"> + [1] #219.1.1.num.bool <1 (0x1)> + [2] #216.1.1.num.bool <0 (0x0)> + [3] #213.1.1.num.bool <1 (0x1)> + [4] #210.1.1.num.bool <1 (0x1)> + [5] #207.1.1.num.bool <1 (0x1)> + [6] #204.1.1.num.bool <1 (0x1)> + [7] #201.1.1.num.bool <0 (0x0)> + [8] #198.1.1.num.bool <1 (0x1)> + [9] #195.1.1.num.bool <1 (0x1)> + [10] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x5d, type 7, 94[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5e, size 0, ""> + [1] #220.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5c, size 1, "a"> + [2] #219.1.1.num.bool <1 (0x1)> + [3] #216.1.1.num.bool <0 (0x0)> + [4] #213.1.1.num.bool <1 (0x1)> + [5] #210.1.1.num.bool <1 (0x1)> + [6] #207.1.1.num.bool <1 (0x1)> + [7] #204.1.1.num.bool <1 (0x1)> + [8] #201.1.1.num.bool <0 (0x0)> + [9] #198.1.1.num.bool <1 (0x1)> + [10] #195.1.1.num.bool <1 (0x1)> + [11] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x5e, type 8, 95[2] +GC: --#221.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#220.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.bool <1 (0x1)> + [1] #219.1.1.num.bool <1 (0x1)> + [2] #216.1.1.num.bool <0 (0x0)> + [3] #213.1.1.num.bool <1 (0x1)> + [4] #210.1.1.num.bool <1 (0x1)> + [5] #207.1.1.num.bool <1 (0x1)> + [6] #204.1.1.num.bool <1 (0x1)> + [7] #201.1.1.num.bool <0 (0x0)> + [8] #198.1.1.num.bool <1 (0x1)> + [9] #195.1.1.num.bool <1 (0x1)> + [10] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x61, type 9, 98[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x62, size 3, "foo"> + [1] #222.1.1.num.bool <1 (0x1)> + [2] #219.1.1.num.bool <1 (0x1)> + [3] #216.1.1.num.bool <0 (0x0)> + [4] #213.1.1.num.bool <1 (0x1)> + [5] #210.1.1.num.bool <1 (0x1)> + [6] #207.1.1.num.bool <1 (0x1)> + [7] #204.1.1.num.bool <1 (0x1)> + [8] #201.1.1.num.bool <0 (0x0)> + [9] #198.1.1.num.bool <1 (0x1)> + [10] #195.1.1.num.bool <1 (0x1)> + [11] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x65, type 7, 102[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x66, size 3, "foo"> + [1] #223.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x62, size 3, "foo"> + [2] #222.1.1.num.bool <1 (0x1)> + [3] #219.1.1.num.bool <1 (0x1)> + [4] #216.1.1.num.bool <0 (0x0)> + [5] #213.1.1.num.bool <1 (0x1)> + [6] #210.1.1.num.bool <1 (0x1)> + [7] #207.1.1.num.bool <1 (0x1)> + [8] #204.1.1.num.bool <1 (0x1)> + [9] #201.1.1.num.bool <0 (0x0)> + [10] #198.1.1.num.bool <1 (0x1)> + [11] #195.1.1.num.bool <1 (0x1)> + [12] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x69, type 8, 106[2] +GC: --#224.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#223.1.1.mem.ref.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.bool <1 (0x1)> + [1] #222.1.1.num.bool <1 (0x1)> + [2] #219.1.1.num.bool <1 (0x1)> + [3] #216.1.1.num.bool <0 (0x0)> + [4] #213.1.1.num.bool <1 (0x1)> + [5] #210.1.1.num.bool <1 (0x1)> + [6] #207.1.1.num.bool <1 (0x1)> + [7] #204.1.1.num.bool <1 (0x1)> + [8] #201.1.1.num.bool <0 (0x0)> + [9] #198.1.1.num.bool <1 (0x1)> + [10] #195.1.1.num.bool <1 (0x1)> + [11] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x6c, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #225.1.1.num.bool <1 (0x1)> + [2] #222.1.1.num.bool <1 (0x1)> + [3] #219.1.1.num.bool <1 (0x1)> + [4] #216.1.1.num.bool <0 (0x0)> + [5] #213.1.1.num.bool <1 (0x1)> + [6] #210.1.1.num.bool <1 (0x1)> + [7] #207.1.1.num.bool <1 (0x1)> + [8] #204.1.1.num.bool <1 (0x1)> + [9] #201.1.1.num.bool <0 (0x0)> + [10] #198.1.1.num.bool <1 (0x1)> + [11] #195.1.1.num.bool <1 (0x1)> + [12] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x6d, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #225.1.1.num.bool <1 (0x1)> + [3] #222.1.1.num.bool <1 (0x1)> + [4] #219.1.1.num.bool <1 (0x1)> + [5] #216.1.1.num.bool <0 (0x0)> + [6] #213.1.1.num.bool <1 (0x1)> + [7] #210.1.1.num.bool <1 (0x1)> + [8] #207.1.1.num.bool <1 (0x1)> + [9] #204.1.1.num.bool <1 (0x1)> + [10] #201.1.1.num.bool <0 (0x0)> + [11] #198.1.1.num.bool <1 (0x1)> + [12] #195.1.1.num.bool <1 (0x1)> + [13] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x6e, type 8, 111[2] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.bool <0 (0x0)> + [1] #225.1.1.num.bool <1 (0x1)> + [2] #222.1.1.num.bool <1 (0x1)> + [3] #219.1.1.num.bool <1 (0x1)> + [4] #216.1.1.num.bool <0 (0x0)> + [5] #213.1.1.num.bool <1 (0x1)> + [6] #210.1.1.num.bool <1 (0x1)> + [7] #207.1.1.num.bool <1 (0x1)> + [8] #204.1.1.num.bool <1 (0x1)> + [9] #201.1.1.num.bool <0 (0x0)> + [10] #198.1.1.num.bool <1 (0x1)> + [11] #195.1.1.num.bool <1 (0x1)> + [12] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x71, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #226.1.1.num.bool <0 (0x0)> + [2] #225.1.1.num.bool <1 (0x1)> + [3] #222.1.1.num.bool <1 (0x1)> + [4] #219.1.1.num.bool <1 (0x1)> + [5] #216.1.1.num.bool <0 (0x0)> + [6] #213.1.1.num.bool <1 (0x1)> + [7] #210.1.1.num.bool <1 (0x1)> + [8] #207.1.1.num.bool <1 (0x1)> + [9] #204.1.1.num.bool <1 (0x1)> + [10] #201.1.1.num.bool <0 (0x0)> + [11] #198.1.1.num.bool <1 (0x1)> + [12] #195.1.1.num.bool <1 (0x1)> + [13] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x72, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #226.1.1.num.bool <0 (0x0)> + [3] #225.1.1.num.bool <1 (0x1)> + [4] #222.1.1.num.bool <1 (0x1)> + [5] #219.1.1.num.bool <1 (0x1)> + [6] #216.1.1.num.bool <0 (0x0)> + [7] #213.1.1.num.bool <1 (0x1)> + [8] #210.1.1.num.bool <1 (0x1)> + [9] #207.1.1.num.bool <1 (0x1)> + [10] #204.1.1.num.bool <1 (0x1)> + [11] #201.1.1.num.bool <0 (0x0)> + [12] #198.1.1.num.bool <1 (0x1)> + [13] #195.1.1.num.bool <1 (0x1)> + [14] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x73, type 8, 116[2] +GC: --#227.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.bool <1 (0x1)> + [1] #226.1.1.num.bool <0 (0x0)> + [2] #225.1.1.num.bool <1 (0x1)> + [3] #222.1.1.num.bool <1 (0x1)> + [4] #219.1.1.num.bool <1 (0x1)> + [5] #216.1.1.num.bool <0 (0x0)> + [6] #213.1.1.num.bool <1 (0x1)> + [7] #210.1.1.num.bool <1 (0x1)> + [8] #207.1.1.num.bool <1 (0x1)> + [9] #204.1.1.num.bool <1 (0x1)> + [10] #201.1.1.num.bool <0 (0x0)> + [11] #198.1.1.num.bool <1 (0x1)> + [12] #195.1.1.num.bool <1 (0x1)> + [13] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x76, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <5 (0x5)> + [1] #228.1.1.num.bool <1 (0x1)> + [2] #226.1.1.num.bool <0 (0x0)> + [3] #225.1.1.num.bool <1 (0x1)> + [4] #222.1.1.num.bool <1 (0x1)> + [5] #219.1.1.num.bool <1 (0x1)> + [6] #216.1.1.num.bool <0 (0x0)> + [7] #213.1.1.num.bool <1 (0x1)> + [8] #210.1.1.num.bool <1 (0x1)> + [9] #207.1.1.num.bool <1 (0x1)> + [10] #204.1.1.num.bool <1 (0x1)> + [11] #201.1.1.num.bool <0 (0x0)> + [12] #198.1.1.num.bool <1 (0x1)> + [13] #195.1.1.num.bool <1 (0x1)> + [14] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x77, type 7, 120[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x78, size 3, "abc"> + [1] #229.1.1.num.int <5 (0x5)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x7b, type 8, 124[2] +GC: --#230.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +GC: --#229.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.bool <1 (0x1)> + [1] #228.1.1.num.bool <1 (0x1)> + [2] #226.1.1.num.bool <0 (0x0)> + [3] #225.1.1.num.bool <1 (0x1)> + [4] #222.1.1.num.bool <1 (0x1)> + [5] #219.1.1.num.bool <1 (0x1)> + [6] #216.1.1.num.bool <0 (0x0)> + [7] #213.1.1.num.bool <1 (0x1)> + [8] #210.1.1.num.bool <1 (0x1)> + [9] #207.1.1.num.bool <1 (0x1)> + [10] #204.1.1.num.bool <1 (0x1)> + [11] #201.1.1.num.bool <0 (0x0)> + [12] #198.1.1.num.bool <1 (0x1)> + [13] #195.1.1.num.bool <1 (0x1)> + [14] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x7e, type 6, 127[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x7f, size 3> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x82, type 6, 131[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x83, size 3> + [1] #232.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x7f, size 3> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x86, type 8, 135[2] +GC: --#233.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +GC: --#232.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <0 (0x0)> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x89, type 9, 138[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x8f, type 8, 144[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x91, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x92, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.num.int <2 (0x2)> + [1] #236.1.1.num.int <1 (0x1)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [4] #234.1.1.num.bool <0 (0x0)> + [5] #231.1.1.num.bool <1 (0x1)> + [6] #228.1.1.num.bool <1 (0x1)> + [7] #226.1.1.num.bool <0 (0x0)> + [8] #225.1.1.num.bool <1 (0x1)> + [9] #222.1.1.num.bool <1 (0x1)> + [10] #219.1.1.num.bool <1 (0x1)> + [11] #216.1.1.num.bool <0 (0x0)> + [12] #213.1.1.num.bool <1 (0x1)> + [13] #210.1.1.num.bool <1 (0x1)> + [14] #207.1.1.num.bool <1 (0x1)> + [15] #204.1.1.num.bool <1 (0x1)> + [16] #201.1.1.num.bool <0 (0x0)> + [17] #198.1.1.num.bool <1 (0x1)> + [18] #195.1.1.num.bool <1 (0x1)> + [19] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x93, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <3 (0x3)> + [1] #237.1.1.num.int <2 (0x2)> + [2] #236.1.1.num.int <1 (0x1)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [5] #234.1.1.num.bool <0 (0x0)> + [6] #231.1.1.num.bool <1 (0x1)> + [7] #228.1.1.num.bool <1 (0x1)> + [8] #226.1.1.num.bool <0 (0x0)> + [9] #225.1.1.num.bool <1 (0x1)> + [10] #222.1.1.num.bool <1 (0x1)> + [11] #219.1.1.num.bool <1 (0x1)> + [12] #216.1.1.num.bool <0 (0x0)> + [13] #213.1.1.num.bool <1 (0x1)> + [14] #210.1.1.num.bool <1 (0x1)> + [15] #207.1.1.num.bool <1 (0x1)> + [16] #204.1.1.num.bool <1 (0x1)> + [17] #201.1.1.num.bool <0 (0x0)> + [18] #198.1.1.num.bool <1 (0x1)> + [19] #195.1.1.num.bool <1 (0x1)> + [20] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x94, type 8, 149[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.array + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x96, type 8, 151[3] +GC: ++#235.1.1.mem.ref.ro +GC: ++#239.1.1.array +GC: --#239.1.2.array +GC: --#235.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <0 (0x0)> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x9a, type 9, 155[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xa0, type 8, 161[5] +GC: ++#239.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.2.array + [1] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xa6, type 8, 167[3] +GC: ++#240.1.1.mem.ref.ro +GC: ++#239.1.2.array +GC: --#239.1.3.array +GC: --#240.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <0 (0x0)> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xaa, type 8, 171[5] +GC: ++#239.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.3.array + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xb0, type 8, 177[5] +GC: ++#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.4.array + [1] #239.1.4.array + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xb6, type 8, 183[2] +GC: --#239.1.4.array +GC: --#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.1.1.num.bool <0 (0x0)> + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xb9, type 8, 186[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #241.1.1.num.bool <0 (0x0)> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xbb, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #241.1.1.num.bool <0 (0x0)> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xbc, type 8, 189[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.array + [1] #241.1.1.num.bool <0 (0x0)> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xbe, type 8, 191[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #243.1.1.array + [2] #241.1.1.num.bool <0 (0x0)> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xc0, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #243.1.1.array + [3] #241.1.1.num.bool <0 (0x0)> + [4] #234.1.1.num.bool <0 (0x0)> + [5] #231.1.1.num.bool <1 (0x1)> + [6] #228.1.1.num.bool <1 (0x1)> + [7] #226.1.1.num.bool <0 (0x0)> + [8] #225.1.1.num.bool <1 (0x1)> + [9] #222.1.1.num.bool <1 (0x1)> + [10] #219.1.1.num.bool <1 (0x1)> + [11] #216.1.1.num.bool <0 (0x0)> + [12] #213.1.1.num.bool <1 (0x1)> + [13] #210.1.1.num.bool <1 (0x1)> + [14] #207.1.1.num.bool <1 (0x1)> + [15] #204.1.1.num.bool <1 (0x1)> + [16] #201.1.1.num.bool <0 (0x0)> + [17] #198.1.1.num.bool <1 (0x1)> + [18] #195.1.1.num.bool <1 (0x1)> + [19] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xc1, type 8, 194[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.array + [1] #243.1.1.array + [2] #241.1.1.num.bool <0 (0x0)> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xc3, type 8, 196[2] +GC: --#245.1.1.array +GC: --#244.1.1.num.int +GC: --#243.1.1.array +GC: --#242.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.num.bool <1 (0x1)> + [1] #241.1.1.num.bool <0 (0x0)> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> diff --git a/tests/0043_gt/basic.log.ref b/tests/0043_gt/basic.log.ref new file mode 100644 index 0000000..cc1bfa1 --- /dev/null +++ b/tests/0043_gt/basic.log.ref @@ -0,0 +1,1091 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <5 (0x5)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abd"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc1"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "a"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "foo"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.bool <0 (0x0)> + [20] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.2.array +GC: --#xxxx.1.3.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.array + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.4.array + [1] #xxxx.1.4.array + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.4.array +GC: --#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.array + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> diff --git a/tests/0043_gt/code.log.ref b/tests/0043_gt/code.log.ref new file mode 100644 index 0000000..5dfab3e --- /dev/null +++ b/tests/0043_gt/code.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 67 74 gt + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f word 28 67 74 gt + 3 7 0x00012 int 61 6 + 8 0x00013 int 51 5 + 9 0x00014 word 28 67 74 gt + 4 10 0x00017 str 37 61 62 63 "abc" + 11 0x0001b str 37 61 62 63 "abc" + 12 0x0001f word 28 67 74 gt + 5 13 0x00022 str 37 61 62 63 "abc" + 14 0x00026 str 37 61 62 64 "abd" + 15 0x0002a word 28 67 74 gt + 6 16 0x0002d str 37 61 62 63 "abc" + 17 0x00031 str 47 61 62 63 31 "abc1" + 18 0x00036 word 28 67 74 gt + 7 19 0x00039 str 37 61 62 64 "abd" + 20 0x0003d str 37 61 62 63 "abc" + 21 0x00041 word 28 67 74 gt + 8 22 0x00044 str 47 61 62 63 31 "abc1" + 23 0x00049 str 37 61 62 63 "abc" + 24 0x0004d word 28 67 74 gt + 9 25 0x00050 str 07 "" + 26 0x00051 str 07 "" + 27 0x00052 word 28 67 74 gt + 10 28 0x00055 str 07 "" + 29 0x00056 str 17 61 "a" + 30 0x00058 word 28 67 74 gt + 11 31 0x0005b str 17 61 "a" + 32 0x0005d str 07 "" + 33 0x0005e word 28 67 74 gt + 12 34 0x00061 ref 39 66 6f 6f /foo + 35 0x00065 str 37 66 6f 6f "foo" + 36 0x00069 word 28 67 74 gt + 13 37 0x0006c nil 00 nil + 38 0x0006d nil 00 nil + 39 0x0006e word 28 67 74 gt + 14 40 0x00071 nil 00 nil + 41 0x00072 int 31 3 + 42 0x00073 word 28 67 74 gt + 15 43 0x00076 int 51 5 + 44 0x00077 str 37 61 62 63 "abc" + 45 0x0007b word 28 67 74 gt + 16 46 0x0007e code 36 { + 47 0x0007f int 81 0a 10 + 48 0x00081 prim 13 } + 49 0x00082 code 36 { + 50 0x00083 int 81 0a 10 + 51 0x00085 prim 13 } + 52 0x00086 word 28 67 74 gt + 17 53 0x00089 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0008f word 18 5b [ + 55 0x00091 int 11 1 + 56 0x00092 int 21 2 + 57 0x00093 int 31 3 + 58 0x00094 word 18 5d ] + 59 0x00096 word 38 64 65 66 def + 18 60 0x0009a ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x000a0 word 58 66 6f 6f 5f 31 foo_1 + 62 0x000a6 word 38 64 65 66 def + 19 63 0x000aa word 58 66 6f 6f 5f 31 foo_1 + 64 0x000b0 word 58 66 6f 6f 5f 32 foo_2 + 65 0x000b6 word 28 67 74 gt + 20 66 0x000b9 word 18 5b [ + 67 0x000bb int 61 6 + 68 0x000bc word 18 5d ] + 69 0x000be word 18 5b [ + 70 0x000c0 int 61 6 + 71 0x000c1 word 18 5d ] + 72 0x000c3 word 28 67 74 gt diff --git a/tests/0043_gt/code1.log.ref b/tests/0043_gt/code1.log.ref new file mode 100644 index 0000000..f36f590 --- /dev/null +++ b/tests/0043_gt/code1.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 67 74 gt + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f xref 54 gt + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 xref 84 08 gt + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 xref 84 0f gt + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 xref 84 16 gt + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 xref 84 1f gt + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f xref 84 25 gt + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 xref 84 2b gt + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 xref 84 2f gt + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e xref 84 34 gt + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 xref 84 38 gt + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c xref 84 42 gt + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 xref 84 46 gt + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 xref 84 4a gt + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 xref 84 4f gt + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 xref 84 59 gt + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b word 18 5b [ + 55 0x0006d int 11 1 + 56 0x0006e int 21 2 + 57 0x0006f int 31 3 + 58 0x00070 word 18 5d ] + 59 0x00072 word 38 64 65 66 def + 18 60 0x00076 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x0007c word 58 66 6f 6f 5f 31 foo_1 + 62 0x00082 xref 84 10 def + 19 63 0x00084 xref 84 08 foo_1 + 64 0x00086 word 58 66 6f 6f 5f 32 foo_2 + 65 0x0008c xref 84 82 gt + 20 66 0x0008e word 18 5b [ + 67 0x00090 int 61 6 + 68 0x00091 word 18 5d ] + 69 0x00093 word 18 5b [ + 70 0x00095 int 61 6 + 71 0x00096 word 18 5d ] + 72 0x00098 xref 84 8e gt diff --git a/tests/0043_gt/code2.log.ref b/tests/0043_gt/code2.log.ref new file mode 100644 index 0000000..0fcd57d --- /dev/null +++ b/tests/0043_gt/code2.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a prim 83 2f gt + 2 4 0x0000c int 51 5 + 5 0x0000d int 61 6 + 6 0x0000e prim 83 2f gt + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 prim 83 2f gt + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 prim 83 2f gt + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 prim 83 2f gt + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 prim 83 2f gt + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f prim 83 2f gt + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 prim 83 2f gt + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 prim 83 2f gt + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e prim 83 2f gt + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 prim 83 2f gt + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c prim 83 2f gt + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 prim 83 2f gt + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 prim 83 2f gt + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 prim 83 2f gt + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 prim 83 2f gt + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b prim 23 [ + 55 0x0006c int 11 1 + 56 0x0006d int 21 2 + 57 0x0006e int 31 3 + 58 0x0006f prim 33 ] + 59 0x00070 prim 63 def + 18 60 0x00071 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x00077 word 58 66 6f 6f 5f 31 foo_1 + 62 0x0007d prim 63 def + 19 63 0x0007e xref 74 foo_1 + 64 0x0007f word 58 66 6f 6f 5f 32 foo_2 + 65 0x00085 prim 83 2f gt + 20 66 0x00087 prim 23 [ + 67 0x00088 int 61 6 + 68 0x00089 prim 33 ] + 69 0x0008a prim 23 [ + 70 0x0008b int 61 6 + 71 0x0008c prim 33 ] + 72 0x0008d prim 83 2f gt diff --git a/tests/0043_gt/main.gs b/tests/0043_gt/main.gs new file mode 100644 index 0000000..60a8ec2 --- /dev/null +++ b/tests/0043_gt/main.gs @@ -0,0 +1,20 @@ +5 5 gt +5 6 gt +6 5 gt +"abc" "abc" gt +"abc" "abd" gt +"abc" "abc1" gt +"abd" "abc" gt +"abc1" "abc" gt +"" "" gt +"" "a" gt +"a" "" gt +/foo "foo" gt +nil nil gt +nil 3 gt +5 "abc" gt +{ 10 } { 10 } gt +/foo_1 [ 1 2 3 ] def +/foo_2 foo_1 def +foo_1 foo_2 gt +[ 6 ] [ 6 ] gt diff --git a/tests/0043_gt/mem.log.ref b/tests/0043_gt/mem.log.ref new file mode 100644 index 0000000..ee085cb --- /dev/null +++ b/tests/0043_gt/mem.log.ref @@ -0,0 +1,814 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 200] + 8: 239.01, 0x001d6b3c[ 20] + 9: 0.00, 0x001d6b58[ 44] + 10: 188.01, 0x001d6b8c[ 56] + 11: 192.01, 0x001d6bcc[ 72] + 12: 187.01, 0x001d6c1c[ 144] + 13: 0.00, 0x001d6cb4[14848844] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> => #239.1.2.array + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> => #239.1.2.array + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.3.mem.ro + 75 51 12 a9 42 7a ad 60 51 51 28 67 74 51 61 28 uQ..Bz.`QQ(gtQa( + 67 74 61 51 28 67 74 37 61 62 63 37 61 62 63 28 gtaQ(gt7abc7abc( + 67 74 37 61 62 63 37 61 62 64 28 67 74 37 61 62 gt7abc7abd(gt7ab + 63 47 61 62 63 31 28 67 74 37 61 62 64 37 61 62 cGabc1(gt7abd7ab + 63 28 67 74 47 61 62 63 31 37 61 62 63 28 67 74 c(gtGabc17abc(gt + 07 07 28 67 74 07 17 61 28 67 74 17 61 07 28 67 ..(gt..a(gt.a.(g + 74 39 66 6f 6f 37 66 6f 6f 28 67 74 00 00 28 67 t9foo7foo(gt..(g + 74 00 31 28 67 74 51 37 61 62 63 28 67 74 36 81 t.1(gtQ7abc(gt6. + 0a 13 36 81 0a 13 28 67 74 59 66 6f 6f 5f 31 18 ..6...(gtYfoo_1. + 5b 11 21 31 18 5d 38 64 65 66 59 66 6f 6f 5f 32 [.!1.]8defYfoo_2 + 58 66 6f 6f 5f 31 38 64 65 66 58 66 6f 6f 5f 31 Xfoo_18defXfoo_1 + 58 66 6f 6f 5f 32 28 67 74 18 5b 61 18 5d 18 5b Xfoo_2(gt.[a.].[ + 61 18 5d 28 67 74 a.](gt + #187.1.1.array + [ 0] #191.1.1.num.bool <0 (0x0)> + [ 1] #195.1.1.num.bool <0 (0x0)> + [ 2] #198.1.1.num.bool <1 (0x1)> + [ 3] #201.1.1.num.bool <0 (0x0)> + [ 4] #204.1.1.num.bool <0 (0x0)> + [ 5] #207.1.1.num.bool <0 (0x0)> + [ 6] #210.1.1.num.bool <1 (0x1)> + [ 7] #213.1.1.num.bool <1 (0x1)> + [ 8] #216.1.1.num.bool <0 (0x0)> + [ 9] #219.1.1.num.bool <0 (0x0)> + [10] #222.1.1.num.bool <1 (0x1)> + [11] #225.1.1.num.bool <1 (0x1)> + [12] #226.1.1.num.bool <0 (0x0)> + [13] #228.1.1.num.bool <0 (0x0)> + [14] #231.1.1.num.bool <1 (0x1)> + [15] #234.1.1.num.bool <0 (0x0)> + [16] #241.1.1.num.bool <0 (0x0)> + [17] #246.1.1.num.bool <0 (0x0)> + #188.1.1.ctx.func + type 17, ip 0xc6 (0xc6) + code #186.1.3.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.bool <0 (0x0)> + #192.1.1.array + #195.1.1.num.bool <0 (0x0)> + #198.1.1.num.bool <1 (0x1)> + #201.1.1.num.bool <0 (0x0)> + #204.1.1.num.bool <0 (0x0)> + #207.1.1.num.bool <0 (0x0)> + #210.1.1.num.bool <1 (0x1)> + #213.1.1.num.bool <1 (0x1)> + #216.1.1.num.bool <0 (0x0)> + #219.1.1.num.bool <0 (0x0)> + #222.1.1.num.bool <1 (0x1)> + #225.1.1.num.bool <1 (0x1)> + #226.1.1.num.bool <0 (0x0)> + #228.1.1.num.bool <0 (0x0)> + #231.1.1.num.bool <1 (0x1)> + #234.1.1.num.bool <0 (0x0)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #236.1.1.num.int <1 (0x1)> + #237.1.1.num.int <2 (0x2)> + #238.1.1.num.int <3 (0x3)> + #239.1.2.array + [ 0] #236.1.1.num.int <1 (0x1)> + [ 1] #237.1.1.num.int <2 (0x2)> + [ 2] #238.1.1.num.int <3 (0x3)> + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #241.1.1.num.bool <0 (0x0)> + #246.1.1.num.bool <0 (0x0)> diff --git a/tests/0043_gt/screen.log.ref b/tests/0043_gt/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0043_gt/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0043_gt/trace.log.ref b/tests/0043_gt/trace.log.ref new file mode 100644 index 0000000..428b993 --- /dev/null +++ b/tests/0043_gt/trace.log.ref @@ -0,0 +1,1160 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <5 (0x5)> +IP: #186:0x9, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <5 (0x5)> + [1] #189.1.1.num.int <5 (0x5)> +IP: #186:0xa, type 8, 11[2] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xd, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <5 (0x5)> + [1] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xe, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <6 (0x6)> + [1] #193.1.1.num.int <5 (0x5)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xf, type 8, 16[2] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <0 (0x0)> + [1] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x12, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <6 (0x6)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x13, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <5 (0x5)> + [1] #196.1.1.num.int <6 (0x6)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x14, type 8, 21[2] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x17, type 7, 24[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x18, size 3, "abc"> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x1b, type 7, 28[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x1c, size 3, "abc"> + [1] #199.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x18, size 3, "abc"> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x1f, type 8, 32[2] +GC: --#200.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#199.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x22, type 7, 35[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x23, size 3, "abc"> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x26, type 7, 39[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x27, size 3, "abd"> + [1] #202.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x23, size 3, "abc"> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x2a, type 8, 43[2] +GC: --#203.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#202.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.bool <0 (0x0)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x2d, type 7, 46[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x2e, size 3, "abc"> + [1] #204.1.1.num.bool <0 (0x0)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x31, type 7, 50[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x32, size 4, "abc1"> + [1] #205.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x2e, size 3, "abc"> + [2] #204.1.1.num.bool <0 (0x0)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x36, type 8, 55[2] +GC: --#206.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#205.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.bool <0 (0x0)> + [1] #204.1.1.num.bool <0 (0x0)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x39, type 7, 58[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x3a, size 3, "abd"> + [1] #207.1.1.num.bool <0 (0x0)> + [2] #204.1.1.num.bool <0 (0x0)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x3d, type 7, 62[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3e, size 3, "abc"> + [1] #208.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3a, size 3, "abd"> + [2] #207.1.1.num.bool <0 (0x0)> + [3] #204.1.1.num.bool <0 (0x0)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.bool <0 (0x0)> + [7] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x41, type 8, 66[2] +GC: --#209.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#208.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.bool <1 (0x1)> + [1] #207.1.1.num.bool <0 (0x0)> + [2] #204.1.1.num.bool <0 (0x0)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x44, type 7, 69[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x45, size 4, "abc1"> + [1] #210.1.1.num.bool <1 (0x1)> + [2] #207.1.1.num.bool <0 (0x0)> + [3] #204.1.1.num.bool <0 (0x0)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.bool <0 (0x0)> + [7] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x49, type 7, 74[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x4a, size 3, "abc"> + [1] #211.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x45, size 4, "abc1"> + [2] #210.1.1.num.bool <1 (0x1)> + [3] #207.1.1.num.bool <0 (0x0)> + [4] #204.1.1.num.bool <0 (0x0)> + [5] #201.1.1.num.bool <0 (0x0)> + [6] #198.1.1.num.bool <1 (0x1)> + [7] #195.1.1.num.bool <0 (0x0)> + [8] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x4d, type 8, 78[2] +GC: --#212.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#211.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.bool <1 (0x1)> + [1] #210.1.1.num.bool <1 (0x1)> + [2] #207.1.1.num.bool <0 (0x0)> + [3] #204.1.1.num.bool <0 (0x0)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.bool <0 (0x0)> + [7] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x50, type 7, 81[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x51, size 0, ""> + [1] #213.1.1.num.bool <1 (0x1)> + [2] #210.1.1.num.bool <1 (0x1)> + [3] #207.1.1.num.bool <0 (0x0)> + [4] #204.1.1.num.bool <0 (0x0)> + [5] #201.1.1.num.bool <0 (0x0)> + [6] #198.1.1.num.bool <1 (0x1)> + [7] #195.1.1.num.bool <0 (0x0)> + [8] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x51, type 7, 82[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x52, size 0, ""> + [1] #214.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x51, size 0, ""> + [2] #213.1.1.num.bool <1 (0x1)> + [3] #210.1.1.num.bool <1 (0x1)> + [4] #207.1.1.num.bool <0 (0x0)> + [5] #204.1.1.num.bool <0 (0x0)> + [6] #201.1.1.num.bool <0 (0x0)> + [7] #198.1.1.num.bool <1 (0x1)> + [8] #195.1.1.num.bool <0 (0x0)> + [9] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x52, type 8, 83[2] +GC: --#215.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#214.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.bool <0 (0x0)> + [1] #213.1.1.num.bool <1 (0x1)> + [2] #210.1.1.num.bool <1 (0x1)> + [3] #207.1.1.num.bool <0 (0x0)> + [4] #204.1.1.num.bool <0 (0x0)> + [5] #201.1.1.num.bool <0 (0x0)> + [6] #198.1.1.num.bool <1 (0x1)> + [7] #195.1.1.num.bool <0 (0x0)> + [8] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x55, type 7, 86[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x56, size 0, ""> + [1] #216.1.1.num.bool <0 (0x0)> + [2] #213.1.1.num.bool <1 (0x1)> + [3] #210.1.1.num.bool <1 (0x1)> + [4] #207.1.1.num.bool <0 (0x0)> + [5] #204.1.1.num.bool <0 (0x0)> + [6] #201.1.1.num.bool <0 (0x0)> + [7] #198.1.1.num.bool <1 (0x1)> + [8] #195.1.1.num.bool <0 (0x0)> + [9] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x56, type 7, 87[1] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x57, size 1, "a"> + [1] #217.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x56, size 0, ""> + [2] #216.1.1.num.bool <0 (0x0)> + [3] #213.1.1.num.bool <1 (0x1)> + [4] #210.1.1.num.bool <1 (0x1)> + [5] #207.1.1.num.bool <0 (0x0)> + [6] #204.1.1.num.bool <0 (0x0)> + [7] #201.1.1.num.bool <0 (0x0)> + [8] #198.1.1.num.bool <1 (0x1)> + [9] #195.1.1.num.bool <0 (0x0)> + [10] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x58, type 8, 89[2] +GC: --#218.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#217.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.bool <0 (0x0)> + [1] #216.1.1.num.bool <0 (0x0)> + [2] #213.1.1.num.bool <1 (0x1)> + [3] #210.1.1.num.bool <1 (0x1)> + [4] #207.1.1.num.bool <0 (0x0)> + [5] #204.1.1.num.bool <0 (0x0)> + [6] #201.1.1.num.bool <0 (0x0)> + [7] #198.1.1.num.bool <1 (0x1)> + [8] #195.1.1.num.bool <0 (0x0)> + [9] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x5b, type 7, 92[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x5c, size 1, "a"> + [1] #219.1.1.num.bool <0 (0x0)> + [2] #216.1.1.num.bool <0 (0x0)> + [3] #213.1.1.num.bool <1 (0x1)> + [4] #210.1.1.num.bool <1 (0x1)> + [5] #207.1.1.num.bool <0 (0x0)> + [6] #204.1.1.num.bool <0 (0x0)> + [7] #201.1.1.num.bool <0 (0x0)> + [8] #198.1.1.num.bool <1 (0x1)> + [9] #195.1.1.num.bool <0 (0x0)> + [10] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x5d, type 7, 94[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5e, size 0, ""> + [1] #220.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5c, size 1, "a"> + [2] #219.1.1.num.bool <0 (0x0)> + [3] #216.1.1.num.bool <0 (0x0)> + [4] #213.1.1.num.bool <1 (0x1)> + [5] #210.1.1.num.bool <1 (0x1)> + [6] #207.1.1.num.bool <0 (0x0)> + [7] #204.1.1.num.bool <0 (0x0)> + [8] #201.1.1.num.bool <0 (0x0)> + [9] #198.1.1.num.bool <1 (0x1)> + [10] #195.1.1.num.bool <0 (0x0)> + [11] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x5e, type 8, 95[2] +GC: --#221.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#220.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.bool <1 (0x1)> + [1] #219.1.1.num.bool <0 (0x0)> + [2] #216.1.1.num.bool <0 (0x0)> + [3] #213.1.1.num.bool <1 (0x1)> + [4] #210.1.1.num.bool <1 (0x1)> + [5] #207.1.1.num.bool <0 (0x0)> + [6] #204.1.1.num.bool <0 (0x0)> + [7] #201.1.1.num.bool <0 (0x0)> + [8] #198.1.1.num.bool <1 (0x1)> + [9] #195.1.1.num.bool <0 (0x0)> + [10] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x61, type 9, 98[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x62, size 3, "foo"> + [1] #222.1.1.num.bool <1 (0x1)> + [2] #219.1.1.num.bool <0 (0x0)> + [3] #216.1.1.num.bool <0 (0x0)> + [4] #213.1.1.num.bool <1 (0x1)> + [5] #210.1.1.num.bool <1 (0x1)> + [6] #207.1.1.num.bool <0 (0x0)> + [7] #204.1.1.num.bool <0 (0x0)> + [8] #201.1.1.num.bool <0 (0x0)> + [9] #198.1.1.num.bool <1 (0x1)> + [10] #195.1.1.num.bool <0 (0x0)> + [11] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x65, type 7, 102[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x66, size 3, "foo"> + [1] #223.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x62, size 3, "foo"> + [2] #222.1.1.num.bool <1 (0x1)> + [3] #219.1.1.num.bool <0 (0x0)> + [4] #216.1.1.num.bool <0 (0x0)> + [5] #213.1.1.num.bool <1 (0x1)> + [6] #210.1.1.num.bool <1 (0x1)> + [7] #207.1.1.num.bool <0 (0x0)> + [8] #204.1.1.num.bool <0 (0x0)> + [9] #201.1.1.num.bool <0 (0x0)> + [10] #198.1.1.num.bool <1 (0x1)> + [11] #195.1.1.num.bool <0 (0x0)> + [12] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x69, type 8, 106[2] +GC: --#224.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#223.1.1.mem.ref.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.bool <1 (0x1)> + [1] #222.1.1.num.bool <1 (0x1)> + [2] #219.1.1.num.bool <0 (0x0)> + [3] #216.1.1.num.bool <0 (0x0)> + [4] #213.1.1.num.bool <1 (0x1)> + [5] #210.1.1.num.bool <1 (0x1)> + [6] #207.1.1.num.bool <0 (0x0)> + [7] #204.1.1.num.bool <0 (0x0)> + [8] #201.1.1.num.bool <0 (0x0)> + [9] #198.1.1.num.bool <1 (0x1)> + [10] #195.1.1.num.bool <0 (0x0)> + [11] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x6c, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #225.1.1.num.bool <1 (0x1)> + [2] #222.1.1.num.bool <1 (0x1)> + [3] #219.1.1.num.bool <0 (0x0)> + [4] #216.1.1.num.bool <0 (0x0)> + [5] #213.1.1.num.bool <1 (0x1)> + [6] #210.1.1.num.bool <1 (0x1)> + [7] #207.1.1.num.bool <0 (0x0)> + [8] #204.1.1.num.bool <0 (0x0)> + [9] #201.1.1.num.bool <0 (0x0)> + [10] #198.1.1.num.bool <1 (0x1)> + [11] #195.1.1.num.bool <0 (0x0)> + [12] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x6d, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #225.1.1.num.bool <1 (0x1)> + [3] #222.1.1.num.bool <1 (0x1)> + [4] #219.1.1.num.bool <0 (0x0)> + [5] #216.1.1.num.bool <0 (0x0)> + [6] #213.1.1.num.bool <1 (0x1)> + [7] #210.1.1.num.bool <1 (0x1)> + [8] #207.1.1.num.bool <0 (0x0)> + [9] #204.1.1.num.bool <0 (0x0)> + [10] #201.1.1.num.bool <0 (0x0)> + [11] #198.1.1.num.bool <1 (0x1)> + [12] #195.1.1.num.bool <0 (0x0)> + [13] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x6e, type 8, 111[2] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.bool <0 (0x0)> + [1] #225.1.1.num.bool <1 (0x1)> + [2] #222.1.1.num.bool <1 (0x1)> + [3] #219.1.1.num.bool <0 (0x0)> + [4] #216.1.1.num.bool <0 (0x0)> + [5] #213.1.1.num.bool <1 (0x1)> + [6] #210.1.1.num.bool <1 (0x1)> + [7] #207.1.1.num.bool <0 (0x0)> + [8] #204.1.1.num.bool <0 (0x0)> + [9] #201.1.1.num.bool <0 (0x0)> + [10] #198.1.1.num.bool <1 (0x1)> + [11] #195.1.1.num.bool <0 (0x0)> + [12] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x71, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #226.1.1.num.bool <0 (0x0)> + [2] #225.1.1.num.bool <1 (0x1)> + [3] #222.1.1.num.bool <1 (0x1)> + [4] #219.1.1.num.bool <0 (0x0)> + [5] #216.1.1.num.bool <0 (0x0)> + [6] #213.1.1.num.bool <1 (0x1)> + [7] #210.1.1.num.bool <1 (0x1)> + [8] #207.1.1.num.bool <0 (0x0)> + [9] #204.1.1.num.bool <0 (0x0)> + [10] #201.1.1.num.bool <0 (0x0)> + [11] #198.1.1.num.bool <1 (0x1)> + [12] #195.1.1.num.bool <0 (0x0)> + [13] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x72, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #226.1.1.num.bool <0 (0x0)> + [3] #225.1.1.num.bool <1 (0x1)> + [4] #222.1.1.num.bool <1 (0x1)> + [5] #219.1.1.num.bool <0 (0x0)> + [6] #216.1.1.num.bool <0 (0x0)> + [7] #213.1.1.num.bool <1 (0x1)> + [8] #210.1.1.num.bool <1 (0x1)> + [9] #207.1.1.num.bool <0 (0x0)> + [10] #204.1.1.num.bool <0 (0x0)> + [11] #201.1.1.num.bool <0 (0x0)> + [12] #198.1.1.num.bool <1 (0x1)> + [13] #195.1.1.num.bool <0 (0x0)> + [14] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x73, type 8, 116[2] +GC: --#227.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.bool <0 (0x0)> + [1] #226.1.1.num.bool <0 (0x0)> + [2] #225.1.1.num.bool <1 (0x1)> + [3] #222.1.1.num.bool <1 (0x1)> + [4] #219.1.1.num.bool <0 (0x0)> + [5] #216.1.1.num.bool <0 (0x0)> + [6] #213.1.1.num.bool <1 (0x1)> + [7] #210.1.1.num.bool <1 (0x1)> + [8] #207.1.1.num.bool <0 (0x0)> + [9] #204.1.1.num.bool <0 (0x0)> + [10] #201.1.1.num.bool <0 (0x0)> + [11] #198.1.1.num.bool <1 (0x1)> + [12] #195.1.1.num.bool <0 (0x0)> + [13] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x76, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <5 (0x5)> + [1] #228.1.1.num.bool <0 (0x0)> + [2] #226.1.1.num.bool <0 (0x0)> + [3] #225.1.1.num.bool <1 (0x1)> + [4] #222.1.1.num.bool <1 (0x1)> + [5] #219.1.1.num.bool <0 (0x0)> + [6] #216.1.1.num.bool <0 (0x0)> + [7] #213.1.1.num.bool <1 (0x1)> + [8] #210.1.1.num.bool <1 (0x1)> + [9] #207.1.1.num.bool <0 (0x0)> + [10] #204.1.1.num.bool <0 (0x0)> + [11] #201.1.1.num.bool <0 (0x0)> + [12] #198.1.1.num.bool <1 (0x1)> + [13] #195.1.1.num.bool <0 (0x0)> + [14] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x77, type 7, 120[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x78, size 3, "abc"> + [1] #229.1.1.num.int <5 (0x5)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x7b, type 8, 124[2] +GC: --#230.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +GC: --#229.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.bool <1 (0x1)> + [1] #228.1.1.num.bool <0 (0x0)> + [2] #226.1.1.num.bool <0 (0x0)> + [3] #225.1.1.num.bool <1 (0x1)> + [4] #222.1.1.num.bool <1 (0x1)> + [5] #219.1.1.num.bool <0 (0x0)> + [6] #216.1.1.num.bool <0 (0x0)> + [7] #213.1.1.num.bool <1 (0x1)> + [8] #210.1.1.num.bool <1 (0x1)> + [9] #207.1.1.num.bool <0 (0x0)> + [10] #204.1.1.num.bool <0 (0x0)> + [11] #201.1.1.num.bool <0 (0x0)> + [12] #198.1.1.num.bool <1 (0x1)> + [13] #195.1.1.num.bool <0 (0x0)> + [14] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x7e, type 6, 127[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x7f, size 3> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x82, type 6, 131[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x83, size 3> + [1] #232.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x7f, size 3> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x86, type 8, 135[2] +GC: --#233.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +GC: --#232.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <0 (0x0)> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x89, type 9, 138[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x8f, type 8, 144[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x91, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x92, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.num.int <2 (0x2)> + [1] #236.1.1.num.int <1 (0x1)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [4] #234.1.1.num.bool <0 (0x0)> + [5] #231.1.1.num.bool <1 (0x1)> + [6] #228.1.1.num.bool <0 (0x0)> + [7] #226.1.1.num.bool <0 (0x0)> + [8] #225.1.1.num.bool <1 (0x1)> + [9] #222.1.1.num.bool <1 (0x1)> + [10] #219.1.1.num.bool <0 (0x0)> + [11] #216.1.1.num.bool <0 (0x0)> + [12] #213.1.1.num.bool <1 (0x1)> + [13] #210.1.1.num.bool <1 (0x1)> + [14] #207.1.1.num.bool <0 (0x0)> + [15] #204.1.1.num.bool <0 (0x0)> + [16] #201.1.1.num.bool <0 (0x0)> + [17] #198.1.1.num.bool <1 (0x1)> + [18] #195.1.1.num.bool <0 (0x0)> + [19] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x93, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <3 (0x3)> + [1] #237.1.1.num.int <2 (0x2)> + [2] #236.1.1.num.int <1 (0x1)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [5] #234.1.1.num.bool <0 (0x0)> + [6] #231.1.1.num.bool <1 (0x1)> + [7] #228.1.1.num.bool <0 (0x0)> + [8] #226.1.1.num.bool <0 (0x0)> + [9] #225.1.1.num.bool <1 (0x1)> + [10] #222.1.1.num.bool <1 (0x1)> + [11] #219.1.1.num.bool <0 (0x0)> + [12] #216.1.1.num.bool <0 (0x0)> + [13] #213.1.1.num.bool <1 (0x1)> + [14] #210.1.1.num.bool <1 (0x1)> + [15] #207.1.1.num.bool <0 (0x0)> + [16] #204.1.1.num.bool <0 (0x0)> + [17] #201.1.1.num.bool <0 (0x0)> + [18] #198.1.1.num.bool <1 (0x1)> + [19] #195.1.1.num.bool <0 (0x0)> + [20] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x94, type 8, 149[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.array + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x96, type 8, 151[3] +GC: ++#235.1.1.mem.ref.ro +GC: ++#239.1.1.array +GC: --#239.1.2.array +GC: --#235.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <0 (0x0)> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x9a, type 9, 155[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xa0, type 8, 161[5] +GC: ++#239.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.2.array + [1] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xa6, type 8, 167[3] +GC: ++#240.1.1.mem.ref.ro +GC: ++#239.1.2.array +GC: --#239.1.3.array +GC: --#240.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <0 (0x0)> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xaa, type 8, 171[5] +GC: ++#239.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.3.array + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xb0, type 8, 177[5] +GC: ++#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.4.array + [1] #239.1.4.array + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xb6, type 8, 183[2] +GC: --#239.1.4.array +GC: --#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.1.1.num.bool <0 (0x0)> + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xb9, type 8, 186[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #241.1.1.num.bool <0 (0x0)> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xbb, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #241.1.1.num.bool <0 (0x0)> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xbc, type 8, 189[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.array + [1] #241.1.1.num.bool <0 (0x0)> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xbe, type 8, 191[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #243.1.1.array + [2] #241.1.1.num.bool <0 (0x0)> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xc0, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #243.1.1.array + [3] #241.1.1.num.bool <0 (0x0)> + [4] #234.1.1.num.bool <0 (0x0)> + [5] #231.1.1.num.bool <1 (0x1)> + [6] #228.1.1.num.bool <0 (0x0)> + [7] #226.1.1.num.bool <0 (0x0)> + [8] #225.1.1.num.bool <1 (0x1)> + [9] #222.1.1.num.bool <1 (0x1)> + [10] #219.1.1.num.bool <0 (0x0)> + [11] #216.1.1.num.bool <0 (0x0)> + [12] #213.1.1.num.bool <1 (0x1)> + [13] #210.1.1.num.bool <1 (0x1)> + [14] #207.1.1.num.bool <0 (0x0)> + [15] #204.1.1.num.bool <0 (0x0)> + [16] #201.1.1.num.bool <0 (0x0)> + [17] #198.1.1.num.bool <1 (0x1)> + [18] #195.1.1.num.bool <0 (0x0)> + [19] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xc1, type 8, 194[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.array + [1] #243.1.1.array + [2] #241.1.1.num.bool <0 (0x0)> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xc3, type 8, 196[2] +GC: --#245.1.1.array +GC: --#244.1.1.num.int +GC: --#243.1.1.array +GC: --#242.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.num.bool <0 (0x0)> + [1] #241.1.1.num.bool <0 (0x0)> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <0 (0x0)> diff --git a/tests/0044_ge/basic.log.ref b/tests/0044_ge/basic.log.ref new file mode 100644 index 0000000..de75c96 --- /dev/null +++ b/tests/0044_ge/basic.log.ref @@ -0,0 +1,1091 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <5 (0x5)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abd"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc1"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "a"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "foo"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.bool <0 (0x0)> + [20] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.2.array +GC: --#xxxx.1.3.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.array + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.4.array + [1] #xxxx.1.4.array + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.4.array +GC: --#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.array + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> diff --git a/tests/0044_ge/code.log.ref b/tests/0044_ge/code.log.ref new file mode 100644 index 0000000..fc0d206 --- /dev/null +++ b/tests/0044_ge/code.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 67 65 ge + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f word 28 67 65 ge + 3 7 0x00012 int 61 6 + 8 0x00013 int 51 5 + 9 0x00014 word 28 67 65 ge + 4 10 0x00017 str 37 61 62 63 "abc" + 11 0x0001b str 37 61 62 63 "abc" + 12 0x0001f word 28 67 65 ge + 5 13 0x00022 str 37 61 62 63 "abc" + 14 0x00026 str 37 61 62 64 "abd" + 15 0x0002a word 28 67 65 ge + 6 16 0x0002d str 37 61 62 63 "abc" + 17 0x00031 str 47 61 62 63 31 "abc1" + 18 0x00036 word 28 67 65 ge + 7 19 0x00039 str 37 61 62 64 "abd" + 20 0x0003d str 37 61 62 63 "abc" + 21 0x00041 word 28 67 65 ge + 8 22 0x00044 str 47 61 62 63 31 "abc1" + 23 0x00049 str 37 61 62 63 "abc" + 24 0x0004d word 28 67 65 ge + 9 25 0x00050 str 07 "" + 26 0x00051 str 07 "" + 27 0x00052 word 28 67 65 ge + 10 28 0x00055 str 07 "" + 29 0x00056 str 17 61 "a" + 30 0x00058 word 28 67 65 ge + 11 31 0x0005b str 17 61 "a" + 32 0x0005d str 07 "" + 33 0x0005e word 28 67 65 ge + 12 34 0x00061 ref 39 66 6f 6f /foo + 35 0x00065 str 37 66 6f 6f "foo" + 36 0x00069 word 28 67 65 ge + 13 37 0x0006c nil 00 nil + 38 0x0006d nil 00 nil + 39 0x0006e word 28 67 65 ge + 14 40 0x00071 nil 00 nil + 41 0x00072 int 31 3 + 42 0x00073 word 28 67 65 ge + 15 43 0x00076 int 51 5 + 44 0x00077 str 37 61 62 63 "abc" + 45 0x0007b word 28 67 65 ge + 16 46 0x0007e code 36 { + 47 0x0007f int 81 0a 10 + 48 0x00081 prim 13 } + 49 0x00082 code 36 { + 50 0x00083 int 81 0a 10 + 51 0x00085 prim 13 } + 52 0x00086 word 28 67 65 ge + 17 53 0x00089 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0008f word 18 5b [ + 55 0x00091 int 11 1 + 56 0x00092 int 21 2 + 57 0x00093 int 31 3 + 58 0x00094 word 18 5d ] + 59 0x00096 word 38 64 65 66 def + 18 60 0x0009a ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x000a0 word 58 66 6f 6f 5f 31 foo_1 + 62 0x000a6 word 38 64 65 66 def + 19 63 0x000aa word 58 66 6f 6f 5f 31 foo_1 + 64 0x000b0 word 58 66 6f 6f 5f 32 foo_2 + 65 0x000b6 word 28 67 65 ge + 20 66 0x000b9 word 18 5b [ + 67 0x000bb int 61 6 + 68 0x000bc word 18 5d ] + 69 0x000be word 18 5b [ + 70 0x000c0 int 61 6 + 71 0x000c1 word 18 5d ] + 72 0x000c3 word 28 67 65 ge diff --git a/tests/0044_ge/code1.log.ref b/tests/0044_ge/code1.log.ref new file mode 100644 index 0000000..7a44d5a --- /dev/null +++ b/tests/0044_ge/code1.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 67 65 ge + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f xref 54 ge + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 xref 84 08 ge + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 xref 84 0f ge + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 xref 84 16 ge + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 xref 84 1f ge + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f xref 84 25 ge + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 xref 84 2b ge + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 xref 84 2f ge + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e xref 84 34 ge + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 xref 84 38 ge + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c xref 84 42 ge + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 xref 84 46 ge + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 xref 84 4a ge + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 xref 84 4f ge + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 xref 84 59 ge + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b word 18 5b [ + 55 0x0006d int 11 1 + 56 0x0006e int 21 2 + 57 0x0006f int 31 3 + 58 0x00070 word 18 5d ] + 59 0x00072 word 38 64 65 66 def + 18 60 0x00076 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x0007c word 58 66 6f 6f 5f 31 foo_1 + 62 0x00082 xref 84 10 def + 19 63 0x00084 xref 84 08 foo_1 + 64 0x00086 word 58 66 6f 6f 5f 32 foo_2 + 65 0x0008c xref 84 82 ge + 20 66 0x0008e word 18 5b [ + 67 0x00090 int 61 6 + 68 0x00091 word 18 5d ] + 69 0x00093 word 18 5b [ + 70 0x00095 int 61 6 + 71 0x00096 word 18 5d ] + 72 0x00098 xref 84 8e ge diff --git a/tests/0044_ge/code2.log.ref b/tests/0044_ge/code2.log.ref new file mode 100644 index 0000000..4bfd1a0 --- /dev/null +++ b/tests/0044_ge/code2.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a prim 83 30 ge + 2 4 0x0000c int 51 5 + 5 0x0000d int 61 6 + 6 0x0000e prim 83 30 ge + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 prim 83 30 ge + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 prim 83 30 ge + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 prim 83 30 ge + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 prim 83 30 ge + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f prim 83 30 ge + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 prim 83 30 ge + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 prim 83 30 ge + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e prim 83 30 ge + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 prim 83 30 ge + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c prim 83 30 ge + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 prim 83 30 ge + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 prim 83 30 ge + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 prim 83 30 ge + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 prim 83 30 ge + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b prim 23 [ + 55 0x0006c int 11 1 + 56 0x0006d int 21 2 + 57 0x0006e int 31 3 + 58 0x0006f prim 33 ] + 59 0x00070 prim 63 def + 18 60 0x00071 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x00077 word 58 66 6f 6f 5f 31 foo_1 + 62 0x0007d prim 63 def + 19 63 0x0007e xref 74 foo_1 + 64 0x0007f word 58 66 6f 6f 5f 32 foo_2 + 65 0x00085 prim 83 30 ge + 20 66 0x00087 prim 23 [ + 67 0x00088 int 61 6 + 68 0x00089 prim 33 ] + 69 0x0008a prim 23 [ + 70 0x0008b int 61 6 + 71 0x0008c prim 33 ] + 72 0x0008d prim 83 30 ge diff --git a/tests/0044_ge/main.gs b/tests/0044_ge/main.gs new file mode 100644 index 0000000..4dae65e --- /dev/null +++ b/tests/0044_ge/main.gs @@ -0,0 +1,20 @@ +5 5 ge +5 6 ge +6 5 ge +"abc" "abc" ge +"abc" "abd" ge +"abc" "abc1" ge +"abd" "abc" ge +"abc1" "abc" ge +"" "" ge +"" "a" ge +"a" "" ge +/foo "foo" ge +nil nil ge +nil 3 ge +5 "abc" ge +{ 10 } { 10 } ge +/foo_1 [ 1 2 3 ] def +/foo_2 foo_1 def +foo_1 foo_2 ge +[ 6 ] [ 6 ] ge diff --git a/tests/0044_ge/mem.log.ref b/tests/0044_ge/mem.log.ref new file mode 100644 index 0000000..d11cd46 --- /dev/null +++ b/tests/0044_ge/mem.log.ref @@ -0,0 +1,814 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 200] + 8: 239.01, 0x001d6b3c[ 20] + 9: 0.00, 0x001d6b58[ 44] + 10: 188.01, 0x001d6b8c[ 56] + 11: 192.01, 0x001d6bcc[ 72] + 12: 187.01, 0x001d6c1c[ 144] + 13: 0.00, 0x001d6cb4[14848844] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> => #239.1.2.array + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> => #239.1.2.array + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.3.mem.ro + 75 51 12 a9 42 7a ad 60 51 51 28 67 65 51 61 28 uQ..Bz.`QQ(geQa( + 67 65 61 51 28 67 65 37 61 62 63 37 61 62 63 28 geaQ(ge7abc7abc( + 67 65 37 61 62 63 37 61 62 64 28 67 65 37 61 62 ge7abc7abd(ge7ab + 63 47 61 62 63 31 28 67 65 37 61 62 64 37 61 62 cGabc1(ge7abd7ab + 63 28 67 65 47 61 62 63 31 37 61 62 63 28 67 65 c(geGabc17abc(ge + 07 07 28 67 65 07 17 61 28 67 65 17 61 07 28 67 ..(ge..a(ge.a.(g + 65 39 66 6f 6f 37 66 6f 6f 28 67 65 00 00 28 67 e9foo7foo(ge..(g + 65 00 31 28 67 65 51 37 61 62 63 28 67 65 36 81 e.1(geQ7abc(ge6. + 0a 13 36 81 0a 13 28 67 65 59 66 6f 6f 5f 31 18 ..6...(geYfoo_1. + 5b 11 21 31 18 5d 38 64 65 66 59 66 6f 6f 5f 32 [.!1.]8defYfoo_2 + 58 66 6f 6f 5f 31 38 64 65 66 58 66 6f 6f 5f 31 Xfoo_18defXfoo_1 + 58 66 6f 6f 5f 32 28 67 65 18 5b 61 18 5d 18 5b Xfoo_2(ge.[a.].[ + 61 18 5d 28 67 65 a.](ge + #187.1.1.array + [ 0] #191.1.1.num.bool <1 (0x1)> + [ 1] #195.1.1.num.bool <0 (0x0)> + [ 2] #198.1.1.num.bool <1 (0x1)> + [ 3] #201.1.1.num.bool <1 (0x1)> + [ 4] #204.1.1.num.bool <0 (0x0)> + [ 5] #207.1.1.num.bool <0 (0x0)> + [ 6] #210.1.1.num.bool <1 (0x1)> + [ 7] #213.1.1.num.bool <1 (0x1)> + [ 8] #216.1.1.num.bool <1 (0x1)> + [ 9] #219.1.1.num.bool <0 (0x0)> + [10] #222.1.1.num.bool <1 (0x1)> + [11] #225.1.1.num.bool <1 (0x1)> + [12] #226.1.1.num.bool <1 (0x1)> + [13] #228.1.1.num.bool <0 (0x0)> + [14] #231.1.1.num.bool <1 (0x1)> + [15] #234.1.1.num.bool <1 (0x1)> + [16] #241.1.1.num.bool <1 (0x1)> + [17] #246.1.1.num.bool <0 (0x0)> + #188.1.1.ctx.func + type 17, ip 0xc6 (0xc6) + code #186.1.3.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.bool <1 (0x1)> + #192.1.1.array + #195.1.1.num.bool <0 (0x0)> + #198.1.1.num.bool <1 (0x1)> + #201.1.1.num.bool <1 (0x1)> + #204.1.1.num.bool <0 (0x0)> + #207.1.1.num.bool <0 (0x0)> + #210.1.1.num.bool <1 (0x1)> + #213.1.1.num.bool <1 (0x1)> + #216.1.1.num.bool <1 (0x1)> + #219.1.1.num.bool <0 (0x0)> + #222.1.1.num.bool <1 (0x1)> + #225.1.1.num.bool <1 (0x1)> + #226.1.1.num.bool <1 (0x1)> + #228.1.1.num.bool <0 (0x0)> + #231.1.1.num.bool <1 (0x1)> + #234.1.1.num.bool <1 (0x1)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #236.1.1.num.int <1 (0x1)> + #237.1.1.num.int <2 (0x2)> + #238.1.1.num.int <3 (0x3)> + #239.1.2.array + [ 0] #236.1.1.num.int <1 (0x1)> + [ 1] #237.1.1.num.int <2 (0x2)> + [ 2] #238.1.1.num.int <3 (0x3)> + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #241.1.1.num.bool <1 (0x1)> + #246.1.1.num.bool <0 (0x0)> diff --git a/tests/0044_ge/screen.log.ref b/tests/0044_ge/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0044_ge/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0044_ge/trace.log.ref b/tests/0044_ge/trace.log.ref new file mode 100644 index 0000000..2fe43fb --- /dev/null +++ b/tests/0044_ge/trace.log.ref @@ -0,0 +1,1160 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <5 (0x5)> +IP: #186:0x9, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <5 (0x5)> + [1] #189.1.1.num.int <5 (0x5)> +IP: #186:0xa, type 8, 11[2] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xd, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <5 (0x5)> + [1] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xe, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <6 (0x6)> + [1] #193.1.1.num.int <5 (0x5)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xf, type 8, 16[2] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <0 (0x0)> + [1] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x12, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <6 (0x6)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x13, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <5 (0x5)> + [1] #196.1.1.num.int <6 (0x6)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x14, type 8, 21[2] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <1 (0x1)> + [1] #195.1.1.num.bool <0 (0x0)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x17, type 7, 24[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x18, size 3, "abc"> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x1b, type 7, 28[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x1c, size 3, "abc"> + [1] #199.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x18, size 3, "abc"> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x1f, type 8, 32[2] +GC: --#200.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#199.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <1 (0x1)> + [1] #198.1.1.num.bool <1 (0x1)> + [2] #195.1.1.num.bool <0 (0x0)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x22, type 7, 35[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x23, size 3, "abc"> + [1] #201.1.1.num.bool <1 (0x1)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x26, type 7, 39[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x27, size 3, "abd"> + [1] #202.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x23, size 3, "abc"> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x2a, type 8, 43[2] +GC: --#203.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#202.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.bool <0 (0x0)> + [1] #201.1.1.num.bool <1 (0x1)> + [2] #198.1.1.num.bool <1 (0x1)> + [3] #195.1.1.num.bool <0 (0x0)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x2d, type 7, 46[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x2e, size 3, "abc"> + [1] #204.1.1.num.bool <0 (0x0)> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x31, type 7, 50[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x32, size 4, "abc1"> + [1] #205.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x2e, size 3, "abc"> + [2] #204.1.1.num.bool <0 (0x0)> + [3] #201.1.1.num.bool <1 (0x1)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x36, type 8, 55[2] +GC: --#206.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#205.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.bool <0 (0x0)> + [1] #204.1.1.num.bool <0 (0x0)> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <1 (0x1)> + [4] #195.1.1.num.bool <0 (0x0)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x39, type 7, 58[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x3a, size 3, "abd"> + [1] #207.1.1.num.bool <0 (0x0)> + [2] #204.1.1.num.bool <0 (0x0)> + [3] #201.1.1.num.bool <1 (0x1)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x3d, type 7, 62[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3e, size 3, "abc"> + [1] #208.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3a, size 3, "abd"> + [2] #207.1.1.num.bool <0 (0x0)> + [3] #204.1.1.num.bool <0 (0x0)> + [4] #201.1.1.num.bool <1 (0x1)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.bool <0 (0x0)> + [7] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x41, type 8, 66[2] +GC: --#209.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#208.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.bool <1 (0x1)> + [1] #207.1.1.num.bool <0 (0x0)> + [2] #204.1.1.num.bool <0 (0x0)> + [3] #201.1.1.num.bool <1 (0x1)> + [4] #198.1.1.num.bool <1 (0x1)> + [5] #195.1.1.num.bool <0 (0x0)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x44, type 7, 69[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x45, size 4, "abc1"> + [1] #210.1.1.num.bool <1 (0x1)> + [2] #207.1.1.num.bool <0 (0x0)> + [3] #204.1.1.num.bool <0 (0x0)> + [4] #201.1.1.num.bool <1 (0x1)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.bool <0 (0x0)> + [7] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x49, type 7, 74[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x4a, size 3, "abc"> + [1] #211.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x45, size 4, "abc1"> + [2] #210.1.1.num.bool <1 (0x1)> + [3] #207.1.1.num.bool <0 (0x0)> + [4] #204.1.1.num.bool <0 (0x0)> + [5] #201.1.1.num.bool <1 (0x1)> + [6] #198.1.1.num.bool <1 (0x1)> + [7] #195.1.1.num.bool <0 (0x0)> + [8] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x4d, type 8, 78[2] +GC: --#212.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#211.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.bool <1 (0x1)> + [1] #210.1.1.num.bool <1 (0x1)> + [2] #207.1.1.num.bool <0 (0x0)> + [3] #204.1.1.num.bool <0 (0x0)> + [4] #201.1.1.num.bool <1 (0x1)> + [5] #198.1.1.num.bool <1 (0x1)> + [6] #195.1.1.num.bool <0 (0x0)> + [7] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x50, type 7, 81[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x51, size 0, ""> + [1] #213.1.1.num.bool <1 (0x1)> + [2] #210.1.1.num.bool <1 (0x1)> + [3] #207.1.1.num.bool <0 (0x0)> + [4] #204.1.1.num.bool <0 (0x0)> + [5] #201.1.1.num.bool <1 (0x1)> + [6] #198.1.1.num.bool <1 (0x1)> + [7] #195.1.1.num.bool <0 (0x0)> + [8] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x51, type 7, 82[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x52, size 0, ""> + [1] #214.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x51, size 0, ""> + [2] #213.1.1.num.bool <1 (0x1)> + [3] #210.1.1.num.bool <1 (0x1)> + [4] #207.1.1.num.bool <0 (0x0)> + [5] #204.1.1.num.bool <0 (0x0)> + [6] #201.1.1.num.bool <1 (0x1)> + [7] #198.1.1.num.bool <1 (0x1)> + [8] #195.1.1.num.bool <0 (0x0)> + [9] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x52, type 8, 83[2] +GC: --#215.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#214.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.bool <1 (0x1)> + [1] #213.1.1.num.bool <1 (0x1)> + [2] #210.1.1.num.bool <1 (0x1)> + [3] #207.1.1.num.bool <0 (0x0)> + [4] #204.1.1.num.bool <0 (0x0)> + [5] #201.1.1.num.bool <1 (0x1)> + [6] #198.1.1.num.bool <1 (0x1)> + [7] #195.1.1.num.bool <0 (0x0)> + [8] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x55, type 7, 86[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x56, size 0, ""> + [1] #216.1.1.num.bool <1 (0x1)> + [2] #213.1.1.num.bool <1 (0x1)> + [3] #210.1.1.num.bool <1 (0x1)> + [4] #207.1.1.num.bool <0 (0x0)> + [5] #204.1.1.num.bool <0 (0x0)> + [6] #201.1.1.num.bool <1 (0x1)> + [7] #198.1.1.num.bool <1 (0x1)> + [8] #195.1.1.num.bool <0 (0x0)> + [9] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x56, type 7, 87[1] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x57, size 1, "a"> + [1] #217.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x56, size 0, ""> + [2] #216.1.1.num.bool <1 (0x1)> + [3] #213.1.1.num.bool <1 (0x1)> + [4] #210.1.1.num.bool <1 (0x1)> + [5] #207.1.1.num.bool <0 (0x0)> + [6] #204.1.1.num.bool <0 (0x0)> + [7] #201.1.1.num.bool <1 (0x1)> + [8] #198.1.1.num.bool <1 (0x1)> + [9] #195.1.1.num.bool <0 (0x0)> + [10] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x58, type 8, 89[2] +GC: --#218.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#217.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.bool <0 (0x0)> + [1] #216.1.1.num.bool <1 (0x1)> + [2] #213.1.1.num.bool <1 (0x1)> + [3] #210.1.1.num.bool <1 (0x1)> + [4] #207.1.1.num.bool <0 (0x0)> + [5] #204.1.1.num.bool <0 (0x0)> + [6] #201.1.1.num.bool <1 (0x1)> + [7] #198.1.1.num.bool <1 (0x1)> + [8] #195.1.1.num.bool <0 (0x0)> + [9] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x5b, type 7, 92[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x5c, size 1, "a"> + [1] #219.1.1.num.bool <0 (0x0)> + [2] #216.1.1.num.bool <1 (0x1)> + [3] #213.1.1.num.bool <1 (0x1)> + [4] #210.1.1.num.bool <1 (0x1)> + [5] #207.1.1.num.bool <0 (0x0)> + [6] #204.1.1.num.bool <0 (0x0)> + [7] #201.1.1.num.bool <1 (0x1)> + [8] #198.1.1.num.bool <1 (0x1)> + [9] #195.1.1.num.bool <0 (0x0)> + [10] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x5d, type 7, 94[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5e, size 0, ""> + [1] #220.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5c, size 1, "a"> + [2] #219.1.1.num.bool <0 (0x0)> + [3] #216.1.1.num.bool <1 (0x1)> + [4] #213.1.1.num.bool <1 (0x1)> + [5] #210.1.1.num.bool <1 (0x1)> + [6] #207.1.1.num.bool <0 (0x0)> + [7] #204.1.1.num.bool <0 (0x0)> + [8] #201.1.1.num.bool <1 (0x1)> + [9] #198.1.1.num.bool <1 (0x1)> + [10] #195.1.1.num.bool <0 (0x0)> + [11] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x5e, type 8, 95[2] +GC: --#221.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#220.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.bool <1 (0x1)> + [1] #219.1.1.num.bool <0 (0x0)> + [2] #216.1.1.num.bool <1 (0x1)> + [3] #213.1.1.num.bool <1 (0x1)> + [4] #210.1.1.num.bool <1 (0x1)> + [5] #207.1.1.num.bool <0 (0x0)> + [6] #204.1.1.num.bool <0 (0x0)> + [7] #201.1.1.num.bool <1 (0x1)> + [8] #198.1.1.num.bool <1 (0x1)> + [9] #195.1.1.num.bool <0 (0x0)> + [10] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x61, type 9, 98[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x62, size 3, "foo"> + [1] #222.1.1.num.bool <1 (0x1)> + [2] #219.1.1.num.bool <0 (0x0)> + [3] #216.1.1.num.bool <1 (0x1)> + [4] #213.1.1.num.bool <1 (0x1)> + [5] #210.1.1.num.bool <1 (0x1)> + [6] #207.1.1.num.bool <0 (0x0)> + [7] #204.1.1.num.bool <0 (0x0)> + [8] #201.1.1.num.bool <1 (0x1)> + [9] #198.1.1.num.bool <1 (0x1)> + [10] #195.1.1.num.bool <0 (0x0)> + [11] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x65, type 7, 102[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x66, size 3, "foo"> + [1] #223.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x62, size 3, "foo"> + [2] #222.1.1.num.bool <1 (0x1)> + [3] #219.1.1.num.bool <0 (0x0)> + [4] #216.1.1.num.bool <1 (0x1)> + [5] #213.1.1.num.bool <1 (0x1)> + [6] #210.1.1.num.bool <1 (0x1)> + [7] #207.1.1.num.bool <0 (0x0)> + [8] #204.1.1.num.bool <0 (0x0)> + [9] #201.1.1.num.bool <1 (0x1)> + [10] #198.1.1.num.bool <1 (0x1)> + [11] #195.1.1.num.bool <0 (0x0)> + [12] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x69, type 8, 106[2] +GC: --#224.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#223.1.1.mem.ref.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.bool <1 (0x1)> + [1] #222.1.1.num.bool <1 (0x1)> + [2] #219.1.1.num.bool <0 (0x0)> + [3] #216.1.1.num.bool <1 (0x1)> + [4] #213.1.1.num.bool <1 (0x1)> + [5] #210.1.1.num.bool <1 (0x1)> + [6] #207.1.1.num.bool <0 (0x0)> + [7] #204.1.1.num.bool <0 (0x0)> + [8] #201.1.1.num.bool <1 (0x1)> + [9] #198.1.1.num.bool <1 (0x1)> + [10] #195.1.1.num.bool <0 (0x0)> + [11] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x6c, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #225.1.1.num.bool <1 (0x1)> + [2] #222.1.1.num.bool <1 (0x1)> + [3] #219.1.1.num.bool <0 (0x0)> + [4] #216.1.1.num.bool <1 (0x1)> + [5] #213.1.1.num.bool <1 (0x1)> + [6] #210.1.1.num.bool <1 (0x1)> + [7] #207.1.1.num.bool <0 (0x0)> + [8] #204.1.1.num.bool <0 (0x0)> + [9] #201.1.1.num.bool <1 (0x1)> + [10] #198.1.1.num.bool <1 (0x1)> + [11] #195.1.1.num.bool <0 (0x0)> + [12] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x6d, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #225.1.1.num.bool <1 (0x1)> + [3] #222.1.1.num.bool <1 (0x1)> + [4] #219.1.1.num.bool <0 (0x0)> + [5] #216.1.1.num.bool <1 (0x1)> + [6] #213.1.1.num.bool <1 (0x1)> + [7] #210.1.1.num.bool <1 (0x1)> + [8] #207.1.1.num.bool <0 (0x0)> + [9] #204.1.1.num.bool <0 (0x0)> + [10] #201.1.1.num.bool <1 (0x1)> + [11] #198.1.1.num.bool <1 (0x1)> + [12] #195.1.1.num.bool <0 (0x0)> + [13] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x6e, type 8, 111[2] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.bool <1 (0x1)> + [1] #225.1.1.num.bool <1 (0x1)> + [2] #222.1.1.num.bool <1 (0x1)> + [3] #219.1.1.num.bool <0 (0x0)> + [4] #216.1.1.num.bool <1 (0x1)> + [5] #213.1.1.num.bool <1 (0x1)> + [6] #210.1.1.num.bool <1 (0x1)> + [7] #207.1.1.num.bool <0 (0x0)> + [8] #204.1.1.num.bool <0 (0x0)> + [9] #201.1.1.num.bool <1 (0x1)> + [10] #198.1.1.num.bool <1 (0x1)> + [11] #195.1.1.num.bool <0 (0x0)> + [12] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x71, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #226.1.1.num.bool <1 (0x1)> + [2] #225.1.1.num.bool <1 (0x1)> + [3] #222.1.1.num.bool <1 (0x1)> + [4] #219.1.1.num.bool <0 (0x0)> + [5] #216.1.1.num.bool <1 (0x1)> + [6] #213.1.1.num.bool <1 (0x1)> + [7] #210.1.1.num.bool <1 (0x1)> + [8] #207.1.1.num.bool <0 (0x0)> + [9] #204.1.1.num.bool <0 (0x0)> + [10] #201.1.1.num.bool <1 (0x1)> + [11] #198.1.1.num.bool <1 (0x1)> + [12] #195.1.1.num.bool <0 (0x0)> + [13] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x72, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #226.1.1.num.bool <1 (0x1)> + [3] #225.1.1.num.bool <1 (0x1)> + [4] #222.1.1.num.bool <1 (0x1)> + [5] #219.1.1.num.bool <0 (0x0)> + [6] #216.1.1.num.bool <1 (0x1)> + [7] #213.1.1.num.bool <1 (0x1)> + [8] #210.1.1.num.bool <1 (0x1)> + [9] #207.1.1.num.bool <0 (0x0)> + [10] #204.1.1.num.bool <0 (0x0)> + [11] #201.1.1.num.bool <1 (0x1)> + [12] #198.1.1.num.bool <1 (0x1)> + [13] #195.1.1.num.bool <0 (0x0)> + [14] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x73, type 8, 116[2] +GC: --#227.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.bool <0 (0x0)> + [1] #226.1.1.num.bool <1 (0x1)> + [2] #225.1.1.num.bool <1 (0x1)> + [3] #222.1.1.num.bool <1 (0x1)> + [4] #219.1.1.num.bool <0 (0x0)> + [5] #216.1.1.num.bool <1 (0x1)> + [6] #213.1.1.num.bool <1 (0x1)> + [7] #210.1.1.num.bool <1 (0x1)> + [8] #207.1.1.num.bool <0 (0x0)> + [9] #204.1.1.num.bool <0 (0x0)> + [10] #201.1.1.num.bool <1 (0x1)> + [11] #198.1.1.num.bool <1 (0x1)> + [12] #195.1.1.num.bool <0 (0x0)> + [13] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x76, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <5 (0x5)> + [1] #228.1.1.num.bool <0 (0x0)> + [2] #226.1.1.num.bool <1 (0x1)> + [3] #225.1.1.num.bool <1 (0x1)> + [4] #222.1.1.num.bool <1 (0x1)> + [5] #219.1.1.num.bool <0 (0x0)> + [6] #216.1.1.num.bool <1 (0x1)> + [7] #213.1.1.num.bool <1 (0x1)> + [8] #210.1.1.num.bool <1 (0x1)> + [9] #207.1.1.num.bool <0 (0x0)> + [10] #204.1.1.num.bool <0 (0x0)> + [11] #201.1.1.num.bool <1 (0x1)> + [12] #198.1.1.num.bool <1 (0x1)> + [13] #195.1.1.num.bool <0 (0x0)> + [14] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x77, type 7, 120[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x78, size 3, "abc"> + [1] #229.1.1.num.int <5 (0x5)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x7b, type 8, 124[2] +GC: --#230.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +GC: --#229.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.bool <1 (0x1)> + [1] #228.1.1.num.bool <0 (0x0)> + [2] #226.1.1.num.bool <1 (0x1)> + [3] #225.1.1.num.bool <1 (0x1)> + [4] #222.1.1.num.bool <1 (0x1)> + [5] #219.1.1.num.bool <0 (0x0)> + [6] #216.1.1.num.bool <1 (0x1)> + [7] #213.1.1.num.bool <1 (0x1)> + [8] #210.1.1.num.bool <1 (0x1)> + [9] #207.1.1.num.bool <0 (0x0)> + [10] #204.1.1.num.bool <0 (0x0)> + [11] #201.1.1.num.bool <1 (0x1)> + [12] #198.1.1.num.bool <1 (0x1)> + [13] #195.1.1.num.bool <0 (0x0)> + [14] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x7e, type 6, 127[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x7f, size 3> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x82, type 6, 131[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x83, size 3> + [1] #232.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x7f, size 3> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x86, type 8, 135[2] +GC: --#233.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +GC: --#232.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <1 (0x1)> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x89, type 9, 138[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x8f, type 8, 144[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x91, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x92, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.num.int <2 (0x2)> + [1] #236.1.1.num.int <1 (0x1)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [4] #234.1.1.num.bool <1 (0x1)> + [5] #231.1.1.num.bool <1 (0x1)> + [6] #228.1.1.num.bool <0 (0x0)> + [7] #226.1.1.num.bool <1 (0x1)> + [8] #225.1.1.num.bool <1 (0x1)> + [9] #222.1.1.num.bool <1 (0x1)> + [10] #219.1.1.num.bool <0 (0x0)> + [11] #216.1.1.num.bool <1 (0x1)> + [12] #213.1.1.num.bool <1 (0x1)> + [13] #210.1.1.num.bool <1 (0x1)> + [14] #207.1.1.num.bool <0 (0x0)> + [15] #204.1.1.num.bool <0 (0x0)> + [16] #201.1.1.num.bool <1 (0x1)> + [17] #198.1.1.num.bool <1 (0x1)> + [18] #195.1.1.num.bool <0 (0x0)> + [19] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x93, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <3 (0x3)> + [1] #237.1.1.num.int <2 (0x2)> + [2] #236.1.1.num.int <1 (0x1)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [5] #234.1.1.num.bool <1 (0x1)> + [6] #231.1.1.num.bool <1 (0x1)> + [7] #228.1.1.num.bool <0 (0x0)> + [8] #226.1.1.num.bool <1 (0x1)> + [9] #225.1.1.num.bool <1 (0x1)> + [10] #222.1.1.num.bool <1 (0x1)> + [11] #219.1.1.num.bool <0 (0x0)> + [12] #216.1.1.num.bool <1 (0x1)> + [13] #213.1.1.num.bool <1 (0x1)> + [14] #210.1.1.num.bool <1 (0x1)> + [15] #207.1.1.num.bool <0 (0x0)> + [16] #204.1.1.num.bool <0 (0x0)> + [17] #201.1.1.num.bool <1 (0x1)> + [18] #198.1.1.num.bool <1 (0x1)> + [19] #195.1.1.num.bool <0 (0x0)> + [20] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x94, type 8, 149[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.array + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x96, type 8, 151[3] +GC: ++#235.1.1.mem.ref.ro +GC: ++#239.1.1.array +GC: --#239.1.2.array +GC: --#235.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <1 (0x1)> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x9a, type 9, 155[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xa0, type 8, 161[5] +GC: ++#239.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.2.array + [1] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xa6, type 8, 167[3] +GC: ++#240.1.1.mem.ref.ro +GC: ++#239.1.2.array +GC: --#239.1.3.array +GC: --#240.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <1 (0x1)> + [1] #231.1.1.num.bool <1 (0x1)> + [2] #228.1.1.num.bool <0 (0x0)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <1 (0x1)> + [5] #222.1.1.num.bool <1 (0x1)> + [6] #219.1.1.num.bool <0 (0x0)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <1 (0x1)> + [9] #210.1.1.num.bool <1 (0x1)> + [10] #207.1.1.num.bool <0 (0x0)> + [11] #204.1.1.num.bool <0 (0x0)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <1 (0x1)> + [14] #195.1.1.num.bool <0 (0x0)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xaa, type 8, 171[5] +GC: ++#239.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.3.array + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xb0, type 8, 177[5] +GC: ++#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.4.array + [1] #239.1.4.array + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xb6, type 8, 183[2] +GC: --#239.1.4.array +GC: --#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.1.1.num.bool <1 (0x1)> + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <1 (0x1)> + [3] #228.1.1.num.bool <0 (0x0)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <1 (0x1)> + [6] #222.1.1.num.bool <1 (0x1)> + [7] #219.1.1.num.bool <0 (0x0)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <1 (0x1)> + [10] #210.1.1.num.bool <1 (0x1)> + [11] #207.1.1.num.bool <0 (0x0)> + [12] #204.1.1.num.bool <0 (0x0)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <1 (0x1)> + [15] #195.1.1.num.bool <0 (0x0)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xb9, type 8, 186[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #241.1.1.num.bool <1 (0x1)> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xbb, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #241.1.1.num.bool <1 (0x1)> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xbc, type 8, 189[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.array + [1] #241.1.1.num.bool <1 (0x1)> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xbe, type 8, 191[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #243.1.1.array + [2] #241.1.1.num.bool <1 (0x1)> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xc0, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #243.1.1.array + [3] #241.1.1.num.bool <1 (0x1)> + [4] #234.1.1.num.bool <1 (0x1)> + [5] #231.1.1.num.bool <1 (0x1)> + [6] #228.1.1.num.bool <0 (0x0)> + [7] #226.1.1.num.bool <1 (0x1)> + [8] #225.1.1.num.bool <1 (0x1)> + [9] #222.1.1.num.bool <1 (0x1)> + [10] #219.1.1.num.bool <0 (0x0)> + [11] #216.1.1.num.bool <1 (0x1)> + [12] #213.1.1.num.bool <1 (0x1)> + [13] #210.1.1.num.bool <1 (0x1)> + [14] #207.1.1.num.bool <0 (0x0)> + [15] #204.1.1.num.bool <0 (0x0)> + [16] #201.1.1.num.bool <1 (0x1)> + [17] #198.1.1.num.bool <1 (0x1)> + [18] #195.1.1.num.bool <0 (0x0)> + [19] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xc1, type 8, 194[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.array + [1] #243.1.1.array + [2] #241.1.1.num.bool <1 (0x1)> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <1 (0x1)> + [5] #228.1.1.num.bool <0 (0x0)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <1 (0x1)> + [8] #222.1.1.num.bool <1 (0x1)> + [9] #219.1.1.num.bool <0 (0x0)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <1 (0x1)> + [12] #210.1.1.num.bool <1 (0x1)> + [13] #207.1.1.num.bool <0 (0x0)> + [14] #204.1.1.num.bool <0 (0x0)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <1 (0x1)> + [17] #195.1.1.num.bool <0 (0x0)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xc3, type 8, 196[2] +GC: --#245.1.1.array +GC: --#244.1.1.num.int +GC: --#243.1.1.array +GC: --#242.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.num.bool <0 (0x0)> + [1] #241.1.1.num.bool <1 (0x1)> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <1 (0x1)> + [4] #228.1.1.num.bool <0 (0x0)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <1 (0x1)> + [7] #222.1.1.num.bool <1 (0x1)> + [8] #219.1.1.num.bool <0 (0x0)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <1 (0x1)> + [11] #210.1.1.num.bool <1 (0x1)> + [12] #207.1.1.num.bool <0 (0x0)> + [13] #204.1.1.num.bool <0 (0x0)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <1 (0x1)> + [16] #195.1.1.num.bool <0 (0x0)> + [17] #191.1.1.num.bool <1 (0x1)> diff --git a/tests/0045_lt/basic.log.ref b/tests/0045_lt/basic.log.ref new file mode 100644 index 0000000..083afba --- /dev/null +++ b/tests/0045_lt/basic.log.ref @@ -0,0 +1,1091 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <5 (0x5)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abd"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc1"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "a"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "foo"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <1 (0x1)> + [20] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.2.array +GC: --#xxxx.1.3.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.array + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.4.array + [1] #xxxx.1.4.array + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.4.array +GC: --#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.array + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> diff --git a/tests/0045_lt/code.log.ref b/tests/0045_lt/code.log.ref new file mode 100644 index 0000000..a8df53d --- /dev/null +++ b/tests/0045_lt/code.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 6c 74 lt + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f word 28 6c 74 lt + 3 7 0x00012 int 61 6 + 8 0x00013 int 51 5 + 9 0x00014 word 28 6c 74 lt + 4 10 0x00017 str 37 61 62 63 "abc" + 11 0x0001b str 37 61 62 63 "abc" + 12 0x0001f word 28 6c 74 lt + 5 13 0x00022 str 37 61 62 63 "abc" + 14 0x00026 str 37 61 62 64 "abd" + 15 0x0002a word 28 6c 74 lt + 6 16 0x0002d str 37 61 62 63 "abc" + 17 0x00031 str 47 61 62 63 31 "abc1" + 18 0x00036 word 28 6c 74 lt + 7 19 0x00039 str 37 61 62 64 "abd" + 20 0x0003d str 37 61 62 63 "abc" + 21 0x00041 word 28 6c 74 lt + 8 22 0x00044 str 47 61 62 63 31 "abc1" + 23 0x00049 str 37 61 62 63 "abc" + 24 0x0004d word 28 6c 74 lt + 9 25 0x00050 str 07 "" + 26 0x00051 str 07 "" + 27 0x00052 word 28 6c 74 lt + 10 28 0x00055 str 07 "" + 29 0x00056 str 17 61 "a" + 30 0x00058 word 28 6c 74 lt + 11 31 0x0005b str 17 61 "a" + 32 0x0005d str 07 "" + 33 0x0005e word 28 6c 74 lt + 12 34 0x00061 ref 39 66 6f 6f /foo + 35 0x00065 str 37 66 6f 6f "foo" + 36 0x00069 word 28 6c 74 lt + 13 37 0x0006c nil 00 nil + 38 0x0006d nil 00 nil + 39 0x0006e word 28 6c 74 lt + 14 40 0x00071 nil 00 nil + 41 0x00072 int 31 3 + 42 0x00073 word 28 6c 74 lt + 15 43 0x00076 int 51 5 + 44 0x00077 str 37 61 62 63 "abc" + 45 0x0007b word 28 6c 74 lt + 16 46 0x0007e code 36 { + 47 0x0007f int 81 0a 10 + 48 0x00081 prim 13 } + 49 0x00082 code 36 { + 50 0x00083 int 81 0a 10 + 51 0x00085 prim 13 } + 52 0x00086 word 28 6c 74 lt + 17 53 0x00089 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0008f word 18 5b [ + 55 0x00091 int 11 1 + 56 0x00092 int 21 2 + 57 0x00093 int 31 3 + 58 0x00094 word 18 5d ] + 59 0x00096 word 38 64 65 66 def + 18 60 0x0009a ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x000a0 word 58 66 6f 6f 5f 31 foo_1 + 62 0x000a6 word 38 64 65 66 def + 19 63 0x000aa word 58 66 6f 6f 5f 31 foo_1 + 64 0x000b0 word 58 66 6f 6f 5f 32 foo_2 + 65 0x000b6 word 28 6c 74 lt + 20 66 0x000b9 word 18 5b [ + 67 0x000bb int 61 6 + 68 0x000bc word 18 5d ] + 69 0x000be word 18 5b [ + 70 0x000c0 int 61 6 + 71 0x000c1 word 18 5d ] + 72 0x000c3 word 28 6c 74 lt diff --git a/tests/0045_lt/code1.log.ref b/tests/0045_lt/code1.log.ref new file mode 100644 index 0000000..3347fcf --- /dev/null +++ b/tests/0045_lt/code1.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 6c 74 lt + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f xref 54 lt + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 xref 84 08 lt + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 xref 84 0f lt + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 xref 84 16 lt + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 xref 84 1f lt + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f xref 84 25 lt + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 xref 84 2b lt + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 xref 84 2f lt + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e xref 84 34 lt + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 xref 84 38 lt + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c xref 84 42 lt + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 xref 84 46 lt + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 xref 84 4a lt + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 xref 84 4f lt + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 xref 84 59 lt + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b word 18 5b [ + 55 0x0006d int 11 1 + 56 0x0006e int 21 2 + 57 0x0006f int 31 3 + 58 0x00070 word 18 5d ] + 59 0x00072 word 38 64 65 66 def + 18 60 0x00076 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x0007c word 58 66 6f 6f 5f 31 foo_1 + 62 0x00082 xref 84 10 def + 19 63 0x00084 xref 84 08 foo_1 + 64 0x00086 word 58 66 6f 6f 5f 32 foo_2 + 65 0x0008c xref 84 82 lt + 20 66 0x0008e word 18 5b [ + 67 0x00090 int 61 6 + 68 0x00091 word 18 5d ] + 69 0x00093 word 18 5b [ + 70 0x00095 int 61 6 + 71 0x00096 word 18 5d ] + 72 0x00098 xref 84 8e lt diff --git a/tests/0045_lt/code2.log.ref b/tests/0045_lt/code2.log.ref new file mode 100644 index 0000000..f4f75fb --- /dev/null +++ b/tests/0045_lt/code2.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a prim 83 31 lt + 2 4 0x0000c int 51 5 + 5 0x0000d int 61 6 + 6 0x0000e prim 83 31 lt + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 prim 83 31 lt + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 prim 83 31 lt + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 prim 83 31 lt + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 prim 83 31 lt + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f prim 83 31 lt + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 prim 83 31 lt + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 prim 83 31 lt + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e prim 83 31 lt + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 prim 83 31 lt + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c prim 83 31 lt + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 prim 83 31 lt + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 prim 83 31 lt + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 prim 83 31 lt + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 prim 83 31 lt + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b prim 23 [ + 55 0x0006c int 11 1 + 56 0x0006d int 21 2 + 57 0x0006e int 31 3 + 58 0x0006f prim 33 ] + 59 0x00070 prim 63 def + 18 60 0x00071 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x00077 word 58 66 6f 6f 5f 31 foo_1 + 62 0x0007d prim 63 def + 19 63 0x0007e xref 74 foo_1 + 64 0x0007f word 58 66 6f 6f 5f 32 foo_2 + 65 0x00085 prim 83 31 lt + 20 66 0x00087 prim 23 [ + 67 0x00088 int 61 6 + 68 0x00089 prim 33 ] + 69 0x0008a prim 23 [ + 70 0x0008b int 61 6 + 71 0x0008c prim 33 ] + 72 0x0008d prim 83 31 lt diff --git a/tests/0045_lt/main.gs b/tests/0045_lt/main.gs new file mode 100644 index 0000000..fcdb623 --- /dev/null +++ b/tests/0045_lt/main.gs @@ -0,0 +1,20 @@ +5 5 lt +5 6 lt +6 5 lt +"abc" "abc" lt +"abc" "abd" lt +"abc" "abc1" lt +"abd" "abc" lt +"abc1" "abc" lt +"" "" lt +"" "a" lt +"a" "" lt +/foo "foo" lt +nil nil lt +nil 3 lt +5 "abc" lt +{ 10 } { 10 } lt +/foo_1 [ 1 2 3 ] def +/foo_2 foo_1 def +foo_1 foo_2 lt +[ 6 ] [ 6 ] lt diff --git a/tests/0045_lt/mem.log.ref b/tests/0045_lt/mem.log.ref new file mode 100644 index 0000000..c650468 --- /dev/null +++ b/tests/0045_lt/mem.log.ref @@ -0,0 +1,814 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 200] + 8: 239.01, 0x001d6b3c[ 20] + 9: 0.00, 0x001d6b58[ 44] + 10: 188.01, 0x001d6b8c[ 56] + 11: 192.01, 0x001d6bcc[ 72] + 12: 187.01, 0x001d6c1c[ 144] + 13: 0.00, 0x001d6cb4[14848844] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> => #239.1.2.array + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> => #239.1.2.array + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.3.mem.ro + 75 51 12 a9 42 7a ad 60 51 51 28 6c 74 51 61 28 uQ..Bz.`QQ(ltQa( + 6c 74 61 51 28 6c 74 37 61 62 63 37 61 62 63 28 ltaQ(lt7abc7abc( + 6c 74 37 61 62 63 37 61 62 64 28 6c 74 37 61 62 lt7abc7abd(lt7ab + 63 47 61 62 63 31 28 6c 74 37 61 62 64 37 61 62 cGabc1(lt7abd7ab + 63 28 6c 74 47 61 62 63 31 37 61 62 63 28 6c 74 c(ltGabc17abc(lt + 07 07 28 6c 74 07 17 61 28 6c 74 17 61 07 28 6c ..(lt..a(lt.a.(l + 74 39 66 6f 6f 37 66 6f 6f 28 6c 74 00 00 28 6c t9foo7foo(lt..(l + 74 00 31 28 6c 74 51 37 61 62 63 28 6c 74 36 81 t.1(ltQ7abc(lt6. + 0a 13 36 81 0a 13 28 6c 74 59 66 6f 6f 5f 31 18 ..6...(ltYfoo_1. + 5b 11 21 31 18 5d 38 64 65 66 59 66 6f 6f 5f 32 [.!1.]8defYfoo_2 + 58 66 6f 6f 5f 31 38 64 65 66 58 66 6f 6f 5f 31 Xfoo_18defXfoo_1 + 58 66 6f 6f 5f 32 28 6c 74 18 5b 61 18 5d 18 5b Xfoo_2(lt.[a.].[ + 61 18 5d 28 6c 74 a.](lt + #187.1.1.array + [ 0] #191.1.1.num.bool <0 (0x0)> + [ 1] #195.1.1.num.bool <1 (0x1)> + [ 2] #198.1.1.num.bool <0 (0x0)> + [ 3] #201.1.1.num.bool <0 (0x0)> + [ 4] #204.1.1.num.bool <1 (0x1)> + [ 5] #207.1.1.num.bool <1 (0x1)> + [ 6] #210.1.1.num.bool <0 (0x0)> + [ 7] #213.1.1.num.bool <0 (0x0)> + [ 8] #216.1.1.num.bool <0 (0x0)> + [ 9] #219.1.1.num.bool <1 (0x1)> + [10] #222.1.1.num.bool <0 (0x0)> + [11] #225.1.1.num.bool <0 (0x0)> + [12] #226.1.1.num.bool <0 (0x0)> + [13] #228.1.1.num.bool <1 (0x1)> + [14] #231.1.1.num.bool <0 (0x0)> + [15] #234.1.1.num.bool <0 (0x0)> + [16] #241.1.1.num.bool <0 (0x0)> + [17] #246.1.1.num.bool <1 (0x1)> + #188.1.1.ctx.func + type 17, ip 0xc6 (0xc6) + code #186.1.3.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.bool <0 (0x0)> + #192.1.1.array + #195.1.1.num.bool <1 (0x1)> + #198.1.1.num.bool <0 (0x0)> + #201.1.1.num.bool <0 (0x0)> + #204.1.1.num.bool <1 (0x1)> + #207.1.1.num.bool <1 (0x1)> + #210.1.1.num.bool <0 (0x0)> + #213.1.1.num.bool <0 (0x0)> + #216.1.1.num.bool <0 (0x0)> + #219.1.1.num.bool <1 (0x1)> + #222.1.1.num.bool <0 (0x0)> + #225.1.1.num.bool <0 (0x0)> + #226.1.1.num.bool <0 (0x0)> + #228.1.1.num.bool <1 (0x1)> + #231.1.1.num.bool <0 (0x0)> + #234.1.1.num.bool <0 (0x0)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #236.1.1.num.int <1 (0x1)> + #237.1.1.num.int <2 (0x2)> + #238.1.1.num.int <3 (0x3)> + #239.1.2.array + [ 0] #236.1.1.num.int <1 (0x1)> + [ 1] #237.1.1.num.int <2 (0x2)> + [ 2] #238.1.1.num.int <3 (0x3)> + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #241.1.1.num.bool <0 (0x0)> + #246.1.1.num.bool <1 (0x1)> diff --git a/tests/0045_lt/screen.log.ref b/tests/0045_lt/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0045_lt/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0045_lt/trace.log.ref b/tests/0045_lt/trace.log.ref new file mode 100644 index 0000000..4edeb70 --- /dev/null +++ b/tests/0045_lt/trace.log.ref @@ -0,0 +1,1160 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <5 (0x5)> +IP: #186:0x9, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <5 (0x5)> + [1] #189.1.1.num.int <5 (0x5)> +IP: #186:0xa, type 8, 11[2] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xd, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <5 (0x5)> + [1] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xe, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <6 (0x6)> + [1] #193.1.1.num.int <5 (0x5)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xf, type 8, 16[2] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x12, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <6 (0x6)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x13, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <5 (0x5)> + [1] #196.1.1.num.int <6 (0x6)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x14, type 8, 21[2] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x17, type 7, 24[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x18, size 3, "abc"> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x1b, type 7, 28[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x1c, size 3, "abc"> + [1] #199.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x18, size 3, "abc"> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x1f, type 8, 32[2] +GC: --#200.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#199.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <0 (0x0)> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x22, type 7, 35[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x23, size 3, "abc"> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x26, type 7, 39[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x27, size 3, "abd"> + [1] #202.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x23, size 3, "abc"> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x2a, type 8, 43[2] +GC: --#203.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#202.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.bool <1 (0x1)> + [1] #201.1.1.num.bool <0 (0x0)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x2d, type 7, 46[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x2e, size 3, "abc"> + [1] #204.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x31, type 7, 50[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x32, size 4, "abc1"> + [1] #205.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x2e, size 3, "abc"> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x36, type 8, 55[2] +GC: --#206.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#205.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.bool <1 (0x1)> + [1] #204.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <0 (0x0)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x39, type 7, 58[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x3a, size 3, "abd"> + [1] #207.1.1.num.bool <1 (0x1)> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x3d, type 7, 62[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3e, size 3, "abc"> + [1] #208.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3a, size 3, "abd"> + [2] #207.1.1.num.bool <1 (0x1)> + [3] #204.1.1.num.bool <1 (0x1)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x41, type 8, 66[2] +GC: --#209.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#208.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.bool <0 (0x0)> + [1] #207.1.1.num.bool <1 (0x1)> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <0 (0x0)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x44, type 7, 69[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x45, size 4, "abc1"> + [1] #210.1.1.num.bool <0 (0x0)> + [2] #207.1.1.num.bool <1 (0x1)> + [3] #204.1.1.num.bool <1 (0x1)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x49, type 7, 74[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x4a, size 3, "abc"> + [1] #211.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x45, size 4, "abc1"> + [2] #210.1.1.num.bool <0 (0x0)> + [3] #207.1.1.num.bool <1 (0x1)> + [4] #204.1.1.num.bool <1 (0x1)> + [5] #201.1.1.num.bool <0 (0x0)> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x4d, type 8, 78[2] +GC: --#212.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#211.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.bool <0 (0x0)> + [1] #210.1.1.num.bool <0 (0x0)> + [2] #207.1.1.num.bool <1 (0x1)> + [3] #204.1.1.num.bool <1 (0x1)> + [4] #201.1.1.num.bool <0 (0x0)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x50, type 7, 81[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x51, size 0, ""> + [1] #213.1.1.num.bool <0 (0x0)> + [2] #210.1.1.num.bool <0 (0x0)> + [3] #207.1.1.num.bool <1 (0x1)> + [4] #204.1.1.num.bool <1 (0x1)> + [5] #201.1.1.num.bool <0 (0x0)> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x51, type 7, 82[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x52, size 0, ""> + [1] #214.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x51, size 0, ""> + [2] #213.1.1.num.bool <0 (0x0)> + [3] #210.1.1.num.bool <0 (0x0)> + [4] #207.1.1.num.bool <1 (0x1)> + [5] #204.1.1.num.bool <1 (0x1)> + [6] #201.1.1.num.bool <0 (0x0)> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x52, type 8, 83[2] +GC: --#215.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#214.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.bool <0 (0x0)> + [1] #213.1.1.num.bool <0 (0x0)> + [2] #210.1.1.num.bool <0 (0x0)> + [3] #207.1.1.num.bool <1 (0x1)> + [4] #204.1.1.num.bool <1 (0x1)> + [5] #201.1.1.num.bool <0 (0x0)> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x55, type 7, 86[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x56, size 0, ""> + [1] #216.1.1.num.bool <0 (0x0)> + [2] #213.1.1.num.bool <0 (0x0)> + [3] #210.1.1.num.bool <0 (0x0)> + [4] #207.1.1.num.bool <1 (0x1)> + [5] #204.1.1.num.bool <1 (0x1)> + [6] #201.1.1.num.bool <0 (0x0)> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x56, type 7, 87[1] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x57, size 1, "a"> + [1] #217.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x56, size 0, ""> + [2] #216.1.1.num.bool <0 (0x0)> + [3] #213.1.1.num.bool <0 (0x0)> + [4] #210.1.1.num.bool <0 (0x0)> + [5] #207.1.1.num.bool <1 (0x1)> + [6] #204.1.1.num.bool <1 (0x1)> + [7] #201.1.1.num.bool <0 (0x0)> + [8] #198.1.1.num.bool <0 (0x0)> + [9] #195.1.1.num.bool <1 (0x1)> + [10] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x58, type 8, 89[2] +GC: --#218.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#217.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.bool <1 (0x1)> + [1] #216.1.1.num.bool <0 (0x0)> + [2] #213.1.1.num.bool <0 (0x0)> + [3] #210.1.1.num.bool <0 (0x0)> + [4] #207.1.1.num.bool <1 (0x1)> + [5] #204.1.1.num.bool <1 (0x1)> + [6] #201.1.1.num.bool <0 (0x0)> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x5b, type 7, 92[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x5c, size 1, "a"> + [1] #219.1.1.num.bool <1 (0x1)> + [2] #216.1.1.num.bool <0 (0x0)> + [3] #213.1.1.num.bool <0 (0x0)> + [4] #210.1.1.num.bool <0 (0x0)> + [5] #207.1.1.num.bool <1 (0x1)> + [6] #204.1.1.num.bool <1 (0x1)> + [7] #201.1.1.num.bool <0 (0x0)> + [8] #198.1.1.num.bool <0 (0x0)> + [9] #195.1.1.num.bool <1 (0x1)> + [10] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x5d, type 7, 94[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5e, size 0, ""> + [1] #220.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5c, size 1, "a"> + [2] #219.1.1.num.bool <1 (0x1)> + [3] #216.1.1.num.bool <0 (0x0)> + [4] #213.1.1.num.bool <0 (0x0)> + [5] #210.1.1.num.bool <0 (0x0)> + [6] #207.1.1.num.bool <1 (0x1)> + [7] #204.1.1.num.bool <1 (0x1)> + [8] #201.1.1.num.bool <0 (0x0)> + [9] #198.1.1.num.bool <0 (0x0)> + [10] #195.1.1.num.bool <1 (0x1)> + [11] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x5e, type 8, 95[2] +GC: --#221.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#220.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.bool <0 (0x0)> + [1] #219.1.1.num.bool <1 (0x1)> + [2] #216.1.1.num.bool <0 (0x0)> + [3] #213.1.1.num.bool <0 (0x0)> + [4] #210.1.1.num.bool <0 (0x0)> + [5] #207.1.1.num.bool <1 (0x1)> + [6] #204.1.1.num.bool <1 (0x1)> + [7] #201.1.1.num.bool <0 (0x0)> + [8] #198.1.1.num.bool <0 (0x0)> + [9] #195.1.1.num.bool <1 (0x1)> + [10] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x61, type 9, 98[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x62, size 3, "foo"> + [1] #222.1.1.num.bool <0 (0x0)> + [2] #219.1.1.num.bool <1 (0x1)> + [3] #216.1.1.num.bool <0 (0x0)> + [4] #213.1.1.num.bool <0 (0x0)> + [5] #210.1.1.num.bool <0 (0x0)> + [6] #207.1.1.num.bool <1 (0x1)> + [7] #204.1.1.num.bool <1 (0x1)> + [8] #201.1.1.num.bool <0 (0x0)> + [9] #198.1.1.num.bool <0 (0x0)> + [10] #195.1.1.num.bool <1 (0x1)> + [11] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x65, type 7, 102[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x66, size 3, "foo"> + [1] #223.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x62, size 3, "foo"> + [2] #222.1.1.num.bool <0 (0x0)> + [3] #219.1.1.num.bool <1 (0x1)> + [4] #216.1.1.num.bool <0 (0x0)> + [5] #213.1.1.num.bool <0 (0x0)> + [6] #210.1.1.num.bool <0 (0x0)> + [7] #207.1.1.num.bool <1 (0x1)> + [8] #204.1.1.num.bool <1 (0x1)> + [9] #201.1.1.num.bool <0 (0x0)> + [10] #198.1.1.num.bool <0 (0x0)> + [11] #195.1.1.num.bool <1 (0x1)> + [12] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x69, type 8, 106[2] +GC: --#224.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#223.1.1.mem.ref.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.bool <0 (0x0)> + [1] #222.1.1.num.bool <0 (0x0)> + [2] #219.1.1.num.bool <1 (0x1)> + [3] #216.1.1.num.bool <0 (0x0)> + [4] #213.1.1.num.bool <0 (0x0)> + [5] #210.1.1.num.bool <0 (0x0)> + [6] #207.1.1.num.bool <1 (0x1)> + [7] #204.1.1.num.bool <1 (0x1)> + [8] #201.1.1.num.bool <0 (0x0)> + [9] #198.1.1.num.bool <0 (0x0)> + [10] #195.1.1.num.bool <1 (0x1)> + [11] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x6c, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #225.1.1.num.bool <0 (0x0)> + [2] #222.1.1.num.bool <0 (0x0)> + [3] #219.1.1.num.bool <1 (0x1)> + [4] #216.1.1.num.bool <0 (0x0)> + [5] #213.1.1.num.bool <0 (0x0)> + [6] #210.1.1.num.bool <0 (0x0)> + [7] #207.1.1.num.bool <1 (0x1)> + [8] #204.1.1.num.bool <1 (0x1)> + [9] #201.1.1.num.bool <0 (0x0)> + [10] #198.1.1.num.bool <0 (0x0)> + [11] #195.1.1.num.bool <1 (0x1)> + [12] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x6d, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #225.1.1.num.bool <0 (0x0)> + [3] #222.1.1.num.bool <0 (0x0)> + [4] #219.1.1.num.bool <1 (0x1)> + [5] #216.1.1.num.bool <0 (0x0)> + [6] #213.1.1.num.bool <0 (0x0)> + [7] #210.1.1.num.bool <0 (0x0)> + [8] #207.1.1.num.bool <1 (0x1)> + [9] #204.1.1.num.bool <1 (0x1)> + [10] #201.1.1.num.bool <0 (0x0)> + [11] #198.1.1.num.bool <0 (0x0)> + [12] #195.1.1.num.bool <1 (0x1)> + [13] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x6e, type 8, 111[2] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.bool <0 (0x0)> + [1] #225.1.1.num.bool <0 (0x0)> + [2] #222.1.1.num.bool <0 (0x0)> + [3] #219.1.1.num.bool <1 (0x1)> + [4] #216.1.1.num.bool <0 (0x0)> + [5] #213.1.1.num.bool <0 (0x0)> + [6] #210.1.1.num.bool <0 (0x0)> + [7] #207.1.1.num.bool <1 (0x1)> + [8] #204.1.1.num.bool <1 (0x1)> + [9] #201.1.1.num.bool <0 (0x0)> + [10] #198.1.1.num.bool <0 (0x0)> + [11] #195.1.1.num.bool <1 (0x1)> + [12] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x71, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #226.1.1.num.bool <0 (0x0)> + [2] #225.1.1.num.bool <0 (0x0)> + [3] #222.1.1.num.bool <0 (0x0)> + [4] #219.1.1.num.bool <1 (0x1)> + [5] #216.1.1.num.bool <0 (0x0)> + [6] #213.1.1.num.bool <0 (0x0)> + [7] #210.1.1.num.bool <0 (0x0)> + [8] #207.1.1.num.bool <1 (0x1)> + [9] #204.1.1.num.bool <1 (0x1)> + [10] #201.1.1.num.bool <0 (0x0)> + [11] #198.1.1.num.bool <0 (0x0)> + [12] #195.1.1.num.bool <1 (0x1)> + [13] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x72, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #226.1.1.num.bool <0 (0x0)> + [3] #225.1.1.num.bool <0 (0x0)> + [4] #222.1.1.num.bool <0 (0x0)> + [5] #219.1.1.num.bool <1 (0x1)> + [6] #216.1.1.num.bool <0 (0x0)> + [7] #213.1.1.num.bool <0 (0x0)> + [8] #210.1.1.num.bool <0 (0x0)> + [9] #207.1.1.num.bool <1 (0x1)> + [10] #204.1.1.num.bool <1 (0x1)> + [11] #201.1.1.num.bool <0 (0x0)> + [12] #198.1.1.num.bool <0 (0x0)> + [13] #195.1.1.num.bool <1 (0x1)> + [14] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x73, type 8, 116[2] +GC: --#227.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.bool <1 (0x1)> + [1] #226.1.1.num.bool <0 (0x0)> + [2] #225.1.1.num.bool <0 (0x0)> + [3] #222.1.1.num.bool <0 (0x0)> + [4] #219.1.1.num.bool <1 (0x1)> + [5] #216.1.1.num.bool <0 (0x0)> + [6] #213.1.1.num.bool <0 (0x0)> + [7] #210.1.1.num.bool <0 (0x0)> + [8] #207.1.1.num.bool <1 (0x1)> + [9] #204.1.1.num.bool <1 (0x1)> + [10] #201.1.1.num.bool <0 (0x0)> + [11] #198.1.1.num.bool <0 (0x0)> + [12] #195.1.1.num.bool <1 (0x1)> + [13] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x76, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <5 (0x5)> + [1] #228.1.1.num.bool <1 (0x1)> + [2] #226.1.1.num.bool <0 (0x0)> + [3] #225.1.1.num.bool <0 (0x0)> + [4] #222.1.1.num.bool <0 (0x0)> + [5] #219.1.1.num.bool <1 (0x1)> + [6] #216.1.1.num.bool <0 (0x0)> + [7] #213.1.1.num.bool <0 (0x0)> + [8] #210.1.1.num.bool <0 (0x0)> + [9] #207.1.1.num.bool <1 (0x1)> + [10] #204.1.1.num.bool <1 (0x1)> + [11] #201.1.1.num.bool <0 (0x0)> + [12] #198.1.1.num.bool <0 (0x0)> + [13] #195.1.1.num.bool <1 (0x1)> + [14] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x77, type 7, 120[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x78, size 3, "abc"> + [1] #229.1.1.num.int <5 (0x5)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x7b, type 8, 124[2] +GC: --#230.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +GC: --#229.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.bool <0 (0x0)> + [1] #228.1.1.num.bool <1 (0x1)> + [2] #226.1.1.num.bool <0 (0x0)> + [3] #225.1.1.num.bool <0 (0x0)> + [4] #222.1.1.num.bool <0 (0x0)> + [5] #219.1.1.num.bool <1 (0x1)> + [6] #216.1.1.num.bool <0 (0x0)> + [7] #213.1.1.num.bool <0 (0x0)> + [8] #210.1.1.num.bool <0 (0x0)> + [9] #207.1.1.num.bool <1 (0x1)> + [10] #204.1.1.num.bool <1 (0x1)> + [11] #201.1.1.num.bool <0 (0x0)> + [12] #198.1.1.num.bool <0 (0x0)> + [13] #195.1.1.num.bool <1 (0x1)> + [14] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x7e, type 6, 127[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x7f, size 3> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x82, type 6, 131[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x83, size 3> + [1] #232.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x7f, size 3> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x86, type 8, 135[2] +GC: --#233.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +GC: --#232.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <0 (0x0)> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x89, type 9, 138[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x8f, type 8, 144[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x91, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x92, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.num.int <2 (0x2)> + [1] #236.1.1.num.int <1 (0x1)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [4] #234.1.1.num.bool <0 (0x0)> + [5] #231.1.1.num.bool <0 (0x0)> + [6] #228.1.1.num.bool <1 (0x1)> + [7] #226.1.1.num.bool <0 (0x0)> + [8] #225.1.1.num.bool <0 (0x0)> + [9] #222.1.1.num.bool <0 (0x0)> + [10] #219.1.1.num.bool <1 (0x1)> + [11] #216.1.1.num.bool <0 (0x0)> + [12] #213.1.1.num.bool <0 (0x0)> + [13] #210.1.1.num.bool <0 (0x0)> + [14] #207.1.1.num.bool <1 (0x1)> + [15] #204.1.1.num.bool <1 (0x1)> + [16] #201.1.1.num.bool <0 (0x0)> + [17] #198.1.1.num.bool <0 (0x0)> + [18] #195.1.1.num.bool <1 (0x1)> + [19] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x93, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <3 (0x3)> + [1] #237.1.1.num.int <2 (0x2)> + [2] #236.1.1.num.int <1 (0x1)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [5] #234.1.1.num.bool <0 (0x0)> + [6] #231.1.1.num.bool <0 (0x0)> + [7] #228.1.1.num.bool <1 (0x1)> + [8] #226.1.1.num.bool <0 (0x0)> + [9] #225.1.1.num.bool <0 (0x0)> + [10] #222.1.1.num.bool <0 (0x0)> + [11] #219.1.1.num.bool <1 (0x1)> + [12] #216.1.1.num.bool <0 (0x0)> + [13] #213.1.1.num.bool <0 (0x0)> + [14] #210.1.1.num.bool <0 (0x0)> + [15] #207.1.1.num.bool <1 (0x1)> + [16] #204.1.1.num.bool <1 (0x1)> + [17] #201.1.1.num.bool <0 (0x0)> + [18] #198.1.1.num.bool <0 (0x0)> + [19] #195.1.1.num.bool <1 (0x1)> + [20] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x94, type 8, 149[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.array + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x96, type 8, 151[3] +GC: ++#235.1.1.mem.ref.ro +GC: ++#239.1.1.array +GC: --#239.1.2.array +GC: --#235.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <0 (0x0)> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0x9a, type 9, 155[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xa0, type 8, 161[5] +GC: ++#239.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.2.array + [1] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xa6, type 8, 167[3] +GC: ++#240.1.1.mem.ref.ro +GC: ++#239.1.2.array +GC: --#239.1.3.array +GC: --#240.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <0 (0x0)> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <0 (0x0)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <0 (0x0)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <0 (0x0)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xaa, type 8, 171[5] +GC: ++#239.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.3.array + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xb0, type 8, 177[5] +GC: ++#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.4.array + [1] #239.1.4.array + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xb6, type 8, 183[2] +GC: --#239.1.4.array +GC: --#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.1.1.num.bool <0 (0x0)> + [1] #234.1.1.num.bool <0 (0x0)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <0 (0x0)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <0 (0x0)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <0 (0x0)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xb9, type 8, 186[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #241.1.1.num.bool <0 (0x0)> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xbb, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #241.1.1.num.bool <0 (0x0)> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xbc, type 8, 189[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.array + [1] #241.1.1.num.bool <0 (0x0)> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xbe, type 8, 191[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #243.1.1.array + [2] #241.1.1.num.bool <0 (0x0)> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xc0, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #243.1.1.array + [3] #241.1.1.num.bool <0 (0x0)> + [4] #234.1.1.num.bool <0 (0x0)> + [5] #231.1.1.num.bool <0 (0x0)> + [6] #228.1.1.num.bool <1 (0x1)> + [7] #226.1.1.num.bool <0 (0x0)> + [8] #225.1.1.num.bool <0 (0x0)> + [9] #222.1.1.num.bool <0 (0x0)> + [10] #219.1.1.num.bool <1 (0x1)> + [11] #216.1.1.num.bool <0 (0x0)> + [12] #213.1.1.num.bool <0 (0x0)> + [13] #210.1.1.num.bool <0 (0x0)> + [14] #207.1.1.num.bool <1 (0x1)> + [15] #204.1.1.num.bool <1 (0x1)> + [16] #201.1.1.num.bool <0 (0x0)> + [17] #198.1.1.num.bool <0 (0x0)> + [18] #195.1.1.num.bool <1 (0x1)> + [19] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xc1, type 8, 194[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.array + [1] #243.1.1.array + [2] #241.1.1.num.bool <0 (0x0)> + [3] #234.1.1.num.bool <0 (0x0)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <0 (0x0)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <0 (0x0)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <0 (0x0)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <0 (0x0)> +IP: #186:0xc3, type 8, 196[2] +GC: --#245.1.1.array +GC: --#244.1.1.num.int +GC: --#243.1.1.array +GC: --#242.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.num.bool <1 (0x1)> + [1] #241.1.1.num.bool <0 (0x0)> + [2] #234.1.1.num.bool <0 (0x0)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <0 (0x0)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <0 (0x0)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <0 (0x0)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <0 (0x0)> diff --git a/tests/0046_le/basic.log.ref b/tests/0046_le/basic.log.ref new file mode 100644 index 0000000..0b51887 --- /dev/null +++ b/tests/0046_le/basic.log.ref @@ -0,0 +1,1091 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <5 (0x5)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <6 (0x6)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abd"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abd"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc1"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc1"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, ""> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "a"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, ""> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "foo"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "abc"> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.ro +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.2.mem.ro> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <1 (0x1)> + [20] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_2"> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.2.array +GC: --#xxxx.1.3.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.array + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.4.array + [1] #xxxx.1.4.array + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.4.array +GC: --#xxxx.1.3.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <6 (0x6)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.array + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.array + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #xxxx.1.1.num.bool <1 (0x1)> +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.array +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #xxxx.1.1.num.bool <1 (0x1)> diff --git a/tests/0046_le/code.log.ref b/tests/0046_le/code.log.ref new file mode 100644 index 0000000..0aac0ae --- /dev/null +++ b/tests/0046_le/code.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 6c 65 le + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f word 28 6c 65 le + 3 7 0x00012 int 61 6 + 8 0x00013 int 51 5 + 9 0x00014 word 28 6c 65 le + 4 10 0x00017 str 37 61 62 63 "abc" + 11 0x0001b str 37 61 62 63 "abc" + 12 0x0001f word 28 6c 65 le + 5 13 0x00022 str 37 61 62 63 "abc" + 14 0x00026 str 37 61 62 64 "abd" + 15 0x0002a word 28 6c 65 le + 6 16 0x0002d str 37 61 62 63 "abc" + 17 0x00031 str 47 61 62 63 31 "abc1" + 18 0x00036 word 28 6c 65 le + 7 19 0x00039 str 37 61 62 64 "abd" + 20 0x0003d str 37 61 62 63 "abc" + 21 0x00041 word 28 6c 65 le + 8 22 0x00044 str 47 61 62 63 31 "abc1" + 23 0x00049 str 37 61 62 63 "abc" + 24 0x0004d word 28 6c 65 le + 9 25 0x00050 str 07 "" + 26 0x00051 str 07 "" + 27 0x00052 word 28 6c 65 le + 10 28 0x00055 str 07 "" + 29 0x00056 str 17 61 "a" + 30 0x00058 word 28 6c 65 le + 11 31 0x0005b str 17 61 "a" + 32 0x0005d str 07 "" + 33 0x0005e word 28 6c 65 le + 12 34 0x00061 ref 39 66 6f 6f /foo + 35 0x00065 str 37 66 6f 6f "foo" + 36 0x00069 word 28 6c 65 le + 13 37 0x0006c nil 00 nil + 38 0x0006d nil 00 nil + 39 0x0006e word 28 6c 65 le + 14 40 0x00071 nil 00 nil + 41 0x00072 int 31 3 + 42 0x00073 word 28 6c 65 le + 15 43 0x00076 int 51 5 + 44 0x00077 str 37 61 62 63 "abc" + 45 0x0007b word 28 6c 65 le + 16 46 0x0007e code 36 { + 47 0x0007f int 81 0a 10 + 48 0x00081 prim 13 } + 49 0x00082 code 36 { + 50 0x00083 int 81 0a 10 + 51 0x00085 prim 13 } + 52 0x00086 word 28 6c 65 le + 17 53 0x00089 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0008f word 18 5b [ + 55 0x00091 int 11 1 + 56 0x00092 int 21 2 + 57 0x00093 int 31 3 + 58 0x00094 word 18 5d ] + 59 0x00096 word 38 64 65 66 def + 18 60 0x0009a ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x000a0 word 58 66 6f 6f 5f 31 foo_1 + 62 0x000a6 word 38 64 65 66 def + 19 63 0x000aa word 58 66 6f 6f 5f 31 foo_1 + 64 0x000b0 word 58 66 6f 6f 5f 32 foo_2 + 65 0x000b6 word 28 6c 65 le + 20 66 0x000b9 word 18 5b [ + 67 0x000bb int 61 6 + 68 0x000bc word 18 5d ] + 69 0x000be word 18 5b [ + 70 0x000c0 int 61 6 + 71 0x000c1 word 18 5d ] + 72 0x000c3 word 28 6c 65 le diff --git a/tests/0046_le/code1.log.ref b/tests/0046_le/code1.log.ref new file mode 100644 index 0000000..19ec567 --- /dev/null +++ b/tests/0046_le/code1.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a word 28 6c 65 le + 2 4 0x0000d int 51 5 + 5 0x0000e int 61 6 + 6 0x0000f xref 54 le + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 xref 84 08 le + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 xref 84 0f le + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 xref 84 16 le + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 xref 84 1f le + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f xref 84 25 le + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 xref 84 2b le + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 xref 84 2f le + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e xref 84 34 le + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 xref 84 38 le + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c xref 84 42 le + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 xref 84 46 le + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 xref 84 4a le + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 xref 84 4f le + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 xref 84 59 le + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b word 18 5b [ + 55 0x0006d int 11 1 + 56 0x0006e int 21 2 + 57 0x0006f int 31 3 + 58 0x00070 word 18 5d ] + 59 0x00072 word 38 64 65 66 def + 18 60 0x00076 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x0007c word 58 66 6f 6f 5f 31 foo_1 + 62 0x00082 xref 84 10 def + 19 63 0x00084 xref 84 08 foo_1 + 64 0x00086 word 58 66 6f 6f 5f 32 foo_2 + 65 0x0008c xref 84 82 le + 20 66 0x0008e word 18 5b [ + 67 0x00090 int 61 6 + 68 0x00091 word 18 5d ] + 69 0x00093 word 18 5b [ + 70 0x00095 int 61 6 + 71 0x00096 word 18 5d ] + 72 0x00098 xref 84 8e le diff --git a/tests/0046_le/code2.log.ref b/tests/0046_le/code2.log.ref new file mode 100644 index 0000000..23a25d4 --- /dev/null +++ b/tests/0046_le/code2.log.ref @@ -0,0 +1,79 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 73 entries (73 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 int 51 5 + 2 0x00009 int 51 5 + 3 0x0000a prim 83 32 le + 2 4 0x0000c int 51 5 + 5 0x0000d int 61 6 + 6 0x0000e prim 83 32 le + 3 7 0x00010 int 61 6 + 8 0x00011 int 51 5 + 9 0x00012 prim 83 32 le + 4 10 0x00014 str 37 61 62 63 "abc" + 11 0x00018 xref 44 "abc" + 12 0x00019 prim 83 32 le + 5 13 0x0001b xref 74 "abc" + 14 0x0001c str 37 61 62 64 "abd" + 15 0x00020 prim 83 32 le + 6 16 0x00022 xref 84 0e "abc" + 17 0x00024 str 47 61 62 63 31 "abc1" + 18 0x00029 prim 83 32 le + 7 19 0x0002b xref 84 0f "abd" + 20 0x0002d xref 84 19 "abc" + 21 0x0002f prim 83 32 le + 8 22 0x00031 xref 84 0d "abc1" + 23 0x00033 xref 84 1f "abc" + 24 0x00035 prim 83 32 le + 9 25 0x00037 str 07 "" + 26 0x00038 str 07 "" + 27 0x00039 prim 83 32 le + 10 28 0x0003b str 07 "" + 29 0x0003c str 17 61 "a" + 30 0x0003e prim 83 32 le + 11 31 0x00040 xref 44 "a" + 32 0x00041 str 07 "" + 33 0x00042 prim 83 32 le + 12 34 0x00044 ref 39 66 6f 6f /foo + 35 0x00048 str 37 66 6f 6f "foo" + 36 0x0004c prim 83 32 le + 13 37 0x0004e nil 00 nil + 38 0x0004f nil 00 nil + 39 0x00050 prim 83 32 le + 14 40 0x00052 nil 00 nil + 41 0x00053 int 31 3 + 42 0x00054 prim 83 32 le + 15 43 0x00056 int 51 5 + 44 0x00057 xref 84 43 "abc" + 45 0x00059 prim 83 32 le + 16 46 0x0005b code 36 { + 47 0x0005c int 81 0a 10 + 48 0x0005e prim 13 } + 49 0x0005f code 36 { + 50 0x00060 int 81 0a 10 + 51 0x00062 prim 13 } + 52 0x00063 prim 83 32 le + 17 53 0x00065 ref 59 66 6f 6f 5f 31 /foo_1 + 54 0x0006b prim 23 [ + 55 0x0006c int 11 1 + 56 0x0006d int 21 2 + 57 0x0006e int 31 3 + 58 0x0006f prim 33 ] + 59 0x00070 prim 63 def + 18 60 0x00071 ref 59 66 6f 6f 5f 32 /foo_2 + 61 0x00077 word 58 66 6f 6f 5f 31 foo_1 + 62 0x0007d prim 63 def + 19 63 0x0007e xref 74 foo_1 + 64 0x0007f word 58 66 6f 6f 5f 32 foo_2 + 65 0x00085 prim 83 32 le + 20 66 0x00087 prim 23 [ + 67 0x00088 int 61 6 + 68 0x00089 prim 33 ] + 69 0x0008a prim 23 [ + 70 0x0008b int 61 6 + 71 0x0008c prim 33 ] + 72 0x0008d prim 83 32 le diff --git a/tests/0046_le/main.gs b/tests/0046_le/main.gs new file mode 100644 index 0000000..1299f21 --- /dev/null +++ b/tests/0046_le/main.gs @@ -0,0 +1,20 @@ +5 5 le +5 6 le +6 5 le +"abc" "abc" le +"abc" "abd" le +"abc" "abc1" le +"abd" "abc" le +"abc1" "abc" le +"" "" le +"" "a" le +"a" "" le +/foo "foo" le +nil nil le +nil 3 le +5 "abc" le +{ 10 } { 10 } le +/foo_1 [ 1 2 3 ] def +/foo_2 foo_1 def +foo_1 foo_2 le +[ 6 ] [ 6 ] le diff --git a/tests/0046_le/mem.log.ref b/tests/0046_le/mem.log.ref new file mode 100644 index 0000000..fe37ef5 --- /dev/null +++ b/tests/0046_le/mem.log.ref @@ -0,0 +1,814 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 200] + 8: 239.01, 0x001d6b3c[ 20] + 9: 0.00, 0x001d6b58[ 44] + 10: 188.01, 0x001d6b8c[ 56] + 11: 192.01, 0x001d6bcc[ 72] + 12: 187.01, 0x001d6c1c[ 144] + 13: 0.00, 0x001d6cb4[14848844] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> => #239.1.2.array + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> => #239.1.2.array + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.3.mem.ro + 75 51 12 a9 42 7a ad 60 51 51 28 6c 65 51 61 28 uQ..Bz.`QQ(leQa( + 6c 65 61 51 28 6c 65 37 61 62 63 37 61 62 63 28 leaQ(le7abc7abc( + 6c 65 37 61 62 63 37 61 62 64 28 6c 65 37 61 62 le7abc7abd(le7ab + 63 47 61 62 63 31 28 6c 65 37 61 62 64 37 61 62 cGabc1(le7abd7ab + 63 28 6c 65 47 61 62 63 31 37 61 62 63 28 6c 65 c(leGabc17abc(le + 07 07 28 6c 65 07 17 61 28 6c 65 17 61 07 28 6c ..(le..a(le.a.(l + 65 39 66 6f 6f 37 66 6f 6f 28 6c 65 00 00 28 6c e9foo7foo(le..(l + 65 00 31 28 6c 65 51 37 61 62 63 28 6c 65 36 81 e.1(leQ7abc(le6. + 0a 13 36 81 0a 13 28 6c 65 59 66 6f 6f 5f 31 18 ..6...(leYfoo_1. + 5b 11 21 31 18 5d 38 64 65 66 59 66 6f 6f 5f 32 [.!1.]8defYfoo_2 + 58 66 6f 6f 5f 31 38 64 65 66 58 66 6f 6f 5f 31 Xfoo_18defXfoo_1 + 58 66 6f 6f 5f 32 28 6c 65 18 5b 61 18 5d 18 5b Xfoo_2(le.[a.].[ + 61 18 5d 28 6c 65 a.](le + #187.1.1.array + [ 0] #191.1.1.num.bool <1 (0x1)> + [ 1] #195.1.1.num.bool <1 (0x1)> + [ 2] #198.1.1.num.bool <0 (0x0)> + [ 3] #201.1.1.num.bool <1 (0x1)> + [ 4] #204.1.1.num.bool <1 (0x1)> + [ 5] #207.1.1.num.bool <1 (0x1)> + [ 6] #210.1.1.num.bool <0 (0x0)> + [ 7] #213.1.1.num.bool <0 (0x0)> + [ 8] #216.1.1.num.bool <1 (0x1)> + [ 9] #219.1.1.num.bool <1 (0x1)> + [10] #222.1.1.num.bool <0 (0x0)> + [11] #225.1.1.num.bool <0 (0x0)> + [12] #226.1.1.num.bool <1 (0x1)> + [13] #228.1.1.num.bool <1 (0x1)> + [14] #231.1.1.num.bool <0 (0x0)> + [15] #234.1.1.num.bool <1 (0x1)> + [16] #241.1.1.num.bool <1 (0x1)> + [17] #246.1.1.num.bool <1 (0x1)> + #188.1.1.ctx.func + type 17, ip 0xc6 (0xc6) + code #186.1.3.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #191.1.1.num.bool <1 (0x1)> + #192.1.1.array + #195.1.1.num.bool <1 (0x1)> + #198.1.1.num.bool <0 (0x0)> + #201.1.1.num.bool <1 (0x1)> + #204.1.1.num.bool <1 (0x1)> + #207.1.1.num.bool <1 (0x1)> + #210.1.1.num.bool <0 (0x0)> + #213.1.1.num.bool <0 (0x0)> + #216.1.1.num.bool <1 (0x1)> + #219.1.1.num.bool <1 (0x1)> + #222.1.1.num.bool <0 (0x0)> + #225.1.1.num.bool <0 (0x0)> + #226.1.1.num.bool <1 (0x1)> + #228.1.1.num.bool <1 (0x1)> + #231.1.1.num.bool <0 (0x0)> + #234.1.1.num.bool <1 (0x1)> + #235.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x8a, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #236.1.1.num.int <1 (0x1)> + #237.1.1.num.int <2 (0x2)> + #238.1.1.num.int <3 (0x3)> + #239.1.2.array + [ 0] #236.1.1.num.int <1 (0x1)> + [ 1] #237.1.1.num.int <2 (0x2)> + [ 2] #238.1.1.num.int <3 (0x3)> + #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #241.1.1.num.bool <1 (0x1)> + #246.1.1.num.bool <1 (0x1)> diff --git a/tests/0046_le/screen.log.ref b/tests/0046_le/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0046_le/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0046_le/trace.log.ref b/tests/0046_le/trace.log.ref new file mode 100644 index 0000000..3f91a56 --- /dev/null +++ b/tests/0046_le/trace.log.ref @@ -0,0 +1,1160 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <5 (0x5)> +IP: #186:0x9, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <5 (0x5)> + [1] #189.1.1.num.int <5 (0x5)> +IP: #186:0xa, type 8, 11[2] +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xd, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <5 (0x5)> + [1] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xe, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <6 (0x6)> + [1] #193.1.1.num.int <5 (0x5)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xf, type 8, 16[2] +GC: --#194.1.1.num.int +GC: --#193.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.bool <1 (0x1)> + [1] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x12, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <6 (0x6)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x13, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <5 (0x5)> + [1] #196.1.1.num.int <6 (0x6)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x14, type 8, 21[2] +GC: --#197.1.1.num.int +GC: --#196.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.bool <0 (0x0)> + [1] #195.1.1.num.bool <1 (0x1)> + [2] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x17, type 7, 24[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x18, size 3, "abc"> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x1b, type 7, 28[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x1c, size 3, "abc"> + [1] #199.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x18, size 3, "abc"> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x1f, type 8, 32[2] +GC: --#200.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#199.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.bool <1 (0x1)> + [1] #198.1.1.num.bool <0 (0x0)> + [2] #195.1.1.num.bool <1 (0x1)> + [3] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x22, type 7, 35[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x23, size 3, "abc"> + [1] #201.1.1.num.bool <1 (0x1)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x26, type 7, 39[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x27, size 3, "abd"> + [1] #202.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x23, size 3, "abc"> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x2a, type 8, 43[2] +GC: --#203.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#202.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.bool <1 (0x1)> + [1] #201.1.1.num.bool <1 (0x1)> + [2] #198.1.1.num.bool <0 (0x0)> + [3] #195.1.1.num.bool <1 (0x1)> + [4] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x2d, type 7, 46[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x2e, size 3, "abc"> + [1] #204.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x31, type 7, 50[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x32, size 4, "abc1"> + [1] #205.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x2e, size 3, "abc"> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <1 (0x1)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x36, type 8, 55[2] +GC: --#206.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#205.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.bool <1 (0x1)> + [1] #204.1.1.num.bool <1 (0x1)> + [2] #201.1.1.num.bool <1 (0x1)> + [3] #198.1.1.num.bool <0 (0x0)> + [4] #195.1.1.num.bool <1 (0x1)> + [5] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x39, type 7, 58[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x3a, size 3, "abd"> + [1] #207.1.1.num.bool <1 (0x1)> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <1 (0x1)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x3d, type 7, 62[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3e, size 3, "abc"> + [1] #208.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x3a, size 3, "abd"> + [2] #207.1.1.num.bool <1 (0x1)> + [3] #204.1.1.num.bool <1 (0x1)> + [4] #201.1.1.num.bool <1 (0x1)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x41, type 8, 66[2] +GC: --#209.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#208.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.bool <0 (0x0)> + [1] #207.1.1.num.bool <1 (0x1)> + [2] #204.1.1.num.bool <1 (0x1)> + [3] #201.1.1.num.bool <1 (0x1)> + [4] #198.1.1.num.bool <0 (0x0)> + [5] #195.1.1.num.bool <1 (0x1)> + [6] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x44, type 7, 69[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x45, size 4, "abc1"> + [1] #210.1.1.num.bool <0 (0x0)> + [2] #207.1.1.num.bool <1 (0x1)> + [3] #204.1.1.num.bool <1 (0x1)> + [4] #201.1.1.num.bool <1 (0x1)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x49, type 7, 74[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x4a, size 3, "abc"> + [1] #211.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x45, size 4, "abc1"> + [2] #210.1.1.num.bool <0 (0x0)> + [3] #207.1.1.num.bool <1 (0x1)> + [4] #204.1.1.num.bool <1 (0x1)> + [5] #201.1.1.num.bool <1 (0x1)> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x4d, type 8, 78[2] +GC: --#212.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#211.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.bool <0 (0x0)> + [1] #210.1.1.num.bool <0 (0x0)> + [2] #207.1.1.num.bool <1 (0x1)> + [3] #204.1.1.num.bool <1 (0x1)> + [4] #201.1.1.num.bool <1 (0x1)> + [5] #198.1.1.num.bool <0 (0x0)> + [6] #195.1.1.num.bool <1 (0x1)> + [7] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x50, type 7, 81[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x51, size 0, ""> + [1] #213.1.1.num.bool <0 (0x0)> + [2] #210.1.1.num.bool <0 (0x0)> + [3] #207.1.1.num.bool <1 (0x1)> + [4] #204.1.1.num.bool <1 (0x1)> + [5] #201.1.1.num.bool <1 (0x1)> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x51, type 7, 82[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x52, size 0, ""> + [1] #214.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x51, size 0, ""> + [2] #213.1.1.num.bool <0 (0x0)> + [3] #210.1.1.num.bool <0 (0x0)> + [4] #207.1.1.num.bool <1 (0x1)> + [5] #204.1.1.num.bool <1 (0x1)> + [6] #201.1.1.num.bool <1 (0x1)> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x52, type 8, 83[2] +GC: --#215.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#214.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.bool <1 (0x1)> + [1] #213.1.1.num.bool <0 (0x0)> + [2] #210.1.1.num.bool <0 (0x0)> + [3] #207.1.1.num.bool <1 (0x1)> + [4] #204.1.1.num.bool <1 (0x1)> + [5] #201.1.1.num.bool <1 (0x1)> + [6] #198.1.1.num.bool <0 (0x0)> + [7] #195.1.1.num.bool <1 (0x1)> + [8] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x55, type 7, 86[0] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x56, size 0, ""> + [1] #216.1.1.num.bool <1 (0x1)> + [2] #213.1.1.num.bool <0 (0x0)> + [3] #210.1.1.num.bool <0 (0x0)> + [4] #207.1.1.num.bool <1 (0x1)> + [5] #204.1.1.num.bool <1 (0x1)> + [6] #201.1.1.num.bool <1 (0x1)> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x56, type 7, 87[1] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x57, size 1, "a"> + [1] #217.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x56, size 0, ""> + [2] #216.1.1.num.bool <1 (0x1)> + [3] #213.1.1.num.bool <0 (0x0)> + [4] #210.1.1.num.bool <0 (0x0)> + [5] #207.1.1.num.bool <1 (0x1)> + [6] #204.1.1.num.bool <1 (0x1)> + [7] #201.1.1.num.bool <1 (0x1)> + [8] #198.1.1.num.bool <0 (0x0)> + [9] #195.1.1.num.bool <1 (0x1)> + [10] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x58, type 8, 89[2] +GC: --#218.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#217.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.bool <1 (0x1)> + [1] #216.1.1.num.bool <1 (0x1)> + [2] #213.1.1.num.bool <0 (0x0)> + [3] #210.1.1.num.bool <0 (0x0)> + [4] #207.1.1.num.bool <1 (0x1)> + [5] #204.1.1.num.bool <1 (0x1)> + [6] #201.1.1.num.bool <1 (0x1)> + [7] #198.1.1.num.bool <0 (0x0)> + [8] #195.1.1.num.bool <1 (0x1)> + [9] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x5b, type 7, 92[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x5c, size 1, "a"> + [1] #219.1.1.num.bool <1 (0x1)> + [2] #216.1.1.num.bool <1 (0x1)> + [3] #213.1.1.num.bool <0 (0x0)> + [4] #210.1.1.num.bool <0 (0x0)> + [5] #207.1.1.num.bool <1 (0x1)> + [6] #204.1.1.num.bool <1 (0x1)> + [7] #201.1.1.num.bool <1 (0x1)> + [8] #198.1.1.num.bool <0 (0x0)> + [9] #195.1.1.num.bool <1 (0x1)> + [10] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x5d, type 7, 94[0] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5e, size 0, ""> + [1] #220.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x5c, size 1, "a"> + [2] #219.1.1.num.bool <1 (0x1)> + [3] #216.1.1.num.bool <1 (0x1)> + [4] #213.1.1.num.bool <0 (0x0)> + [5] #210.1.1.num.bool <0 (0x0)> + [6] #207.1.1.num.bool <1 (0x1)> + [7] #204.1.1.num.bool <1 (0x1)> + [8] #201.1.1.num.bool <1 (0x1)> + [9] #198.1.1.num.bool <0 (0x0)> + [10] #195.1.1.num.bool <1 (0x1)> + [11] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x5e, type 8, 95[2] +GC: --#221.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#220.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.bool <0 (0x0)> + [1] #219.1.1.num.bool <1 (0x1)> + [2] #216.1.1.num.bool <1 (0x1)> + [3] #213.1.1.num.bool <0 (0x0)> + [4] #210.1.1.num.bool <0 (0x0)> + [5] #207.1.1.num.bool <1 (0x1)> + [6] #204.1.1.num.bool <1 (0x1)> + [7] #201.1.1.num.bool <1 (0x1)> + [8] #198.1.1.num.bool <0 (0x0)> + [9] #195.1.1.num.bool <1 (0x1)> + [10] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x61, type 9, 98[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x62, size 3, "foo"> + [1] #222.1.1.num.bool <0 (0x0)> + [2] #219.1.1.num.bool <1 (0x1)> + [3] #216.1.1.num.bool <1 (0x1)> + [4] #213.1.1.num.bool <0 (0x0)> + [5] #210.1.1.num.bool <0 (0x0)> + [6] #207.1.1.num.bool <1 (0x1)> + [7] #204.1.1.num.bool <1 (0x1)> + [8] #201.1.1.num.bool <1 (0x1)> + [9] #198.1.1.num.bool <0 (0x0)> + [10] #195.1.1.num.bool <1 (0x1)> + [11] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x65, type 7, 102[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x66, size 3, "foo"> + [1] #223.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x62, size 3, "foo"> + [2] #222.1.1.num.bool <0 (0x0)> + [3] #219.1.1.num.bool <1 (0x1)> + [4] #216.1.1.num.bool <1 (0x1)> + [5] #213.1.1.num.bool <0 (0x0)> + [6] #210.1.1.num.bool <0 (0x0)> + [7] #207.1.1.num.bool <1 (0x1)> + [8] #204.1.1.num.bool <1 (0x1)> + [9] #201.1.1.num.bool <1 (0x1)> + [10] #198.1.1.num.bool <0 (0x0)> + [11] #195.1.1.num.bool <1 (0x1)> + [12] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x69, type 8, 106[2] +GC: --#224.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#223.1.1.mem.ref.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.bool <0 (0x0)> + [1] #222.1.1.num.bool <0 (0x0)> + [2] #219.1.1.num.bool <1 (0x1)> + [3] #216.1.1.num.bool <1 (0x1)> + [4] #213.1.1.num.bool <0 (0x0)> + [5] #210.1.1.num.bool <0 (0x0)> + [6] #207.1.1.num.bool <1 (0x1)> + [7] #204.1.1.num.bool <1 (0x1)> + [8] #201.1.1.num.bool <1 (0x1)> + [9] #198.1.1.num.bool <0 (0x0)> + [10] #195.1.1.num.bool <1 (0x1)> + [11] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x6c, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #225.1.1.num.bool <0 (0x0)> + [2] #222.1.1.num.bool <0 (0x0)> + [3] #219.1.1.num.bool <1 (0x1)> + [4] #216.1.1.num.bool <1 (0x1)> + [5] #213.1.1.num.bool <0 (0x0)> + [6] #210.1.1.num.bool <0 (0x0)> + [7] #207.1.1.num.bool <1 (0x1)> + [8] #204.1.1.num.bool <1 (0x1)> + [9] #201.1.1.num.bool <1 (0x1)> + [10] #198.1.1.num.bool <0 (0x0)> + [11] #195.1.1.num.bool <1 (0x1)> + [12] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x6d, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #0.0.nil + [2] #225.1.1.num.bool <0 (0x0)> + [3] #222.1.1.num.bool <0 (0x0)> + [4] #219.1.1.num.bool <1 (0x1)> + [5] #216.1.1.num.bool <1 (0x1)> + [6] #213.1.1.num.bool <0 (0x0)> + [7] #210.1.1.num.bool <0 (0x0)> + [8] #207.1.1.num.bool <1 (0x1)> + [9] #204.1.1.num.bool <1 (0x1)> + [10] #201.1.1.num.bool <1 (0x1)> + [11] #198.1.1.num.bool <0 (0x0)> + [12] #195.1.1.num.bool <1 (0x1)> + [13] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x6e, type 8, 111[2] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.bool <1 (0x1)> + [1] #225.1.1.num.bool <0 (0x0)> + [2] #222.1.1.num.bool <0 (0x0)> + [3] #219.1.1.num.bool <1 (0x1)> + [4] #216.1.1.num.bool <1 (0x1)> + [5] #213.1.1.num.bool <0 (0x0)> + [6] #210.1.1.num.bool <0 (0x0)> + [7] #207.1.1.num.bool <1 (0x1)> + [8] #204.1.1.num.bool <1 (0x1)> + [9] #201.1.1.num.bool <1 (0x1)> + [10] #198.1.1.num.bool <0 (0x0)> + [11] #195.1.1.num.bool <1 (0x1)> + [12] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x71, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #226.1.1.num.bool <1 (0x1)> + [2] #225.1.1.num.bool <0 (0x0)> + [3] #222.1.1.num.bool <0 (0x0)> + [4] #219.1.1.num.bool <1 (0x1)> + [5] #216.1.1.num.bool <1 (0x1)> + [6] #213.1.1.num.bool <0 (0x0)> + [7] #210.1.1.num.bool <0 (0x0)> + [8] #207.1.1.num.bool <1 (0x1)> + [9] #204.1.1.num.bool <1 (0x1)> + [10] #201.1.1.num.bool <1 (0x1)> + [11] #198.1.1.num.bool <0 (0x0)> + [12] #195.1.1.num.bool <1 (0x1)> + [13] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x72, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.num.int <3 (0x3)> + [1] #0.0.nil + [2] #226.1.1.num.bool <1 (0x1)> + [3] #225.1.1.num.bool <0 (0x0)> + [4] #222.1.1.num.bool <0 (0x0)> + [5] #219.1.1.num.bool <1 (0x1)> + [6] #216.1.1.num.bool <1 (0x1)> + [7] #213.1.1.num.bool <0 (0x0)> + [8] #210.1.1.num.bool <0 (0x0)> + [9] #207.1.1.num.bool <1 (0x1)> + [10] #204.1.1.num.bool <1 (0x1)> + [11] #201.1.1.num.bool <1 (0x1)> + [12] #198.1.1.num.bool <0 (0x0)> + [13] #195.1.1.num.bool <1 (0x1)> + [14] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x73, type 8, 116[2] +GC: --#227.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.bool <1 (0x1)> + [1] #226.1.1.num.bool <1 (0x1)> + [2] #225.1.1.num.bool <0 (0x0)> + [3] #222.1.1.num.bool <0 (0x0)> + [4] #219.1.1.num.bool <1 (0x1)> + [5] #216.1.1.num.bool <1 (0x1)> + [6] #213.1.1.num.bool <0 (0x0)> + [7] #210.1.1.num.bool <0 (0x0)> + [8] #207.1.1.num.bool <1 (0x1)> + [9] #204.1.1.num.bool <1 (0x1)> + [10] #201.1.1.num.bool <1 (0x1)> + [11] #198.1.1.num.bool <0 (0x0)> + [12] #195.1.1.num.bool <1 (0x1)> + [13] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x76, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <5 (0x5)> + [1] #228.1.1.num.bool <1 (0x1)> + [2] #226.1.1.num.bool <1 (0x1)> + [3] #225.1.1.num.bool <0 (0x0)> + [4] #222.1.1.num.bool <0 (0x0)> + [5] #219.1.1.num.bool <1 (0x1)> + [6] #216.1.1.num.bool <1 (0x1)> + [7] #213.1.1.num.bool <0 (0x0)> + [8] #210.1.1.num.bool <0 (0x0)> + [9] #207.1.1.num.bool <1 (0x1)> + [10] #204.1.1.num.bool <1 (0x1)> + [11] #201.1.1.num.bool <1 (0x1)> + [12] #198.1.1.num.bool <0 (0x0)> + [13] #195.1.1.num.bool <1 (0x1)> + [14] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x77, type 7, 120[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x78, size 3, "abc"> + [1] #229.1.1.num.int <5 (0x5)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x7b, type 8, 124[2] +GC: --#230.1.1.mem.str.ro +GC: --#186.1.2.mem.ro +GC: --#229.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.bool <0 (0x0)> + [1] #228.1.1.num.bool <1 (0x1)> + [2] #226.1.1.num.bool <1 (0x1)> + [3] #225.1.1.num.bool <0 (0x0)> + [4] #222.1.1.num.bool <0 (0x0)> + [5] #219.1.1.num.bool <1 (0x1)> + [6] #216.1.1.num.bool <1 (0x1)> + [7] #213.1.1.num.bool <0 (0x0)> + [8] #210.1.1.num.bool <0 (0x0)> + [9] #207.1.1.num.bool <1 (0x1)> + [10] #204.1.1.num.bool <1 (0x1)> + [11] #201.1.1.num.bool <1 (0x1)> + [12] #198.1.1.num.bool <0 (0x0)> + [13] #195.1.1.num.bool <1 (0x1)> + [14] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x7e, type 6, 127[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.mem.code.ro <#186.1.2.mem.ro, ofs 0x7f, size 3> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x82, type 6, 131[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x83, size 3> + [1] #232.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x7f, size 3> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x86, type 8, 135[2] +GC: --#233.1.1.mem.code.ro +GC: --#186.1.3.mem.ro +GC: --#232.1.1.mem.code.ro +GC: --#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <1 (0x1)> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x89, type 9, 138[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x8f, type 8, 144[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x91, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x92, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.num.int <2 (0x2)> + [1] #236.1.1.num.int <1 (0x1)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [4] #234.1.1.num.bool <1 (0x1)> + [5] #231.1.1.num.bool <0 (0x0)> + [6] #228.1.1.num.bool <1 (0x1)> + [7] #226.1.1.num.bool <1 (0x1)> + [8] #225.1.1.num.bool <0 (0x0)> + [9] #222.1.1.num.bool <0 (0x0)> + [10] #219.1.1.num.bool <1 (0x1)> + [11] #216.1.1.num.bool <1 (0x1)> + [12] #213.1.1.num.bool <0 (0x0)> + [13] #210.1.1.num.bool <0 (0x0)> + [14] #207.1.1.num.bool <1 (0x1)> + [15] #204.1.1.num.bool <1 (0x1)> + [16] #201.1.1.num.bool <1 (0x1)> + [17] #198.1.1.num.bool <0 (0x0)> + [18] #195.1.1.num.bool <1 (0x1)> + [19] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x93, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <3 (0x3)> + [1] #237.1.1.num.int <2 (0x2)> + [2] #236.1.1.num.int <1 (0x1)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [5] #234.1.1.num.bool <1 (0x1)> + [6] #231.1.1.num.bool <0 (0x0)> + [7] #228.1.1.num.bool <1 (0x1)> + [8] #226.1.1.num.bool <1 (0x1)> + [9] #225.1.1.num.bool <0 (0x0)> + [10] #222.1.1.num.bool <0 (0x0)> + [11] #219.1.1.num.bool <1 (0x1)> + [12] #216.1.1.num.bool <1 (0x1)> + [13] #213.1.1.num.bool <0 (0x0)> + [14] #210.1.1.num.bool <0 (0x0)> + [15] #207.1.1.num.bool <1 (0x1)> + [16] #204.1.1.num.bool <1 (0x1)> + [17] #201.1.1.num.bool <1 (0x1)> + [18] #198.1.1.num.bool <0 (0x0)> + [19] #195.1.1.num.bool <1 (0x1)> + [20] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x94, type 8, 149[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.array + [1] #235.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x8a, size 5, "foo_1"> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x96, type 8, 151[3] +GC: ++#235.1.1.mem.ref.ro +GC: ++#239.1.1.array +GC: --#239.1.2.array +GC: --#235.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <1 (0x1)> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0x9a, type 9, 155[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xa0, type 8, 161[5] +GC: ++#239.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.2.array + [1] #240.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9b, size 5, "foo_2"> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xa6, type 8, 167[3] +GC: ++#240.1.1.mem.ref.ro +GC: ++#239.1.2.array +GC: --#239.1.3.array +GC: --#240.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.bool <1 (0x1)> + [1] #231.1.1.num.bool <0 (0x0)> + [2] #228.1.1.num.bool <1 (0x1)> + [3] #226.1.1.num.bool <1 (0x1)> + [4] #225.1.1.num.bool <0 (0x0)> + [5] #222.1.1.num.bool <0 (0x0)> + [6] #219.1.1.num.bool <1 (0x1)> + [7] #216.1.1.num.bool <1 (0x1)> + [8] #213.1.1.num.bool <0 (0x0)> + [9] #210.1.1.num.bool <0 (0x0)> + [10] #207.1.1.num.bool <1 (0x1)> + [11] #204.1.1.num.bool <1 (0x1)> + [12] #201.1.1.num.bool <1 (0x1)> + [13] #198.1.1.num.bool <0 (0x0)> + [14] #195.1.1.num.bool <1 (0x1)> + [15] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xaa, type 8, 171[5] +GC: ++#239.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.3.array + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xb0, type 8, 177[5] +GC: ++#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.4.array + [1] #239.1.4.array + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xb6, type 8, 183[2] +GC: --#239.1.4.array +GC: --#239.1.3.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.1.1.num.bool <1 (0x1)> + [1] #234.1.1.num.bool <1 (0x1)> + [2] #231.1.1.num.bool <0 (0x0)> + [3] #228.1.1.num.bool <1 (0x1)> + [4] #226.1.1.num.bool <1 (0x1)> + [5] #225.1.1.num.bool <0 (0x0)> + [6] #222.1.1.num.bool <0 (0x0)> + [7] #219.1.1.num.bool <1 (0x1)> + [8] #216.1.1.num.bool <1 (0x1)> + [9] #213.1.1.num.bool <0 (0x0)> + [10] #210.1.1.num.bool <0 (0x0)> + [11] #207.1.1.num.bool <1 (0x1)> + [12] #204.1.1.num.bool <1 (0x1)> + [13] #201.1.1.num.bool <1 (0x1)> + [14] #198.1.1.num.bool <0 (0x0)> + [15] #195.1.1.num.bool <1 (0x1)> + [16] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xb9, type 8, 186[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #241.1.1.num.bool <1 (0x1)> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xbb, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #241.1.1.num.bool <1 (0x1)> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xbc, type 8, 189[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.array + [1] #241.1.1.num.bool <1 (0x1)> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xbe, type 8, 191[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #243.1.1.array + [2] #241.1.1.num.bool <1 (0x1)> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xc0, type 1, 6 (0x6) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <6 (0x6)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #243.1.1.array + [3] #241.1.1.num.bool <1 (0x1)> + [4] #234.1.1.num.bool <1 (0x1)> + [5] #231.1.1.num.bool <0 (0x0)> + [6] #228.1.1.num.bool <1 (0x1)> + [7] #226.1.1.num.bool <1 (0x1)> + [8] #225.1.1.num.bool <0 (0x0)> + [9] #222.1.1.num.bool <0 (0x0)> + [10] #219.1.1.num.bool <1 (0x1)> + [11] #216.1.1.num.bool <1 (0x1)> + [12] #213.1.1.num.bool <0 (0x0)> + [13] #210.1.1.num.bool <0 (0x0)> + [14] #207.1.1.num.bool <1 (0x1)> + [15] #204.1.1.num.bool <1 (0x1)> + [16] #201.1.1.num.bool <1 (0x1)> + [17] #198.1.1.num.bool <0 (0x0)> + [18] #195.1.1.num.bool <1 (0x1)> + [19] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xc1, type 8, 194[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.array + [1] #243.1.1.array + [2] #241.1.1.num.bool <1 (0x1)> + [3] #234.1.1.num.bool <1 (0x1)> + [4] #231.1.1.num.bool <0 (0x0)> + [5] #228.1.1.num.bool <1 (0x1)> + [6] #226.1.1.num.bool <1 (0x1)> + [7] #225.1.1.num.bool <0 (0x0)> + [8] #222.1.1.num.bool <0 (0x0)> + [9] #219.1.1.num.bool <1 (0x1)> + [10] #216.1.1.num.bool <1 (0x1)> + [11] #213.1.1.num.bool <0 (0x0)> + [12] #210.1.1.num.bool <0 (0x0)> + [13] #207.1.1.num.bool <1 (0x1)> + [14] #204.1.1.num.bool <1 (0x1)> + [15] #201.1.1.num.bool <1 (0x1)> + [16] #198.1.1.num.bool <0 (0x0)> + [17] #195.1.1.num.bool <1 (0x1)> + [18] #191.1.1.num.bool <1 (0x1)> +IP: #186:0xc3, type 8, 196[2] +GC: --#245.1.1.array +GC: --#244.1.1.num.int +GC: --#243.1.1.array +GC: --#242.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.num.bool <1 (0x1)> + [1] #241.1.1.num.bool <1 (0x1)> + [2] #234.1.1.num.bool <1 (0x1)> + [3] #231.1.1.num.bool <0 (0x0)> + [4] #228.1.1.num.bool <1 (0x1)> + [5] #226.1.1.num.bool <1 (0x1)> + [6] #225.1.1.num.bool <0 (0x0)> + [7] #222.1.1.num.bool <0 (0x0)> + [8] #219.1.1.num.bool <1 (0x1)> + [9] #216.1.1.num.bool <1 (0x1)> + [10] #213.1.1.num.bool <0 (0x0)> + [11] #210.1.1.num.bool <0 (0x0)> + [12] #207.1.1.num.bool <1 (0x1)> + [13] #204.1.1.num.bool <1 (0x1)> + [14] #201.1.1.num.bool <1 (0x1)> + [15] #198.1.1.num.bool <0 (0x0)> + [16] #195.1.1.num.bool <1 (0x1)> + [17] #191.1.1.num.bool <1 (0x1)> diff --git a/tests/0047_hash/basic.log.ref b/tests/0047_hash/basic.log.ref new file mode 100644 index 0000000..0b19880 --- /dev/null +++ b/tests/0047_hash/basic.log.ref @@ -0,0 +1,536 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "cc"> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <33 (0x21)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <11 (0xb)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [1] #xxxx.1.1.num.int <33 (0x21)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [3] #xxxx.1.1.num.int <11 (0xb)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [2] #xxxx.1.1.num.int <33 (0x21)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <11 (0xb)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <22 (0x16)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <22 (0x16)> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.2.num.int <22 (0x16)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <99 (0x63)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [2] #xxxx.1.2.hash + [3] #xxxx.1.2.num.int <22 (0x16)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "bar"> + [1] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "bar"> + [2] #xxxx.1.1.num.int <22 (0x16)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "bar"> + [2] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "bb"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.num.int <22 (0x16)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "bb"> + [2] #xxxx.1.2.hash + [3] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "cc"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.num.int <22 (0x16)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "cc"> + [2] #xxxx.1.2.hash + [3] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.num.int <22 (0x16)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [2] #xxxx.1.2.hash + [3] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.10.mem.ro> + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <100 (0x64)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "aa"> + [2] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <200 (0xc8)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "bb"> + [2] #xxxx.1.2.num.int <100 (0x64)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "aa"> + [4] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.forall + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <300 (0x12c)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "cc"> + [2] #xxxx.1.2.num.int <200 (0xc8)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "bb"> + [4] #xxxx.1.2.num.int <100 (0x64)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "aa"> + [6] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.forall +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <300 (0x12c)> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [2] #xxxx.1.2.num.int <200 (0xc8)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [4] #xxxx.1.2.num.int <100 (0x64)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [6] #xxxx.1.1.num.int <22 (0x16)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.2.num.int <300 (0x12c)> + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [3] #xxxx.1.2.num.int <200 (0xc8)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [5] #xxxx.1.2.num.int <100 (0x64)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [7] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.2.num.int <300 (0x12c)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [4] #xxxx.1.2.num.int <200 (0xc8)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [6] #xxxx.1.2.num.int <100 (0x64)> + [7] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [8] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "aa"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.2.num.int <300 (0x12c)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "cc"> + [5] #xxxx.1.2.num.int <200 (0xc8)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "bb"> + [7] #xxxx.1.2.num.int <100 (0x64)> + [8] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "aa"> + [9] #xxxx.1.1.num.int <22 (0x16)> +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.2.num.int <300 (0x12c)> + [2] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [3] #xxxx.1.2.num.int <200 (0xc8)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [7] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.2.num.int <300 (0x12c)> + [3] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [4] #xxxx.1.2.num.int <200 (0xc8)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [6] #xxxx.1.1.num.int <100 (0x64)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [8] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "cc"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.2.num.int <300 (0x12c)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "cc"> + [5] #xxxx.1.2.num.int <200 (0xc8)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "bb"> + [7] #xxxx.1.1.num.int <100 (0x64)> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "aa"> + [9] #xxxx.1.1.num.int <22 (0x16)> +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [3] #xxxx.1.2.num.int <200 (0xc8)> + [4] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [7] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [4] #xxxx.1.2.num.int <200 (0xc8)> + [5] #xxxx.1.2.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [6] #xxxx.1.1.num.int <100 (0x64)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [8] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "bb"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "cc"> + [5] #xxxx.1.2.num.int <200 (0xc8)> + [6] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "bb"> + [7] #xxxx.1.1.num.int <100 (0x64)> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "aa"> + [9] #xxxx.1.1.num.int <22 (0x16)> +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [7] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [6] #xxxx.1.1.num.int <100 (0x64)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [8] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "xx"> + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "cc"> + [5] #xxxx.1.1.num.int <200 (0xc8)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "bb"> + [7] #xxxx.1.1.num.int <100 (0x64)> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "aa"> + [9] #xxxx.1.1.num.int <22 (0x16)> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [7] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.num.int <1000 (0x3e8)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [6] #xxxx.1.1.num.int <100 (0x64)> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [8] #xxxx.1.1.num.int <22 (0x16)> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.10.mem.ro> + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.num.int <1000 (0x3e8)> + [3] #xxxx.1.1.num.int <300 (0x12c)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "cc"> + [5] #xxxx.1.1.num.int <200 (0xc8)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "bb"> + [7] #xxxx.1.1.num.int <100 (0x64)> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "aa"> + [9] #xxxx.1.1.num.int <22 (0x16)> +GC: --#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1000 (0x3e8)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [5] #xxxx.1.1.num.int <100 (0x64)> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [7] #xxxx.1.1.num.int <22 (0x16)> diff --git a/tests/0047_hash/code.log.ref b/tests/0047_hash/code.log.ref new file mode 100644 index 0000000..e87d520 --- /dev/null +++ b/tests/0047_hash/code.log.ref @@ -0,0 +1,61 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 55 entries (55 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 int 81 0b 11 + 5 0x00013 str 27 63 63 "cc" + 6 0x00016 int 81 21 33 + 7 0x00018 str 27 62 62 "bb" + 8 0x0001b int 81 16 22 + 9 0x0001d word 18 29 ) + 10 0x0001f word 38 64 65 66 def + 2 11 0x00023 word 38 66 6f 6f foo + 12 0x00027 str 27 62 62 "bb" + 13 0x0002a word 38 67 65 74 get + 3 14 0x0002e word 38 66 6f 6f foo + 15 0x00032 str 27 62 62 "bb" + 16 0x00035 int 81 63 99 + 17 0x00037 word 38 70 75 74 put + 5 18 0x0003b ref 39 62 61 72 /bar + 19 0x0003f word 18 28 ( + 20 0x00041 word 18 29 ) + 21 0x00043 word 38 64 65 66 def + 7 22 0x00047 word 38 62 61 72 bar + 23 0x0004b str 27 62 62 "bb" + 24 0x0004e int 91 c8 00 200 + 25 0x00051 word 38 70 75 74 put + 8 26 0x00055 word 38 62 61 72 bar + 27 0x00059 str 27 63 63 "cc" + 28 0x0005c int 91 2c 01 300 + 29 0x0005f word 38 70 75 74 put + 9 30 0x00063 word 38 62 61 72 bar + 31 0x00067 str 27 61 61 "aa" + 32 0x0006a int 81 64 100 + 33 0x0006c word 38 70 75 74 put + 11 34 0x00070 word 38 62 61 72 bar + 35 0x00074 code 16 { + 36 0x00075 prim 13 } + 37 0x00076 word 68 66 6f 72 61 6c 6c forall + 13 38 0x0007d int 91 e8 03 1000 + 15 39 0x00080 word 38 62 61 72 bar + 40 0x00084 str 27 61 61 "aa" + 41 0x00087 word 68 64 65 6c 65 74 65 delete + 16 42 0x0008e word 38 62 61 72 bar + 43 0x00092 str 27 63 63 "cc" + 44 0x00095 word 68 64 65 6c 65 74 65 delete + 17 45 0x0009c word 38 62 61 72 bar + 46 0x000a0 str 27 62 62 "bb" + 47 0x000a3 word 68 64 65 6c 65 74 65 delete + 18 48 0x000aa word 38 62 61 72 bar + 49 0x000ae str 27 78 78 "xx" + 50 0x000b1 word 68 64 65 6c 65 74 65 delete + 20 51 0x000b8 word 38 62 61 72 bar + 52 0x000bc code 16 { + 53 0x000bd prim 13 } + 54 0x000be word 68 66 6f 72 61 6c 6c forall diff --git a/tests/0047_hash/code1.log.ref b/tests/0047_hash/code1.log.ref new file mode 100644 index 0000000..5bed497 --- /dev/null +++ b/tests/0047_hash/code1.log.ref @@ -0,0 +1,61 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 55 entries (55 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 int 81 0b 11 + 5 0x00013 str 27 63 63 "cc" + 6 0x00016 int 81 21 33 + 7 0x00018 str 27 62 62 "bb" + 8 0x0001b int 81 16 22 + 9 0x0001d word 18 29 ) + 10 0x0001f word 38 64 65 66 def + 2 11 0x00023 word 38 66 6f 6f foo + 12 0x00027 xref 84 0f "bb" + 13 0x00029 word 38 67 65 74 get + 3 14 0x0002d xref 84 0a foo + 15 0x0002f xref 84 17 "bb" + 16 0x00031 int 81 63 99 + 17 0x00033 word 38 70 75 74 put + 5 18 0x00037 ref 39 62 61 72 /bar + 19 0x0003b word 18 28 ( + 20 0x0003d word 18 29 ) + 21 0x0003f xref 84 20 def + 7 22 0x00041 word 38 62 61 72 bar + 23 0x00045 xref 84 2d "bb" + 24 0x00047 int 91 c8 00 200 + 25 0x0004a xref 84 17 put + 8 26 0x0004c xref 84 0b bar + 27 0x0004e xref 84 3b "cc" + 28 0x00050 int 91 2c 01 300 + 29 0x00053 xref 84 20 put + 9 30 0x00055 xref 84 14 bar + 31 0x00057 xref 84 49 "aa" + 32 0x00059 int 81 64 100 + 33 0x0005b xref 84 28 put + 11 34 0x0005d xref 84 1c bar + 35 0x0005f code 16 { + 36 0x00060 prim 13 } + 37 0x00061 word 68 66 6f 72 61 6c 6c forall + 13 38 0x00068 int 91 e8 03 1000 + 15 39 0x0006b xref 84 2a bar + 40 0x0006d xref 84 5f "aa" + 41 0x0006f word 68 64 65 6c 65 74 65 delete + 16 42 0x00076 xref 84 35 bar + 43 0x00078 xref 84 65 "cc" + 44 0x0007a xref 84 0b delete + 17 45 0x0007c xref 84 3b bar + 46 0x0007e xref 84 66 "bb" + 47 0x00080 xref 84 11 delete + 18 48 0x00082 xref 84 41 bar + 49 0x00084 str 27 78 78 "xx" + 50 0x00087 xref 84 18 delete + 20 51 0x00089 xref 84 48 bar + 52 0x0008b code 16 { + 53 0x0008c prim 13 } + 54 0x0008d xref 84 2c forall diff --git a/tests/0047_hash/code2.log.ref b/tests/0047_hash/code2.log.ref new file mode 100644 index 0000000..530dc80 --- /dev/null +++ b/tests/0047_hash/code2.log.ref @@ -0,0 +1,61 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 55 entries (55 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c prim 43 ( + 3 0x0000d str 27 61 61 "aa" + 4 0x00010 int 81 0b 11 + 5 0x00012 str 27 63 63 "cc" + 6 0x00015 int 81 21 33 + 7 0x00017 str 27 62 62 "bb" + 8 0x0001a int 81 16 22 + 9 0x0001c prim 53 ) + 10 0x0001d prim 63 def + 2 11 0x0001e word 38 66 6f 6f foo + 12 0x00022 xref 84 0b "bb" + 13 0x00024 prim 83 12 get + 3 14 0x00026 xref 84 08 foo + 15 0x00028 xref 84 11 "bb" + 16 0x0002a int 81 63 99 + 17 0x0002c prim 83 13 put + 5 18 0x0002e ref 39 62 61 72 /bar + 19 0x00032 prim 43 ( + 20 0x00033 prim 53 ) + 21 0x00034 prim 63 def + 7 22 0x00035 word 38 62 61 72 bar + 23 0x00039 xref 84 22 "bb" + 24 0x0003b int 91 c8 00 200 + 25 0x0003e prim 83 13 put + 8 26 0x00040 xref 84 0b bar + 27 0x00042 xref 84 30 "cc" + 28 0x00044 int 91 2c 01 300 + 29 0x00047 prim 83 13 put + 9 30 0x00049 xref 84 14 bar + 31 0x0004b xref 84 3e "aa" + 32 0x0004d int 81 64 100 + 33 0x0004f prim 83 13 put + 11 34 0x00051 xref 84 1c bar + 35 0x00053 code 16 { + 36 0x00054 prim 13 } + 37 0x00055 prim 83 0e forall + 13 38 0x00057 int 91 e8 03 1000 + 15 39 0x0005a xref 84 25 bar + 40 0x0005c xref 84 4f "aa" + 41 0x0005e prim 83 14 delete + 16 42 0x00060 xref 84 2b bar + 43 0x00062 xref 84 50 "cc" + 44 0x00064 prim 83 14 delete + 17 45 0x00066 xref 84 31 bar + 46 0x00068 xref 84 51 "bb" + 47 0x0006a prim 83 14 delete + 18 48 0x0006c xref 84 37 bar + 49 0x0006e str 27 78 78 "xx" + 50 0x00071 prim 83 14 delete + 20 51 0x00073 xref 84 3e bar + 52 0x00075 code 16 { + 53 0x00076 prim 13 } + 54 0x00077 prim 83 0e forall diff --git a/tests/0047_hash/main.gs b/tests/0047_hash/main.gs new file mode 100644 index 0000000..51556aa --- /dev/null +++ b/tests/0047_hash/main.gs @@ -0,0 +1,20 @@ +/foo ( "aa" 11 "cc" 33 "bb" 22 ) def +foo "bb" get +foo "bb" 99 put + +/bar ( ) def + +bar "bb" 200 put +bar "cc" 300 put +bar "aa" 100 put + +bar { } forall + +1000 + +bar "aa" delete +bar "cc" delete +bar "bb" delete +bar "xx" delete + +bar { } forall diff --git a/tests/0047_hash/mem.log.ref b/tests/0047_hash/mem.log.ref new file mode 100644 index 0000000..965966d --- /dev/null +++ b/tests/0047_hash/mem.log.ref @@ -0,0 +1,804 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 200] + 8: 187.01, 0x001d6b3c[ 72] + 9: 188.01, 0x001d6b8c[ 56] + 10: 196.01, 0x001d6bcc[ 36] + 11: 198.01, 0x001d6bf8[ 72] + 12: 202.01, 0x001d6c48[ 140] + 13: 0.00, 0x001d6cdc[14848804] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #201.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x3c, size 3, "bar"> => #202.1.1.hash + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x9, size 3, "foo"> => #196.1.1.hash + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.9.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 18 28 27 61 uQ..Bz.`9foo.('a + 61 81 0b 27 63 63 81 21 27 62 62 81 16 18 29 38 a..'cc.!'bb...)8 + 64 65 66 38 66 6f 6f 27 62 62 38 67 65 74 38 66 def8foo'bb8get8f + 6f 6f 27 62 62 81 63 38 70 75 74 39 62 61 72 18 oo'bb.c8put9bar. + 28 18 29 38 64 65 66 38 62 61 72 27 62 62 91 c8 (.)8def8bar'bb.. + 00 38 70 75 74 38 62 61 72 27 63 63 91 2c 01 38 .8put8bar'cc.,.8 + 70 75 74 38 62 61 72 27 61 61 81 64 38 70 75 74 put8bar'aa.d8put + 38 62 61 72 16 13 68 66 6f 72 61 6c 6c 91 e8 03 8bar..hforall... + 38 62 61 72 27 61 61 68 64 65 6c 65 74 65 38 62 8bar'aahdelete8b + 61 72 27 63 63 68 64 65 6c 65 74 65 38 62 61 72 ar'cchdelete8bar + 27 62 62 68 64 65 6c 65 74 65 38 62 61 72 27 78 'bbhdelete8bar'x + 78 68 64 65 6c 65 74 65 38 62 61 72 16 13 68 66 xhdelete8bar..hf + 6f 72 61 6c 6c orall + #187.1.1.array + [ 0] #195.1.1.num.int <22 (0x16)> + [ 1] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [ 2] #208.1.1.num.int <100 (0x64)> + [ 3] #203.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [ 4] #204.1.1.num.int <200 (0xc8)> + [ 5] #205.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [ 6] #206.1.1.num.int <300 (0x12c)> + [ 7] #211.1.1.num.int <1000 (0x3e8)> + #188.1.1.ctx.func + type 17, ip 0xc5 (0xc5) + code #186.1.9.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0xf, size 2, "aa"> + 61 61 aa + #191.1.1.num.int <11 (0xb)> + #192.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x14, size 2, "cc"> + 63 63 cc + #193.1.1.num.int <33 (0x21)> + #195.1.1.num.int <22 (0x16)> + #196.1.1.hash + #190.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0xf, size 2, "aa"> => #191.1.1.num.int <11 (0xb)> + #199.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x33, size 2, "bb"> => #200.1.1.num.int <99 (0x63)> + #192.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x14, size 2, "cc"> => #193.1.1.num.int <33 (0x21)> + #198.1.1.array + #199.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x33, size 2, "bb"> + 62 62 bb + #200.1.1.num.int <99 (0x63)> + #201.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x3c, size 3, "bar"> + 62 61 72 bar + #202.1.1.hash + #203.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + 62 62 bb + #204.1.1.num.int <200 (0xc8)> + #205.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + 63 63 cc + #206.1.1.num.int <300 (0x12c)> + #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + 61 61 aa + #208.1.1.num.int <100 (0x64)> + #211.1.1.num.int <1000 (0x3e8)> diff --git a/tests/0047_hash/screen.log.ref b/tests/0047_hash/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0047_hash/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0047_hash/trace.log.ref b/tests/0047_hash/trace.log.ref new file mode 100644 index 0000000..3871adb --- /dev/null +++ b/tests/0047_hash/trace.log.ref @@ -0,0 +1,592 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 8, 13[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 7, 15[2] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "aa"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x11, type 1, 11 (0xb) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <11 (0xb)> + [1] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "aa"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x13, type 7, 20[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x14, size 2, "cc"> + [1] #191.1.1.num.int <11 (0xb)> + [2] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "aa"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x16, type 1, 33 (0x21) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <33 (0x21)> + [1] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x14, size 2, "cc"> + [2] #191.1.1.num.int <11 (0xb)> + [3] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "aa"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x18, type 7, 25[2] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "bb"> + [1] #193.1.1.num.int <33 (0x21)> + [2] #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x14, size 2, "cc"> + [3] #191.1.1.num.int <11 (0xb)> + [4] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1b, type 1, 22 (0x16) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <22 (0x16)> + [1] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "bb"> + [2] #193.1.1.num.int <33 (0x21)> + [3] #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x14, size 2, "cc"> + [4] #191.1.1.num.int <11 (0xb)> + [5] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1d, type 8, 30[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.hash + [1] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1f, type 8, 32[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#196.1.1.hash +GC: --#196.1.2.hash +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x23, type 8, 36[3] +GC: ++#196.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.2.hash +IP: #186:0x27, type 7, 40[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x28, size 2, "bb"> + [1] #196.1.2.hash +IP: #186:0x2a, type 8, 43[3] +GC: ++#195.1.1.num.int +GC: --#197.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <22 (0x16)> +IP: #186:0x2e, type 8, 47[3] +GC: ++#196.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.2.hash + [1] #195.1.2.num.int <22 (0x16)> +IP: #186:0x32, type 7, 51[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x33, size 2, "bb"> + [1] #196.1.2.hash + [2] #195.1.2.num.int <22 (0x16)> +IP: #186:0x35, type 1, 99 (0x63) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <99 (0x63)> + [1] #199.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x33, size 2, "bb"> + [2] #196.1.2.hash + [3] #195.1.2.num.int <22 (0x16)> +IP: #186:0x37, type 8, 56[3] +GC: ++#199.1.1.mem.str.ro +GC: ++#200.1.1.num.int +GC: --#194.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#195.1.2.num.int +GC: --#200.1.2.num.int +GC: --#199.1.2.mem.str.ro +GC: --#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <22 (0x16)> +IP: #186:0x3b, type 9, 60[3] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x3c, size 3, "bar"> + [1] #195.1.1.num.int <22 (0x16)> +IP: #186:0x3f, type 8, 64[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #201.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x3c, size 3, "bar"> + [2] #195.1.1.num.int <22 (0x16)> +IP: #186:0x41, type 8, 66[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.hash + [1] #201.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x3c, size 3, "bar"> + [2] #195.1.1.num.int <22 (0x16)> +IP: #186:0x43, type 8, 68[3] +GC: ++#201.1.1.mem.ref.ro +GC: ++#202.1.1.hash +GC: --#202.1.2.hash +GC: --#201.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <22 (0x16)> +IP: #186:0x47, type 8, 72[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #195.1.1.num.int <22 (0x16)> +IP: #186:0x4b, type 7, 76[2] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x4c, size 2, "bb"> + [1] #202.1.2.hash + [2] #195.1.1.num.int <22 (0x16)> +IP: #186:0x4e, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <200 (0xc8)> + [1] #203.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x4c, size 2, "bb"> + [2] #202.1.2.hash + [3] #195.1.1.num.int <22 (0x16)> +IP: #186:0x51, type 8, 82[3] +GC: ++#203.1.1.mem.str.ro +GC: ++#204.1.1.num.int +GC: --#204.1.2.num.int +GC: --#203.1.2.mem.str.ro +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <22 (0x16)> +IP: #186:0x55, type 8, 86[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #195.1.1.num.int <22 (0x16)> +IP: #186:0x59, type 7, 90[2] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x5a, size 2, "cc"> + [1] #202.1.2.hash + [2] #195.1.1.num.int <22 (0x16)> +IP: #186:0x5c, type 1, 300 (0x12c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <300 (0x12c)> + [1] #205.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x5a, size 2, "cc"> + [2] #202.1.2.hash + [3] #195.1.1.num.int <22 (0x16)> +IP: #186:0x5f, type 8, 96[3] +GC: ++#205.1.1.mem.str.ro +GC: ++#206.1.1.num.int +GC: --#206.1.2.num.int +GC: --#205.1.2.mem.str.ro +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <22 (0x16)> +IP: #186:0x63, type 8, 100[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #195.1.1.num.int <22 (0x16)> +IP: #186:0x67, type 7, 104[2] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [1] #202.1.2.hash + [2] #195.1.1.num.int <22 (0x16)> +IP: #186:0x6a, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <100 (0x64)> + [1] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [2] #202.1.2.hash + [3] #195.1.1.num.int <22 (0x16)> +IP: #186:0x6c, type 8, 109[3] +GC: ++#207.1.1.mem.str.ro +GC: ++#208.1.1.num.int +GC: --#208.1.2.num.int +GC: --#207.1.2.mem.str.ro +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <22 (0x16)> +IP: #186:0x70, type 8, 113[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #195.1.1.num.int <22 (0x16)> +IP: #186:0x74, type 6, 117[1] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x75, size 1> + [1] #202.1.2.hash + [2] #195.1.1.num.int <22 (0x16)> +IP: #186:0x76, type 8, 119[6] +GC: ++#207.1.1.mem.str.ro +GC: ++#208.1.1.num.int +GC: ++#209.1.1.mem.code.ro +GC: ++#202.1.2.hash +GC: --#209.1.2.mem.code.ro +GC: --#202.1.3.hash +== backtrace == + [0] #210.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.2.num.int <100 (0x64)> + [1] #207.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x68, size 2, "aa"> + [2] #195.1.1.num.int <22 (0x16)> +IP: #209:0x0, type 3, 1 (0x1) +GC: ++#203.1.1.mem.str.ro +GC: ++#204.1.1.num.int +== backtrace == + [0] #210.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.2.num.int <200 (0xc8)> + [1] #203.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x4c, size 2, "bb"> + [2] #208.1.2.num.int <100 (0x64)> + [3] #207.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x68, size 2, "aa"> + [4] #195.1.1.num.int <22 (0x16)> +IP: #209:0x0, type 3, 1 (0x1) +GC: ++#205.1.1.mem.str.ro +GC: ++#206.1.1.num.int +== backtrace == + [0] #210.1.1.ctx.forall + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.2.num.int <300 (0x12c)> + [1] #205.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x5a, size 2, "cc"> + [2] #204.1.2.num.int <200 (0xc8)> + [3] #203.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x4c, size 2, "bb"> + [4] #208.1.2.num.int <100 (0x64)> + [5] #207.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x68, size 2, "aa"> + [6] #195.1.1.num.int <22 (0x16)> +IP: #209:0x0, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#210.1.1.ctx.forall +GC: --#188.1.2.ctx.func +GC: --#209.1.1.mem.code.ro +GC: --#202.1.2.hash +GC: --#186.1.10.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.2.num.int <300 (0x12c)> + [1] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [2] #204.1.2.num.int <200 (0xc8)> + [3] #203.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [4] #208.1.2.num.int <100 (0x64)> + [5] #207.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [6] #195.1.1.num.int <22 (0x16)> +IP: #186:0x7d, type 1, 1000 (0x3e8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <1000 (0x3e8)> + [1] #206.1.2.num.int <300 (0x12c)> + [2] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [3] #204.1.2.num.int <200 (0xc8)> + [4] #203.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [5] #208.1.2.num.int <100 (0x64)> + [6] #207.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [7] #195.1.1.num.int <22 (0x16)> +IP: #186:0x80, type 8, 129[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #211.1.1.num.int <1000 (0x3e8)> + [2] #206.1.2.num.int <300 (0x12c)> + [3] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [4] #204.1.2.num.int <200 (0xc8)> + [5] #203.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [6] #208.1.2.num.int <100 (0x64)> + [7] #207.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [8] #195.1.1.num.int <22 (0x16)> +IP: #186:0x84, type 7, 133[2] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x85, size 2, "aa"> + [1] #202.1.2.hash + [2] #211.1.1.num.int <1000 (0x3e8)> + [3] #206.1.2.num.int <300 (0x12c)> + [4] #205.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x5a, size 2, "cc"> + [5] #204.1.2.num.int <200 (0xc8)> + [6] #203.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x4c, size 2, "bb"> + [7] #208.1.2.num.int <100 (0x64)> + [8] #207.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x68, size 2, "aa"> + [9] #195.1.1.num.int <22 (0x16)> +IP: #186:0x87, type 8, 136[6] +GC: --#207.1.2.mem.str.ro +GC: --#208.1.2.num.int +GC: --#212.1.1.mem.str.ro +GC: --#186.1.10.mem.ro +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <1000 (0x3e8)> + [1] #206.1.2.num.int <300 (0x12c)> + [2] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [3] #204.1.2.num.int <200 (0xc8)> + [4] #203.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [5] #208.1.1.num.int <100 (0x64)> + [6] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [7] #195.1.1.num.int <22 (0x16)> +IP: #186:0x8e, type 8, 143[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #211.1.1.num.int <1000 (0x3e8)> + [2] #206.1.2.num.int <300 (0x12c)> + [3] #205.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [4] #204.1.2.num.int <200 (0xc8)> + [5] #203.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [6] #208.1.1.num.int <100 (0x64)> + [7] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [8] #195.1.1.num.int <22 (0x16)> +IP: #186:0x92, type 7, 147[2] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x93, size 2, "cc"> + [1] #202.1.2.hash + [2] #211.1.1.num.int <1000 (0x3e8)> + [3] #206.1.2.num.int <300 (0x12c)> + [4] #205.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x5a, size 2, "cc"> + [5] #204.1.2.num.int <200 (0xc8)> + [6] #203.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x4c, size 2, "bb"> + [7] #208.1.1.num.int <100 (0x64)> + [8] #207.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x68, size 2, "aa"> + [9] #195.1.1.num.int <22 (0x16)> +IP: #186:0x95, type 8, 150[6] +GC: --#205.1.2.mem.str.ro +GC: --#206.1.2.num.int +GC: --#213.1.1.mem.str.ro +GC: --#186.1.10.mem.ro +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <1000 (0x3e8)> + [1] #206.1.1.num.int <300 (0x12c)> + [2] #205.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [3] #204.1.2.num.int <200 (0xc8)> + [4] #203.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [5] #208.1.1.num.int <100 (0x64)> + [6] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [7] #195.1.1.num.int <22 (0x16)> +IP: #186:0x9c, type 8, 157[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #211.1.1.num.int <1000 (0x3e8)> + [2] #206.1.1.num.int <300 (0x12c)> + [3] #205.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [4] #204.1.2.num.int <200 (0xc8)> + [5] #203.1.2.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [6] #208.1.1.num.int <100 (0x64)> + [7] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [8] #195.1.1.num.int <22 (0x16)> +IP: #186:0xa0, type 7, 161[2] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0xa1, size 2, "bb"> + [1] #202.1.2.hash + [2] #211.1.1.num.int <1000 (0x3e8)> + [3] #206.1.1.num.int <300 (0x12c)> + [4] #205.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x5a, size 2, "cc"> + [5] #204.1.2.num.int <200 (0xc8)> + [6] #203.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x4c, size 2, "bb"> + [7] #208.1.1.num.int <100 (0x64)> + [8] #207.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x68, size 2, "aa"> + [9] #195.1.1.num.int <22 (0x16)> +IP: #186:0xa3, type 8, 164[6] +GC: --#203.1.2.mem.str.ro +GC: --#204.1.2.num.int +GC: --#214.1.1.mem.str.ro +GC: --#186.1.10.mem.ro +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <1000 (0x3e8)> + [1] #206.1.1.num.int <300 (0x12c)> + [2] #205.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [3] #204.1.1.num.int <200 (0xc8)> + [4] #203.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [5] #208.1.1.num.int <100 (0x64)> + [6] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [7] #195.1.1.num.int <22 (0x16)> +IP: #186:0xaa, type 8, 171[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #211.1.1.num.int <1000 (0x3e8)> + [2] #206.1.1.num.int <300 (0x12c)> + [3] #205.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [4] #204.1.1.num.int <200 (0xc8)> + [5] #203.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [6] #208.1.1.num.int <100 (0x64)> + [7] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [8] #195.1.1.num.int <22 (0x16)> +IP: #186:0xae, type 7, 175[2] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0xaf, size 2, "xx"> + [1] #202.1.2.hash + [2] #211.1.1.num.int <1000 (0x3e8)> + [3] #206.1.1.num.int <300 (0x12c)> + [4] #205.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x5a, size 2, "cc"> + [5] #204.1.1.num.int <200 (0xc8)> + [6] #203.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x4c, size 2, "bb"> + [7] #208.1.1.num.int <100 (0x64)> + [8] #207.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x68, size 2, "aa"> + [9] #195.1.1.num.int <22 (0x16)> +IP: #186:0xb1, type 8, 178[6] +GC: --#215.1.1.mem.str.ro +GC: --#186.1.10.mem.ro +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <1000 (0x3e8)> + [1] #206.1.1.num.int <300 (0x12c)> + [2] #205.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [3] #204.1.1.num.int <200 (0xc8)> + [4] #203.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [5] #208.1.1.num.int <100 (0x64)> + [6] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [7] #195.1.1.num.int <22 (0x16)> +IP: #186:0xb8, type 8, 185[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #211.1.1.num.int <1000 (0x3e8)> + [2] #206.1.1.num.int <300 (0x12c)> + [3] #205.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [4] #204.1.1.num.int <200 (0xc8)> + [5] #203.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [6] #208.1.1.num.int <100 (0x64)> + [7] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [8] #195.1.1.num.int <22 (0x16)> +IP: #186:0xbc, type 6, 189[1] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0xbd, size 1> + [1] #202.1.2.hash + [2] #211.1.1.num.int <1000 (0x3e8)> + [3] #206.1.1.num.int <300 (0x12c)> + [4] #205.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x5a, size 2, "cc"> + [5] #204.1.1.num.int <200 (0xc8)> + [6] #203.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x4c, size 2, "bb"> + [7] #208.1.1.num.int <100 (0x64)> + [8] #207.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x68, size 2, "aa"> + [9] #195.1.1.num.int <22 (0x16)> +IP: #186:0xbe, type 8, 191[6] +GC: --#216.1.1.mem.code.ro +GC: --#186.1.10.mem.ro +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <1000 (0x3e8)> + [1] #206.1.1.num.int <300 (0x12c)> + [2] #205.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x5a, size 2, "cc"> + [3] #204.1.1.num.int <200 (0xc8)> + [4] #203.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x4c, size 2, "bb"> + [5] #208.1.1.num.int <100 (0x64)> + [6] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x68, size 2, "aa"> + [7] #195.1.1.num.int <22 (0x16)> diff --git a/tests/0048_delete_array/basic.log.ref b/tests/0048_delete_array/basic.log.ref new file mode 100644 index 0000000..708dc23 --- /dev/null +++ b/tests/0048_delete_array/basic.log.ref @@ -0,0 +1,130 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "dd"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "cc"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "bb"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <2 (0x2)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.2.array +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.2.array +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.5.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.array +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.4.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.2.array +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == diff --git a/tests/0048_delete_array/code.log.ref b/tests/0048_delete_array/code.log.ref new file mode 100644 index 0000000..032977a --- /dev/null +++ b/tests/0048_delete_array/code.log.ref @@ -0,0 +1,27 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 21 entries (21 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 5b [ + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 str 27 62 62 "bb" + 5 0x00014 str 27 63 63 "cc" + 6 0x00017 str 27 64 64 "dd" + 7 0x0001a word 18 5d ] + 8 0x0001c word 38 64 65 66 def + 3 9 0x00020 word 38 66 6f 6f foo + 10 0x00024 int 21 2 + 11 0x00025 word 68 64 65 6c 65 74 65 delete + 4 12 0x0002c word 38 66 6f 6f foo + 13 0x00030 int 81 ff -1 + 14 0x00032 word 68 64 65 6c 65 74 65 delete + 5 15 0x00039 word 38 66 6f 6f foo + 16 0x0003d int 11 1 + 17 0x0003e word 68 64 65 6c 65 74 65 delete + 6 18 0x00045 word 38 66 6f 6f foo + 19 0x00049 int 01 0 + 20 0x0004a word 68 64 65 6c 65 74 65 delete diff --git a/tests/0048_delete_array/code1.log.ref b/tests/0048_delete_array/code1.log.ref new file mode 100644 index 0000000..344d8bb --- /dev/null +++ b/tests/0048_delete_array/code1.log.ref @@ -0,0 +1,27 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 21 entries (21 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 5b [ + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 str 27 62 62 "bb" + 5 0x00014 str 27 63 63 "cc" + 6 0x00017 str 27 64 64 "dd" + 7 0x0001a word 18 5d ] + 8 0x0001c word 38 64 65 66 def + 3 9 0x00020 word 38 66 6f 6f foo + 10 0x00024 int 21 2 + 11 0x00025 word 68 64 65 6c 65 74 65 delete + 4 12 0x0002c xref 84 0c foo + 13 0x0002e int 81 ff -1 + 14 0x00030 xref 84 0b delete + 5 15 0x00032 xref 84 12 foo + 16 0x00034 int 11 1 + 17 0x00035 xref 84 10 delete + 6 18 0x00037 xref 84 17 foo + 19 0x00039 int 01 0 + 20 0x0003a xref 84 15 delete diff --git a/tests/0048_delete_array/code2.log.ref b/tests/0048_delete_array/code2.log.ref new file mode 100644 index 0000000..428dd7a --- /dev/null +++ b/tests/0048_delete_array/code2.log.ref @@ -0,0 +1,27 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 21 entries (21 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c prim 23 [ + 3 0x0000d str 27 61 61 "aa" + 4 0x00010 str 27 62 62 "bb" + 5 0x00013 str 27 63 63 "cc" + 6 0x00016 str 27 64 64 "dd" + 7 0x00019 prim 33 ] + 8 0x0001a prim 63 def + 3 9 0x0001b word 38 66 6f 6f foo + 10 0x0001f int 21 2 + 11 0x00020 prim 83 14 delete + 4 12 0x00022 xref 74 foo + 13 0x00023 int 81 ff -1 + 14 0x00025 prim 83 14 delete + 5 15 0x00027 xref 84 0c foo + 16 0x00029 int 11 1 + 17 0x0002a prim 83 14 delete + 6 18 0x0002c xref 84 11 foo + 19 0x0002e int 01 0 + 20 0x0002f prim 83 14 delete diff --git a/tests/0048_delete_array/main.gs b/tests/0048_delete_array/main.gs new file mode 100644 index 0000000..bed66e4 --- /dev/null +++ b/tests/0048_delete_array/main.gs @@ -0,0 +1,6 @@ +/foo [ "aa" "bb" "cc" "dd" ] def + +foo 2 delete +foo -1 delete +foo 1 delete +foo 0 delete diff --git a/tests/0048_delete_array/mem.log.ref b/tests/0048_delete_array/mem.log.ref new file mode 100644 index 0000000..e5776e9 --- /dev/null +++ b/tests/0048_delete_array/mem.log.ref @@ -0,0 +1,761 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 84] + 8: 187.01, 0x001d6ac8[ 72] + 9: 188.01, 0x001d6b18[ 56] + 10: 194.01, 0x001d6b58[ 24] + 11: 196.01, 0x001d6b78[ 72] + 12: 0.00, 0x001d6bc8[14849080] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> => #194.1.1.array + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.2.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 18 5b 27 61 uQ..Bz.`9foo.['a + 61 27 62 62 27 63 63 27 64 64 18 5d 38 64 65 66 a'bb'cc'dd.]8def + 38 66 6f 6f 21 68 64 65 6c 65 74 65 38 66 6f 6f 8foo!hdelete8foo + 81 ff 68 64 65 6c 65 74 65 38 66 6f 6f 11 68 64 ..hdelete8foo.hd + 65 6c 65 74 65 38 66 6f 6f 01 68 64 65 6c 65 74 elete8foo.hdelet + 65 e + #187.1.1.array + #188.1.1.ctx.func + type 17, ip 0x51 (0x51) + code #186.1.2.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #194.1.1.array + #196.1.1.array diff --git a/tests/0048_delete_array/screen.log.ref b/tests/0048_delete_array/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0048_delete_array/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0048_delete_array/trace.log.ref b/tests/0048_delete_array/trace.log.ref new file mode 100644 index 0000000..c4cb0cc --- /dev/null +++ b/tests/0048_delete_array/trace.log.ref @@ -0,0 +1,151 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 8, 13[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 7, 15[2] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "aa"> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x11, type 7, 18[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x12, size 2, "bb"> + [1] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "aa"> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x14, type 7, 21[2] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x15, size 2, "cc"> + [1] #191.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x12, size 2, "bb"> + [2] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x17, type 7, 24[2] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x18, size 2, "dd"> + [1] #192.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x15, size 2, "cc"> + [2] #191.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x12, size 2, "bb"> + [3] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 2, "aa"> + [4] #9.1.2.num.prim <2 (0x2)> + [5] #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1a, type 8, 27[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.array + [1] #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1c, type 8, 29[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#194.1.1.array +GC: --#194.1.2.array +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x20, type 8, 33[3] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array +IP: #186:0x24, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <2 (0x2)> + [1] #194.1.2.array +IP: #186:0x25, type 8, 38[6] +GC: --#192.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#195.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x2c, type 8, 45[3] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array +IP: #186:0x30, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #194.1.2.array +IP: #186:0x32, type 8, 51[6] +GC: --#193.1.1.mem.str.ro +GC: --#186.1.5.mem.ro +GC: --#197.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x39, type 8, 58[3] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array +IP: #186:0x3d, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <1 (0x1)> + [1] #194.1.2.array +IP: #186:0x3e, type 8, 63[6] +GC: --#191.1.1.mem.str.ro +GC: --#186.1.4.mem.ro +GC: --#198.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x45, type 8, 70[3] +GC: ++#194.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.array +IP: #186:0x49, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <0 (0x0)> + [1] #194.1.2.array +IP: #186:0x4a, type 8, 75[6] +GC: --#190.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +GC: --#199.1.1.num.int +GC: --#194.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == diff --git a/tests/0049_delete_string/basic.log.ref b/tests/0049_delete_string/basic.log.ref new file mode 100644 index 0000000..dc6eea0 --- /dev/null +++ b/tests/0049_delete_string/basic.log.ref @@ -0,0 +1,130 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abcdef"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str +GC: --#xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.2.mem.str +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.2.mem.str +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "bar"> +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "xyz123"> + [1] #xxxx.1.1.mem.ref +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #xxxx.1.1.mem.ref +GC: ++#xxxx.1.1.mem.str +GC: --#xxxx.1.1.mem.ref +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.2.mem.str +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #xxxx.1.2.mem.str +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str + [1] #xxxx.1.2.mem.str diff --git a/tests/0049_delete_string/code.log.ref b/tests/0049_delete_string/code.log.ref new file mode 100644 index 0000000..7f7065a --- /dev/null +++ b/tests/0049_delete_string/code.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c str 67 61 62 63 64 65 66 "abcdef" + 3 0x00013 word 68 73 74 72 69 6e 67 string + 4 0x0001a word 38 64 65 66 def + 3 5 0x0001e word 38 66 6f 6f foo + 6 0x00022 int 21 2 + 7 0x00023 word 68 64 65 6c 65 74 65 delete + 4 8 0x0002a word 38 66 6f 6f foo + 9 0x0002e int 01 0 + 10 0x0002f word 68 64 65 6c 65 74 65 delete + 6 11 0x00036 ref 39 62 61 72 /bar + 12 0x0003a word 68 73 74 72 69 6e 67 string + 13 0x00041 str 67 78 79 7a 31 32 33 "xyz123" + 14 0x00048 word 68 73 74 72 69 6e 67 string + 15 0x0004f word 38 64 65 66 def + 8 16 0x00053 word 38 62 61 72 bar + 17 0x00057 int 01 0 + 18 0x00058 word 68 64 65 6c 65 74 65 delete + 9 19 0x0005f word 38 62 61 72 bar + 20 0x00063 int 81 fe -2 + 21 0x00065 word 68 64 65 6c 65 74 65 delete + 11 22 0x0006c word 38 66 6f 6f foo + 12 23 0x00070 word 38 62 61 72 bar diff --git a/tests/0049_delete_string/code1.log.ref b/tests/0049_delete_string/code1.log.ref new file mode 100644 index 0000000..bd43ddd --- /dev/null +++ b/tests/0049_delete_string/code1.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c str 67 61 62 63 64 65 66 "abcdef" + 3 0x00013 word 68 73 74 72 69 6e 67 string + 4 0x0001a word 38 64 65 66 def + 3 5 0x0001e word 38 66 6f 6f foo + 6 0x00022 int 21 2 + 7 0x00023 word 68 64 65 6c 65 74 65 delete + 4 8 0x0002a xref 84 0c foo + 9 0x0002c int 01 0 + 10 0x0002d xref 84 0a delete + 6 11 0x0002f ref 39 62 61 72 /bar + 12 0x00033 xref 84 20 string + 13 0x00035 str 67 78 79 7a 31 32 33 "xyz123" + 14 0x0003c xref 84 29 string + 15 0x0003e xref 84 24 def + 8 16 0x00040 word 38 62 61 72 bar + 17 0x00044 int 01 0 + 18 0x00045 xref 84 22 delete + 9 19 0x00047 xref 74 bar + 20 0x00048 int 81 fe -2 + 21 0x0004a xref 84 27 delete + 11 22 0x0004c xref 84 2e foo + 12 23 0x0004e xref 84 0e bar diff --git a/tests/0049_delete_string/code2.log.ref b/tests/0049_delete_string/code2.log.ref new file mode 100644 index 0000000..f3554cf --- /dev/null +++ b/tests/0049_delete_string/code2.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c str 67 61 62 63 64 65 66 "abcdef" + 3 0x00013 prim 83 11 string + 4 0x00015 prim 63 def + 3 5 0x00016 word 38 66 6f 6f foo + 6 0x0001a int 21 2 + 7 0x0001b prim 83 14 delete + 4 8 0x0001d xref 74 foo + 9 0x0001e int 01 0 + 10 0x0001f prim 83 14 delete + 6 11 0x00021 ref 39 62 61 72 /bar + 12 0x00025 prim 83 11 string + 13 0x00027 str 67 78 79 7a 31 32 33 "xyz123" + 14 0x0002e prim 83 11 string + 15 0x00030 prim 63 def + 8 16 0x00031 word 38 62 61 72 bar + 17 0x00035 int 01 0 + 18 0x00036 prim 83 14 delete + 9 19 0x00038 xref 74 bar + 20 0x00039 int 81 fe -2 + 21 0x0003b prim 83 14 delete + 11 22 0x0003d xref 84 27 foo + 12 23 0x0003f xref 84 0e bar diff --git a/tests/0049_delete_string/main.gs b/tests/0049_delete_string/main.gs new file mode 100644 index 0000000..b03780d --- /dev/null +++ b/tests/0049_delete_string/main.gs @@ -0,0 +1,12 @@ +/foo "abcdef" string def + +foo 2 delete +foo 0 delete + +/bar string "xyz123" string def + +bar 0 delete +bar -2 delete + +foo +bar diff --git a/tests/0049_delete_string/mem.log.ref b/tests/0049_delete_string/mem.log.ref new file mode 100644 index 0000000..0d357b2 --- /dev/null +++ b/tests/0049_delete_string/mem.log.ref @@ -0,0 +1,774 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 116] + 8: 187.01, 0x001d6ae8[ 72] + 9: 188.01, 0x001d6b38[ 56] + 10: 191.01, 0x001d6b78[ 8] + 11: 192.01, 0x001d6b88[ 72] + 12: 0.00, 0x001d6bd8[ 4] + 13: 198.01, 0x001d6be4[ 8] + 14: 199.01, 0x001d6bf4[ 4] + 15: 0.00, 0x001d6c00[14849024] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #199.1.1.mem.ref => #198.1.2.mem.str + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> => #191.1.2.mem.str + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.2.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 67 61 62 63 uQ..Bz.`9foogabc + 64 65 66 68 73 74 72 69 6e 67 38 64 65 66 38 66 defhstring8def8f + 6f 6f 21 68 64 65 6c 65 74 65 38 66 6f 6f 01 68 oo!hdelete8foo.h + 64 65 6c 65 74 65 39 62 61 72 68 73 74 72 69 6e delete9barhstrin + 67 67 78 79 7a 31 32 33 68 73 74 72 69 6e 67 38 ggxyz123hstring8 + 64 65 66 38 62 61 72 01 68 64 65 6c 65 74 65 38 def8bar.hdelete8 + 62 61 72 81 fe 68 64 65 6c 65 74 65 38 66 6f 6f bar..hdelete8foo + 38 62 61 72 8bar + #187.1.1.array + [ 0] #191.1.2.mem.str + [ 1] #198.1.2.mem.str + #188.1.1.ctx.func + type 17, ip 0x74 (0x74) + code #186.1.2.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #191.1.2.mem.str + 62 64 65 66 bdef + #192.1.1.array + #198.1.2.mem.str + 79 7a 31 33 yz13 + #199.1.1.mem.ref + 62 61 72 bar diff --git a/tests/0049_delete_string/screen.log.ref b/tests/0049_delete_string/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0049_delete_string/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0049_delete_string/trace.log.ref b/tests/0049_delete_string/trace.log.ref new file mode 100644 index 0000000..74a798b --- /dev/null +++ b/tests/0049_delete_string/trace.log.ref @@ -0,0 +1,154 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 7, 13[6] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xd, size 6, "abcdef"> + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x13, type 8, 20[6] +GC: --#190.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.str + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1a, type 8, 27[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#191.1.1.mem.str +GC: --#191.1.2.mem.str +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1e, type 8, 31[3] +GC: ++#191.1.1.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.mem.str +IP: #186:0x22, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <2 (0x2)> + [1] #191.1.2.mem.str +IP: #186:0x23, type 8, 36[6] +GC: --#193.1.1.num.int +GC: --#191.1.2.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x2a, type 8, 43[3] +GC: ++#191.1.1.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.mem.str +IP: #186:0x2e, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <0 (0x0)> + [1] #191.1.2.mem.str +IP: #186:0x2f, type 8, 48[6] +GC: --#194.1.1.num.int +GC: --#191.1.2.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x36, type 9, 55[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x37, size 3, "bar"> +IP: #186:0x3a, type 8, 59[6] +GC: --#195.1.1.mem.ref.ro +GC: --#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.ref +IP: #186:0x41, type 7, 66[6] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x42, size 6, "xyz123"> + [1] #196.1.1.mem.ref +IP: #186:0x48, type 8, 73[6] +GC: --#197.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.mem.str + [1] #196.1.1.mem.ref +IP: #186:0x4f, type 8, 80[3] +GC: ++#198.1.1.mem.str +GC: --#196.1.1.mem.ref +GC: --#198.1.2.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x53, type 8, 84[3] +GC: ++#198.1.1.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.2.mem.str +IP: #186:0x57, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <0 (0x0)> + [1] #198.1.2.mem.str +IP: #186:0x58, type 8, 89[6] +GC: --#200.1.1.num.int +GC: --#198.1.2.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x5f, type 8, 96[3] +GC: ++#198.1.1.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.2.mem.str +IP: #186:0x63, type 1, -2 (0xfffffffffffffffe) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <-2 (0xfffffffffffffffe)> + [1] #198.1.2.mem.str +IP: #186:0x65, type 8, 102[6] +GC: --#201.1.1.num.int +GC: --#198.1.2.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x6c, type 8, 109[3] +GC: ++#191.1.1.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.mem.str +IP: #186:0x70, type 8, 113[3] +GC: ++#198.1.1.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.2.mem.str + [1] #191.1.2.mem.str diff --git a/tests/0050_parent/basic.log.ref b/tests/0050_parent/basic.log.ref new file mode 100644 index 0000000..e43ad34 --- /dev/null +++ b/tests/0050_parent/basic.log.ref @@ -0,0 +1,211 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [2] #xxxx.1.1.num.int <11 (0xb)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [1] #xxxx.1.1.num.int <22 (0x16)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [3] #xxxx.1.1.num.int <11 (0xb)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <33 (0x21)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <22 (0x16)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [4] #xxxx.1.1.num.int <11 (0xb)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "bar"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "bar"> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "xx"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <88 (0x58)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "xx"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "yy"> + [1] #xxxx.1.1.num.int <88 (0x58)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "xx"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "bar"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <99 (0x63)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "yy"> + [2] #xxxx.1.1.num.int <88 (0x58)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "xx"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "bar"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "bar"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.3.hash +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.3.hash + [2] #xxxx.1.3.hash +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.3.hash +GC: --#xxxx.1.3.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.3.hash + [2] #xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.3.hash + [2] #xxxx.1.3.hash + [3] #xxxx.1.3.hash +GC: --#xxxx.1.3.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.2.hash + [2] #xxxx.1.3.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.hash + [2] #xxxx.1.2.hash diff --git a/tests/0050_parent/code.log.ref b/tests/0050_parent/code.log.ref new file mode 100644 index 0000000..82c58ef --- /dev/null +++ b/tests/0050_parent/code.log.ref @@ -0,0 +1,40 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 30 entries (30 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 2 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 int 81 0b 11 + 5 0x00013 str 27 62 62 "bb" + 6 0x00016 int 81 16 22 + 7 0x00018 str 27 63 63 "cc" + 8 0x0001b int 81 21 33 + 9 0x0001d word 18 29 ) + 10 0x0001f word 38 64 65 66 def + 3 11 0x00023 ref 39 62 61 72 /bar + 12 0x00027 word 18 28 ( + 13 0x00029 str 27 78 78 "xx" + 14 0x0002c int 81 58 88 + 15 0x0002e str 27 79 79 "yy" + 16 0x00031 int 81 63 99 + 17 0x00033 word 18 29 ) + 18 0x00035 word 38 64 65 66 def + 5 19 0x00039 word 38 66 6f 6f foo + 7 20 0x0003d word 38 66 6f 6f foo + 21 0x00041 word 38 62 61 72 bar + 22 0x00045 word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 9 23 0x0004f word 38 66 6f 6f foo + 24 0x00053 word 98 67 65 74 70 61 72 65 getparent + 6e 74 + 11 25 0x0005d word 38 66 6f 6f foo + 26 0x00061 nil 00 nil + 27 0x00062 word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 13 28 0x0006c word 38 66 6f 6f foo + 29 0x00070 word 98 67 65 74 70 61 72 65 getparent + 6e 74 diff --git a/tests/0050_parent/code1.log.ref b/tests/0050_parent/code1.log.ref new file mode 100644 index 0000000..6fcf4a5 --- /dev/null +++ b/tests/0050_parent/code1.log.ref @@ -0,0 +1,38 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 30 entries (30 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 2 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 int 81 0b 11 + 5 0x00013 str 27 62 62 "bb" + 6 0x00016 int 81 16 22 + 7 0x00018 str 27 63 63 "cc" + 8 0x0001b int 81 21 33 + 9 0x0001d word 18 29 ) + 10 0x0001f word 38 64 65 66 def + 3 11 0x00023 ref 39 62 61 72 /bar + 12 0x00027 word 18 28 ( + 13 0x00029 str 27 78 78 "xx" + 14 0x0002c int 81 58 88 + 15 0x0002e str 27 79 79 "yy" + 16 0x00031 int 81 63 99 + 17 0x00033 word 18 29 ) + 18 0x00035 xref 84 16 def + 5 19 0x00037 word 38 66 6f 6f foo + 7 20 0x0003b xref 44 foo + 21 0x0003c word 38 62 61 72 bar + 22 0x00040 word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 9 23 0x0004a xref 84 13 foo + 24 0x0004c word 98 67 65 74 70 61 72 65 getparent + 6e 74 + 11 25 0x00056 xref 84 1f foo + 26 0x00058 nil 00 nil + 27 0x00059 xref 84 19 setparent + 13 28 0x0005b xref 84 24 foo + 29 0x0005d xref 84 11 getparent diff --git a/tests/0050_parent/code2.log.ref b/tests/0050_parent/code2.log.ref new file mode 100644 index 0000000..2d54533 --- /dev/null +++ b/tests/0050_parent/code2.log.ref @@ -0,0 +1,36 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 30 entries (30 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 2 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c prim 43 ( + 3 0x0000d str 27 61 61 "aa" + 4 0x00010 int 81 0b 11 + 5 0x00012 str 27 62 62 "bb" + 6 0x00015 int 81 16 22 + 7 0x00017 str 27 63 63 "cc" + 8 0x0001a int 81 21 33 + 9 0x0001c prim 53 ) + 10 0x0001d prim 63 def + 3 11 0x0001e ref 39 62 61 72 /bar + 12 0x00022 prim 43 ( + 13 0x00023 str 27 78 78 "xx" + 14 0x00026 int 81 58 88 + 15 0x00028 str 27 79 79 "yy" + 16 0x0002b int 81 63 99 + 17 0x0002d prim 53 ) + 18 0x0002e prim 63 def + 5 19 0x0002f word 38 66 6f 6f foo + 7 20 0x00033 xref 44 foo + 21 0x00034 word 38 62 61 72 bar + 22 0x00038 prim 83 35 setparent + 9 23 0x0003a xref 84 0b foo + 24 0x0003c prim 83 34 getparent + 11 25 0x0003e xref 84 0f foo + 26 0x00040 nil 00 nil + 27 0x00041 prim 83 35 setparent + 13 28 0x00043 xref 84 14 foo + 29 0x00045 prim 83 34 getparent diff --git a/tests/0050_parent/main.gs b/tests/0050_parent/main.gs new file mode 100644 index 0000000..faa5697 --- /dev/null +++ b/tests/0050_parent/main.gs @@ -0,0 +1,13 @@ + +/foo ( "aa" 11 "bb" 22 "cc" 33 ) def +/bar ( "xx" 88 "yy" 99 ) def + +foo + +foo bar setparent + +foo getparent + +foo nil setparent + +foo getparent diff --git a/tests/0050_parent/mem.log.ref b/tests/0050_parent/mem.log.ref new file mode 100644 index 0000000..a458e26 --- /dev/null +++ b/tests/0050_parent/mem.log.ref @@ -0,0 +1,789 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 124] + 8: 187.01, 0x001d6af0[ 72] + 9: 188.01, 0x001d6b40[ 56] + 10: 196.01, 0x001d6b80[ 36] + 11: 202.01, 0x001d6bac[ 28] + 12: 0.00, 0x001d6bd0[14849072] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #197.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x24, size 3, "bar"> => #202.1.2.hash + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9, size 3, "foo"> => #196.1.2.hash + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.8.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 18 28 27 61 uQ..Bz.`9foo.('a + 61 81 0b 27 62 62 81 16 27 63 63 81 21 18 29 38 a..'bb..'cc.!.)8 + 64 65 66 39 62 61 72 18 28 27 78 78 81 58 27 79 def9bar.('xx.X'y + 79 81 63 18 29 38 64 65 66 38 66 6f 6f 38 66 6f y.c.)8def8foo8fo + 6f 38 62 61 72 98 73 65 74 70 61 72 65 6e 74 38 o8bar.setparent8 + 66 6f 6f 98 67 65 74 70 61 72 65 6e 74 38 66 6f foo.getparent8fo + 6f 00 98 73 65 74 70 61 72 65 6e 74 38 66 6f 6f o..setparent8foo + 98 67 65 74 70 61 72 65 6e 74 .getparent + #187.1.1.array + [ 0] #196.1.2.hash + [ 1] #202.1.2.hash + [ 2] #0.0.nil + #188.1.1.ctx.func + type 17, ip 0x7a (0x7a) + code #186.1.8.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0xf, size 2, "aa"> + 61 61 aa + #191.1.1.num.int <11 (0xb)> + #192.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x14, size 2, "bb"> + 62 62 bb + #193.1.1.num.int <22 (0x16)> + #194.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x19, size 2, "cc"> + 63 63 cc + #195.1.1.num.int <33 (0x21)> + #196.1.2.hash + #190.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0xf, size 2, "aa"> => #191.1.1.num.int <11 (0xb)> + #192.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x14, size 2, "bb"> => #193.1.1.num.int <22 (0x16)> + #194.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x19, size 2, "cc"> => #195.1.1.num.int <33 (0x21)> + #197.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x24, size 3, "bar"> + 62 61 72 bar + #198.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2a, size 2, "xx"> + 78 78 xx + #199.1.1.num.int <88 (0x58)> + #200.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2f, size 2, "yy"> + 79 79 yy + #201.1.1.num.int <99 (0x63)> + #202.1.2.hash + #198.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2a, size 2, "xx"> => #199.1.1.num.int <88 (0x58)> + #200.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2f, size 2, "yy"> => #201.1.1.num.int <99 (0x63)> diff --git a/tests/0050_parent/screen.log.ref b/tests/0050_parent/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0050_parent/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0050_parent/trace.log.ref b/tests/0050_parent/trace.log.ref new file mode 100644 index 0000000..8a33c06 --- /dev/null +++ b/tests/0050_parent/trace.log.ref @@ -0,0 +1,241 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 8, 13[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 7, 15[2] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "aa"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x11, type 1, 11 (0xb) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <11 (0xb)> + [1] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "aa"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x13, type 7, 20[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x14, size 2, "bb"> + [1] #191.1.1.num.int <11 (0xb)> + [2] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "aa"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x16, type 1, 22 (0x16) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <22 (0x16)> + [1] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x14, size 2, "bb"> + [2] #191.1.1.num.int <11 (0xb)> + [3] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "aa"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x18, type 7, 25[2] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [1] #193.1.1.num.int <22 (0x16)> + [2] #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x14, size 2, "bb"> + [3] #191.1.1.num.int <11 (0xb)> + [4] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1b, type 1, 33 (0x21) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <33 (0x21)> + [1] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [2] #193.1.1.num.int <22 (0x16)> + [3] #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x14, size 2, "bb"> + [4] #191.1.1.num.int <11 (0xb)> + [5] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1d, type 8, 30[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.hash + [1] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1f, type 8, 32[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#196.1.1.hash +GC: --#196.1.2.hash +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x23, type 9, 36[3] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x27, type 8, 40[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #197.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x29, type 7, 42[2] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x2a, size 2, "xx"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #197.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x2c, type 1, 88 (0x58) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <88 (0x58)> + [1] #198.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x2a, size 2, "xx"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #197.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x2e, type 7, 47[2] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2f, size 2, "yy"> + [1] #199.1.1.num.int <88 (0x58)> + [2] #198.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2a, size 2, "xx"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #197.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x31, type 1, 99 (0x63) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <99 (0x63)> + [1] #200.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2f, size 2, "yy"> + [2] #199.1.1.num.int <88 (0x58)> + [3] #198.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2a, size 2, "xx"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #197.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x33, type 8, 52[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.hash + [1] #197.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x35, type 8, 54[3] +GC: ++#197.1.1.mem.ref.ro +GC: ++#202.1.1.hash +GC: --#202.1.2.hash +GC: --#197.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x39, type 8, 58[3] +GC: ++#196.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.2.hash +IP: #186:0x3d, type 8, 62[3] +GC: ++#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.3.hash + [1] #196.1.3.hash +IP: #186:0x41, type 8, 66[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #196.1.3.hash + [2] #196.1.3.hash +IP: #186:0x45, type 8, 70[9] +GC: ++#202.1.2.hash +GC: --#202.1.3.hash +GC: --#196.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.2.hash +IP: #186:0x4f, type 8, 80[3] +GC: ++#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.3.hash + [1] #196.1.3.hash +IP: #186:0x53, type 8, 84[9] +GC: --#196.1.3.hash +GC: ++#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.3.hash + [1] #196.1.2.hash +IP: #186:0x5d, type 8, 94[3] +GC: ++#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.3.hash + [1] #202.1.3.hash + [2] #196.1.3.hash +IP: #186:0x61, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #196.1.3.hash + [2] #202.1.3.hash + [3] #196.1.3.hash +IP: #186:0x62, type 8, 99[9] +GC: --#202.1.3.hash +GC: --#196.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #196.1.2.hash +IP: #186:0x6c, type 8, 109[3] +GC: ++#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.3.hash + [1] #202.1.2.hash + [2] #196.1.3.hash +IP: #186:0x70, type 8, 113[9] +GC: --#196.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #202.1.2.hash + [2] #196.1.2.hash diff --git a/tests/0051_hash_parent/basic.log.ref b/tests/0051_hash_parent/basic.log.ref new file mode 100644 index 0000000..e0b635c --- /dev/null +++ b/tests/0051_hash_parent/basic.log.ref @@ -0,0 +1,400 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [2] #xxxx.1.1.num.int <11 (0xb)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [1] #xxxx.1.1.num.int <22 (0x16)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [3] #xxxx.1.1.num.int <11 (0xb)> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <33 (0x21)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "cc"> + [2] #xxxx.1.1.num.int <22 (0x16)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [4] #xxxx.1.1.num.int <11 (0xb)> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "bar"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "bar"> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "xx"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <88 (0x58)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "xx"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "yy"> + [1] #xxxx.1.1.num.int <88 (0x58)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "xx"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "bar"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <99 (0x63)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "yy"> + [2] #xxxx.1.1.num.int <88 (0x58)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "xx"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "bar"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "bar"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.3.hash +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "bb"> + [1] #xxxx.1.3.hash + [2] #xxxx.1.3.hash +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.9.mem.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <22 (0x16)> + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.2.num.int <22 (0x16)> + [2] #xxxx.1.3.hash +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "abc"> + [1] #xxxx.1.3.hash + [2] #xxxx.1.2.num.int <22 (0x16)> + [3] #xxxx.1.3.hash +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.9.mem.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.num.int <22 (0x16)> + [2] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #0.0.nil + [2] #xxxx.1.2.num.int <22 (0x16)> + [3] #xxxx.1.3.hash +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "xx"> + [1] #xxxx.1.3.hash + [2] #0.0.nil + [3] #xxxx.1.2.num.int <22 (0x16)> + [4] #xxxx.1.3.hash +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.9.mem.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <88 (0x58)> + [1] #0.0.nil + [2] #xxxx.1.2.num.int <22 (0x16)> + [3] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.2.num.int <88 (0x58)> + [2] #0.0.nil + [3] #xxxx.1.2.num.int <22 (0x16)> + [4] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.3.hash + [2] #xxxx.1.2.num.int <88 (0x58)> + [3] #0.0.nil + [4] #xxxx.1.2.num.int <22 (0x16)> + [5] #xxxx.1.3.hash +GC: ++#xxxx.1.3.hash +GC: --#xxxx.1.4.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <88 (0x58)> + [1] #0.0.nil + [2] #xxxx.1.2.num.int <22 (0x16)> + [3] #xxxx.1.3.hash +GC: ++#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.4.hash + [1] #xxxx.1.2.num.int <88 (0x58)> + [2] #0.0.nil + [3] #xxxx.1.2.num.int <22 (0x16)> + [4] #xxxx.1.4.hash +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "cc"> + [1] #xxxx.1.4.hash + [2] #xxxx.1.2.num.int <88 (0x58)> + [3] #0.0.nil + [4] #xxxx.1.2.num.int <22 (0x16)> + [5] #xxxx.1.4.hash +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.9.mem.ro +GC: --#xxxx.1.4.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <33 (0x21)> + [1] #xxxx.1.2.num.int <88 (0x58)> + [2] #0.0.nil + [3] #xxxx.1.2.num.int <22 (0x16)> + [4] #xxxx.1.3.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.2.num.int <33 (0x21)> + [2] #xxxx.1.2.num.int <88 (0x58)> + [3] #0.0.nil + [4] #xxxx.1.2.num.int <22 (0x16)> + [5] #xxxx.1.3.hash +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "aa"> + [1] #xxxx.1.3.hash + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.num.int <88 (0x58)> + [4] #0.0.nil + [5] #xxxx.1.2.num.int <22 (0x16)> + [6] #xxxx.1.3.hash +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.9.mem.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <11 (0xb)> + [1] #xxxx.1.2.num.int <33 (0x21)> + [2] #xxxx.1.2.num.int <88 (0x58)> + [3] #0.0.nil + [4] #xxxx.1.2.num.int <22 (0x16)> + [5] #xxxx.1.3.hash +GC: ++#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.4.hash + [1] #xxxx.1.2.num.int <11 (0xb)> + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.num.int <88 (0x58)> + [4] #0.0.nil + [5] #xxxx.1.2.num.int <22 (0x16)> + [6] #xxxx.1.4.hash +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "xyz"> + [1] #xxxx.1.4.hash + [2] #xxxx.1.2.num.int <11 (0xb)> + [3] #xxxx.1.2.num.int <33 (0x21)> + [4] #xxxx.1.2.num.int <88 (0x58)> + [5] #0.0.nil + [6] #xxxx.1.2.num.int <22 (0x16)> + [7] #xxxx.1.4.hash +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.9.mem.ro +GC: --#xxxx.1.4.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.num.int <11 (0xb)> + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.num.int <88 (0x58)> + [4] #0.0.nil + [5] #xxxx.1.2.num.int <22 (0x16)> + [6] #xxxx.1.3.hash +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #0.0.nil + [2] #xxxx.1.2.num.int <11 (0xb)> + [3] #xxxx.1.2.num.int <33 (0x21)> + [4] #xxxx.1.2.num.int <88 (0x58)> + [5] #0.0.nil + [6] #xxxx.1.2.num.int <22 (0x16)> + [7] #xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.3.hash + [2] #0.0.nil + [3] #xxxx.1.2.num.int <11 (0xb)> + [4] #xxxx.1.2.num.int <33 (0x21)> + [5] #xxxx.1.2.num.int <88 (0x58)> + [6] #0.0.nil + [7] #xxxx.1.2.num.int <22 (0x16)> + [8] #xxxx.1.3.hash +GC: --#xxxx.1.3.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.num.int <11 (0xb)> + [2] #xxxx.1.2.num.int <33 (0x21)> + [3] #xxxx.1.2.num.int <88 (0x58)> + [4] #0.0.nil + [5] #xxxx.1.2.num.int <22 (0x16)> + [6] #xxxx.1.2.hash diff --git a/tests/0051_hash_parent/code.log.ref b/tests/0051_hash_parent/code.log.ref new file mode 100644 index 0000000..021440a --- /dev/null +++ b/tests/0051_hash_parent/code.log.ref @@ -0,0 +1,56 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 47 entries (47 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 2 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 int 81 0b 11 + 5 0x00013 str 27 62 62 "bb" + 6 0x00016 int 81 16 22 + 7 0x00018 str 27 63 63 "cc" + 8 0x0001b int 81 21 33 + 9 0x0001d word 18 29 ) + 10 0x0001f word 38 64 65 66 def + 3 11 0x00023 ref 39 62 61 72 /bar + 12 0x00027 word 18 28 ( + 13 0x00029 str 27 78 78 "xx" + 14 0x0002c int 81 58 88 + 15 0x0002e str 27 79 79 "yy" + 16 0x00031 int 81 63 99 + 17 0x00033 word 18 29 ) + 18 0x00035 word 38 64 65 66 def + 5 19 0x00039 word 38 66 6f 6f foo + 20 0x0003d word 38 62 61 72 bar + 21 0x00041 word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 7 22 0x0004b word 38 66 6f 6f foo + 9 23 0x0004f word 38 66 6f 6f foo + 24 0x00053 str 27 62 62 "bb" + 25 0x00056 word 38 67 65 74 get + 10 26 0x0005a word 38 66 6f 6f foo + 27 0x0005e str 37 61 62 63 "abc" + 28 0x00062 word 38 67 65 74 get + 11 29 0x00066 word 38 66 6f 6f foo + 30 0x0006a str 27 78 78 "xx" + 31 0x0006d word 38 67 65 74 get + 14 32 0x00071 word 38 62 61 72 bar + 33 0x00075 word 38 66 6f 6f foo + 34 0x00079 word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 16 35 0x00083 word 38 66 6f 6f foo + 36 0x00087 str 27 63 63 "cc" + 37 0x0008a word 38 67 65 74 get + 17 38 0x0008e word 38 62 61 72 bar + 39 0x00092 str 27 61 61 "aa" + 40 0x00095 word 38 67 65 74 get + 18 41 0x00099 word 38 66 6f 6f foo + 42 0x0009d str 37 78 79 7a "xyz" + 43 0x000a1 word 38 67 65 74 get + 21 44 0x000a5 word 38 62 61 72 bar + 45 0x000a9 nil 00 nil + 46 0x000aa word 98 73 65 74 70 61 72 65 setparent + 6e 74 diff --git a/tests/0051_hash_parent/code1.log.ref b/tests/0051_hash_parent/code1.log.ref new file mode 100644 index 0000000..d17db47 --- /dev/null +++ b/tests/0051_hash_parent/code1.log.ref @@ -0,0 +1,54 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 47 entries (47 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 2 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 int 81 0b 11 + 5 0x00013 str 27 62 62 "bb" + 6 0x00016 int 81 16 22 + 7 0x00018 str 27 63 63 "cc" + 8 0x0001b int 81 21 33 + 9 0x0001d word 18 29 ) + 10 0x0001f word 38 64 65 66 def + 3 11 0x00023 ref 39 62 61 72 /bar + 12 0x00027 word 18 28 ( + 13 0x00029 str 27 78 78 "xx" + 14 0x0002c int 81 58 88 + 15 0x0002e str 27 79 79 "yy" + 16 0x00031 int 81 63 99 + 17 0x00033 word 18 29 ) + 18 0x00035 xref 84 16 def + 5 19 0x00037 word 38 66 6f 6f foo + 20 0x0003b word 38 62 61 72 bar + 21 0x0003f word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 7 22 0x00049 xref 84 12 foo + 9 23 0x0004b xref 84 14 foo + 24 0x0004d xref 84 3a "bb" + 25 0x0004f word 38 67 65 74 get + 10 26 0x00053 xref 84 1c foo + 27 0x00055 str 37 61 62 63 "abc" + 28 0x00059 xref 84 0a get + 11 29 0x0005b xref 84 24 foo + 30 0x0005d xref 84 34 "xx" + 31 0x0005f xref 84 10 get + 14 32 0x00061 xref 84 26 bar + 33 0x00063 xref 84 2c foo + 34 0x00065 xref 84 26 setparent + 16 35 0x00067 xref 84 30 foo + 36 0x00069 xref 84 51 "cc" + 37 0x0006b xref 84 1c get + 17 38 0x0006d xref 84 32 bar + 39 0x0006f xref 84 61 "aa" + 40 0x00071 xref 84 22 get + 18 41 0x00073 xref 84 3c foo + 42 0x00075 str 37 78 79 7a "xyz" + 43 0x00079 xref 84 2a get + 21 44 0x0007b xref 84 40 bar + 45 0x0007d nil 00 nil + 46 0x0007e xref 84 3f setparent diff --git a/tests/0051_hash_parent/code2.log.ref b/tests/0051_hash_parent/code2.log.ref new file mode 100644 index 0000000..0f34e1e --- /dev/null +++ b/tests/0051_hash_parent/code2.log.ref @@ -0,0 +1,53 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 47 entries (47 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 2 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c prim 43 ( + 3 0x0000d str 27 61 61 "aa" + 4 0x00010 int 81 0b 11 + 5 0x00012 str 27 62 62 "bb" + 6 0x00015 int 81 16 22 + 7 0x00017 str 27 63 63 "cc" + 8 0x0001a int 81 21 33 + 9 0x0001c prim 53 ) + 10 0x0001d prim 63 def + 3 11 0x0001e ref 39 62 61 72 /bar + 12 0x00022 prim 43 ( + 13 0x00023 str 27 78 78 "xx" + 14 0x00026 int 81 58 88 + 15 0x00028 str 27 79 79 "yy" + 16 0x0002b int 81 63 99 + 17 0x0002d prim 53 ) + 18 0x0002e prim 63 def + 5 19 0x0002f word 38 66 6f 6f foo + 20 0x00033 word 38 62 61 72 bar + 21 0x00037 prim 83 35 setparent + 7 22 0x00039 xref 84 0a foo + 9 23 0x0003b xref 84 0c foo + 24 0x0003d xref 84 2b "bb" + 25 0x0003f prim 83 12 get + 10 26 0x00041 xref 84 12 foo + 27 0x00043 str 37 61 62 63 "abc" + 28 0x00047 prim 83 12 get + 11 29 0x00049 xref 84 1a foo + 30 0x0004b xref 84 28 "xx" + 31 0x0004d prim 83 12 get + 14 32 0x0004f xref 84 1c bar + 33 0x00051 xref 84 22 foo + 34 0x00053 prim 83 35 setparent + 16 35 0x00055 xref 84 26 foo + 36 0x00057 xref 84 40 "cc" + 37 0x00059 prim 83 12 get + 17 38 0x0005b xref 84 28 bar + 39 0x0005d xref 84 50 "aa" + 40 0x0005f prim 83 12 get + 18 41 0x00061 xref 84 32 foo + 42 0x00063 str 37 78 79 7a "xyz" + 43 0x00067 prim 83 12 get + 21 44 0x00069 xref 84 36 bar + 45 0x0006b nil 00 nil + 46 0x0006c prim 83 35 setparent diff --git a/tests/0051_hash_parent/main.gs b/tests/0051_hash_parent/main.gs new file mode 100644 index 0000000..6cc79a7 --- /dev/null +++ b/tests/0051_hash_parent/main.gs @@ -0,0 +1,21 @@ + +/foo ( "aa" 11 "bb" 22 "cc" 33 ) def +/bar ( "xx" 88 "yy" 99 ) def + +foo bar setparent + +foo + +foo "bb" get +foo "abc" get +foo "xx" get + +# contruct loop +bar foo setparent + +foo "cc" get +bar "aa" get +foo "xyz" get + +# break loop for gc +bar nil setparent diff --git a/tests/0051_hash_parent/mem.log.ref b/tests/0051_hash_parent/mem.log.ref new file mode 100644 index 0000000..320cc91 --- /dev/null +++ b/tests/0051_hash_parent/mem.log.ref @@ -0,0 +1,799 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 180] + 8: 187.01, 0x001d6b28[ 72] + 9: 188.01, 0x001d6b78[ 56] + 10: 196.01, 0x001d6bb8[ 36] + 11: 202.01, 0x001d6be4[ 28] + 12: 204.01, 0x001d6c08[ 72] + 13: 0.00, 0x001d6c58[14848936] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #197.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x24, size 3, "bar"> => #202.1.2.hash + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9, size 3, "foo"> => #196.1.2.hash + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.8.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 18 28 27 61 uQ..Bz.`9foo.('a + 61 81 0b 27 62 62 81 16 27 63 63 81 21 18 29 38 a..'bb..'cc.!.)8 + 64 65 66 39 62 61 72 18 28 27 78 78 81 58 27 79 def9bar.('xx.X'y + 79 81 63 18 29 38 64 65 66 38 66 6f 6f 38 62 61 y.c.)8def8foo8ba + 72 98 73 65 74 70 61 72 65 6e 74 38 66 6f 6f 38 r.setparent8foo8 + 66 6f 6f 27 62 62 38 67 65 74 38 66 6f 6f 37 61 foo'bb8get8foo7a + 62 63 38 67 65 74 38 66 6f 6f 27 78 78 38 67 65 bc8get8foo'xx8ge + 74 38 62 61 72 38 66 6f 6f 98 73 65 74 70 61 72 t8bar8foo.setpar + 65 6e 74 38 66 6f 6f 27 63 63 38 67 65 74 38 62 ent8foo'cc8get8b + 61 72 27 61 61 38 67 65 74 38 66 6f 6f 37 78 79 ar'aa8get8foo7xy + 7a 38 67 65 74 38 62 61 72 00 98 73 65 74 70 61 z8get8bar..setpa + 72 65 6e 74 rent + #187.1.1.array + [ 0] #196.1.2.hash + [ 1] #193.1.2.num.int <22 (0x16)> + [ 2] #0.0.nil + [ 3] #199.1.2.num.int <88 (0x58)> + [ 4] #195.1.2.num.int <33 (0x21)> + [ 5] #191.1.2.num.int <11 (0xb)> + [ 6] #0.0.nil + #188.1.1.ctx.func + type 17, ip 0xb4 (0xb4) + code #186.1.8.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0xf, size 2, "aa"> + 61 61 aa + #191.1.2.num.int <11 (0xb)> + #192.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x14, size 2, "bb"> + 62 62 bb + #193.1.2.num.int <22 (0x16)> + #194.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x19, size 2, "cc"> + 63 63 cc + #195.1.2.num.int <33 (0x21)> + #196.1.2.hash + #190.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0xf, size 2, "aa"> => #191.1.2.num.int <11 (0xb)> + #192.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x14, size 2, "bb"> => #193.1.2.num.int <22 (0x16)> + #194.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x19, size 2, "cc"> => #195.1.2.num.int <33 (0x21)> + #197.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x24, size 3, "bar"> + 62 61 72 bar + #198.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2a, size 2, "xx"> + 78 78 xx + #199.1.2.num.int <88 (0x58)> + #200.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2f, size 2, "yy"> + 79 79 yy + #201.1.1.num.int <99 (0x63)> + #202.1.2.hash + #198.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2a, size 2, "xx"> => #199.1.2.num.int <88 (0x58)> + #200.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2f, size 2, "yy"> => #201.1.1.num.int <99 (0x63)> + #204.1.1.array diff --git a/tests/0051_hash_parent/screen.log.ref b/tests/0051_hash_parent/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0051_hash_parent/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0051_hash_parent/trace.log.ref b/tests/0051_hash_parent/trace.log.ref new file mode 100644 index 0000000..897a3db --- /dev/null +++ b/tests/0051_hash_parent/trace.log.ref @@ -0,0 +1,447 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 8, 13[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 7, 15[2] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "aa"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x11, type 1, 11 (0xb) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <11 (0xb)> + [1] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "aa"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x13, type 7, 20[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x14, size 2, "bb"> + [1] #191.1.1.num.int <11 (0xb)> + [2] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "aa"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x16, type 1, 22 (0x16) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <22 (0x16)> + [1] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x14, size 2, "bb"> + [2] #191.1.1.num.int <11 (0xb)> + [3] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "aa"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x18, type 7, 25[2] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [1] #193.1.1.num.int <22 (0x16)> + [2] #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x14, size 2, "bb"> + [3] #191.1.1.num.int <11 (0xb)> + [4] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1b, type 1, 33 (0x21) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <33 (0x21)> + [1] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x19, size 2, "cc"> + [2] #193.1.1.num.int <22 (0x16)> + [3] #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x14, size 2, "bb"> + [4] #191.1.1.num.int <11 (0xb)> + [5] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1d, type 8, 30[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.hash + [1] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1f, type 8, 32[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#196.1.1.hash +GC: --#196.1.2.hash +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x23, type 9, 36[3] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x27, type 8, 40[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #197.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x29, type 7, 42[2] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x2a, size 2, "xx"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #197.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x2c, type 1, 88 (0x58) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <88 (0x58)> + [1] #198.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x2a, size 2, "xx"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #197.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x2e, type 7, 47[2] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2f, size 2, "yy"> + [1] #199.1.1.num.int <88 (0x58)> + [2] #198.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2a, size 2, "xx"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #197.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x31, type 1, 99 (0x63) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <99 (0x63)> + [1] #200.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2f, size 2, "yy"> + [2] #199.1.1.num.int <88 (0x58)> + [3] #198.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x2a, size 2, "xx"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #197.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x33, type 8, 52[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.hash + [1] #197.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x24, size 3, "bar"> +IP: #186:0x35, type 8, 54[3] +GC: ++#197.1.1.mem.ref.ro +GC: ++#202.1.1.hash +GC: --#202.1.2.hash +GC: --#197.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x39, type 8, 58[3] +GC: ++#196.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.2.hash +IP: #186:0x3d, type 8, 62[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #196.1.2.hash +IP: #186:0x41, type 8, 66[9] +GC: ++#202.1.2.hash +GC: --#202.1.3.hash +GC: --#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x4b, type 8, 76[3] +GC: ++#196.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.2.hash +IP: #186:0x4f, type 8, 80[3] +GC: ++#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.3.hash + [1] #196.1.3.hash +IP: #186:0x53, type 7, 84[2] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x54, size 2, "bb"> + [1] #196.1.3.hash + [2] #196.1.3.hash +IP: #186:0x56, type 8, 87[3] +GC: ++#193.1.1.num.int +GC: --#203.1.1.mem.str.ro +GC: --#186.1.9.mem.ro +GC: --#196.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.2.num.int <22 (0x16)> + [1] #196.1.2.hash +IP: #186:0x5a, type 8, 91[3] +GC: ++#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.3.hash + [1] #193.1.2.num.int <22 (0x16)> + [2] #196.1.3.hash +IP: #186:0x5e, type 7, 95[3] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x5f, size 3, "abc"> + [1] #196.1.3.hash + [2] #193.1.2.num.int <22 (0x16)> + [3] #196.1.3.hash +IP: #186:0x62, type 8, 99[3] +GC: --#205.1.1.mem.str.ro +GC: --#186.1.9.mem.ro +GC: --#196.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #193.1.2.num.int <22 (0x16)> + [2] #196.1.2.hash +IP: #186:0x66, type 8, 103[3] +GC: ++#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.3.hash + [1] #0.0.nil + [2] #193.1.2.num.int <22 (0x16)> + [3] #196.1.3.hash +IP: #186:0x6a, type 7, 107[2] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x6b, size 2, "xx"> + [1] #196.1.3.hash + [2] #0.0.nil + [3] #193.1.2.num.int <22 (0x16)> + [4] #196.1.3.hash +IP: #186:0x6d, type 8, 110[3] +GC: ++#199.1.1.num.int +GC: --#206.1.1.mem.str.ro +GC: --#186.1.9.mem.ro +GC: --#196.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.2.num.int <88 (0x58)> + [1] #0.0.nil + [2] #193.1.2.num.int <22 (0x16)> + [3] #196.1.2.hash +IP: #186:0x71, type 8, 114[3] +GC: ++#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.3.hash + [1] #199.1.2.num.int <88 (0x58)> + [2] #0.0.nil + [3] #193.1.2.num.int <22 (0x16)> + [4] #196.1.2.hash +IP: #186:0x75, type 8, 118[3] +GC: ++#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.3.hash + [1] #202.1.3.hash + [2] #199.1.2.num.int <88 (0x58)> + [3] #0.0.nil + [4] #193.1.2.num.int <22 (0x16)> + [5] #196.1.3.hash +IP: #186:0x79, type 8, 122[9] +GC: ++#196.1.3.hash +GC: --#196.1.4.hash +GC: --#202.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.2.num.int <88 (0x58)> + [1] #0.0.nil + [2] #193.1.2.num.int <22 (0x16)> + [3] #196.1.3.hash +IP: #186:0x83, type 8, 132[3] +GC: ++#196.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.4.hash + [1] #199.1.2.num.int <88 (0x58)> + [2] #0.0.nil + [3] #193.1.2.num.int <22 (0x16)> + [4] #196.1.4.hash +IP: #186:0x87, type 7, 136[2] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x88, size 2, "cc"> + [1] #196.1.4.hash + [2] #199.1.2.num.int <88 (0x58)> + [3] #0.0.nil + [4] #193.1.2.num.int <22 (0x16)> + [5] #196.1.4.hash +IP: #186:0x8a, type 8, 139[3] +GC: ++#195.1.1.num.int +GC: --#207.1.1.mem.str.ro +GC: --#186.1.9.mem.ro +GC: --#196.1.4.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <33 (0x21)> + [1] #199.1.2.num.int <88 (0x58)> + [2] #0.0.nil + [3] #193.1.2.num.int <22 (0x16)> + [4] #196.1.3.hash +IP: #186:0x8e, type 8, 143[3] +GC: ++#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.3.hash + [1] #195.1.2.num.int <33 (0x21)> + [2] #199.1.2.num.int <88 (0x58)> + [3] #0.0.nil + [4] #193.1.2.num.int <22 (0x16)> + [5] #196.1.3.hash +IP: #186:0x92, type 7, 147[2] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x93, size 2, "aa"> + [1] #202.1.3.hash + [2] #195.1.2.num.int <33 (0x21)> + [3] #199.1.2.num.int <88 (0x58)> + [4] #0.0.nil + [5] #193.1.2.num.int <22 (0x16)> + [6] #196.1.3.hash +IP: #186:0x95, type 8, 150[3] +GC: ++#191.1.1.num.int +GC: --#208.1.1.mem.str.ro +GC: --#186.1.9.mem.ro +GC: --#202.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.num.int <11 (0xb)> + [1] #195.1.2.num.int <33 (0x21)> + [2] #199.1.2.num.int <88 (0x58)> + [3] #0.0.nil + [4] #193.1.2.num.int <22 (0x16)> + [5] #196.1.3.hash +IP: #186:0x99, type 8, 154[3] +GC: ++#196.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.4.hash + [1] #191.1.2.num.int <11 (0xb)> + [2] #195.1.2.num.int <33 (0x21)> + [3] #199.1.2.num.int <88 (0x58)> + [4] #0.0.nil + [5] #193.1.2.num.int <22 (0x16)> + [6] #196.1.4.hash +IP: #186:0x9d, type 7, 158[3] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x9e, size 3, "xyz"> + [1] #196.1.4.hash + [2] #191.1.2.num.int <11 (0xb)> + [3] #195.1.2.num.int <33 (0x21)> + [4] #199.1.2.num.int <88 (0x58)> + [5] #0.0.nil + [6] #193.1.2.num.int <22 (0x16)> + [7] #196.1.4.hash +IP: #186:0xa1, type 8, 162[3] +GC: --#209.1.1.mem.str.ro +GC: --#186.1.9.mem.ro +GC: --#196.1.4.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #191.1.2.num.int <11 (0xb)> + [2] #195.1.2.num.int <33 (0x21)> + [3] #199.1.2.num.int <88 (0x58)> + [4] #0.0.nil + [5] #193.1.2.num.int <22 (0x16)> + [6] #196.1.3.hash +IP: #186:0xa5, type 8, 166[3] +GC: ++#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.3.hash + [1] #0.0.nil + [2] #191.1.2.num.int <11 (0xb)> + [3] #195.1.2.num.int <33 (0x21)> + [4] #199.1.2.num.int <88 (0x58)> + [5] #0.0.nil + [6] #193.1.2.num.int <22 (0x16)> + [7] #196.1.3.hash +IP: #186:0xa9, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #202.1.3.hash + [2] #0.0.nil + [3] #191.1.2.num.int <11 (0xb)> + [4] #195.1.2.num.int <33 (0x21)> + [5] #199.1.2.num.int <88 (0x58)> + [6] #0.0.nil + [7] #193.1.2.num.int <22 (0x16)> + [8] #196.1.3.hash +IP: #186:0xaa, type 8, 171[9] +GC: --#196.1.3.hash +GC: --#202.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #191.1.2.num.int <11 (0xb)> + [2] #195.1.2.num.int <33 (0x21)> + [3] #199.1.2.num.int <88 (0x58)> + [4] #0.0.nil + [5] #193.1.2.num.int <22 (0x16)> + [6] #196.1.2.hash diff --git a/tests/0052_dict/basic.log.ref b/tests/0052_dict/basic.log.ref new file mode 100644 index 0000000..c9ecd32 --- /dev/null +++ b/tests/0052_dict/basic.log.ref @@ -0,0 +1,220 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_0"> + [1] #xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <99 (0x63)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_0"> + [2] #xxxx.1.3.hash +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo_1"> + [1] #xxxx.1.3.hash +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo_1"> + [2] #xxxx.1.3.hash +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> + [1] #xxxx.1.3.hash +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo_2"> + [2] #xxxx.1.3.hash +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.3.hash +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.3.hash +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.3.hash +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #0.0.nil + [2] #xxxx.1.3.hash +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #0.0.nil + [2] #xxxx.1.3.hash +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.3.hash +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar_2"> + [1] #0.0.nil + [2] #xxxx.1.3.hash +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.8.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "bar_2"> + [2] #0.0.nil + [3] #xxxx.1.3.hash +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.3.hash +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #0.0.nil + [2] #xxxx.1.3.hash +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #0.0.nil + [2] #xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.2.hash + [2] #0.0.nil + [3] #xxxx.1.3.hash +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.2.hash + [2] #0.0.nil + [3] #xxxx.1.3.hash +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <99 (0x63)> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.2.hash + [3] #0.0.nil + [4] #xxxx.1.3.hash +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <99 (0x63)> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.1.hash + [3] #0.0.nil + [4] #xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <99 (0x63)> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.1.hash + [3] #0.0.nil + [4] #xxxx.1.3.hash +error 1 (invalid code), ip = #186 diff --git a/tests/0052_dict/code.log.ref b/tests/0052_dict/code.log.ref new file mode 100644 index 0000000..42e9792 --- /dev/null +++ b/tests/0052_dict/code.log.ref @@ -0,0 +1,34 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 28 entries (28 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 word 78 67 65 74 64 69 63 74 getdict + 3 2 0x00010 ref 59 66 6f 6f 5f 30 /foo_0 + 3 0x00016 int 81 63 99 + 4 0x00018 word 38 64 65 66 def + 5 5 0x0001c ref 59 66 6f 6f 5f 31 /foo_1 + 6 0x00022 code 96 { + 6 7 0x00023 word 78 67 65 74 64 69 63 74 getdict + 7 8 0x0002b prim 13 } + 9 0x0002c word 38 64 65 66 def + 9 10 0x00030 ref 59 66 6f 6f 5f 32 /foo_2 + 11 0x00036 code c6 2f { + 10 12 0x00038 word 18 28 ( + 13 0x0003a word 18 29 ) + 14 0x0003c word 78 73 65 74 64 69 63 74 setdict + 11 15 0x00044 ref 59 62 61 72 5f 32 /bar_2 + 16 0x0004a code 36 { + 12 17 0x0004b int 81 0b 11 + 13 18 0x0004d prim 13 } + 19 0x0004e word 38 64 65 66 def + 14 20 0x00052 word 78 67 65 74 64 69 63 74 getdict + 15 21 0x0005a word 58 62 61 72 5f 32 bar_2 + 16 22 0x00060 word 58 66 6f 6f 5f 30 foo_0 + 17 23 0x00066 prim 13 } + 24 0x00067 word 38 64 65 66 def + 19 25 0x0006b word 58 66 6f 6f 5f 31 foo_1 + 20 26 0x00071 word 58 66 6f 6f 5f 32 foo_2 + 21 27 0x00077 word 58 62 61 72 5f 32 bar_2 diff --git a/tests/0052_dict/code1.log.ref b/tests/0052_dict/code1.log.ref new file mode 100644 index 0000000..ddc666e --- /dev/null +++ b/tests/0052_dict/code1.log.ref @@ -0,0 +1,34 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 28 entries (28 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 word 78 67 65 74 64 69 63 74 getdict + 3 2 0x00010 ref 59 66 6f 6f 5f 30 /foo_0 + 3 0x00016 int 81 63 99 + 4 0x00018 word 38 64 65 66 def + 5 5 0x0001c ref 59 66 6f 6f 5f 31 /foo_1 + 6 0x00022 code 36 { + 6 7 0x00023 xref 84 1b getdict + 7 8 0x00025 prim 13 } + 9 0x00026 xref 84 0e def + 9 10 0x00028 ref 59 66 6f 6f 5f 32 /foo_2 + 11 0x0002e code c6 27 { + 10 12 0x00030 word 18 28 ( + 13 0x00032 word 18 29 ) + 14 0x00034 word 78 73 65 74 64 69 63 74 setdict + 11 15 0x0003c ref 59 62 61 72 5f 32 /bar_2 + 16 0x00042 code 36 { + 12 17 0x00043 int 81 0b 11 + 13 18 0x00045 prim 13 } + 19 0x00046 xref 84 2e def + 14 20 0x00048 xref 84 40 getdict + 15 21 0x0004a word 58 62 61 72 5f 32 bar_2 + 16 22 0x00050 word 58 66 6f 6f 5f 30 foo_0 + 17 23 0x00056 prim 13 } + 24 0x00057 xref 84 3f def + 19 25 0x00059 word 58 66 6f 6f 5f 31 foo_1 + 20 26 0x0005f word 58 66 6f 6f 5f 32 foo_2 + 21 27 0x00065 xref 84 1b bar_2 diff --git a/tests/0052_dict/code2.log.ref b/tests/0052_dict/code2.log.ref new file mode 100644 index 0000000..3760663 --- /dev/null +++ b/tests/0052_dict/code2.log.ref @@ -0,0 +1,34 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 28 entries (28 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 prim 83 36 getdict + 3 2 0x0000a ref 59 66 6f 6f 5f 30 /foo_0 + 3 0x00010 int 81 63 99 + 4 0x00012 prim 63 def + 5 5 0x00013 ref 59 66 6f 6f 5f 31 /foo_1 + 6 0x00019 code 36 { + 6 7 0x0001a prim 83 36 getdict + 7 8 0x0001c prim 13 } + 9 0x0001d prim 63 def + 9 10 0x0001e ref 59 66 6f 6f 5f 32 /foo_2 + 11 0x00024 code c6 1e { + 10 12 0x00026 prim 43 ( + 13 0x00027 prim 53 ) + 14 0x00028 prim 83 37 setdict + 11 15 0x0002a ref 59 62 61 72 5f 32 /bar_2 + 16 0x00030 code 36 { + 12 17 0x00031 int 81 0b 11 + 13 18 0x00033 prim 13 } + 19 0x00034 prim 63 def + 14 20 0x00035 prim 83 36 getdict + 15 21 0x00037 word 58 62 61 72 5f 32 bar_2 + 16 22 0x0003d word 58 66 6f 6f 5f 30 foo_0 + 17 23 0x00043 prim 13 } + 24 0x00044 prim 63 def + 19 25 0x00045 word 58 66 6f 6f 5f 31 foo_1 + 20 26 0x0004b word 58 66 6f 6f 5f 32 foo_2 + 21 27 0x00051 xref 84 1a bar_2 diff --git a/tests/0052_dict/main.gs b/tests/0052_dict/main.gs new file mode 100644 index 0000000..5bbf8cb --- /dev/null +++ b/tests/0052_dict/main.gs @@ -0,0 +1,21 @@ +getdict + +/foo_0 99 def + +/foo_1 { + getdict +} def + +/foo_2 { + ( ) setdict + /bar_2 { + 11 + } def + getdict + bar_2 + foo_0 +} def + +foo_1 +foo_2 +bar_2 diff --git a/tests/0052_dict/mem.log.ref b/tests/0052_dict/mem.log.ref new file mode 100644 index 0000000..54b794b --- /dev/null +++ b/tests/0052_dict/mem.log.ref @@ -0,0 +1,788 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 128] + 8: 187.01, 0x001d6af4[ 72] + 9: 188.01, 0x001d6b44[ 56] + 10: 0.00, 0x001d6b84[ 56] + 11: 196.01, 0x001d6bc4[ 72] + 12: 198.01, 0x001d6c14[ 140] + 13: 0.00, 0x001d6ca8[14848856] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.3.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x11, size 5, "foo_0"> => #190.1.2.num.int <99 (0x63)> + #191.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x1d, size 5, "foo_1"> => #192.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x23, size 9> + #193.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x31, size 5, "foo_2"> => #194.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x38, size 47> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.8.mem.ro + 75 51 12 a9 42 7a ad 60 78 67 65 74 64 69 63 74 uQ..Bz.`xgetdict + 59 66 6f 6f 5f 30 81 63 38 64 65 66 59 66 6f 6f Yfoo_0.c8defYfoo + 5f 31 96 78 67 65 74 64 69 63 74 13 38 64 65 66 _1.xgetdict.8def + 59 66 6f 6f 5f 32 c6 2f 18 28 18 29 78 73 65 74 Yfoo_2./.(.)xset + 64 69 63 74 59 62 61 72 5f 32 36 81 0b 13 38 64 dictYbar_26...8d + 65 66 78 67 65 74 64 69 63 74 58 62 61 72 5f 32 efxgetdictXbar_2 + 58 66 6f 6f 5f 30 13 38 64 65 66 58 66 6f 6f 5f Xfoo_0.8defXfoo_ + 31 58 66 6f 6f 5f 32 58 62 61 72 5f 32 1Xfoo_2Xbar_2 + #187.1.1.array + [ 0] #4.1.3.hash + [ 1] #0.0.nil + [ 2] #198.1.1.hash + [ 3] #202.1.1.num.int <11 (0xb)> + [ 4] #190.1.2.num.int <99 (0x63)> + #188.1.1.ctx.func + type 17, ip 0x7d (0x77) + code #186.1.8.mem.ro + parent #0.0.nil + dict #4.1.3.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x11, size 5, "foo_0"> + 66 6f 6f 5f 30 foo_0 + #190.1.2.num.int <99 (0x63)> + #191.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x1d, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #192.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x23, size 9> + 78 67 65 74 64 69 63 74 13 xgetdict. + #193.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x31, size 5, "foo_2"> + 66 6f 6f 5f 32 foo_2 + #194.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x38, size 47> + 18 28 18 29 78 73 65 74 64 69 63 74 59 62 61 72 .(.)xsetdictYbar + 5f 32 36 81 0b 13 38 64 65 66 78 67 65 74 64 69 _26...8defxgetdi + 63 74 58 62 61 72 5f 32 58 66 6f 6f 5f 30 13 ctXbar_2Xfoo_0. + #196.1.1.array + #198.1.1.hash + #199.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x45, size 5, "bar_2"> => #200.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x4b, size 3> + #199.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x45, size 5, "bar_2"> + 62 61 72 5f 32 bar_2 + #200.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x4b, size 3> + 81 0b 13 ... + #202.1.1.num.int <11 (0xb)> diff --git a/tests/0052_dict/screen.log.ref b/tests/0052_dict/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0052_dict/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0052_dict/trace.log.ref b/tests/0052_dict/trace.log.ref new file mode 100644 index 0000000..e4ade53 --- /dev/null +++ b/tests/0052_dict/trace.log.ref @@ -0,0 +1,248 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 8, 9[7] +GC: ++#4.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #4.1.3.hash +IP: #186:0x10, type 9, 17[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x11, size 5, "foo_0"> + [1] #4.1.3.hash +IP: #186:0x16, type 1, 99 (0x63) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <99 (0x63)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x11, size 5, "foo_0"> + [2] #4.1.3.hash +IP: #186:0x18, type 8, 25[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.num.int +GC: --#190.1.2.num.int +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #4.1.3.hash +IP: #186:0x1c, type 9, 29[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x1d, size 5, "foo_1"> + [1] #4.1.3.hash +IP: #186:0x22, type 6, 35[9] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x23, size 9> + [1] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x1d, size 5, "foo_1"> + [2] #4.1.3.hash +IP: #186:0x2c, type 8, 45[3] +GC: ++#191.1.1.mem.ref.ro +GC: ++#192.1.1.mem.code.ro +GC: --#192.1.2.mem.code.ro +GC: --#191.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #4.1.3.hash +IP: #186:0x30, type 9, 49[5] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x31, size 5, "foo_2"> + [1] #4.1.3.hash +IP: #186:0x36, type 6, 56[47] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x38, size 47> + [1] #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x31, size 5, "foo_2"> + [2] #4.1.3.hash +IP: #186:0x67, type 8, 104[3] +GC: ++#193.1.1.mem.ref.ro +GC: ++#194.1.1.mem.code.ro +GC: --#194.1.2.mem.code.ro +GC: --#193.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #4.1.3.hash +IP: #186:0x6b, type 8, 108[5] +GC: ++#192.1.1.mem.code.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #4.1.3.hash +IP: #192:0x0, type 8, 1[7] +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #4.1.3.hash +IP: #192:0x8, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#195.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#192.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #4.1.3.hash +IP: #186:0x71, type 8, 114[5] +GC: ++#194.1.1.mem.code.ro +== backtrace == + [0] #197.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #4.1.3.hash +IP: #194:0x0, type 8, 1[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #197.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #0.0.nil + [2] #4.1.3.hash +IP: #194:0x2, type 8, 3[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #197.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.hash + [1] #0.0.nil + [2] #4.1.3.hash +IP: #194:0x4, type 8, 5[7] +GC: ++#198.1.1.hash +GC: --#198.1.2.hash +== backtrace == + [0] #197.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #4.1.3.hash +IP: #194:0xc, type 9, 13[5] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #197.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x45, size 5, "bar_2"> + [1] #0.0.nil + [2] #4.1.3.hash +IP: #194:0x12, type 6, 19[3] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #197.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.code.ro <#186.1.8.mem.ro, ofs 0x4b, size 3> + [1] #199.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x45, size 5, "bar_2"> + [2] #0.0.nil + [3] #4.1.3.hash +IP: #194:0x16, type 8, 23[3] +GC: ++#199.1.1.mem.ref.ro +GC: ++#200.1.1.mem.code.ro +GC: --#200.1.2.mem.code.ro +GC: --#199.1.2.mem.ref.ro +== backtrace == + [0] #197.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #4.1.3.hash +IP: #194:0x1a, type 8, 27[7] +GC: ++#198.1.1.hash +== backtrace == + [0] #197.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.2.hash + [1] #0.0.nil + [2] #4.1.3.hash +IP: #194:0x22, type 8, 35[5] +GC: ++#200.1.1.mem.code.ro +== backtrace == + [0] #201.1.1.ctx.func + [1] #197.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.2.hash + [1] #0.0.nil + [2] #4.1.3.hash +IP: #200:0x0, type 1, 11 (0xb) +== backtrace == + [0] #201.1.1.ctx.func + [1] #197.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <11 (0xb)> + [1] #198.1.2.hash + [2] #0.0.nil + [3] #4.1.3.hash +IP: #200:0x2, type 3, 1 (0x1) +GC: ++#197.1.1.ctx.func +GC: --#201.1.1.ctx.func +GC: --#197.1.2.ctx.func +GC: --#200.1.2.mem.code.ro +== backtrace == + [0] #197.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <11 (0xb)> + [1] #198.1.2.hash + [2] #0.0.nil + [3] #4.1.3.hash +IP: #194:0x28, type 8, 41[5] +GC: ++#190.1.1.num.int +== backtrace == + [0] #197.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <99 (0x63)> + [1] #202.1.1.num.int <11 (0xb)> + [2] #198.1.2.hash + [3] #0.0.nil + [4] #4.1.3.hash +IP: #194:0x2e, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#197.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#194.1.2.mem.code.ro +GC: --#198.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <99 (0x63)> + [1] #202.1.1.num.int <11 (0xb)> + [2] #198.1.1.hash + [3] #0.0.nil + [4] #4.1.3.hash +IP: #186:0x77, type 8, 120[5] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <99 (0x63)> + [1] #202.1.1.num.int <11 (0xb)> + [2] #198.1.1.hash + [3] #0.0.nil + [4] #4.1.3.hash +error 1 (invalid code), ip = #186:0x77 diff --git a/tests/0053_freeze/basic.log.ref b/tests/0053_freeze/basic.log.ref new file mode 100644 index 0000000..d65baf7 --- /dev/null +++ b/tests/0053_freeze/basic.log.ref @@ -0,0 +1,215 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc123"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str +GC: --#xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "bar"> + [1] #xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "bar"> + [2] #xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "bar"> + [3] #xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "bar"> + [4] #xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "bar"> + [5] #xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [2] #xxxx.1.1.num.int <11 (0xb)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "bar"> + [6] #xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "bar"> + [2] #xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash.ro + [1] #xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "zapp"> + [1] #xxxx.1.2.hash.ro + [2] #xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "zapp"> + [2] #xxxx.1.2.hash.ro + [3] #xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "zapp"> + [3] #xxxx.1.2.hash.ro + [4] #xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "zapp"> + [4] #xxxx.1.2.hash.ro + [5] #xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "zapp"> + [5] #xxxx.1.2.hash.ro + [6] #xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "zapp"> + [2] #xxxx.1.2.hash.ro + [3] #xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash.ro + [1] #xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.2.hash.ro + [2] #xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array.ro + [1] #xxxx.1.2.hash.ro + [2] #xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.2.array.ro + [2] #xxxx.1.2.hash.ro + [3] #xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int.ro <10 (0xa)> + [1] #xxxx.1.2.array.ro + [2] #xxxx.1.2.hash.ro + [3] #xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.int.ro <10 (0xa)> + [2] #xxxx.1.2.array.ro + [3] #xxxx.1.2.hash.ro + [4] #xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.num.int.ro <10 (0xa)> + [2] #xxxx.1.2.array.ro + [3] #xxxx.1.2.hash.ro + [4] #xxxx.1.2.mem.str.ro diff --git a/tests/0053_freeze/code.log.ref b/tests/0053_freeze/code.log.ref new file mode 100644 index 0000000..158bb1b --- /dev/null +++ b/tests/0053_freeze/code.log.ref @@ -0,0 +1,36 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 30 entries (30 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c str 67 61 62 63 31 32 33 "abc123" + 3 0x00013 word 68 73 74 72 69 6e 67 string + 4 0x0001a word 38 64 65 66 def + 2 5 0x0001e word 38 66 6f 6f foo + 6 0x00022 word 68 66 72 65 65 7a 65 freeze + 4 7 0x00029 ref 39 62 61 72 /bar + 8 0x0002d word 18 28 ( + 9 0x0002f str 27 61 61 "aa" + 10 0x00032 int 81 0b 11 + 11 0x00034 str 27 62 62 "bb" + 12 0x00037 int 81 16 22 + 13 0x00039 word 18 29 ) + 14 0x0003b word 38 64 65 66 def + 5 15 0x0003f word 38 62 61 72 bar + 16 0x00043 word 68 66 72 65 65 7a 65 freeze + 7 17 0x0004a ref 49 7a 61 70 70 /zapp + 18 0x0004f word 18 5b [ + 19 0x00051 int 11 1 + 20 0x00052 int 21 2 + 21 0x00053 int 31 3 + 22 0x00054 word 18 5d ] + 23 0x00056 word 38 64 65 66 def + 8 24 0x0005a word 48 7a 61 70 70 zapp + 25 0x0005f word 68 66 72 65 65 7a 65 freeze + 10 26 0x00066 int 81 0a 10 + 27 0x00068 word 68 66 72 65 65 7a 65 freeze + 11 28 0x0006f nil 00 nil + 29 0x00070 word 68 66 72 65 65 7a 65 freeze diff --git a/tests/0053_freeze/code1.log.ref b/tests/0053_freeze/code1.log.ref new file mode 100644 index 0000000..9f929dc --- /dev/null +++ b/tests/0053_freeze/code1.log.ref @@ -0,0 +1,36 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 30 entries (30 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c str 67 61 62 63 31 32 33 "abc123" + 3 0x00013 word 68 73 74 72 69 6e 67 string + 4 0x0001a word 38 64 65 66 def + 2 5 0x0001e word 38 66 6f 6f foo + 6 0x00022 word 68 66 72 65 65 7a 65 freeze + 4 7 0x00029 ref 39 62 61 72 /bar + 8 0x0002d word 18 28 ( + 9 0x0002f str 27 61 61 "aa" + 10 0x00032 int 81 0b 11 + 11 0x00034 str 27 62 62 "bb" + 12 0x00037 int 81 16 22 + 13 0x00039 word 18 29 ) + 14 0x0003b xref 84 21 def + 5 15 0x0003d word 38 62 61 72 bar + 16 0x00041 xref 84 1f freeze + 7 17 0x00043 ref 49 7a 61 70 70 /zapp + 18 0x00048 word 18 5b [ + 19 0x0004a int 11 1 + 20 0x0004b int 21 2 + 21 0x0004c int 31 3 + 22 0x0004d word 18 5d ] + 23 0x0004f xref 84 35 def + 8 24 0x00051 word 48 7a 61 70 70 zapp + 25 0x00056 xref 84 34 freeze + 10 26 0x00058 int 81 0a 10 + 27 0x0005a xref 84 38 freeze + 11 28 0x0005c nil 00 nil + 29 0x0005d xref 84 3b freeze diff --git a/tests/0053_freeze/code2.log.ref b/tests/0053_freeze/code2.log.ref new file mode 100644 index 0000000..eae28f9 --- /dev/null +++ b/tests/0053_freeze/code2.log.ref @@ -0,0 +1,36 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 30 entries (30 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c str 67 61 62 63 31 32 33 "abc123" + 3 0x00013 prim 83 11 string + 4 0x00015 prim 63 def + 2 5 0x00016 word 38 66 6f 6f foo + 6 0x0001a prim 83 38 freeze + 4 7 0x0001c ref 39 62 61 72 /bar + 8 0x00020 prim 43 ( + 9 0x00021 str 27 61 61 "aa" + 10 0x00024 int 81 0b 11 + 11 0x00026 str 27 62 62 "bb" + 12 0x00029 int 81 16 22 + 13 0x0002b prim 53 ) + 14 0x0002c prim 63 def + 5 15 0x0002d word 38 62 61 72 bar + 16 0x00031 prim 83 38 freeze + 7 17 0x00033 ref 49 7a 61 70 70 /zapp + 18 0x00038 prim 23 [ + 19 0x00039 int 11 1 + 20 0x0003a int 21 2 + 21 0x0003b int 31 3 + 22 0x0003c prim 33 ] + 23 0x0003d prim 63 def + 8 24 0x0003e word 48 7a 61 70 70 zapp + 25 0x00043 prim 83 38 freeze + 10 26 0x00045 int 81 0a 10 + 27 0x00047 prim 83 38 freeze + 11 28 0x00049 nil 00 nil + 29 0x0004a prim 83 38 freeze diff --git a/tests/0053_freeze/main.gs b/tests/0053_freeze/main.gs new file mode 100644 index 0000000..e96578b --- /dev/null +++ b/tests/0053_freeze/main.gs @@ -0,0 +1,11 @@ +/foo "abc123" string def +foo freeze + +/bar ( "aa" 11 "bb" 22 ) def +bar freeze + +/zapp [ 1 2 3 ] def +zapp freeze + +10 freeze +nil freeze diff --git a/tests/0053_freeze/mem.log.ref b/tests/0053_freeze/mem.log.ref new file mode 100644 index 0000000..1ea5e37 --- /dev/null +++ b/tests/0053_freeze/mem.log.ref @@ -0,0 +1,794 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 120] + 8: 187.01, 0x001d6aec[ 72] + 9: 188.01, 0x001d6b3c[ 56] + 10: 191.01, 0x001d6b7c[ 8] + 11: 192.01, 0x001d6b8c[ 72] + 12: 198.01, 0x001d6bdc[ 28] + 13: 203.01, 0x001d6c00[ 20] + 14: 0.00, 0x001d6c1c[14848996] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x2a, size 3, "bar"> => #198.1.2.hash.ro + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "foo"> => #191.1.2.mem.str.ro + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #199.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x4b, size 4, "zapp"> => #203.1.2.array.ro + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.6.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 67 61 62 63 uQ..Bz.`9foogabc + 31 32 33 68 73 74 72 69 6e 67 38 64 65 66 38 66 123hstring8def8f + 6f 6f 68 66 72 65 65 7a 65 39 62 61 72 18 28 27 oohfreeze9bar.(' + 61 61 81 0b 27 62 62 81 16 18 29 38 64 65 66 38 aa..'bb...)8def8 + 62 61 72 68 66 72 65 65 7a 65 49 7a 61 70 70 18 barhfreezeIzapp. + 5b 11 21 31 18 5d 38 64 65 66 48 7a 61 70 70 68 [.!1.]8defHzapph + 66 72 65 65 7a 65 81 0a 68 66 72 65 65 7a 65 00 freeze..hfreeze. + 68 66 72 65 65 7a 65 hfreeze + #187.1.1.array + [ 0] #191.1.2.mem.str.ro + [ 1] #198.1.2.hash.ro + [ 2] #203.1.2.array.ro + [ 3] #204.1.1.num.int.ro <10 (0xa)> + [ 4] #0.0.nil + #188.1.1.ctx.func + type 17, ip 0x77 (0x77) + code #186.1.6.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #191.1.2.mem.str.ro + 61 62 63 31 32 33 abc123 + #192.1.1.array + #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x2a, size 3, "bar"> + 62 61 72 bar + #194.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x30, size 2, "aa"> + 61 61 aa + #195.1.1.num.int <11 (0xb)> + #196.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x35, size 2, "bb"> + 62 62 bb + #197.1.1.num.int <22 (0x16)> + #198.1.2.hash.ro + #194.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x30, size 2, "aa"> => #195.1.1.num.int <11 (0xb)> + #196.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x35, size 2, "bb"> => #197.1.1.num.int <22 (0x16)> + #199.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x4b, size 4, "zapp"> + 7a 61 70 70 zapp + #200.1.1.num.int <1 (0x1)> + #201.1.1.num.int <2 (0x2)> + #202.1.1.num.int <3 (0x3)> + #203.1.2.array.ro + [ 0] #200.1.1.num.int <1 (0x1)> + [ 1] #201.1.1.num.int <2 (0x2)> + [ 2] #202.1.1.num.int <3 (0x3)> + #204.1.1.num.int.ro <10 (0xa)> diff --git a/tests/0053_freeze/screen.log.ref b/tests/0053_freeze/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0053_freeze/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0053_freeze/trace.log.ref b/tests/0053_freeze/trace.log.ref new file mode 100644 index 0000000..248f7ed --- /dev/null +++ b/tests/0053_freeze/trace.log.ref @@ -0,0 +1,245 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 7, 13[6] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xd, size 6, "abc123"> + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x13, type 8, 20[6] +GC: --#190.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.str + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1a, type 8, 27[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#191.1.1.mem.str +GC: --#191.1.2.mem.str +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1e, type 8, 31[3] +GC: ++#191.1.1.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.mem.str +IP: #186:0x22, type 8, 35[6] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.mem.str.ro +IP: #186:0x29, type 9, 42[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x2a, size 3, "bar"> + [1] #191.1.2.mem.str.ro +IP: #186:0x2d, type 8, 46[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #193.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x2a, size 3, "bar"> + [2] #191.1.2.mem.str.ro +IP: #186:0x2f, type 7, 48[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x30, size 2, "aa"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #193.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x2a, size 3, "bar"> + [3] #191.1.2.mem.str.ro +IP: #186:0x32, type 1, 11 (0xb) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <11 (0xb)> + [1] #194.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x30, size 2, "aa"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #193.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x2a, size 3, "bar"> + [4] #191.1.2.mem.str.ro +IP: #186:0x34, type 7, 53[2] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x35, size 2, "bb"> + [1] #195.1.1.num.int <11 (0xb)> + [2] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x30, size 2, "aa"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x2a, size 3, "bar"> + [5] #191.1.2.mem.str.ro +IP: #186:0x37, type 1, 22 (0x16) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <22 (0x16)> + [1] #196.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x35, size 2, "bb"> + [2] #195.1.1.num.int <11 (0xb)> + [3] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x30, size 2, "aa"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x2a, size 3, "bar"> + [6] #191.1.2.mem.str.ro +IP: #186:0x39, type 8, 58[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.hash + [1] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x2a, size 3, "bar"> + [2] #191.1.2.mem.str.ro +IP: #186:0x3b, type 8, 60[3] +GC: ++#193.1.1.mem.ref.ro +GC: ++#198.1.1.hash +GC: --#198.1.2.hash +GC: --#193.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.mem.str.ro +IP: #186:0x3f, type 8, 64[3] +GC: ++#198.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.2.hash + [1] #191.1.2.mem.str.ro +IP: #186:0x43, type 8, 68[6] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.2.hash.ro + [1] #191.1.2.mem.str.ro +IP: #186:0x4a, type 9, 75[4] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x4b, size 4, "zapp"> + [1] #198.1.2.hash.ro + [2] #191.1.2.mem.str.ro +IP: #186:0x4f, type 8, 80[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #199.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x4b, size 4, "zapp"> + [2] #198.1.2.hash.ro + [3] #191.1.2.mem.str.ro +IP: #186:0x51, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #199.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x4b, size 4, "zapp"> + [3] #198.1.2.hash.ro + [4] #191.1.2.mem.str.ro +IP: #186:0x52, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <2 (0x2)> + [1] #200.1.1.num.int <1 (0x1)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #199.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x4b, size 4, "zapp"> + [4] #198.1.2.hash.ro + [5] #191.1.2.mem.str.ro +IP: #186:0x53, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <3 (0x3)> + [1] #201.1.1.num.int <2 (0x2)> + [2] #200.1.1.num.int <1 (0x1)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #199.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x4b, size 4, "zapp"> + [5] #198.1.2.hash.ro + [6] #191.1.2.mem.str.ro +IP: #186:0x54, type 8, 85[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.array + [1] #199.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x4b, size 4, "zapp"> + [2] #198.1.2.hash.ro + [3] #191.1.2.mem.str.ro +IP: #186:0x56, type 8, 87[3] +GC: ++#199.1.1.mem.ref.ro +GC: ++#203.1.1.array +GC: --#203.1.2.array +GC: --#199.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.2.hash.ro + [1] #191.1.2.mem.str.ro +IP: #186:0x5a, type 8, 91[4] +GC: ++#203.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.2.array + [1] #198.1.2.hash.ro + [2] #191.1.2.mem.str.ro +IP: #186:0x5f, type 8, 96[6] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.2.array.ro + [1] #198.1.2.hash.ro + [2] #191.1.2.mem.str.ro +IP: #186:0x66, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <10 (0xa)> + [1] #203.1.2.array.ro + [2] #198.1.2.hash.ro + [3] #191.1.2.mem.str.ro +IP: #186:0x68, type 8, 105[6] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int.ro <10 (0xa)> + [1] #203.1.2.array.ro + [2] #198.1.2.hash.ro + [3] #191.1.2.mem.str.ro +IP: #186:0x6f, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #204.1.1.num.int.ro <10 (0xa)> + [2] #203.1.2.array.ro + [3] #198.1.2.hash.ro + [4] #191.1.2.mem.str.ro +IP: #186:0x70, type 8, 113[6] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #204.1.1.num.int.ro <10 (0xa)> + [2] #203.1.2.array.ro + [3] #198.1.2.hash.ro + [4] #191.1.2.mem.str.ro diff --git a/tests/0054_freeze_string/basic.log.ref b/tests/0054_freeze_string/basic.log.ref new file mode 100644 index 0000000..300c376 --- /dev/null +++ b/tests/0054_freeze_string/basic.log.ref @@ -0,0 +1,65 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "abc123"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str +GC: --#xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro +GC: ++#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.mem.str.ro + [1] #xxxx.1.3.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.3.mem.str.ro + [2] #xxxx.1.3.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <99 (0x63)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.3.mem.str.ro + [3] #xxxx.1.3.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <99 (0x63)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.3.mem.str.ro + [3] #xxxx.1.3.mem.str.ro +error 12 (readonly), ip = #186 diff --git a/tests/0054_freeze_string/code.log.ref b/tests/0054_freeze_string/code.log.ref new file mode 100644 index 0000000..25a7ced --- /dev/null +++ b/tests/0054_freeze_string/code.log.ref @@ -0,0 +1,17 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 11 entries (11 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c str 67 61 62 63 31 32 33 "abc123" + 3 0x00013 word 68 73 74 72 69 6e 67 string + 4 0x0001a word 38 64 65 66 def + 2 5 0x0001e word 38 66 6f 6f foo + 6 0x00022 word 68 66 72 65 65 7a 65 freeze + 4 7 0x00029 word 38 66 6f 6f foo + 8 0x0002d int 41 4 + 9 0x0002e int 81 63 'c' + 10 0x00030 word 38 70 75 74 put diff --git a/tests/0054_freeze_string/code1.log.ref b/tests/0054_freeze_string/code1.log.ref new file mode 100644 index 0000000..a4990f5 --- /dev/null +++ b/tests/0054_freeze_string/code1.log.ref @@ -0,0 +1,17 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 11 entries (11 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c str 67 61 62 63 31 32 33 "abc123" + 3 0x00013 word 68 73 74 72 69 6e 67 string + 4 0x0001a word 38 64 65 66 def + 2 5 0x0001e word 38 66 6f 6f foo + 6 0x00022 word 68 66 72 65 65 7a 65 freeze + 4 7 0x00029 xref 84 0b foo + 8 0x0002b int 41 4 + 9 0x0002c int 81 63 'c' + 10 0x0002e word 38 70 75 74 put diff --git a/tests/0054_freeze_string/code2.log.ref b/tests/0054_freeze_string/code2.log.ref new file mode 100644 index 0000000..f7e7181 --- /dev/null +++ b/tests/0054_freeze_string/code2.log.ref @@ -0,0 +1,17 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 11 entries (11 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c str 67 61 62 63 31 32 33 "abc123" + 3 0x00013 prim 83 11 string + 4 0x00015 prim 63 def + 2 5 0x00016 word 38 66 6f 6f foo + 6 0x0001a prim 83 38 freeze + 4 7 0x0001c xref 64 foo + 8 0x0001d int 41 4 + 9 0x0001e int 81 63 'c' + 10 0x00020 prim 83 13 put diff --git a/tests/0054_freeze_string/main.gs b/tests/0054_freeze_string/main.gs new file mode 100644 index 0000000..ac9b4f1 --- /dev/null +++ b/tests/0054_freeze_string/main.gs @@ -0,0 +1,4 @@ +/foo "abc123" string def +foo freeze + +foo 4 'c' put diff --git a/tests/0054_freeze_string/mem.log.ref b/tests/0054_freeze_string/mem.log.ref new file mode 100644 index 0000000..1cd26bf --- /dev/null +++ b/tests/0054_freeze_string/mem.log.ref @@ -0,0 +1,766 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 52] + 8: 187.01, 0x001d6aa8[ 72] + 9: 188.01, 0x001d6af8[ 56] + 10: 191.01, 0x001d6b38[ 8] + 11: 192.01, 0x001d6b48[ 72] + 12: 0.00, 0x001d6b98[14849128] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> => #191.1.3.mem.str.ro + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.2.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 67 61 62 63 uQ..Bz.`9foogabc + 31 32 33 68 73 74 72 69 6e 67 38 64 65 66 38 66 123hstring8def8f + 6f 6f 68 66 72 65 65 7a 65 38 66 6f 6f 41 81 63 oohfreeze8fooA.c + 38 70 75 74 8put + #187.1.1.array + [ 0] #191.1.3.mem.str.ro + [ 1] #191.1.3.mem.str.ro + [ 2] #193.1.1.num.int <4 (0x4)> + [ 3] #194.1.1.num.int <99 (0x63)> + #188.1.1.ctx.func + type 17, ip 0x34 (0x30) + code #186.1.2.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #191.1.3.mem.str.ro + 61 62 63 31 32 33 abc123 + #192.1.1.array + #193.1.1.num.int <4 (0x4)> + #194.1.1.num.int <99 (0x63)> diff --git a/tests/0054_freeze_string/screen.log.ref b/tests/0054_freeze_string/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0054_freeze_string/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0054_freeze_string/trace.log.ref b/tests/0054_freeze_string/trace.log.ref new file mode 100644 index 0000000..a200d89 --- /dev/null +++ b/tests/0054_freeze_string/trace.log.ref @@ -0,0 +1,76 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 7, 13[6] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xd, size 6, "abc123"> + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x13, type 8, 20[6] +GC: --#190.1.1.mem.str.ro +GC: --#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.str + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1a, type 8, 27[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#191.1.1.mem.str +GC: --#191.1.2.mem.str +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1e, type 8, 31[3] +GC: ++#191.1.1.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.mem.str +IP: #186:0x22, type 8, 35[6] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.mem.str.ro +IP: #186:0x29, type 8, 42[3] +GC: ++#191.1.2.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.3.mem.str.ro + [1] #191.1.3.mem.str.ro +IP: #186:0x2d, type 1, 4 (0x4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <4 (0x4)> + [1] #191.1.3.mem.str.ro + [2] #191.1.3.mem.str.ro +IP: #186:0x2e, type 1, 99 (0x63) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <99 (0x63)> + [1] #193.1.1.num.int <4 (0x4)> + [2] #191.1.3.mem.str.ro + [3] #191.1.3.mem.str.ro +IP: #186:0x30, type 8, 49[3] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <99 (0x63)> + [1] #193.1.1.num.int <4 (0x4)> + [2] #191.1.3.mem.str.ro + [3] #191.1.3.mem.str.ro +error 12 (readonly), ip = #186:0x30 diff --git a/tests/0055_freeze_array/basic.log.ref b/tests/0055_freeze_array/basic.log.ref new file mode 100644 index 0000000..9f0911c --- /dev/null +++ b/tests/0055_freeze_array/basic.log.ref @@ -0,0 +1,85 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "zapp"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <2 (0x2)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "zapp"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.2.num.prim <2 (0x2)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "zapp"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.2.num.prim <2 (0x2)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "zapp"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <2 (0x2)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.2.num.prim <2 (0x2)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "zapp"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "zapp"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array.ro +GC: ++#xxxx.1.2.array.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.array.ro + [1] #xxxx.1.3.array.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.3.array.ro + [2] #xxxx.1.3.array.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.3.array.ro + [3] #xxxx.1.3.array.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.3.array.ro + [3] #xxxx.1.3.array.ro +error 12 (readonly), ip = #186 diff --git a/tests/0055_freeze_array/code.log.ref b/tests/0055_freeze_array/code.log.ref new file mode 100644 index 0000000..6c86e6d --- /dev/null +++ b/tests/0055_freeze_array/code.log.ref @@ -0,0 +1,20 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 14 entries (14 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 49 7a 61 70 70 /zapp + 2 0x0000d word 18 5b [ + 3 0x0000f int 11 1 + 4 0x00010 int 21 2 + 5 0x00011 int 31 3 + 6 0x00012 word 18 5d ] + 7 0x00014 word 38 64 65 66 def + 2 8 0x00018 word 48 7a 61 70 70 zapp + 9 0x0001d word 68 66 72 65 65 7a 65 freeze + 4 10 0x00024 word 48 7a 61 70 70 zapp + 11 0x00029 int 11 1 + 12 0x0002a int 81 0a 10 + 13 0x0002c word 38 70 75 74 put diff --git a/tests/0055_freeze_array/code1.log.ref b/tests/0055_freeze_array/code1.log.ref new file mode 100644 index 0000000..7eca693 --- /dev/null +++ b/tests/0055_freeze_array/code1.log.ref @@ -0,0 +1,20 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 14 entries (14 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 49 7a 61 70 70 /zapp + 2 0x0000d word 18 5b [ + 3 0x0000f int 11 1 + 4 0x00010 int 21 2 + 5 0x00011 int 31 3 + 6 0x00012 word 18 5d ] + 7 0x00014 word 38 64 65 66 def + 2 8 0x00018 word 48 7a 61 70 70 zapp + 9 0x0001d word 68 66 72 65 65 7a 65 freeze + 4 10 0x00024 xref 84 0c zapp + 11 0x00026 int 11 1 + 12 0x00027 int 81 0a 10 + 13 0x00029 word 38 70 75 74 put diff --git a/tests/0055_freeze_array/code2.log.ref b/tests/0055_freeze_array/code2.log.ref new file mode 100644 index 0000000..c266e23 --- /dev/null +++ b/tests/0055_freeze_array/code2.log.ref @@ -0,0 +1,20 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 14 entries (14 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 49 7a 61 70 70 /zapp + 2 0x0000d prim 23 [ + 3 0x0000e int 11 1 + 4 0x0000f int 21 2 + 5 0x00010 int 31 3 + 6 0x00011 prim 33 ] + 7 0x00012 prim 63 def + 2 8 0x00013 word 48 7a 61 70 70 zapp + 9 0x00018 prim 83 38 freeze + 4 10 0x0001a xref 74 zapp + 11 0x0001b int 11 1 + 12 0x0001c int 81 0a 10 + 13 0x0001e prim 83 13 put diff --git a/tests/0055_freeze_array/main.gs b/tests/0055_freeze_array/main.gs new file mode 100644 index 0000000..0259279 --- /dev/null +++ b/tests/0055_freeze_array/main.gs @@ -0,0 +1,4 @@ +/zapp [ 1 2 3 ] def +zapp freeze + +zapp 1 10 put diff --git a/tests/0055_freeze_array/mem.log.ref b/tests/0055_freeze_array/mem.log.ref new file mode 100644 index 0000000..32ab18a --- /dev/null +++ b/tests/0055_freeze_array/mem.log.ref @@ -0,0 +1,768 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 48] + 8: 187.01, 0x001d6aa4[ 72] + 9: 188.01, 0x001d6af4[ 56] + 10: 193.01, 0x001d6b34[ 20] + 11: 0.00, 0x001d6b50[14849200] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 4, "zapp"> => #193.1.3.array.ro + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.2.mem.ro + 75 51 12 a9 42 7a ad 60 49 7a 61 70 70 18 5b 11 uQ..Bz.`Izapp.[. + 21 31 18 5d 38 64 65 66 48 7a 61 70 70 68 66 72 !1.]8defHzapphfr + 65 65 7a 65 48 7a 61 70 70 11 81 0a 38 70 75 74 eezeHzapp...8put + #187.1.1.array + [ 0] #193.1.3.array.ro + [ 1] #193.1.3.array.ro + [ 2] #194.1.1.num.int <1 (0x1)> + [ 3] #195.1.1.num.int <10 (0xa)> + #188.1.1.ctx.func + type 17, ip 0x30 (0x2c) + code #186.1.2.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 4, "zapp"> + 7a 61 70 70 zapp + #190.1.1.num.int <1 (0x1)> + #191.1.1.num.int <2 (0x2)> + #192.1.1.num.int <3 (0x3)> + #193.1.3.array.ro + [ 0] #190.1.1.num.int <1 (0x1)> + [ 1] #191.1.1.num.int <2 (0x2)> + [ 2] #192.1.1.num.int <3 (0x3)> + #194.1.1.num.int <1 (0x1)> + #195.1.1.num.int <10 (0xa)> diff --git a/tests/0055_freeze_array/screen.log.ref b/tests/0055_freeze_array/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0055_freeze_array/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0055_freeze_array/trace.log.ref b/tests/0055_freeze_array/trace.log.ref new file mode 100644 index 0000000..6ce35c9 --- /dev/null +++ b/tests/0055_freeze_array/trace.log.ref @@ -0,0 +1,99 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[4] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 4, "zapp"> +IP: #186:0xd, type 8, 14[1] +GC: ++#9.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #9.1.2.num.prim <2 (0x2)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 4, "zapp"> +IP: #186:0xf, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <1 (0x1)> + [1] #9.1.2.num.prim <2 (0x2)> + [2] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 4, "zapp"> +IP: #186:0x10, type 1, 2 (0x2) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <2 (0x2)> + [1] #190.1.1.num.int <1 (0x1)> + [2] #9.1.2.num.prim <2 (0x2)> + [3] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 4, "zapp"> +IP: #186:0x11, type 1, 3 (0x3) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <3 (0x3)> + [1] #191.1.1.num.int <2 (0x2)> + [2] #190.1.1.num.int <1 (0x1)> + [3] #9.1.2.num.prim <2 (0x2)> + [4] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 4, "zapp"> +IP: #186:0x12, type 8, 19[1] +GC: --#9.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.array + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 4, "zapp"> +IP: #186:0x14, type 8, 21[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#193.1.1.array +GC: --#193.1.2.array +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x18, type 8, 25[4] +GC: ++#193.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.2.array +IP: #186:0x1d, type 8, 30[6] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.2.array.ro +IP: #186:0x24, type 8, 37[4] +GC: ++#193.1.2.array.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.3.array.ro + [1] #193.1.3.array.ro +IP: #186:0x29, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <1 (0x1)> + [1] #193.1.3.array.ro + [2] #193.1.3.array.ro +IP: #186:0x2a, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <10 (0xa)> + [1] #194.1.1.num.int <1 (0x1)> + [2] #193.1.3.array.ro + [3] #193.1.3.array.ro +IP: #186:0x2c, type 8, 45[3] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <10 (0xa)> + [1] #194.1.1.num.int <1 (0x1)> + [2] #193.1.3.array.ro + [3] #193.1.3.array.ro +error 12 (readonly), ip = #186:0x2c diff --git a/tests/0056_freeze_hash/basic.log.ref b/tests/0056_freeze_hash/basic.log.ref new file mode 100644 index 0000000..88242aa --- /dev/null +++ b/tests/0056_freeze_hash/basic.log.ref @@ -0,0 +1,97 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "bar"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "bar"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "bar"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "aa"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "bar"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "bar"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "bb"> + [2] #xxxx.1.1.num.int <11 (0xb)> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "aa"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "bar"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "bar"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash.ro +GC: ++#xxxx.1.2.hash.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash.ro + [1] #xxxx.1.3.hash.ro +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [1] #xxxx.1.3.hash.ro + [2] #xxxx.1.3.hash.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <33 (0x21)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [2] #xxxx.1.3.hash.ro + [3] #xxxx.1.3.hash.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <33 (0x21)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "bb"> + [2] #xxxx.1.3.hash.ro + [3] #xxxx.1.3.hash.ro +error 12 (readonly), ip = #186 diff --git a/tests/0056_freeze_hash/code.log.ref b/tests/0056_freeze_hash/code.log.ref new file mode 100644 index 0000000..09ccb85 --- /dev/null +++ b/tests/0056_freeze_hash/code.log.ref @@ -0,0 +1,21 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 15 entries (15 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c word 18 28 ( + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 int 81 0b 11 + 5 0x00013 str 27 62 62 "bb" + 6 0x00016 int 81 16 22 + 7 0x00018 word 18 29 ) + 8 0x0001a word 38 64 65 66 def + 2 9 0x0001e word 38 62 61 72 bar + 10 0x00022 word 68 66 72 65 65 7a 65 freeze + 4 11 0x00029 word 38 62 61 72 bar + 12 0x0002d str 27 62 62 "bb" + 13 0x00030 int 81 21 33 + 14 0x00032 word 38 70 75 74 put diff --git a/tests/0056_freeze_hash/code1.log.ref b/tests/0056_freeze_hash/code1.log.ref new file mode 100644 index 0000000..3fdf314 --- /dev/null +++ b/tests/0056_freeze_hash/code1.log.ref @@ -0,0 +1,21 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 15 entries (15 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c word 18 28 ( + 3 0x0000e str 27 61 61 "aa" + 4 0x00011 int 81 0b 11 + 5 0x00013 str 27 62 62 "bb" + 6 0x00016 int 81 16 22 + 7 0x00018 word 18 29 ) + 8 0x0001a word 38 64 65 66 def + 2 9 0x0001e word 38 62 61 72 bar + 10 0x00022 word 68 66 72 65 65 7a 65 freeze + 4 11 0x00029 xref 84 0b bar + 12 0x0002b xref 84 18 "bb" + 13 0x0002d int 81 21 33 + 14 0x0002f word 38 70 75 74 put diff --git a/tests/0056_freeze_hash/code2.log.ref b/tests/0056_freeze_hash/code2.log.ref new file mode 100644 index 0000000..64a7ee8 --- /dev/null +++ b/tests/0056_freeze_hash/code2.log.ref @@ -0,0 +1,21 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 15 entries (15 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c prim 43 ( + 3 0x0000d str 27 61 61 "aa" + 4 0x00010 int 81 0b 11 + 5 0x00012 str 27 62 62 "bb" + 6 0x00015 int 81 16 22 + 7 0x00017 prim 53 ) + 8 0x00018 prim 63 def + 2 9 0x00019 word 38 62 61 72 bar + 10 0x0001d prim 83 38 freeze + 4 11 0x0001f xref 64 bar + 12 0x00020 xref 84 0e "bb" + 13 0x00022 int 81 21 33 + 14 0x00024 prim 83 13 put diff --git a/tests/0056_freeze_hash/main.gs b/tests/0056_freeze_hash/main.gs new file mode 100644 index 0000000..f6798f2 --- /dev/null +++ b/tests/0056_freeze_hash/main.gs @@ -0,0 +1,4 @@ +/bar ( "aa" 11 "bb" 22 ) def +bar freeze + +bar "bb" 33 put diff --git a/tests/0056_freeze_hash/mem.log.ref b/tests/0056_freeze_hash/mem.log.ref new file mode 100644 index 0000000..2a313bf --- /dev/null +++ b/tests/0056_freeze_hash/mem.log.ref @@ -0,0 +1,772 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 56] + 8: 187.01, 0x001d6aac[ 72] + 9: 188.01, 0x001d6afc[ 56] + 10: 194.01, 0x001d6b3c[ 28] + 11: 0.00, 0x001d6b60[14849184] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "bar"> => #194.1.3.hash.ro + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.5.mem.ro + 75 51 12 a9 42 7a ad 60 39 62 61 72 18 28 27 61 uQ..Bz.`9bar.('a + 61 81 0b 27 62 62 81 16 18 29 38 64 65 66 38 62 a..'bb...)8def8b + 61 72 68 66 72 65 65 7a 65 38 62 61 72 27 62 62 arhfreeze8bar'bb + 81 21 38 70 75 74 .!8put + #187.1.1.array + [ 0] #194.1.3.hash.ro + [ 1] #194.1.3.hash.ro + [ 2] #195.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x2e, size 2, "bb"> + [ 3] #196.1.1.num.int <33 (0x21)> + #188.1.1.ctx.func + type 17, ip 0x36 (0x32) + code #186.1.5.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "bar"> + 62 61 72 bar + #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> + 61 61 aa + #191.1.1.num.int <11 (0xb)> + #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x14, size 2, "bb"> + 62 62 bb + #193.1.1.num.int <22 (0x16)> + #194.1.3.hash.ro + #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "aa"> => #191.1.1.num.int <11 (0xb)> + #192.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x14, size 2, "bb"> => #193.1.1.num.int <22 (0x16)> + #195.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x2e, size 2, "bb"> + 62 62 bb + #196.1.1.num.int <33 (0x21)> diff --git a/tests/0056_freeze_hash/screen.log.ref b/tests/0056_freeze_hash/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0056_freeze_hash/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0056_freeze_hash/trace.log.ref b/tests/0056_freeze_hash/trace.log.ref new file mode 100644 index 0000000..143b5ee --- /dev/null +++ b/tests/0056_freeze_hash/trace.log.ref @@ -0,0 +1,112 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0xc, type 8, 13[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0xe, type 7, 15[2] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "aa"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0x11, type 1, 11 (0xb) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <11 (0xb)> + [1] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "aa"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0x13, type 7, 20[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x14, size 2, "bb"> + [1] #191.1.1.num.int <11 (0xb)> + [2] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "aa"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0x16, type 1, 22 (0x16) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <22 (0x16)> + [1] #192.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x14, size 2, "bb"> + [2] #191.1.1.num.int <11 (0xb)> + [3] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "aa"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0x18, type 8, 25[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.hash + [1] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0x1a, type 8, 27[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#194.1.1.hash +GC: --#194.1.2.hash +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1e, type 8, 31[3] +GC: ++#194.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.hash +IP: #186:0x22, type 8, 35[6] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.hash.ro +IP: #186:0x29, type 8, 42[3] +GC: ++#194.1.2.hash.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.3.hash.ro + [1] #194.1.3.hash.ro +IP: #186:0x2d, type 7, 46[2] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x2e, size 2, "bb"> + [1] #194.1.3.hash.ro + [2] #194.1.3.hash.ro +IP: #186:0x30, type 1, 33 (0x21) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <33 (0x21)> + [1] #195.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x2e, size 2, "bb"> + [2] #194.1.3.hash.ro + [3] #194.1.3.hash.ro +IP: #186:0x32, type 8, 51[3] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <33 (0x21)> + [1] #195.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x2e, size 2, "bb"> + [2] #194.1.3.hash.ro + [3] #194.1.3.hash.ro +error 12 (readonly), ip = #186:0x32 diff --git a/tests/0057_dict_nil/basic.log.ref b/tests/0057_dict_nil/basic.log.ref new file mode 100644 index 0000000..34e2716 --- /dev/null +++ b/tests/0057_dict_nil/basic.log.ref @@ -0,0 +1,151 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <99 (0x63)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "bar"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "bar"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <99 (0x63)> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.2.num.int <99 (0x63)> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.2.num.int <99 (0x63)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.2.num.int <99 (0x63)> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.2.num.int <99 (0x63)> +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <99 (0x63)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.num.int <99 (0x63)> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo"> + [1] #0.0.nil + [2] #xxxx.1.2.num.int <99 (0x63)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo"> + [2] #0.0.nil + [3] #xxxx.1.2.num.int <99 (0x63)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.2.num.int <99 (0x63)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <11 (0xb)> + [1] #0.0.nil + [2] #xxxx.1.2.num.int <99 (0x63)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #0.0.nil + [2] #xxxx.1.2.num.int <99 (0x63)> +GC: ++#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <99 (0x63)> + [1] #xxxx.1.1.num.int <11 (0xb)> + [2] #0.0.nil + [3] #xxxx.1.3.num.int <99 (0x63)> diff --git a/tests/0057_dict_nil/code.log.ref b/tests/0057_dict_nil/code.log.ref new file mode 100644 index 0000000..e3f2dd7 --- /dev/null +++ b/tests/0057_dict_nil/code.log.ref @@ -0,0 +1,27 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 21 entries (21 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c int 81 63 99 + 3 0x0000e word 38 64 65 66 def + 3 4 0x00012 ref 39 62 61 72 /bar + 5 0x00016 code c6 28 { + 4 6 0x00018 word 38 66 6f 6f foo + 6 7 0x0001c word 18 28 ( + 8 0x0001e ref 39 66 6f 6f /foo + 9 0x00022 nil 00 nil + 10 0x00023 word 18 29 ) + 11 0x00025 word 78 73 65 74 64 69 63 74 setdict + 8 12 0x0002d word 38 66 6f 6f foo + 10 13 0x00031 ref 39 66 6f 6f /foo + 14 0x00035 int 81 0b 11 + 15 0x00037 word 38 64 65 66 def + 11 16 0x0003b word 38 66 6f 6f foo + 12 17 0x0003f prim 13 } + 18 0x00040 word 38 64 65 66 def + 14 19 0x00044 word 38 62 61 72 bar + 16 20 0x00048 word 38 66 6f 6f foo diff --git a/tests/0057_dict_nil/code1.log.ref b/tests/0057_dict_nil/code1.log.ref new file mode 100644 index 0000000..a964dd1 --- /dev/null +++ b/tests/0057_dict_nil/code1.log.ref @@ -0,0 +1,27 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 21 entries (21 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c int 81 63 99 + 3 0x0000e word 38 64 65 66 def + 3 4 0x00012 ref 39 62 61 72 /bar + 5 0x00016 code c6 1e { + 4 6 0x00018 word 38 66 6f 6f foo + 6 7 0x0001c word 18 28 ( + 8 0x0001e xref 84 16 /foo + 9 0x00020 nil 00 nil + 10 0x00021 word 18 29 ) + 11 0x00023 word 78 73 65 74 64 69 63 74 setdict + 8 12 0x0002b xref 84 13 foo + 10 13 0x0002d xref 84 25 /foo + 14 0x0002f int 81 0b 11 + 15 0x00031 xref 84 23 def + 11 16 0x00033 xref 84 1b foo + 12 17 0x00035 prim 13 } + 18 0x00036 xref 84 28 def + 14 19 0x00038 word 38 62 61 72 bar + 16 20 0x0003c xref 84 24 foo diff --git a/tests/0057_dict_nil/code2.log.ref b/tests/0057_dict_nil/code2.log.ref new file mode 100644 index 0000000..2057cc3 --- /dev/null +++ b/tests/0057_dict_nil/code2.log.ref @@ -0,0 +1,27 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 21 entries (21 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c int 81 63 99 + 3 0x0000e prim 63 def + 3 4 0x0000f ref 39 62 61 72 /bar + 5 0x00013 code c6 15 { + 4 6 0x00015 word 38 66 6f 6f foo + 6 7 0x00019 prim 43 ( + 8 0x0001a xref 84 12 /foo + 9 0x0001c nil 00 nil + 10 0x0001d prim 53 ) + 11 0x0001e prim 83 37 setdict + 8 12 0x00020 xref 84 0b foo + 10 13 0x00022 xref 84 1a /foo + 14 0x00024 int 81 0b 11 + 15 0x00026 prim 63 def + 11 16 0x00027 xref 84 12 foo + 12 17 0x00029 prim 13 } + 18 0x0002a prim 63 def + 14 19 0x0002b word 38 62 61 72 bar + 16 20 0x0002f xref 84 1a foo diff --git a/tests/0057_dict_nil/main.gs b/tests/0057_dict_nil/main.gs new file mode 100644 index 0000000..c5a00a1 --- /dev/null +++ b/tests/0057_dict_nil/main.gs @@ -0,0 +1,16 @@ +/foo 99 def + +/bar { + foo + + ( /foo nil ) setdict + + foo + + /foo 11 def + foo +} def + +bar + +foo diff --git a/tests/0057_dict_nil/mem.log.ref b/tests/0057_dict_nil/mem.log.ref new file mode 100644 index 0000000..6b40917 --- /dev/null +++ b/tests/0057_dict_nil/mem.log.ref @@ -0,0 +1,772 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 76] + 8: 187.01, 0x001d6ac0[ 72] + 9: 188.01, 0x001d6b10[ 56] + 10: 0.00, 0x001d6b50[ 84] + 11: 198.01, 0x001d6bac[ 72] + 12: 0.00, 0x001d6bfc[14849028] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x13, size 3, "bar"> => #192.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x18, size 40> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> => #190.1.3.num.int <99 (0x63)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.4.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 81 63 38 64 uQ..Bz.`9foo.c8d + 65 66 39 62 61 72 c6 28 38 66 6f 6f 18 28 39 66 ef9bar.(8foo.(9f + 6f 6f 00 18 29 78 73 65 74 64 69 63 74 38 66 6f oo..)xsetdict8fo + 6f 39 66 6f 6f 81 0b 38 64 65 66 38 66 6f 6f 13 o9foo..8def8foo. + 38 64 65 66 38 62 61 72 38 66 6f 6f 8def8bar8foo + #187.1.1.array + [ 0] #190.1.3.num.int <99 (0x63)> + [ 1] #0.0.nil + [ 2] #197.1.1.num.int <11 (0xb)> + [ 3] #190.1.3.num.int <99 (0x63)> + #188.1.1.ctx.func + type 17, ip 0x4c (0x4c) + code #186.1.4.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.3.num.int <99 (0x63)> + #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x13, size 3, "bar"> + 62 61 72 bar + #192.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x18, size 40> + 38 66 6f 6f 18 28 39 66 6f 6f 00 18 29 78 73 65 8foo.(9foo..)xse + 74 64 69 63 74 38 66 6f 6f 39 66 6f 6f 81 0b 38 tdict8foo9foo..8 + 64 65 66 38 66 6f 6f 13 def8foo. + #197.1.1.num.int <11 (0xb)> + #198.1.1.array diff --git a/tests/0057_dict_nil/screen.log.ref b/tests/0057_dict_nil/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0057_dict_nil/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0057_dict_nil/trace.log.ref b/tests/0057_dict_nil/trace.log.ref new file mode 100644 index 0000000..2348e33 --- /dev/null +++ b/tests/0057_dict_nil/trace.log.ref @@ -0,0 +1,172 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 1, 99 (0x63) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <99 (0x63)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 8, 15[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.num.int +GC: --#190.1.2.num.int +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x12, type 9, 19[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x13, size 3, "bar"> +IP: #186:0x16, type 6, 24[40] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x18, size 40> + [1] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x13, size 3, "bar"> +IP: #186:0x40, type 8, 65[3] +GC: ++#191.1.1.mem.ref.ro +GC: ++#192.1.1.mem.code.ro +GC: --#192.1.2.mem.code.ro +GC: --#191.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x44, type 8, 69[3] +GC: ++#192.1.1.mem.code.ro +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #192:0x0, type 8, 1[3] +GC: ++#190.1.1.num.int +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <99 (0x63)> +IP: #192:0x4, type 8, 5[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #190.1.2.num.int <99 (0x63)> +IP: #192:0x6, type 9, 7[3] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x1f, size 3, "foo"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #190.1.2.num.int <99 (0x63)> +IP: #192:0xa, type 0, 0 (0x0) +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #194.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x1f, size 3, "foo"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #190.1.2.num.int <99 (0x63)> +IP: #192:0xb, type 8, 12[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.hash + [1] #190.1.2.num.int <99 (0x63)> +IP: #192:0xd, type 8, 14[7] +GC: ++#195.1.1.hash +GC: --#195.1.2.hash +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <99 (0x63)> +IP: #192:0x15, type 8, 22[3] +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #190.1.2.num.int <99 (0x63)> +IP: #192:0x19, type 9, 26[3] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x32, size 3, "foo"> + [1] #0.0.nil + [2] #190.1.2.num.int <99 (0x63)> +IP: #192:0x1d, type 1, 11 (0xb) +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <11 (0xb)> + [1] #196.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x32, size 3, "foo"> + [2] #0.0.nil + [3] #190.1.2.num.int <99 (0x63)> +IP: #192:0x1f, type 8, 32[3] +GC: ++#196.1.1.mem.ref.ro +GC: ++#197.1.1.num.int +GC: --#194.1.1.mem.ref.ro +GC: --#186.1.6.mem.ro +GC: --#197.1.2.num.int +GC: --#196.1.2.mem.ref.ro +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #190.1.2.num.int <99 (0x63)> +IP: #192:0x23, type 8, 36[3] +GC: ++#197.1.1.num.int +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <11 (0xb)> + [1] #0.0.nil + [2] #190.1.2.num.int <99 (0x63)> +IP: #192:0x27, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#193.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#192.1.2.mem.code.ro +GC: --#195.1.1.hash +GC: --#196.1.1.mem.ref.ro +GC: --#197.1.2.num.int +GC: --#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <11 (0xb)> + [1] #0.0.nil + [2] #190.1.2.num.int <99 (0x63)> +IP: #186:0x48, type 8, 73[3] +GC: ++#190.1.2.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.3.num.int <99 (0x63)> + [1] #197.1.1.num.int <11 (0xb)> + [2] #0.0.nil + [3] #190.1.3.num.int <99 (0x63)> diff --git a/tests/0058_def_local/basic.log.ref b/tests/0058_def_local/basic.log.ref new file mode 100644 index 0000000..738b019 --- /dev/null +++ b/tests/0058_def_local/basic.log.ref @@ -0,0 +1,144 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <99 (0x63)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo_1"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "bar"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "bar"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <99 (0x63)> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_1"> + [1] #xxxx.1.2.num.int <99 (0x63)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <11 (0xb)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_1"> + [2] #xxxx.1.2.num.int <99 (0x63)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.5.mem.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <99 (0x63)> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> + [1] #xxxx.1.1.num.int <99 (0x63)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo_2"> + [2] #xxxx.1.1.num.int <99 (0x63)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <99 (0x63)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <11 (0xb)> + [1] #xxxx.1.1.num.int <99 (0x63)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <22 (0x16)> + [1] #xxxx.1.2.num.int <11 (0xb)> + [2] #xxxx.1.1.num.int <99 (0x63)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <22 (0x16)> + [1] #xxxx.1.2.num.int <11 (0xb)> + [2] #xxxx.1.1.num.int <99 (0x63)> +GC: ++#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <11 (0xb)> + [1] #xxxx.1.1.num.int <22 (0x16)> + [2] #xxxx.1.3.num.int <11 (0xb)> + [3] #xxxx.1.1.num.int <99 (0x63)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <11 (0xb)> + [1] #xxxx.1.1.num.int <22 (0x16)> + [2] #xxxx.1.3.num.int <11 (0xb)> + [3] #xxxx.1.1.num.int <99 (0x63)> +error 1 (invalid code), ip = #186 diff --git a/tests/0058_def_local/code.log.ref b/tests/0058_def_local/code.log.ref new file mode 100644 index 0000000..41cfc5e --- /dev/null +++ b/tests/0058_def_local/code.log.ref @@ -0,0 +1,26 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 20 entries (20 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e int 81 63 99 + 3 0x00010 word 38 64 65 66 def + 3 4 0x00014 ref 39 62 61 72 /bar + 5 0x00018 code c6 2b { + 4 6 0x0001a word 58 66 6f 6f 5f 31 foo_1 + 6 7 0x00020 ref 59 66 6f 6f 5f 31 /foo_1 + 8 0x00026 int 81 0b 11 + 9 0x00028 word 38 64 65 66 def + 7 10 0x0002c ref 59 66 6f 6f 5f 32 /foo_2 + 11 0x00032 int 81 16 22 + 12 0x00034 word 38 64 65 66 def + 9 13 0x00038 word 58 66 6f 6f 5f 31 foo_1 + 10 14 0x0003e word 58 66 6f 6f 5f 32 foo_2 + 11 15 0x00044 prim 13 } + 16 0x00045 word 38 64 65 66 def + 13 17 0x00049 word 38 62 61 72 bar + 15 18 0x0004d word 58 66 6f 6f 5f 31 foo_1 + 16 19 0x00053 word 58 66 6f 6f 5f 32 foo_2 diff --git a/tests/0058_def_local/code1.log.ref b/tests/0058_def_local/code1.log.ref new file mode 100644 index 0000000..8f4655f --- /dev/null +++ b/tests/0058_def_local/code1.log.ref @@ -0,0 +1,26 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 20 entries (20 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e int 81 63 99 + 3 0x00010 word 38 64 65 66 def + 3 4 0x00014 ref 39 62 61 72 /bar + 5 0x00018 code c6 1f { + 4 6 0x0001a word 58 66 6f 6f 5f 31 foo_1 + 6 7 0x00020 xref 84 18 /foo_1 + 8 0x00022 int 81 0b 11 + 9 0x00024 xref 84 14 def + 7 10 0x00026 ref 59 66 6f 6f 5f 32 /foo_2 + 11 0x0002c int 81 16 22 + 12 0x0002e xref 84 1e def + 9 13 0x00030 xref 84 16 foo_1 + 10 14 0x00032 word 58 66 6f 6f 5f 32 foo_2 + 11 15 0x00038 prim 13 } + 16 0x00039 xref 84 29 def + 13 17 0x0003b word 38 62 61 72 bar + 15 18 0x0003f xref 84 25 foo_1 + 16 19 0x00041 xref 84 0f foo_2 diff --git a/tests/0058_def_local/code2.log.ref b/tests/0058_def_local/code2.log.ref new file mode 100644 index 0000000..9fc9827 --- /dev/null +++ b/tests/0058_def_local/code2.log.ref @@ -0,0 +1,26 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 20 entries (20 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 59 66 6f 6f 5f 31 /foo_1 + 2 0x0000e int 81 63 99 + 3 0x00010 prim 63 def + 3 4 0x00011 ref 39 62 61 72 /bar + 5 0x00015 code c6 1d { + 4 6 0x00017 word 58 66 6f 6f 5f 31 foo_1 + 6 7 0x0001d xref 84 15 /foo_1 + 8 0x0001f int 81 0b 11 + 9 0x00021 prim 63 def + 7 10 0x00022 ref 59 66 6f 6f 5f 32 /foo_2 + 11 0x00028 int 81 16 22 + 12 0x0002a prim 63 def + 9 13 0x0002b xref 84 14 foo_1 + 10 14 0x0002d word 58 66 6f 6f 5f 32 foo_2 + 11 15 0x00033 prim 13 } + 16 0x00034 prim 63 def + 13 17 0x00035 word 38 62 61 72 bar + 15 18 0x00039 xref 84 22 foo_1 + 16 19 0x0003b xref 84 0e foo_2 diff --git a/tests/0058_def_local/main.gs b/tests/0058_def_local/main.gs new file mode 100644 index 0000000..00fb76d --- /dev/null +++ b/tests/0058_def_local/main.gs @@ -0,0 +1,16 @@ +/foo_1 99 def + +/bar { + foo_1 + + /foo_1 11 def + /foo_2 22 def + + foo_1 + foo_2 +} def + +bar + +foo_1 +foo_2 \ No newline at end of file diff --git a/tests/0058_def_local/mem.log.ref b/tests/0058_def_local/mem.log.ref new file mode 100644 index 0000000..dd4bf50 --- /dev/null +++ b/tests/0058_def_local/mem.log.ref @@ -0,0 +1,774 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 92] + 8: 187.01, 0x001d6ad0[ 72] + 9: 188.01, 0x001d6b20[ 56] + 10: 0.00, 0x001d6b60[ 56] + 11: 196.01, 0x001d6ba0[ 72] + 12: 0.00, 0x001d6bf0[14849040] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x15, size 3, "bar"> => #192.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x1a, size 43> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #194.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x21, size 5, "foo_1"> => #195.1.3.num.int <11 (0xb)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.4.mem.ro + 75 51 12 a9 42 7a ad 60 59 66 6f 6f 5f 31 81 63 uQ..Bz.`Yfoo_1.c + 38 64 65 66 39 62 61 72 c6 2b 58 66 6f 6f 5f 31 8def9bar.+Xfoo_1 + 59 66 6f 6f 5f 31 81 0b 38 64 65 66 59 66 6f 6f Yfoo_1..8defYfoo + 5f 32 81 16 38 64 65 66 58 66 6f 6f 5f 31 58 66 _2..8defXfoo_1Xf + 6f 6f 5f 32 13 38 64 65 66 38 62 61 72 58 66 6f oo_2.8def8barXfo + 6f 5f 31 58 66 6f 6f 5f 32 o_1Xfoo_2 + #187.1.1.array + [ 0] #190.1.1.num.int <99 (0x63)> + [ 1] #195.1.3.num.int <11 (0xb)> + [ 2] #198.1.1.num.int <22 (0x16)> + [ 3] #195.1.3.num.int <11 (0xb)> + #188.1.1.ctx.func + type 17, ip 0x59 (0x53) + code #186.1.4.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #190.1.1.num.int <99 (0x63)> + #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x15, size 3, "bar"> + 62 61 72 bar + #192.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x1a, size 43> + 58 66 6f 6f 5f 31 59 66 6f 6f 5f 31 81 0b 38 64 Xfoo_1Yfoo_1..8d + 65 66 59 66 6f 6f 5f 32 81 16 38 64 65 66 58 66 efYfoo_2..8defXf + 6f 6f 5f 31 58 66 6f 6f 5f 32 13 oo_1Xfoo_2. + #194.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x21, size 5, "foo_1"> + 66 6f 6f 5f 31 foo_1 + #195.1.3.num.int <11 (0xb)> + #196.1.1.array + #198.1.1.num.int <22 (0x16)> diff --git a/tests/0058_def_local/screen.log.ref b/tests/0058_def_local/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0058_def_local/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0058_def_local/trace.log.ref b/tests/0058_def_local/trace.log.ref new file mode 100644 index 0000000..e8420ff --- /dev/null +++ b/tests/0058_def_local/trace.log.ref @@ -0,0 +1,164 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0xe, type 1, 99 (0x63) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <99 (0x63)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "foo_1"> +IP: #186:0x10, type 8, 17[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.num.int +GC: --#190.1.2.num.int +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x14, type 9, 21[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x15, size 3, "bar"> +IP: #186:0x18, type 6, 26[43] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x1a, size 43> + [1] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x15, size 3, "bar"> +IP: #186:0x45, type 8, 70[3] +GC: ++#191.1.1.mem.ref.ro +GC: ++#192.1.1.mem.code.ro +GC: --#192.1.2.mem.code.ro +GC: --#191.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x49, type 8, 74[3] +GC: ++#192.1.1.mem.code.ro +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #192:0x0, type 8, 1[5] +GC: ++#190.1.1.num.int +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <99 (0x63)> +IP: #192:0x6, type 9, 7[5] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x21, size 5, "foo_1"> + [1] #190.1.2.num.int <99 (0x63)> +IP: #192:0xc, type 1, 11 (0xb) +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <11 (0xb)> + [1] #194.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x21, size 5, "foo_1"> + [2] #190.1.2.num.int <99 (0x63)> +IP: #192:0xe, type 8, 15[3] +GC: ++#194.1.1.mem.ref.ro +GC: ++#195.1.1.num.int +GC: --#189.1.1.mem.ref.ro +GC: --#186.1.5.mem.ro +GC: --#190.1.2.num.int +GC: --#195.1.2.num.int +GC: --#194.1.2.mem.ref.ro +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <99 (0x63)> +IP: #192:0x12, type 9, 19[5] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x2d, size 5, "foo_2"> + [1] #190.1.1.num.int <99 (0x63)> +IP: #192:0x18, type 1, 22 (0x16) +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <22 (0x16)> + [1] #197.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x2d, size 5, "foo_2"> + [2] #190.1.1.num.int <99 (0x63)> +IP: #192:0x1a, type 8, 27[3] +GC: ++#197.1.1.mem.ref.ro +GC: ++#198.1.1.num.int +GC: --#198.1.2.num.int +GC: --#197.1.2.mem.ref.ro +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <99 (0x63)> +IP: #192:0x1e, type 8, 31[5] +GC: ++#195.1.1.num.int +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <11 (0xb)> + [1] #190.1.1.num.int <99 (0x63)> +IP: #192:0x24, type 8, 37[5] +GC: ++#198.1.1.num.int +== backtrace == + [0] #193.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.2.num.int <22 (0x16)> + [1] #195.1.2.num.int <11 (0xb)> + [2] #190.1.1.num.int <99 (0x63)> +IP: #192:0x2a, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#193.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#192.1.2.mem.code.ro +GC: --#199.1.1.hash +GC: --#197.1.1.mem.ref.ro +GC: --#198.1.2.num.int +GC: --#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <22 (0x16)> + [1] #195.1.2.num.int <11 (0xb)> + [2] #190.1.1.num.int <99 (0x63)> +IP: #186:0x4d, type 8, 78[5] +GC: ++#195.1.2.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.3.num.int <11 (0xb)> + [1] #198.1.1.num.int <22 (0x16)> + [2] #195.1.3.num.int <11 (0xb)> + [3] #190.1.1.num.int <99 (0x63)> +IP: #186:0x53, type 8, 84[5] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.3.num.int <11 (0xb)> + [1] #198.1.1.num.int <22 (0x16)> + [2] #195.1.3.num.int <11 (0xb)> + [3] #190.1.1.num.int <99 (0x63)> +error 1 (invalid code), ip = #186:0x53 diff --git a/tests/0059_lineto/basic.log.ref b/tests/0059_lineto/basic.log.ref new file mode 100644 index 0000000..a44ec04 --- /dev/null +++ b/tests/0059_lineto/basic.log.ref @@ -0,0 +1,4197 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <50 (0x32)> + [1] #xxxx.1.2.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <50 (0x32)> + [2] #xxxx.1.2.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <50 (0x32)> + [3] #xxxx.1.2.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <400 (0x190)> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.num.int <50 (0x32)> + [4] #xxxx.1.2.gstate +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <16777215 (0xffffff)> +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "r"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "r"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <3 (0x3)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <400 (0x190)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <60 (0x3c)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <60 (0x3c)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <60 (0x3c)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <60 (0x3c)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <60 (0x3c)> + [5] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <60 (0x3c)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <260 (0x104)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <260 (0x104)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <3 (0x3)> + [2] #xxxx.1.1.num.int <260 (0x104)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <260 (0x104)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <260 (0x104)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <260 (0x104)> + [1] #xxxx.1.1.num.int <400 (0x190)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <100 (0x64)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <100 (0x64)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <100 (0x64)> + [5] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <100 (0x64)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <300 (0x12c)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <3 (0x3)> + [2] #xxxx.1.1.num.int <300 (0x12c)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <300 (0x12c)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <300 (0x12c)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.1.num.int <400 (0x190)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <160 (0xa0)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <160 (0xa0)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <160 (0xa0)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <160 (0xa0)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <160 (0xa0)> + [5] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <160 (0xa0)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <360 (0x168)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.1.num.int <360 (0x168)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <3 (0x3)> + [2] #xxxx.1.1.num.int <360 (0x168)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <360 (0x168)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <360 (0x168)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <360 (0x168)> + [1] #xxxx.1.1.num.int <400 (0x190)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <4 (0x4)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <4 (0x4)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> + [5] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <3 (0x3)> + [1] #xxxx.2.1.num.int <400 (0x190)> + [2] #xxxx.1.1.num.int <200 (0xc8)> + [3] #xxxx.1.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <1 (0x1)> + [1] #xxxx.2.1.num.int <3 (0x3)> + [2] #xxxx.2.1.num.int <400 (0x190)> + [3] #xxxx.1.1.num.int <200 (0xc8)> + [4] #xxxx.1.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <200 (0xc8)> + [1] #xxxx.1.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <400 (0x190)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.2.1.num.int <400 (0x190)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.2.1.num.int <400 (0x190)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <160 (0xa0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <160 (0xa0)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <160 (0xa0)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <160 (0xa0)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <4 (0x4)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <200 (0xc8)> + [4] #xxxx.2.1.num.int <160 (0xa0)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <1 (0x1)> + [1] #xxxx.2.1.num.int <4 (0x4)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <200 (0xc8)> + [4] #xxxx.2.1.num.int <200 (0xc8)> + [5] #xxxx.2.1.num.int <160 (0xa0)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <160 (0xa0)> + [3] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.2.1.num.int <160 (0xa0)> + [2] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <3 (0x3)> + [1] #xxxx.2.1.num.int <400 (0x190)> + [2] #xxxx.2.1.num.int <160 (0xa0)> + [3] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <1 (0x1)> + [1] #xxxx.2.1.num.int <3 (0x3)> + [2] #xxxx.2.1.num.int <400 (0x190)> + [3] #xxxx.2.1.num.int <160 (0xa0)> + [4] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <160 (0xa0)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <400 (0x190)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <360 (0x168)> + [1] #xxxx.2.1.num.int <400 (0x190)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.2.1.num.int <360 (0x168)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.2.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <100 (0x64)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <4 (0x4)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <200 (0xc8)> + [4] #xxxx.2.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <1 (0x1)> + [1] #xxxx.2.1.num.int <4 (0x4)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <200 (0xc8)> + [4] #xxxx.2.1.num.int <200 (0xc8)> + [5] #xxxx.2.1.num.int <100 (0x64)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <100 (0x64)> + [3] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.2.1.num.int <100 (0x64)> + [2] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <3 (0x3)> + [1] #xxxx.2.1.num.int <400 (0x190)> + [2] #xxxx.2.1.num.int <100 (0x64)> + [3] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <1 (0x1)> + [1] #xxxx.2.1.num.int <3 (0x3)> + [2] #xxxx.2.1.num.int <400 (0x190)> + [3] #xxxx.2.1.num.int <100 (0x64)> + [4] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <100 (0x64)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <400 (0x190)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <300 (0x12c)> + [1] #xxxx.2.1.num.int <400 (0x190)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.2.1.num.int <300 (0x12c)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.2.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <60 (0x3c)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <60 (0x3c)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <60 (0x3c)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <60 (0x3c)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <4 (0x4)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <200 (0xc8)> + [4] #xxxx.2.1.num.int <60 (0x3c)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <1 (0x1)> + [1] #xxxx.2.1.num.int <4 (0x4)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <200 (0xc8)> + [4] #xxxx.2.1.num.int <200 (0xc8)> + [5] #xxxx.2.1.num.int <60 (0x3c)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <60 (0x3c)> + [3] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.2.1.num.int <60 (0x3c)> + [2] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <3 (0x3)> + [1] #xxxx.2.1.num.int <400 (0x190)> + [2] #xxxx.2.1.num.int <60 (0x3c)> + [3] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <1 (0x1)> + [1] #xxxx.2.1.num.int <3 (0x3)> + [2] #xxxx.2.1.num.int <400 (0x190)> + [3] #xxxx.2.1.num.int <60 (0x3c)> + [4] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <60 (0x3c)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <400 (0x190)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <260 (0x104)> + [1] #xxxx.2.1.num.int <400 (0x190)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.2.1.num.int <260 (0x104)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.2.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <4 (0x4)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <200 (0xc8)> + [4] #xxxx.2.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <1 (0x1)> + [1] #xxxx.2.1.num.int <4 (0x4)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <200 (0xc8)> + [4] #xxxx.2.1.num.int <200 (0xc8)> + [5] #xxxx.2.1.num.int <0 (0x0)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <0 (0x0)> + [3] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.2.1.num.int <0 (0x0)> + [2] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <3 (0x3)> + [1] #xxxx.2.1.num.int <400 (0x190)> + [2] #xxxx.2.1.num.int <0 (0x0)> + [3] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <1 (0x1)> + [1] #xxxx.2.1.num.int <3 (0x3)> + [2] #xxxx.2.1.num.int <400 (0x190)> + [3] #xxxx.2.1.num.int <0 (0x0)> + [4] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <0 (0x0)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <400 (0x190)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <400 (0x190)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.2.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-60 (0xffffffffffffffc4)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <-60 (0xffffffffffffffc4)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <-60 (0xffffffffffffffc4)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <-60 (0xffffffffffffffc4)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <4 (0x4)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <200 (0xc8)> + [4] #xxxx.2.1.num.int <-60 (0xffffffffffffffc4)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <1 (0x1)> + [1] #xxxx.2.1.num.int <4 (0x4)> + [2] #xxxx.2.1.num.int <200 (0xc8)> + [3] #xxxx.2.1.num.int <200 (0xc8)> + [4] #xxxx.2.1.num.int <200 (0xc8)> + [5] #xxxx.2.1.num.int <-60 (0xffffffffffffffc4)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <200 (0xc8)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <-60 (0xffffffffffffffc4)> + [3] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.2.1.num.int <-60 (0xffffffffffffffc4)> + [2] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <3 (0x3)> + [1] #xxxx.2.1.num.int <400 (0x190)> + [2] #xxxx.2.1.num.int <-60 (0xffffffffffffffc4)> + [3] #xxxx.2.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <1 (0x1)> + [1] #xxxx.3.1.num.int <3 (0x3)> + [2] #xxxx.2.1.num.int <400 (0x190)> + [3] #xxxx.2.1.num.int <-60 (0xffffffffffffffc4)> + [4] #xxxx.2.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <-60 (0xffffffffffffffc4)> + [1] #xxxx.2.1.num.int <200 (0xc8)> + [2] #xxxx.2.1.num.int <400 (0x190)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.2.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <140 (0x8c)> + [1] #xxxx.2.1.num.int <400 (0x190)> +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.2.1.num.int <400 (0x190)> + [1] #xxxx.3.1.num.int <140 (0x8c)> +GC: --#xxxx.2.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.2.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.2.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <-100 (0xffffffffffffff9c)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <-100 (0xffffffffffffff9c)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <-100 (0xffffffffffffff9c)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <-100 (0xffffffffffffff9c)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <4 (0x4)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <200 (0xc8)> + [4] #xxxx.3.1.num.int <-100 (0xffffffffffffff9c)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <1 (0x1)> + [1] #xxxx.3.1.num.int <4 (0x4)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <200 (0xc8)> + [4] #xxxx.3.1.num.int <200 (0xc8)> + [5] #xxxx.3.1.num.int <-100 (0xffffffffffffff9c)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <-100 (0xffffffffffffff9c)> + [3] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <400 (0x190)> + [1] #xxxx.3.1.num.int <-100 (0xffffffffffffff9c)> + [2] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <3 (0x3)> + [1] #xxxx.3.1.num.int <400 (0x190)> + [2] #xxxx.3.1.num.int <-100 (0xffffffffffffff9c)> + [3] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <1 (0x1)> + [1] #xxxx.3.1.num.int <3 (0x3)> + [2] #xxxx.3.1.num.int <400 (0x190)> + [3] #xxxx.3.1.num.int <-100 (0xffffffffffffff9c)> + [4] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <-100 (0xffffffffffffff9c)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <400 (0x190)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <100 (0x64)> + [1] #xxxx.3.1.num.int <400 (0x190)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <400 (0x190)> + [1] #xxxx.3.1.num.int <100 (0x64)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.3.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <-160 (0xffffffffffffff60)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <-160 (0xffffffffffffff60)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <-160 (0xffffffffffffff60)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <-160 (0xffffffffffffff60)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <4 (0x4)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <200 (0xc8)> + [4] #xxxx.3.1.num.int <-160 (0xffffffffffffff60)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <1 (0x1)> + [1] #xxxx.3.1.num.int <4 (0x4)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <200 (0xc8)> + [4] #xxxx.3.1.num.int <200 (0xc8)> + [5] #xxxx.3.1.num.int <-160 (0xffffffffffffff60)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <-160 (0xffffffffffffff60)> + [3] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <400 (0x190)> + [1] #xxxx.3.1.num.int <-160 (0xffffffffffffff60)> + [2] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <3 (0x3)> + [1] #xxxx.3.1.num.int <400 (0x190)> + [2] #xxxx.3.1.num.int <-160 (0xffffffffffffff60)> + [3] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <1 (0x1)> + [1] #xxxx.3.1.num.int <3 (0x3)> + [2] #xxxx.3.1.num.int <400 (0x190)> + [3] #xxxx.3.1.num.int <-160 (0xffffffffffffff60)> + [4] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <-160 (0xffffffffffffff60)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <400 (0x190)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <40 (0x28)> + [1] #xxxx.3.1.num.int <400 (0x190)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <400 (0x190)> + [1] #xxxx.3.1.num.int <40 (0x28)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.3.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <4 (0x4)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <200 (0xc8)> + [4] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <1 (0x1)> + [1] #xxxx.3.1.num.int <4 (0x4)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <200 (0xc8)> + [4] #xxxx.3.1.num.int <200 (0xc8)> + [5] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <400 (0x190)> + [1] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <3 (0x3)> + [1] #xxxx.3.1.num.int <400 (0x190)> + [2] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <1 (0x1)> + [1] #xxxx.3.1.num.int <3 (0x3)> + [2] #xxxx.3.1.num.int <400 (0x190)> + [3] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <400 (0x190)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <0 (0x0)> + [1] #xxxx.3.1.num.int <400 (0x190)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <400 (0x190)> + [1] #xxxx.3.1.num.int <0 (0x0)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.3.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <160 (0xa0)> + [1] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <160 (0xa0)> + [1] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <160 (0xa0)> + [3] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <4 (0x4)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <160 (0xa0)> + [4] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <1 (0x1)> + [1] #xxxx.3.1.num.int <4 (0x4)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <200 (0xc8)> + [4] #xxxx.3.1.num.int <160 (0xa0)> + [5] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <160 (0xa0)> + [2] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <360 (0x168)> + [1] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <3 (0x3)> + [1] #xxxx.3.1.num.int <360 (0x168)> + [2] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <1 (0x1)> + [1] #xxxx.3.1.num.int <3 (0x3)> + [2] #xxxx.3.1.num.int <360 (0x168)> + [3] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <360 (0x168)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <0 (0x0)> + [1] #xxxx.3.1.num.int <360 (0x168)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <360 (0x168)> + [1] #xxxx.3.1.num.int <0 (0x0)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.3.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <100 (0x64)> + [1] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <100 (0x64)> + [1] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <100 (0x64)> + [3] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <4 (0x4)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <100 (0x64)> + [4] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <1 (0x1)> + [1] #xxxx.3.1.num.int <4 (0x4)> + [2] #xxxx.3.1.num.int <200 (0xc8)> + [3] #xxxx.3.1.num.int <200 (0xc8)> + [4] #xxxx.3.1.num.int <100 (0x64)> + [5] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <200 (0xc8)> + [1] #xxxx.3.1.num.int <100 (0x64)> + [2] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <300 (0x12c)> + [1] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <3 (0x3)> + [1] #xxxx.3.1.num.int <300 (0x12c)> + [2] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.3.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <1 (0x1)> + [1] #xxxx.3.1.num.int <3 (0x3)> + [2] #xxxx.3.1.num.int <300 (0x12c)> + [3] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.3.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.3.1.num.int <200 (0xc8)> + [2] #xxxx.3.1.num.int <300 (0x12c)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.3.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <0 (0x0)> + [1] #xxxx.3.1.num.int <300 (0x12c)> +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.3.1.num.int <300 (0x12c)> + [1] #xxxx.4.1.num.int <0 (0x0)> +GC: --#xxxx.3.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.3.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.3.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <60 (0x3c)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <60 (0x3c)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <60 (0x3c)> + [3] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <4 (0x4)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <200 (0xc8)> + [3] #xxxx.4.1.num.int <60 (0x3c)> + [4] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <1 (0x1)> + [1] #xxxx.4.1.num.int <4 (0x4)> + [2] #xxxx.4.1.num.int <200 (0xc8)> + [3] #xxxx.4.1.num.int <200 (0xc8)> + [4] #xxxx.4.1.num.int <60 (0x3c)> + [5] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <60 (0x3c)> + [2] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <260 (0x104)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <3 (0x3)> + [1] #xxxx.4.1.num.int <260 (0x104)> + [2] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <1 (0x1)> + [1] #xxxx.4.1.num.int <3 (0x3)> + [2] #xxxx.4.1.num.int <260 (0x104)> + [3] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <260 (0x104)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <0 (0x0)> + [1] #xxxx.4.1.num.int <260 (0x104)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <260 (0x104)> + [1] #xxxx.4.1.num.int <0 (0x0)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.4.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <0 (0x0)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <0 (0x0)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <0 (0x0)> + [3] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <4 (0x4)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <200 (0xc8)> + [3] #xxxx.4.1.num.int <0 (0x0)> + [4] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <1 (0x1)> + [1] #xxxx.4.1.num.int <4 (0x4)> + [2] #xxxx.4.1.num.int <200 (0xc8)> + [3] #xxxx.4.1.num.int <200 (0xc8)> + [4] #xxxx.4.1.num.int <0 (0x0)> + [5] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <0 (0x0)> + [2] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <3 (0x3)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <1 (0x1)> + [1] #xxxx.4.1.num.int <3 (0x3)> + [2] #xxxx.4.1.num.int <200 (0xc8)> + [3] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <0 (0x0)> + [1] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <0 (0x0)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.4.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-60 (0xffffffffffffffc4)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-60 (0xffffffffffffffc4)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <-60 (0xffffffffffffffc4)> + [3] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <4 (0x4)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <200 (0xc8)> + [3] #xxxx.4.1.num.int <-60 (0xffffffffffffffc4)> + [4] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <1 (0x1)> + [1] #xxxx.4.1.num.int <4 (0x4)> + [2] #xxxx.4.1.num.int <200 (0xc8)> + [3] #xxxx.4.1.num.int <200 (0xc8)> + [4] #xxxx.4.1.num.int <-60 (0xffffffffffffffc4)> + [5] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <-60 (0xffffffffffffffc4)> + [2] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <140 (0x8c)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <3 (0x3)> + [1] #xxxx.4.1.num.int <140 (0x8c)> + [2] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <1 (0x1)> + [1] #xxxx.4.1.num.int <3 (0x3)> + [2] #xxxx.4.1.num.int <140 (0x8c)> + [3] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <140 (0x8c)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <0 (0x0)> + [1] #xxxx.4.1.num.int <140 (0x8c)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <140 (0x8c)> + [1] #xxxx.4.1.num.int <0 (0x0)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.4.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-100 (0xffffffffffffff9c)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-100 (0xffffffffffffff9c)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <-100 (0xffffffffffffff9c)> + [3] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <4 (0x4)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <200 (0xc8)> + [3] #xxxx.4.1.num.int <-100 (0xffffffffffffff9c)> + [4] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <1 (0x1)> + [1] #xxxx.4.1.num.int <4 (0x4)> + [2] #xxxx.4.1.num.int <200 (0xc8)> + [3] #xxxx.4.1.num.int <200 (0xc8)> + [4] #xxxx.4.1.num.int <-100 (0xffffffffffffff9c)> + [5] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <-100 (0xffffffffffffff9c)> + [2] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <100 (0x64)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <3 (0x3)> + [1] #xxxx.4.1.num.int <100 (0x64)> + [2] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <1 (0x1)> + [1] #xxxx.4.1.num.int <3 (0x3)> + [2] #xxxx.4.1.num.int <100 (0x64)> + [3] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <100 (0x64)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <0 (0x0)> + [1] #xxxx.4.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <100 (0x64)> + [1] #xxxx.4.1.num.int <0 (0x0)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.4.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-160 (0xffffffffffffff60)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-160 (0xffffffffffffff60)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <-160 (0xffffffffffffff60)> + [3] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <4 (0x4)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <200 (0xc8)> + [3] #xxxx.4.1.num.int <-160 (0xffffffffffffff60)> + [4] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <1 (0x1)> + [1] #xxxx.4.1.num.int <4 (0x4)> + [2] #xxxx.4.1.num.int <200 (0xc8)> + [3] #xxxx.4.1.num.int <200 (0xc8)> + [4] #xxxx.4.1.num.int <-160 (0xffffffffffffff60)> + [5] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <200 (0xc8)> + [1] #xxxx.4.1.num.int <-160 (0xffffffffffffff60)> + [2] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <40 (0x28)> + [1] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <3 (0x3)> + [1] #xxxx.4.1.num.int <40 (0x28)> + [2] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.4.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <1 (0x1)> + [1] #xxxx.4.1.num.int <3 (0x3)> + [2] #xxxx.4.1.num.int <40 (0x28)> + [3] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.4.1.num.int <200 (0xc8)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.4.1.num.int <200 (0xc8)> + [2] #xxxx.4.1.num.int <40 (0x28)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.4.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.4.1.num.int <40 (0x28)> +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.4.1.num.int <40 (0x28)> + [1] #xxxx.5.1.num.int <0 (0x0)> +GC: --#xxxx.4.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.4.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.4.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <4 (0x4)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <200 (0xc8)> + [3] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <1 (0x1)> + [1] #xxxx.5.1.num.int <4 (0x4)> + [2] #xxxx.5.1.num.int <200 (0xc8)> + [3] #xxxx.5.1.num.int <200 (0xc8)> + [4] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [5] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <3 (0x3)> + [1] #xxxx.5.1.num.int <0 (0x0)> + [2] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <1 (0x1)> + [1] #xxxx.5.1.num.int <3 (0x3)> + [2] #xxxx.5.1.num.int <0 (0x0)> + [3] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <0 (0x0)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <0 (0x0)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.5.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-160 (0xffffffffffffff60)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.5.1.num.int <-160 (0xffffffffffffff60)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.5.1.num.int <-160 (0xffffffffffffff60)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.5.1.num.int <-160 (0xffffffffffffff60)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <4 (0x4)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <200 (0xc8)> + [3] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.5.1.num.int <-160 (0xffffffffffffff60)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <1 (0x1)> + [1] #xxxx.5.1.num.int <4 (0x4)> + [2] #xxxx.5.1.num.int <200 (0xc8)> + [3] #xxxx.5.1.num.int <200 (0xc8)> + [4] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [5] #xxxx.5.1.num.int <-160 (0xffffffffffffff60)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.5.1.num.int <-160 (0xffffffffffffff60)> + [3] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <-160 (0xffffffffffffff60)> + [2] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <3 (0x3)> + [1] #xxxx.5.1.num.int <0 (0x0)> + [2] #xxxx.5.1.num.int <-160 (0xffffffffffffff60)> + [3] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <1 (0x1)> + [1] #xxxx.5.1.num.int <3 (0x3)> + [2] #xxxx.5.1.num.int <0 (0x0)> + [3] #xxxx.5.1.num.int <-160 (0xffffffffffffff60)> + [4] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-160 (0xffffffffffffff60)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <0 (0x0)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <40 (0x28)> + [1] #xxxx.5.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <40 (0x28)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.5.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-100 (0xffffffffffffff9c)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.5.1.num.int <-100 (0xffffffffffffff9c)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.5.1.num.int <-100 (0xffffffffffffff9c)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.5.1.num.int <-100 (0xffffffffffffff9c)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <4 (0x4)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <200 (0xc8)> + [3] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.5.1.num.int <-100 (0xffffffffffffff9c)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <1 (0x1)> + [1] #xxxx.5.1.num.int <4 (0x4)> + [2] #xxxx.5.1.num.int <200 (0xc8)> + [3] #xxxx.5.1.num.int <200 (0xc8)> + [4] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [5] #xxxx.5.1.num.int <-100 (0xffffffffffffff9c)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.5.1.num.int <-100 (0xffffffffffffff9c)> + [3] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <-100 (0xffffffffffffff9c)> + [2] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <3 (0x3)> + [1] #xxxx.5.1.num.int <0 (0x0)> + [2] #xxxx.5.1.num.int <-100 (0xffffffffffffff9c)> + [3] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <1 (0x1)> + [1] #xxxx.5.1.num.int <3 (0x3)> + [2] #xxxx.5.1.num.int <0 (0x0)> + [3] #xxxx.5.1.num.int <-100 (0xffffffffffffff9c)> + [4] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-100 (0xffffffffffffff9c)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <0 (0x0)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <100 (0x64)> + [1] #xxxx.5.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <100 (0x64)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.5.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-60 (0xffffffffffffffc4)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.5.1.num.int <-60 (0xffffffffffffffc4)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.5.1.num.int <-60 (0xffffffffffffffc4)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.5.1.num.int <-60 (0xffffffffffffffc4)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <4 (0x4)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <200 (0xc8)> + [3] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.5.1.num.int <-60 (0xffffffffffffffc4)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <1 (0x1)> + [1] #xxxx.5.1.num.int <4 (0x4)> + [2] #xxxx.5.1.num.int <200 (0xc8)> + [3] #xxxx.5.1.num.int <200 (0xc8)> + [4] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [5] #xxxx.5.1.num.int <-60 (0xffffffffffffffc4)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.5.1.num.int <-60 (0xffffffffffffffc4)> + [3] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <-60 (0xffffffffffffffc4)> + [2] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <3 (0x3)> + [1] #xxxx.5.1.num.int <0 (0x0)> + [2] #xxxx.5.1.num.int <-60 (0xffffffffffffffc4)> + [3] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <1 (0x1)> + [1] #xxxx.5.1.num.int <3 (0x3)> + [2] #xxxx.5.1.num.int <0 (0x0)> + [3] #xxxx.5.1.num.int <-60 (0xffffffffffffffc4)> + [4] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-60 (0xffffffffffffffc4)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <0 (0x0)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <140 (0x8c)> + [1] #xxxx.5.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <140 (0x8c)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.5.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.5.1.num.int <0 (0x0)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.5.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.5.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <4 (0x4)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <200 (0xc8)> + [3] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.5.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <1 (0x1)> + [1] #xxxx.5.1.num.int <4 (0x4)> + [2] #xxxx.5.1.num.int <200 (0xc8)> + [3] #xxxx.5.1.num.int <200 (0xc8)> + [4] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [5] #xxxx.5.1.num.int <0 (0x0)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.5.1.num.int <0 (0x0)> + [3] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <0 (0x0)> + [2] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <3 (0x3)> + [1] #xxxx.5.1.num.int <0 (0x0)> + [2] #xxxx.5.1.num.int <0 (0x0)> + [3] #xxxx.5.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <1 (0x1)> + [1] #xxxx.5.1.num.int <3 (0x3)> + [2] #xxxx.5.1.num.int <0 (0x0)> + [3] #xxxx.5.1.num.int <0 (0x0)> + [4] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <200 (0xc8)> + [2] #xxxx.5.1.num.int <0 (0x0)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <200 (0xc8)> + [1] #xxxx.5.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.5.1.num.int <0 (0x0)> + [1] #xxxx.5.1.num.int <200 (0xc8)> +GC: --#xxxx.5.1.num.int +GC: --#xxxx.5.1.num.int +== backtrace == + [0] #xxxx.5.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.5.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <60 (0x3c)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.6.1.num.int <60 (0x3c)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.6.1.num.int <60 (0x3c)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.6.1.num.int <60 (0x3c)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <4 (0x4)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.6.1.num.int <60 (0x3c)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <1 (0x1)> + [1] #xxxx.6.1.num.int <4 (0x4)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <200 (0xc8)> + [4] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [5] #xxxx.6.1.num.int <60 (0x3c)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.6.1.num.int <60 (0x3c)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <0 (0x0)> + [1] #xxxx.6.1.num.int <60 (0x3c)> + [2] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <3 (0x3)> + [1] #xxxx.6.1.num.int <0 (0x0)> + [2] #xxxx.6.1.num.int <60 (0x3c)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <1 (0x1)> + [1] #xxxx.6.1.num.int <3 (0x3)> + [2] #xxxx.6.1.num.int <0 (0x0)> + [3] #xxxx.6.1.num.int <60 (0x3c)> + [4] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <60 (0x3c)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <0 (0x0)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <260 (0x104)> + [1] #xxxx.6.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <0 (0x0)> + [1] #xxxx.6.1.num.int <260 (0x104)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.6.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.6.1.num.int <100 (0x64)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.6.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.6.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <4 (0x4)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.6.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <1 (0x1)> + [1] #xxxx.6.1.num.int <4 (0x4)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <200 (0xc8)> + [4] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [5] #xxxx.6.1.num.int <100 (0x64)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.6.1.num.int <100 (0x64)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <0 (0x0)> + [1] #xxxx.6.1.num.int <100 (0x64)> + [2] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <3 (0x3)> + [1] #xxxx.6.1.num.int <0 (0x0)> + [2] #xxxx.6.1.num.int <100 (0x64)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <1 (0x1)> + [1] #xxxx.6.1.num.int <3 (0x3)> + [2] #xxxx.6.1.num.int <0 (0x0)> + [3] #xxxx.6.1.num.int <100 (0x64)> + [4] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <100 (0x64)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <0 (0x0)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <300 (0x12c)> + [1] #xxxx.6.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <0 (0x0)> + [1] #xxxx.6.1.num.int <300 (0x12c)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.6.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <160 (0xa0)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.6.1.num.int <160 (0xa0)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.6.1.num.int <160 (0xa0)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.6.1.num.int <160 (0xa0)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <4 (0x4)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.6.1.num.int <160 (0xa0)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <1 (0x1)> + [1] #xxxx.6.1.num.int <4 (0x4)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <200 (0xc8)> + [4] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [5] #xxxx.6.1.num.int <160 (0xa0)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.6.1.num.int <160 (0xa0)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <0 (0x0)> + [1] #xxxx.6.1.num.int <160 (0xa0)> + [2] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <3 (0x3)> + [1] #xxxx.6.1.num.int <0 (0x0)> + [2] #xxxx.6.1.num.int <160 (0xa0)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <1 (0x1)> + [1] #xxxx.6.1.num.int <3 (0x3)> + [2] #xxxx.6.1.num.int <0 (0x0)> + [3] #xxxx.6.1.num.int <160 (0xa0)> + [4] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <160 (0xa0)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <0 (0x0)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <360 (0x168)> + [1] #xxxx.6.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <0 (0x0)> + [1] #xxxx.6.1.num.int <360 (0x168)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.6.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.6.1.num.int <200 (0xc8)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <4 (0x4)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [4] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <1 (0x1)> + [1] #xxxx.6.1.num.int <4 (0x4)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <200 (0xc8)> + [4] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [5] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <-200 (0xffffffffffffff38)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <0 (0x0)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <3 (0x3)> + [1] #xxxx.6.1.num.int <0 (0x0)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <1 (0x1)> + [1] #xxxx.6.1.num.int <3 (0x3)> + [2] #xxxx.6.1.num.int <0 (0x0)> + [3] #xxxx.6.1.num.int <200 (0xc8)> + [4] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <0 (0x0)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <400 (0x190)> + [1] #xxxx.6.1.num.int <0 (0x0)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <0 (0x0)> + [1] #xxxx.6.1.num.int <400 (0x190)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.6.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <-160 (0xffffffffffffff60)> + [1] #xxxx.6.1.num.int <200 (0xc8)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <-160 (0xffffffffffffff60)> + [1] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <-160 (0xffffffffffffff60)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <4 (0x4)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <-160 (0xffffffffffffff60)> + [4] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <1 (0x1)> + [1] #xxxx.6.1.num.int <4 (0x4)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <200 (0xc8)> + [4] #xxxx.6.1.num.int <-160 (0xffffffffffffff60)> + [5] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <-160 (0xffffffffffffff60)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <40 (0x28)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <3 (0x3)> + [1] #xxxx.6.1.num.int <40 (0x28)> + [2] #xxxx.6.1.num.int <200 (0xc8)> + [3] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <1 (0x1)> + [1] #xxxx.6.1.num.int <3 (0x3)> + [2] #xxxx.6.1.num.int <40 (0x28)> + [3] #xxxx.6.1.num.int <200 (0xc8)> + [4] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> + [2] #xxxx.6.1.num.int <40 (0x28)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <400 (0x190)> + [1] #xxxx.6.1.num.int <40 (0x28)> +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <40 (0x28)> + [1] #xxxx.6.1.num.int <400 (0x190)> +GC: --#xxxx.6.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.6.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.6.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.6.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <200 (0xc8)> + [1] #xxxx.6.1.num.int <200 (0xc8)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.6.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <-100 (0xffffffffffffff9c)> + [1] #xxxx.7.1.num.int <200 (0xc8)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <-100 (0xffffffffffffff9c)> + [1] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <200 (0xc8)> + [1] #xxxx.7.1.num.int <200 (0xc8)> + [2] #xxxx.7.1.num.int <-100 (0xffffffffffffff9c)> + [3] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <4 (0x4)> + [1] #xxxx.7.1.num.int <200 (0xc8)> + [2] #xxxx.7.1.num.int <200 (0xc8)> + [3] #xxxx.7.1.num.int <-100 (0xffffffffffffff9c)> + [4] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <1 (0x1)> + [1] #xxxx.7.1.num.int <4 (0x4)> + [2] #xxxx.7.1.num.int <200 (0xc8)> + [3] #xxxx.7.1.num.int <200 (0xc8)> + [4] #xxxx.7.1.num.int <-100 (0xffffffffffffff9c)> + [5] #xxxx.7.1.num.int <200 (0xc8)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.7.1.num.int +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <200 (0xc8)> + [1] #xxxx.7.1.num.int <-100 (0xffffffffffffff9c)> + [2] #xxxx.7.1.num.int <200 (0xc8)> + [3] #xxxx.7.1.num.int <200 (0xc8)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.7.1.num.int +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <100 (0x64)> + [1] #xxxx.7.1.num.int <200 (0xc8)> + [2] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <3 (0x3)> + [1] #xxxx.7.1.num.int <100 (0x64)> + [2] #xxxx.7.1.num.int <200 (0xc8)> + [3] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <1 (0x1)> + [1] #xxxx.7.1.num.int <3 (0x3)> + [2] #xxxx.7.1.num.int <100 (0x64)> + [3] #xxxx.7.1.num.int <200 (0xc8)> + [4] #xxxx.7.1.num.int <200 (0xc8)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.7.1.num.int +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <200 (0xc8)> + [1] #xxxx.7.1.num.int <200 (0xc8)> + [2] #xxxx.7.1.num.int <100 (0x64)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.7.1.num.int +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <400 (0x190)> + [1] #xxxx.7.1.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <100 (0x64)> + [1] #xxxx.7.1.num.int <400 (0x190)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.7.1.num.int +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.7.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <200 (0xc8)> + [1] #xxxx.7.1.num.int <200 (0xc8)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.7.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <-60 (0xffffffffffffffc4)> + [1] #xxxx.7.1.num.int <200 (0xc8)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <-60 (0xffffffffffffffc4)> + [1] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <200 (0xc8)> + [1] #xxxx.7.1.num.int <200 (0xc8)> + [2] #xxxx.7.1.num.int <-60 (0xffffffffffffffc4)> + [3] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <4 (0x4)> + [1] #xxxx.7.1.num.int <200 (0xc8)> + [2] #xxxx.7.1.num.int <200 (0xc8)> + [3] #xxxx.7.1.num.int <-60 (0xffffffffffffffc4)> + [4] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <1 (0x1)> + [1] #xxxx.7.1.num.int <4 (0x4)> + [2] #xxxx.7.1.num.int <200 (0xc8)> + [3] #xxxx.7.1.num.int <200 (0xc8)> + [4] #xxxx.7.1.num.int <-60 (0xffffffffffffffc4)> + [5] #xxxx.7.1.num.int <200 (0xc8)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.7.1.num.int +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <200 (0xc8)> + [1] #xxxx.7.1.num.int <-60 (0xffffffffffffffc4)> + [2] #xxxx.7.1.num.int <200 (0xc8)> + [3] #xxxx.7.1.num.int <200 (0xc8)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.7.1.num.int +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <140 (0x8c)> + [1] #xxxx.7.1.num.int <200 (0xc8)> + [2] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <3 (0x3)> + [1] #xxxx.7.1.num.int <140 (0x8c)> + [2] #xxxx.7.1.num.int <200 (0xc8)> + [3] #xxxx.7.1.num.int <200 (0xc8)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <1 (0x1)> + [1] #xxxx.7.1.num.int <3 (0x3)> + [2] #xxxx.7.1.num.int <140 (0x8c)> + [3] #xxxx.7.1.num.int <200 (0xc8)> + [4] #xxxx.7.1.num.int <200 (0xc8)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.7.1.num.int +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <200 (0xc8)> + [1] #xxxx.7.1.num.int <200 (0xc8)> + [2] #xxxx.7.1.num.int <140 (0x8c)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.7.1.num.int +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <400 (0x190)> + [1] #xxxx.7.1.num.int <140 (0x8c)> +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.7.1.num.int <140 (0x8c)> + [1] #xxxx.7.1.num.int <400 (0x190)> +GC: --#xxxx.7.1.num.int +GC: --#xxxx.7.1.num.int +== backtrace == + [0] #xxxx.7.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.7.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == diff --git a/tests/0059_lineto/code.log.ref b/tests/0059_lineto/code.log.ref new file mode 100644 index 0000000..22767b4 --- /dev/null +++ b/tests/0059_lineto/code.log.ref @@ -0,0 +1,225 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 216 entries (216 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 word 98 67 65 74 67 73 74 61 getgstate + 74 65 + 2 0x00012 int 81 32 50 + 3 0x00014 int 81 14 20 + 4 0x00016 int 91 90 01 400 + 5 0x00019 int 91 90 01 400 + 6 0x0001c word 98 73 65 74 72 65 67 69 setregion + 6f 6e + 2 7 0x00026 int b1 ff ff ff 00 0x00ffffff + 8 0x0002b word 88 73 65 74 63 6f 6c 6f setcolor + 72 + 5 9 0x00034 ref 19 72 /r + 10 0x00036 code c6 2a { + 6 11 0x00038 word 68 67 65 74 70 6f 73 getpos + 7 12 0x0003f int 41 4 + 13 0x00040 int 11 1 + 14 0x00041 word 48 72 6f 6c 6c roll + 15 0x00046 word 38 61 64 64 add + 8 16 0x0004a int 31 3 + 17 0x0004b int 11 1 + 18 0x0004c word 48 72 6f 6c 6c roll + 19 0x00051 word 38 61 64 64 add + 20 0x00055 word 48 65 78 63 68 exch + 9 21 0x0005a word 68 6c 69 6e 65 74 6f lineto + 10 22 0x00061 prim 13 } + 23 0x00062 word 38 64 65 66 def + 12 24 0x00066 int 91 c8 00 200 + 25 0x00069 int 91 c8 00 200 + 26 0x0006c word 68 73 65 74 70 6f 73 setpos + 27 0x00073 int 91 c8 00 200 + 28 0x00076 int 01 0 + 29 0x00077 word 18 72 r + 14 30 0x00079 int 91 c8 00 200 + 31 0x0007c int 91 c8 00 200 + 32 0x0007f word 68 73 65 74 70 6f 73 setpos + 33 0x00086 int 91 c8 00 200 + 34 0x00089 int 81 3c 60 + 35 0x0008b word 18 72 r + 15 36 0x0008d int 91 c8 00 200 + 37 0x00090 int 91 c8 00 200 + 38 0x00093 word 68 73 65 74 70 6f 73 setpos + 39 0x0009a int 91 c8 00 200 + 40 0x0009d int 81 64 100 + 41 0x0009f word 18 72 r + 16 42 0x000a1 int 91 c8 00 200 + 43 0x000a4 int 91 c8 00 200 + 44 0x000a7 word 68 73 65 74 70 6f 73 setpos + 45 0x000ae int 91 c8 00 200 + 46 0x000b1 int 91 a0 00 160 + 47 0x000b4 word 18 72 r + 18 48 0x000b6 int 91 c8 00 200 + 49 0x000b9 int 91 c8 00 200 + 50 0x000bc word 68 73 65 74 70 6f 73 setpos + 51 0x000c3 int 91 c8 00 200 + 52 0x000c6 int 91 c8 00 200 + 53 0x000c9 word 18 72 r + 20 54 0x000cb int 91 c8 00 200 + 55 0x000ce int 91 c8 00 200 + 56 0x000d1 word 68 73 65 74 70 6f 73 setpos + 57 0x000d8 int 91 a0 00 160 + 58 0x000db int 91 c8 00 200 + 59 0x000de word 18 72 r + 21 60 0x000e0 int 91 c8 00 200 + 61 0x000e3 int 91 c8 00 200 + 62 0x000e6 word 68 73 65 74 70 6f 73 setpos + 63 0x000ed int 81 64 100 + 64 0x000ef int 91 c8 00 200 + 65 0x000f2 word 18 72 r + 22 66 0x000f4 int 91 c8 00 200 + 67 0x000f7 int 91 c8 00 200 + 68 0x000fa word 68 73 65 74 70 6f 73 setpos + 69 0x00101 int 81 3c 60 + 70 0x00103 int 91 c8 00 200 + 71 0x00106 word 18 72 r + 24 72 0x00108 int 91 c8 00 200 + 73 0x0010b int 91 c8 00 200 + 74 0x0010e word 68 73 65 74 70 6f 73 setpos + 75 0x00115 int 01 0 + 76 0x00116 int 91 c8 00 200 + 77 0x00119 word 18 72 r + 26 78 0x0011b int 91 c8 00 200 + 79 0x0011e int 91 c8 00 200 + 80 0x00121 word 68 73 65 74 70 6f 73 setpos + 81 0x00128 int 81 c4 -60 + 82 0x0012a int 91 c8 00 200 + 83 0x0012d word 18 72 r + 27 84 0x0012f int 91 c8 00 200 + 85 0x00132 int 91 c8 00 200 + 86 0x00135 word 68 73 65 74 70 6f 73 setpos + 87 0x0013c int 81 9c -100 + 88 0x0013e int 91 c8 00 200 + 89 0x00141 word 18 72 r + 28 90 0x00143 int 91 c8 00 200 + 91 0x00146 int 91 c8 00 200 + 92 0x00149 word 68 73 65 74 70 6f 73 setpos + 93 0x00150 int 91 60 ff -160 + 94 0x00153 int 91 c8 00 200 + 95 0x00156 word 18 72 r + 30 96 0x00158 int 91 c8 00 200 + 97 0x0015b int 91 c8 00 200 + 98 0x0015e word 68 73 65 74 70 6f 73 setpos + 99 0x00165 int 91 38 ff -200 + 100 0x00168 int 91 c8 00 200 + 101 0x0016b word 18 72 r + 32 102 0x0016d int 91 c8 00 200 + 103 0x00170 int 91 c8 00 200 + 104 0x00173 word 68 73 65 74 70 6f 73 setpos + 105 0x0017a int 91 38 ff -200 + 106 0x0017d int 91 a0 00 160 + 107 0x00180 word 18 72 r + 33 108 0x00182 int 91 c8 00 200 + 109 0x00185 int 91 c8 00 200 + 110 0x00188 word 68 73 65 74 70 6f 73 setpos + 111 0x0018f int 91 38 ff -200 + 112 0x00192 int 81 64 100 + 113 0x00194 word 18 72 r + 34 114 0x00196 int 91 c8 00 200 + 115 0x00199 int 91 c8 00 200 + 116 0x0019c word 68 73 65 74 70 6f 73 setpos + 117 0x001a3 int 91 38 ff -200 + 118 0x001a6 int 81 3c 60 + 119 0x001a8 word 18 72 r + 36 120 0x001aa int 91 c8 00 200 + 121 0x001ad int 91 c8 00 200 + 122 0x001b0 word 68 73 65 74 70 6f 73 setpos + 123 0x001b7 int 91 38 ff -200 + 124 0x001ba int 01 0 + 125 0x001bb word 18 72 r + 38 126 0x001bd int 91 c8 00 200 + 127 0x001c0 int 91 c8 00 200 + 128 0x001c3 word 68 73 65 74 70 6f 73 setpos + 129 0x001ca int 91 38 ff -200 + 130 0x001cd int 81 c4 -60 + 131 0x001cf word 18 72 r + 39 132 0x001d1 int 91 c8 00 200 + 133 0x001d4 int 91 c8 00 200 + 134 0x001d7 word 68 73 65 74 70 6f 73 setpos + 135 0x001de int 91 38 ff -200 + 136 0x001e1 int 81 9c -100 + 137 0x001e3 word 18 72 r + 40 138 0x001e5 int 91 c8 00 200 + 139 0x001e8 int 91 c8 00 200 + 140 0x001eb word 68 73 65 74 70 6f 73 setpos + 141 0x001f2 int 91 38 ff -200 + 142 0x001f5 int 91 60 ff -160 + 143 0x001f8 word 18 72 r + 42 144 0x001fa int 91 c8 00 200 + 145 0x001fd int 91 c8 00 200 + 146 0x00200 word 68 73 65 74 70 6f 73 setpos + 147 0x00207 int 91 38 ff -200 + 148 0x0020a int 91 38 ff -200 + 149 0x0020d word 18 72 r + 44 150 0x0020f int 91 c8 00 200 + 151 0x00212 int 91 c8 00 200 + 152 0x00215 word 68 73 65 74 70 6f 73 setpos + 153 0x0021c int 91 60 ff -160 + 154 0x0021f int 91 38 ff -200 + 155 0x00222 word 18 72 r + 45 156 0x00224 int 91 c8 00 200 + 157 0x00227 int 91 c8 00 200 + 158 0x0022a word 68 73 65 74 70 6f 73 setpos + 159 0x00231 int 81 9c -100 + 160 0x00233 int 91 38 ff -200 + 161 0x00236 word 18 72 r + 46 162 0x00238 int 91 c8 00 200 + 163 0x0023b int 91 c8 00 200 + 164 0x0023e word 68 73 65 74 70 6f 73 setpos + 165 0x00245 int 81 c4 -60 + 166 0x00247 int 91 38 ff -200 + 167 0x0024a word 18 72 r + 48 168 0x0024c int 91 c8 00 200 + 169 0x0024f int 91 c8 00 200 + 170 0x00252 word 68 73 65 74 70 6f 73 setpos + 171 0x00259 int 01 0 + 172 0x0025a int 91 38 ff -200 + 173 0x0025d word 18 72 r + 50 174 0x0025f int 91 c8 00 200 + 175 0x00262 int 91 c8 00 200 + 176 0x00265 word 68 73 65 74 70 6f 73 setpos + 177 0x0026c int 81 3c 60 + 178 0x0026e int 91 38 ff -200 + 179 0x00271 word 18 72 r + 51 180 0x00273 int 91 c8 00 200 + 181 0x00276 int 91 c8 00 200 + 182 0x00279 word 68 73 65 74 70 6f 73 setpos + 183 0x00280 int 81 64 100 + 184 0x00282 int 91 38 ff -200 + 185 0x00285 word 18 72 r + 52 186 0x00287 int 91 c8 00 200 + 187 0x0028a int 91 c8 00 200 + 188 0x0028d word 68 73 65 74 70 6f 73 setpos + 189 0x00294 int 91 a0 00 160 + 190 0x00297 int 91 38 ff -200 + 191 0x0029a word 18 72 r + 54 192 0x0029c int 91 c8 00 200 + 193 0x0029f int 91 c8 00 200 + 194 0x002a2 word 68 73 65 74 70 6f 73 setpos + 195 0x002a9 int 91 c8 00 200 + 196 0x002ac int 91 38 ff -200 + 197 0x002af word 18 72 r + 56 198 0x002b1 int 91 c8 00 200 + 199 0x002b4 int 91 c8 00 200 + 200 0x002b7 word 68 73 65 74 70 6f 73 setpos + 201 0x002be int 91 c8 00 200 + 202 0x002c1 int 91 60 ff -160 + 203 0x002c4 word 18 72 r + 57 204 0x002c6 int 91 c8 00 200 + 205 0x002c9 int 91 c8 00 200 + 206 0x002cc word 68 73 65 74 70 6f 73 setpos + 207 0x002d3 int 91 c8 00 200 + 208 0x002d6 int 81 9c -100 + 209 0x002d8 word 18 72 r + 58 210 0x002da int 91 c8 00 200 + 211 0x002dd int 91 c8 00 200 + 212 0x002e0 word 68 73 65 74 70 6f 73 setpos + 213 0x002e7 int 91 c8 00 200 + 214 0x002ea int 81 c4 -60 + 215 0x002ec word 18 72 r diff --git a/tests/0059_lineto/code1.log.ref b/tests/0059_lineto/code1.log.ref new file mode 100644 index 0000000..a767fb2 --- /dev/null +++ b/tests/0059_lineto/code1.log.ref @@ -0,0 +1,225 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 216 entries (216 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 word 98 67 65 74 67 73 74 61 getgstate + 74 65 + 2 0x00012 int 81 32 50 + 3 0x00014 int 81 14 20 + 4 0x00016 int 91 90 01 400 + 5 0x00019 int 91 90 01 400 + 6 0x0001c word 98 73 65 74 72 65 67 69 setregion + 6f 6e + 2 7 0x00026 int b1 ff ff ff 00 0x00ffffff + 8 0x0002b word 88 73 65 74 63 6f 6c 6f setcolor + 72 + 5 9 0x00034 ref 19 72 /r + 10 0x00036 code c6 25 { + 6 11 0x00038 word 68 67 65 74 70 6f 73 getpos + 7 12 0x0003f int 41 4 + 13 0x00040 int 11 1 + 14 0x00041 word 48 72 6f 6c 6c roll + 15 0x00046 word 38 61 64 64 add + 8 16 0x0004a int 31 3 + 17 0x0004b int 11 1 + 18 0x0004c xref 84 0b roll + 19 0x0004e xref 84 08 add + 20 0x00050 word 48 65 78 63 68 exch + 9 21 0x00055 word 68 6c 69 6e 65 74 6f lineto + 10 22 0x0005c prim 13 } + 23 0x0005d word 38 64 65 66 def + 12 24 0x00061 int 91 c8 00 200 + 25 0x00064 int 91 c8 00 200 + 26 0x00067 word 68 73 65 74 70 6f 73 setpos + 27 0x0006e int 91 c8 00 200 + 28 0x00071 int 01 0 + 29 0x00072 word 18 72 r + 14 30 0x00074 int 91 c8 00 200 + 31 0x00077 int 91 c8 00 200 + 32 0x0007a xref 84 13 setpos + 33 0x0007c int 91 c8 00 200 + 34 0x0007f int 81 3c 60 + 35 0x00081 word 18 72 r + 15 36 0x00083 int 91 c8 00 200 + 37 0x00086 int 91 c8 00 200 + 38 0x00089 xref 84 22 setpos + 39 0x0008b int 91 c8 00 200 + 40 0x0008e int 81 64 100 + 41 0x00090 word 18 72 r + 16 42 0x00092 int 91 c8 00 200 + 43 0x00095 int 91 c8 00 200 + 44 0x00098 xref 84 31 setpos + 45 0x0009a int 91 c8 00 200 + 46 0x0009d int 91 a0 00 160 + 47 0x000a0 word 18 72 r + 18 48 0x000a2 int 91 c8 00 200 + 49 0x000a5 int 91 c8 00 200 + 50 0x000a8 xref 84 41 setpos + 51 0x000aa int 91 c8 00 200 + 52 0x000ad int 91 c8 00 200 + 53 0x000b0 word 18 72 r + 20 54 0x000b2 int 91 c8 00 200 + 55 0x000b5 int 91 c8 00 200 + 56 0x000b8 xref 84 51 setpos + 57 0x000ba int 91 a0 00 160 + 58 0x000bd int 91 c8 00 200 + 59 0x000c0 word 18 72 r + 21 60 0x000c2 int 91 c8 00 200 + 61 0x000c5 int 91 c8 00 200 + 62 0x000c8 xref 84 61 setpos + 63 0x000ca int 81 64 100 + 64 0x000cc int 91 c8 00 200 + 65 0x000cf word 18 72 r + 22 66 0x000d1 int 91 c8 00 200 + 67 0x000d4 int 91 c8 00 200 + 68 0x000d7 xref 84 70 setpos + 69 0x000d9 int 81 3c 60 + 70 0x000db int 91 c8 00 200 + 71 0x000de word 18 72 r + 24 72 0x000e0 int 91 c8 00 200 + 73 0x000e3 int 91 c8 00 200 + 74 0x000e6 xref 84 7f setpos + 75 0x000e8 int 01 0 + 76 0x000e9 int 91 c8 00 200 + 77 0x000ec word 18 72 r + 26 78 0x000ee int 91 c8 00 200 + 79 0x000f1 int 91 c8 00 200 + 80 0x000f4 xref 84 8d setpos + 81 0x000f6 int 81 c4 -60 + 82 0x000f8 int 91 c8 00 200 + 83 0x000fb word 18 72 r + 27 84 0x000fd int 91 c8 00 200 + 85 0x00100 int 91 c8 00 200 + 86 0x00103 xref 84 9c setpos + 87 0x00105 int 81 9c -100 + 88 0x00107 int 91 c8 00 200 + 89 0x0010a word 18 72 r + 28 90 0x0010c int 91 c8 00 200 + 91 0x0010f int 91 c8 00 200 + 92 0x00112 xref 84 ab setpos + 93 0x00114 int 91 60 ff -160 + 94 0x00117 int 91 c8 00 200 + 95 0x0011a word 18 72 r + 30 96 0x0011c int 91 c8 00 200 + 97 0x0011f int 91 c8 00 200 + 98 0x00122 xref 84 bb setpos + 99 0x00124 int 91 38 ff -200 + 100 0x00127 int 91 c8 00 200 + 101 0x0012a word 18 72 r + 32 102 0x0012c int 91 c8 00 200 + 103 0x0012f int 91 c8 00 200 + 104 0x00132 xref 84 cb setpos + 105 0x00134 int 91 38 ff -200 + 106 0x00137 int 91 a0 00 160 + 107 0x0013a word 18 72 r + 33 108 0x0013c int 91 c8 00 200 + 109 0x0013f int 91 c8 00 200 + 110 0x00142 xref 84 db setpos + 111 0x00144 int 91 38 ff -200 + 112 0x00147 int 81 64 100 + 113 0x00149 word 18 72 r + 34 114 0x0014b int 91 c8 00 200 + 115 0x0014e int 91 c8 00 200 + 116 0x00151 xref 84 ea setpos + 117 0x00153 int 91 38 ff -200 + 118 0x00156 int 81 3c 60 + 119 0x00158 word 18 72 r + 36 120 0x0015a int 91 c8 00 200 + 121 0x0015d int 91 c8 00 200 + 122 0x00160 xref 84 f9 setpos + 123 0x00162 int 91 38 ff -200 + 124 0x00165 int 01 0 + 125 0x00166 word 18 72 r + 38 126 0x00168 int 91 c8 00 200 + 127 0x0016b int 91 c8 00 200 + 128 0x0016e xref 94 07 01 setpos + 129 0x00171 int 91 38 ff -200 + 130 0x00174 int 81 c4 -60 + 131 0x00176 word 18 72 r + 39 132 0x00178 int 91 c8 00 200 + 133 0x0017b int 91 c8 00 200 + 134 0x0017e xref 94 17 01 setpos + 135 0x00181 int 91 38 ff -200 + 136 0x00184 int 81 9c -100 + 137 0x00186 word 18 72 r + 40 138 0x00188 int 91 c8 00 200 + 139 0x0018b int 91 c8 00 200 + 140 0x0018e xref 94 27 01 setpos + 141 0x00191 int 91 38 ff -200 + 142 0x00194 int 91 60 ff -160 + 143 0x00197 word 18 72 r + 42 144 0x00199 int 91 c8 00 200 + 145 0x0019c int 91 c8 00 200 + 146 0x0019f xref 94 38 01 setpos + 147 0x001a2 int 91 38 ff -200 + 148 0x001a5 int 91 38 ff -200 + 149 0x001a8 word 18 72 r + 44 150 0x001aa int 91 c8 00 200 + 151 0x001ad int 91 c8 00 200 + 152 0x001b0 xref 94 49 01 setpos + 153 0x001b3 int 91 60 ff -160 + 154 0x001b6 int 91 38 ff -200 + 155 0x001b9 word 18 72 r + 45 156 0x001bb int 91 c8 00 200 + 157 0x001be int 91 c8 00 200 + 158 0x001c1 xref 94 5a 01 setpos + 159 0x001c4 int 81 9c -100 + 160 0x001c6 int 91 38 ff -200 + 161 0x001c9 word 18 72 r + 46 162 0x001cb int 91 c8 00 200 + 163 0x001ce int 91 c8 00 200 + 164 0x001d1 xref 94 6a 01 setpos + 165 0x001d4 int 81 c4 -60 + 166 0x001d6 int 91 38 ff -200 + 167 0x001d9 word 18 72 r + 48 168 0x001db int 91 c8 00 200 + 169 0x001de int 91 c8 00 200 + 170 0x001e1 xref 94 7a 01 setpos + 171 0x001e4 int 01 0 + 172 0x001e5 int 91 38 ff -200 + 173 0x001e8 word 18 72 r + 50 174 0x001ea int 91 c8 00 200 + 175 0x001ed int 91 c8 00 200 + 176 0x001f0 xref 94 89 01 setpos + 177 0x001f3 int 81 3c 60 + 178 0x001f5 int 91 38 ff -200 + 179 0x001f8 word 18 72 r + 51 180 0x001fa int 91 c8 00 200 + 181 0x001fd int 91 c8 00 200 + 182 0x00200 xref 94 99 01 setpos + 183 0x00203 int 81 64 100 + 184 0x00205 int 91 38 ff -200 + 185 0x00208 word 18 72 r + 52 186 0x0020a int 91 c8 00 200 + 187 0x0020d int 91 c8 00 200 + 188 0x00210 xref 94 a9 01 setpos + 189 0x00213 int 91 a0 00 160 + 190 0x00216 int 91 38 ff -200 + 191 0x00219 word 18 72 r + 54 192 0x0021b int 91 c8 00 200 + 193 0x0021e int 91 c8 00 200 + 194 0x00221 xref 94 ba 01 setpos + 195 0x00224 int 91 c8 00 200 + 196 0x00227 int 91 38 ff -200 + 197 0x0022a word 18 72 r + 56 198 0x0022c int 91 c8 00 200 + 199 0x0022f int 91 c8 00 200 + 200 0x00232 xref 94 cb 01 setpos + 201 0x00235 int 91 c8 00 200 + 202 0x00238 int 91 60 ff -160 + 203 0x0023b word 18 72 r + 57 204 0x0023d int 91 c8 00 200 + 205 0x00240 int 91 c8 00 200 + 206 0x00243 xref 94 dc 01 setpos + 207 0x00246 int 91 c8 00 200 + 208 0x00249 int 81 9c -100 + 209 0x0024b word 18 72 r + 58 210 0x0024d int 91 c8 00 200 + 211 0x00250 int 91 c8 00 200 + 212 0x00253 xref 94 ec 01 setpos + 213 0x00256 int 91 c8 00 200 + 214 0x00259 int 81 c4 -60 + 215 0x0025b word 18 72 r diff --git a/tests/0059_lineto/code2.log.ref b/tests/0059_lineto/code2.log.ref new file mode 100644 index 0000000..84b544a --- /dev/null +++ b/tests/0059_lineto/code2.log.ref @@ -0,0 +1,222 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 216 entries (216 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 prim 83 47 getgstate + 2 0x0000a int 81 32 50 + 3 0x0000c int 81 14 20 + 4 0x0000e int 91 90 01 400 + 5 0x00011 int 91 90 01 400 + 6 0x00014 prim 83 43 setregion + 2 7 0x00016 int b1 ff ff ff 00 0x00ffffff + 8 0x0001b prim 83 3a setcolor + 5 9 0x0001d ref 19 72 /r + 10 0x0001f code c6 13 { + 6 11 0x00021 prim 83 3d getpos + 7 12 0x00023 int 41 4 + 13 0x00024 int 11 1 + 14 0x00025 prim 83 1a roll + 15 0x00027 prim 83 1e add + 8 16 0x00029 int 31 3 + 17 0x0002a int 11 1 + 18 0x0002b prim 83 1a roll + 19 0x0002d prim 83 1e add + 20 0x0002f prim 83 18 exch + 9 21 0x00031 prim 83 55 lineto + 10 22 0x00033 prim 13 } + 23 0x00034 prim 63 def + 12 24 0x00035 int 91 c8 00 200 + 25 0x00038 int 91 c8 00 200 + 26 0x0003b prim 83 3e setpos + 27 0x0003d int 91 c8 00 200 + 28 0x00040 int 01 0 + 29 0x00041 word 18 72 r + 14 30 0x00043 int 91 c8 00 200 + 31 0x00046 int 91 c8 00 200 + 32 0x00049 prim 83 3e setpos + 33 0x0004b int 91 c8 00 200 + 34 0x0004e int 81 3c 60 + 35 0x00050 word 18 72 r + 15 36 0x00052 int 91 c8 00 200 + 37 0x00055 int 91 c8 00 200 + 38 0x00058 prim 83 3e setpos + 39 0x0005a int 91 c8 00 200 + 40 0x0005d int 81 64 100 + 41 0x0005f word 18 72 r + 16 42 0x00061 int 91 c8 00 200 + 43 0x00064 int 91 c8 00 200 + 44 0x00067 prim 83 3e setpos + 45 0x00069 int 91 c8 00 200 + 46 0x0006c int 91 a0 00 160 + 47 0x0006f word 18 72 r + 18 48 0x00071 int 91 c8 00 200 + 49 0x00074 int 91 c8 00 200 + 50 0x00077 prim 83 3e setpos + 51 0x00079 int 91 c8 00 200 + 52 0x0007c int 91 c8 00 200 + 53 0x0007f word 18 72 r + 20 54 0x00081 int 91 c8 00 200 + 55 0x00084 int 91 c8 00 200 + 56 0x00087 prim 83 3e setpos + 57 0x00089 int 91 a0 00 160 + 58 0x0008c int 91 c8 00 200 + 59 0x0008f word 18 72 r + 21 60 0x00091 int 91 c8 00 200 + 61 0x00094 int 91 c8 00 200 + 62 0x00097 prim 83 3e setpos + 63 0x00099 int 81 64 100 + 64 0x0009b int 91 c8 00 200 + 65 0x0009e word 18 72 r + 22 66 0x000a0 int 91 c8 00 200 + 67 0x000a3 int 91 c8 00 200 + 68 0x000a6 prim 83 3e setpos + 69 0x000a8 int 81 3c 60 + 70 0x000aa int 91 c8 00 200 + 71 0x000ad word 18 72 r + 24 72 0x000af int 91 c8 00 200 + 73 0x000b2 int 91 c8 00 200 + 74 0x000b5 prim 83 3e setpos + 75 0x000b7 int 01 0 + 76 0x000b8 int 91 c8 00 200 + 77 0x000bb word 18 72 r + 26 78 0x000bd int 91 c8 00 200 + 79 0x000c0 int 91 c8 00 200 + 80 0x000c3 prim 83 3e setpos + 81 0x000c5 int 81 c4 -60 + 82 0x000c7 int 91 c8 00 200 + 83 0x000ca word 18 72 r + 27 84 0x000cc int 91 c8 00 200 + 85 0x000cf int 91 c8 00 200 + 86 0x000d2 prim 83 3e setpos + 87 0x000d4 int 81 9c -100 + 88 0x000d6 int 91 c8 00 200 + 89 0x000d9 word 18 72 r + 28 90 0x000db int 91 c8 00 200 + 91 0x000de int 91 c8 00 200 + 92 0x000e1 prim 83 3e setpos + 93 0x000e3 int 91 60 ff -160 + 94 0x000e6 int 91 c8 00 200 + 95 0x000e9 word 18 72 r + 30 96 0x000eb int 91 c8 00 200 + 97 0x000ee int 91 c8 00 200 + 98 0x000f1 prim 83 3e setpos + 99 0x000f3 int 91 38 ff -200 + 100 0x000f6 int 91 c8 00 200 + 101 0x000f9 word 18 72 r + 32 102 0x000fb int 91 c8 00 200 + 103 0x000fe int 91 c8 00 200 + 104 0x00101 prim 83 3e setpos + 105 0x00103 int 91 38 ff -200 + 106 0x00106 int 91 a0 00 160 + 107 0x00109 word 18 72 r + 33 108 0x0010b int 91 c8 00 200 + 109 0x0010e int 91 c8 00 200 + 110 0x00111 prim 83 3e setpos + 111 0x00113 int 91 38 ff -200 + 112 0x00116 int 81 64 100 + 113 0x00118 word 18 72 r + 34 114 0x0011a int 91 c8 00 200 + 115 0x0011d int 91 c8 00 200 + 116 0x00120 prim 83 3e setpos + 117 0x00122 int 91 38 ff -200 + 118 0x00125 int 81 3c 60 + 119 0x00127 word 18 72 r + 36 120 0x00129 int 91 c8 00 200 + 121 0x0012c int 91 c8 00 200 + 122 0x0012f prim 83 3e setpos + 123 0x00131 int 91 38 ff -200 + 124 0x00134 int 01 0 + 125 0x00135 word 18 72 r + 38 126 0x00137 int 91 c8 00 200 + 127 0x0013a int 91 c8 00 200 + 128 0x0013d prim 83 3e setpos + 129 0x0013f int 91 38 ff -200 + 130 0x00142 int 81 c4 -60 + 131 0x00144 word 18 72 r + 39 132 0x00146 int 91 c8 00 200 + 133 0x00149 int 91 c8 00 200 + 134 0x0014c prim 83 3e setpos + 135 0x0014e int 91 38 ff -200 + 136 0x00151 int 81 9c -100 + 137 0x00153 word 18 72 r + 40 138 0x00155 int 91 c8 00 200 + 139 0x00158 int 91 c8 00 200 + 140 0x0015b prim 83 3e setpos + 141 0x0015d int 91 38 ff -200 + 142 0x00160 int 91 60 ff -160 + 143 0x00163 word 18 72 r + 42 144 0x00165 int 91 c8 00 200 + 145 0x00168 int 91 c8 00 200 + 146 0x0016b prim 83 3e setpos + 147 0x0016d int 91 38 ff -200 + 148 0x00170 int 91 38 ff -200 + 149 0x00173 word 18 72 r + 44 150 0x00175 int 91 c8 00 200 + 151 0x00178 int 91 c8 00 200 + 152 0x0017b prim 83 3e setpos + 153 0x0017d int 91 60 ff -160 + 154 0x00180 int 91 38 ff -200 + 155 0x00183 word 18 72 r + 45 156 0x00185 int 91 c8 00 200 + 157 0x00188 int 91 c8 00 200 + 158 0x0018b prim 83 3e setpos + 159 0x0018d int 81 9c -100 + 160 0x0018f int 91 38 ff -200 + 161 0x00192 word 18 72 r + 46 162 0x00194 int 91 c8 00 200 + 163 0x00197 int 91 c8 00 200 + 164 0x0019a prim 83 3e setpos + 165 0x0019c int 81 c4 -60 + 166 0x0019e int 91 38 ff -200 + 167 0x001a1 word 18 72 r + 48 168 0x001a3 int 91 c8 00 200 + 169 0x001a6 int 91 c8 00 200 + 170 0x001a9 prim 83 3e setpos + 171 0x001ab int 01 0 + 172 0x001ac int 91 38 ff -200 + 173 0x001af word 18 72 r + 50 174 0x001b1 int 91 c8 00 200 + 175 0x001b4 int 91 c8 00 200 + 176 0x001b7 prim 83 3e setpos + 177 0x001b9 int 81 3c 60 + 178 0x001bb int 91 38 ff -200 + 179 0x001be word 18 72 r + 51 180 0x001c0 int 91 c8 00 200 + 181 0x001c3 int 91 c8 00 200 + 182 0x001c6 prim 83 3e setpos + 183 0x001c8 int 81 64 100 + 184 0x001ca int 91 38 ff -200 + 185 0x001cd word 18 72 r + 52 186 0x001cf int 91 c8 00 200 + 187 0x001d2 int 91 c8 00 200 + 188 0x001d5 prim 83 3e setpos + 189 0x001d7 int 91 a0 00 160 + 190 0x001da int 91 38 ff -200 + 191 0x001dd word 18 72 r + 54 192 0x001df int 91 c8 00 200 + 193 0x001e2 int 91 c8 00 200 + 194 0x001e5 prim 83 3e setpos + 195 0x001e7 int 91 c8 00 200 + 196 0x001ea int 91 38 ff -200 + 197 0x001ed word 18 72 r + 56 198 0x001ef int 91 c8 00 200 + 199 0x001f2 int 91 c8 00 200 + 200 0x001f5 prim 83 3e setpos + 201 0x001f7 int 91 c8 00 200 + 202 0x001fa int 91 60 ff -160 + 203 0x001fd word 18 72 r + 57 204 0x001ff int 91 c8 00 200 + 205 0x00202 int 91 c8 00 200 + 206 0x00205 prim 83 3e setpos + 207 0x00207 int 91 c8 00 200 + 208 0x0020a int 81 9c -100 + 209 0x0020c word 18 72 r + 58 210 0x0020e int 91 c8 00 200 + 211 0x00211 int 91 c8 00 200 + 212 0x00214 prim 83 3e setpos + 213 0x00216 int 91 c8 00 200 + 214 0x00219 int 81 c4 -60 + 215 0x0021b word 18 72 r diff --git a/tests/0059_lineto/main.gs b/tests/0059_lineto/main.gs new file mode 100644 index 0000000..7218832 --- /dev/null +++ b/tests/0059_lineto/main.gs @@ -0,0 +1,58 @@ +getgstate 50 20 400 400 setregion +0x00ffffff setcolor + +# rlineto +/r { + getpos + 4 1 roll add + 3 1 roll add exch + lineto +} def + +200 200 setpos 200 0 r + +200 200 setpos 200 60 r +200 200 setpos 200 100 r +200 200 setpos 200 160 r + +200 200 setpos 200 200 r + +200 200 setpos 160 200 r +200 200 setpos 100 200 r +200 200 setpos 60 200 r + +200 200 setpos 0 200 r + +200 200 setpos -60 200 r +200 200 setpos -100 200 r +200 200 setpos -160 200 r + +200 200 setpos -200 200 r + +200 200 setpos -200 160 r +200 200 setpos -200 100 r +200 200 setpos -200 60 r + +200 200 setpos -200 0 r + +200 200 setpos -200 -60 r +200 200 setpos -200 -100 r +200 200 setpos -200 -160 r + +200 200 setpos -200 -200 r + +200 200 setpos -160 -200 r +200 200 setpos -100 -200 r +200 200 setpos -60 -200 r + +200 200 setpos 0 -200 r + +200 200 setpos 60 -200 r +200 200 setpos 100 -200 r +200 200 setpos 160 -200 r + +200 200 setpos 200 -200 r + +200 200 setpos 200 -160 r +200 200 setpos 200 -100 r +200 200 setpos 200 -60 r diff --git a/tests/0059_lineto/mem.log.ref b/tests/0059_lineto/mem.log.ref new file mode 100644 index 0000000..320d44f --- /dev/null +++ b/tests/0059_lineto/mem.log.ref @@ -0,0 +1,804 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 752] + 8: 187.01, 0x001d6d64[ 72] + 9: 188.01, 0x001d6db4[ 56] + 10: 193.01, 0x001d6df4[ 72] + 11: 0.00, 0x001d6e44[14848444] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | . . | + | . . . | + | . . . | + | . . . | + | . . ... . | + | ...,.,,... | + | ..:x*:.. | + | .... ..... | + | . . | + | . | + | . . | + | . . . | + | . . . | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 400x140 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #195.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x35, size 1, "r"> => #196.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x38, size 42> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.3.mem.ro + 75 51 12 a9 42 7a ad 60 98 67 65 74 67 73 74 61 uQ..Bz.`.getgsta + 74 65 81 32 81 14 91 90 01 91 90 01 98 73 65 74 te.2.........set + 72 65 67 69 6f 6e b1 ff ff ff 00 88 73 65 74 63 region......setc + 6f 6c 6f 72 19 72 c6 2a 68 67 65 74 70 6f 73 41 olor.r.*hgetposA + 11 48 72 6f 6c 6c 38 61 64 64 31 11 48 72 6f 6c .Hroll8add1.Hrol + 6c 38 61 64 64 48 65 78 63 68 68 6c 69 6e 65 74 l8addHexchhlinet + 6f 13 38 64 65 66 91 c8 00 91 c8 00 68 73 65 74 o.8def......hset + 70 6f 73 91 c8 00 01 18 72 91 c8 00 91 c8 00 68 pos.....r......h + 73 65 74 70 6f 73 91 c8 00 81 3c 18 72 91 c8 00 setpos....<.r... + 91 c8 00 68 73 65 74 70 6f 73 91 c8 00 81 64 18 ...hsetpos....d. + 72 91 c8 00 91 c8 00 68 73 65 74 70 6f 73 91 c8 r......hsetpos.. + 00 91 a0 00 18 72 91 c8 00 91 c8 00 68 73 65 74 .....r......hset + 70 6f 73 91 c8 00 91 c8 00 18 72 91 c8 00 91 c8 pos.......r..... + 00 68 73 65 74 70 6f 73 91 a0 00 91 c8 00 18 72 .hsetpos.......r + 91 c8 00 91 c8 00 68 73 65 74 70 6f 73 81 64 91 ......hsetpos.d. + c8 00 18 72 91 c8 00 91 c8 00 68 73 65 74 70 6f ...r......hsetpo + 73 81 3c 91 c8 00 18 72 91 c8 00 91 c8 00 68 73 s.<....r......hs + 65 74 70 6f 73 01 91 c8 00 18 72 91 c8 00 91 c8 etpos.....r..... + 00 68 73 65 74 70 6f 73 81 c4 91 c8 00 18 72 91 .hsetpos......r. + c8 00 91 c8 00 68 73 65 74 70 6f 73 81 9c 91 c8 .....hsetpos.... + 00 18 72 91 c8 00 91 c8 00 68 73 65 74 70 6f 73 ..r......hsetpos + 91 60 ff 91 c8 00 18 72 91 c8 00 91 c8 00 68 73 .`.....r......hs + 65 74 70 6f 73 91 38 ff 91 c8 00 18 72 91 c8 00 etpos.8.....r... + 91 c8 00 68 73 65 74 70 6f 73 91 38 ff 91 a0 00 ...hsetpos.8.... + 18 72 91 c8 00 91 c8 00 68 73 65 74 70 6f 73 91 .r......hsetpos. + 38 ff 81 64 18 72 91 c8 00 91 c8 00 68 73 65 74 8..d.r......hset + 70 6f 73 91 38 ff 81 3c 18 72 91 c8 00 91 c8 00 pos.8..<.r...... + 68 73 65 74 70 6f 73 91 38 ff 01 18 72 91 c8 00 hsetpos.8...r... + 91 c8 00 68 73 65 74 70 6f 73 91 38 ff 81 c4 18 ...hsetpos.8.... + 72 91 c8 00 91 c8 00 68 73 65 74 70 6f 73 91 38 r......hsetpos.8 + ff 81 9c 18 72 91 c8 00 91 c8 00 68 73 65 74 70 ....r......hsetp + 6f 73 91 38 ff 91 60 ff 18 72 91 c8 00 91 c8 00 os.8..`..r...... + 68 73 65 74 70 6f 73 91 38 ff 91 38 ff 18 72 91 hsetpos.8..8..r. + c8 00 91 c8 00 68 73 65 74 70 6f 73 91 60 ff 91 .....hsetpos.`.. + 38 ff 18 72 91 c8 00 91 c8 00 68 73 65 74 70 6f 8..r......hsetpo + 73 81 9c 91 38 ff 18 72 91 c8 00 91 c8 00 68 73 s...8..r......hs + 65 74 70 6f 73 81 c4 91 38 ff 18 72 91 c8 00 91 etpos...8..r.... + c8 00 68 73 65 74 70 6f 73 01 91 38 ff 18 72 91 ..hsetpos..8..r. + c8 00 91 c8 00 68 73 65 74 70 6f 73 81 3c 91 38 .....hsetpos.<.8 + ff 18 72 91 c8 00 91 c8 00 68 73 65 74 70 6f 73 ..r......hsetpos + 81 64 91 38 ff 18 72 91 c8 00 91 c8 00 68 73 65 .d.8..r......hse + 74 70 6f 73 91 a0 00 91 38 ff 18 72 91 c8 00 91 tpos....8..r.... + c8 00 68 73 65 74 70 6f 73 91 c8 00 91 38 ff 18 ..hsetpos....8.. + 72 91 c8 00 91 c8 00 68 73 65 74 70 6f 73 91 c8 r......hsetpos.. + 00 91 60 ff 18 72 91 c8 00 91 c8 00 68 73 65 74 ..`..r......hset + 70 6f 73 91 c8 00 81 9c 18 72 91 c8 00 91 c8 00 pos......r...... + 68 73 65 74 70 6f 73 91 c8 00 81 c4 18 72 hsetpos......r + #187.1.1.array + #188.1.1.ctx.func + type 17, ip 0x2ee (0x2ee) + code #186.1.3.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #193.1.1.array + #195.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x35, size 1, "r"> + 72 r + #196.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x38, size 42> + 68 67 65 74 70 6f 73 41 11 48 72 6f 6c 6c 38 61 hgetposA.Hroll8a + 64 64 31 11 48 72 6f 6c 6c 38 61 64 64 48 65 78 dd1.Hroll8addHex + 63 68 68 6c 69 6e 65 74 6f 13 chhlineto. diff --git a/tests/0059_lineto/screen.log.ref b/tests/0059_lineto/screen.log.ref new file mode 100644 index 0000000..c492e66 --- /dev/null +++ b/tests/0059_lineto/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | . . | + | . . . | + | . . . | + | . . . | + | . . ... . | + | ...,.,,... | + | ..:x*:.. | + | .... ..... | + | . . | + | . | + | . . | + | . . . | + | . . . | + | | + | | + | | + | | + | | + | | diff --git a/tests/0059_lineto/trace.log.ref b/tests/0059_lineto/trace.log.ref new file mode 100644 index 0000000..35b7b9f --- /dev/null +++ b/tests/0059_lineto/trace.log.ref @@ -0,0 +1,4785 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 8, 9[9] +GC: ++#2.1.1.gstate +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #2.1.2.gstate +IP: #186:0x12, type 1, 50 (0x32) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.num.int <50 (0x32)> + [1] #2.1.2.gstate +IP: #186:0x14, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <20 (0x14)> + [1] #189.1.1.num.int <50 (0x32)> + [2] #2.1.2.gstate +IP: #186:0x16, type 1, 400 (0x190) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <400 (0x190)> + [1] #190.1.1.num.int <20 (0x14)> + [2] #189.1.1.num.int <50 (0x32)> + [3] #2.1.2.gstate +IP: #186:0x19, type 1, 400 (0x190) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.int <400 (0x190)> + [1] #191.1.1.num.int <400 (0x190)> + [2] #190.1.1.num.int <20 (0x14)> + [3] #189.1.1.num.int <50 (0x32)> + [4] #2.1.2.gstate +IP: #186:0x1c, type 8, 29[9] +GC: --#192.1.1.num.int +GC: --#191.1.1.num.int +GC: --#190.1.1.num.int +GC: --#189.1.1.num.int +GC: --#2.1.2.gstate +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x26, type 1, 16777215 (0xffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <16777215 (0xffffff)> +IP: #186:0x2b, type 8, 44[8] +GC: --#194.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x34, type 9, 53[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x35, size 1, "r"> +IP: #186:0x36, type 6, 56[42] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x38, size 42> + [1] #195.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x35, size 1, "r"> +IP: #186:0x62, type 8, 99[3] +GC: ++#195.1.1.mem.ref.ro +GC: ++#196.1.1.mem.code.ro +GC: --#196.1.2.mem.code.ro +GC: --#195.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x66, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <200 (0xc8)> +IP: #186:0x69, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <200 (0xc8)> + [1] #197.1.1.num.int <200 (0xc8)> +IP: #186:0x6c, type 8, 109[6] +GC: --#198.1.1.num.int +GC: --#197.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x73, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <200 (0xc8)> +IP: #186:0x76, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <0 (0x0)> + [1] #199.1.1.num.int <200 (0xc8)> +IP: #186:0x77, type 8, 120[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <0 (0x0)> + [1] #199.1.1.num.int <200 (0xc8)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <200 (0xc8)> + [1] #202.1.1.num.int <200 (0xc8)> + [2] #200.1.1.num.int <0 (0x0)> + [3] #199.1.1.num.int <200 (0xc8)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <4 (0x4)> + [1] #203.1.1.num.int <200 (0xc8)> + [2] #202.1.1.num.int <200 (0xc8)> + [3] #200.1.1.num.int <0 (0x0)> + [4] #199.1.1.num.int <200 (0xc8)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <1 (0x1)> + [1] #204.1.1.num.int <4 (0x4)> + [2] #203.1.1.num.int <200 (0xc8)> + [3] #202.1.1.num.int <200 (0xc8)> + [4] #200.1.1.num.int <0 (0x0)> + [5] #199.1.1.num.int <200 (0xc8)> +IP: #196:0x9, type 8, 10[4] +GC: --#205.1.1.num.int +GC: --#204.1.1.num.int +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <200 (0xc8)> + [1] #200.1.1.num.int <0 (0x0)> + [2] #199.1.1.num.int <200 (0xc8)> + [3] #203.1.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#202.1.1.num.int +GC: --#200.1.1.num.int +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <200 (0xc8)> + [1] #199.1.1.num.int <200 (0xc8)> + [2] #203.1.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <3 (0x3)> + [1] #206.1.1.num.int <200 (0xc8)> + [2] #199.1.1.num.int <200 (0xc8)> + [3] #203.1.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <1 (0x1)> + [1] #207.1.1.num.int <3 (0x3)> + [2] #206.1.1.num.int <200 (0xc8)> + [3] #199.1.1.num.int <200 (0xc8)> + [4] #203.1.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#208.1.1.num.int +GC: --#207.1.1.num.int +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <200 (0xc8)> + [1] #203.1.1.num.int <200 (0xc8)> + [2] #206.1.1.num.int <200 (0xc8)> +IP: #196:0x19, type 8, 26[3] +GC: --#199.1.1.num.int +GC: --#203.1.1.num.int +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <400 (0x190)> + [1] #206.1.1.num.int <200 (0xc8)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <200 (0xc8)> + [1] #209.1.1.num.int <400 (0x190)> +IP: #196:0x22, type 8, 35[6] +GC: --#206.1.1.num.int +GC: --#209.1.1.num.int +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#201.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x79, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <200 (0xc8)> +IP: #186:0x7c, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <200 (0xc8)> + [1] #210.1.1.num.int <200 (0xc8)> +IP: #186:0x7f, type 8, 128[6] +GC: --#211.1.1.num.int +GC: --#210.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x86, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.int <200 (0xc8)> +IP: #186:0x89, type 1, 60 (0x3c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <60 (0x3c)> + [1] #212.1.1.num.int <200 (0xc8)> +IP: #186:0x8b, type 8, 140[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <60 (0x3c)> + [1] #212.1.1.num.int <200 (0xc8)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <200 (0xc8)> + [1] #215.1.1.num.int <200 (0xc8)> + [2] #213.1.1.num.int <60 (0x3c)> + [3] #212.1.1.num.int <200 (0xc8)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <4 (0x4)> + [1] #216.1.1.num.int <200 (0xc8)> + [2] #215.1.1.num.int <200 (0xc8)> + [3] #213.1.1.num.int <60 (0x3c)> + [4] #212.1.1.num.int <200 (0xc8)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.num.int <1 (0x1)> + [1] #217.1.1.num.int <4 (0x4)> + [2] #216.1.1.num.int <200 (0xc8)> + [3] #215.1.1.num.int <200 (0xc8)> + [4] #213.1.1.num.int <60 (0x3c)> + [5] #212.1.1.num.int <200 (0xc8)> +IP: #196:0x9, type 8, 10[4] +GC: --#218.1.1.num.int +GC: --#217.1.1.num.int +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <200 (0xc8)> + [1] #213.1.1.num.int <60 (0x3c)> + [2] #212.1.1.num.int <200 (0xc8)> + [3] #216.1.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#215.1.1.num.int +GC: --#213.1.1.num.int +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.int <260 (0x104)> + [1] #212.1.1.num.int <200 (0xc8)> + [2] #216.1.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.num.int <3 (0x3)> + [1] #219.1.1.num.int <260 (0x104)> + [2] #212.1.1.num.int <200 (0xc8)> + [3] #216.1.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.num.int <1 (0x1)> + [1] #220.1.1.num.int <3 (0x3)> + [2] #219.1.1.num.int <260 (0x104)> + [3] #212.1.1.num.int <200 (0xc8)> + [4] #216.1.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#221.1.1.num.int +GC: --#220.1.1.num.int +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.int <200 (0xc8)> + [1] #216.1.1.num.int <200 (0xc8)> + [2] #219.1.1.num.int <260 (0x104)> +IP: #196:0x19, type 8, 26[3] +GC: --#212.1.1.num.int +GC: --#216.1.1.num.int +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.int <400 (0x190)> + [1] #219.1.1.num.int <260 (0x104)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.int <260 (0x104)> + [1] #222.1.1.num.int <400 (0x190)> +IP: #196:0x22, type 8, 35[6] +GC: --#219.1.1.num.int +GC: --#222.1.1.num.int +== backtrace == + [0] #214.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#214.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8d, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.num.int <200 (0xc8)> +IP: #186:0x90, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.num.int <200 (0xc8)> + [1] #223.1.1.num.int <200 (0xc8)> +IP: #186:0x93, type 8, 148[6] +GC: --#224.1.1.num.int +GC: --#223.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x9a, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <200 (0xc8)> +IP: #186:0x9d, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.int <100 (0x64)> + [1] #225.1.1.num.int <200 (0xc8)> +IP: #186:0x9f, type 8, 160[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.int <100 (0x64)> + [1] #225.1.1.num.int <200 (0xc8)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <200 (0xc8)> + [1] #228.1.1.num.int <200 (0xc8)> + [2] #226.1.1.num.int <100 (0x64)> + [3] #225.1.1.num.int <200 (0xc8)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.num.int <4 (0x4)> + [1] #229.1.1.num.int <200 (0xc8)> + [2] #228.1.1.num.int <200 (0xc8)> + [3] #226.1.1.num.int <100 (0x64)> + [4] #225.1.1.num.int <200 (0xc8)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.int <1 (0x1)> + [1] #230.1.1.num.int <4 (0x4)> + [2] #229.1.1.num.int <200 (0xc8)> + [3] #228.1.1.num.int <200 (0xc8)> + [4] #226.1.1.num.int <100 (0x64)> + [5] #225.1.1.num.int <200 (0xc8)> +IP: #196:0x9, type 8, 10[4] +GC: --#231.1.1.num.int +GC: --#230.1.1.num.int +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <200 (0xc8)> + [1] #226.1.1.num.int <100 (0x64)> + [2] #225.1.1.num.int <200 (0xc8)> + [3] #229.1.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#228.1.1.num.int +GC: --#226.1.1.num.int +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.num.int <300 (0x12c)> + [1] #225.1.1.num.int <200 (0xc8)> + [2] #229.1.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.1.1.num.int <3 (0x3)> + [1] #232.1.1.num.int <300 (0x12c)> + [2] #225.1.1.num.int <200 (0xc8)> + [3] #229.1.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.1.1.num.int <1 (0x1)> + [1] #233.1.1.num.int <3 (0x3)> + [2] #232.1.1.num.int <300 (0x12c)> + [3] #225.1.1.num.int <200 (0xc8)> + [4] #229.1.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#234.1.1.num.int +GC: --#233.1.1.num.int +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <200 (0xc8)> + [1] #229.1.1.num.int <200 (0xc8)> + [2] #232.1.1.num.int <300 (0x12c)> +IP: #196:0x19, type 8, 26[3] +GC: --#225.1.1.num.int +GC: --#229.1.1.num.int +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.num.int <400 (0x190)> + [1] #232.1.1.num.int <300 (0x12c)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.num.int <300 (0x12c)> + [1] #235.1.1.num.int <400 (0x190)> +IP: #196:0x22, type 8, 35[6] +GC: --#232.1.1.num.int +GC: --#235.1.1.num.int +== backtrace == + [0] #227.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#227.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xa1, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.1.1.num.int <200 (0xc8)> +IP: #186:0xa4, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.1.1.num.int <200 (0xc8)> + [1] #236.1.1.num.int <200 (0xc8)> +IP: #186:0xa7, type 8, 168[6] +GC: --#237.1.1.num.int +GC: --#236.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xae, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <200 (0xc8)> +IP: #186:0xb1, type 1, 160 (0xa0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.num.int <160 (0xa0)> + [1] #238.1.1.num.int <200 (0xc8)> +IP: #186:0xb4, type 8, 181[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.1.1.num.int <160 (0xa0)> + [1] #238.1.1.num.int <200 (0xc8)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.1.1.num.int <200 (0xc8)> + [1] #241.1.1.num.int <200 (0xc8)> + [2] #239.1.1.num.int <160 (0xa0)> + [3] #238.1.1.num.int <200 (0xc8)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.1.1.num.int <4 (0x4)> + [1] #242.1.1.num.int <200 (0xc8)> + [2] #241.1.1.num.int <200 (0xc8)> + [3] #239.1.1.num.int <160 (0xa0)> + [4] #238.1.1.num.int <200 (0xc8)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.1.1.num.int <1 (0x1)> + [1] #243.1.1.num.int <4 (0x4)> + [2] #242.1.1.num.int <200 (0xc8)> + [3] #241.1.1.num.int <200 (0xc8)> + [4] #239.1.1.num.int <160 (0xa0)> + [5] #238.1.1.num.int <200 (0xc8)> +IP: #196:0x9, type 8, 10[4] +GC: --#244.1.1.num.int +GC: --#243.1.1.num.int +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.1.1.num.int <200 (0xc8)> + [1] #239.1.1.num.int <160 (0xa0)> + [2] #238.1.1.num.int <200 (0xc8)> + [3] #242.1.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#241.1.1.num.int +GC: --#239.1.1.num.int +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.num.int <360 (0x168)> + [1] #238.1.1.num.int <200 (0xc8)> + [2] #242.1.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.1.1.num.int <3 (0x3)> + [1] #245.1.1.num.int <360 (0x168)> + [2] #238.1.1.num.int <200 (0xc8)> + [3] #242.1.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.1.1.num.int <1 (0x1)> + [1] #246.1.1.num.int <3 (0x3)> + [2] #245.1.1.num.int <360 (0x168)> + [3] #238.1.1.num.int <200 (0xc8)> + [4] #242.1.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#247.1.1.num.int +GC: --#246.1.1.num.int +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.1.1.num.int <200 (0xc8)> + [1] #242.1.1.num.int <200 (0xc8)> + [2] #245.1.1.num.int <360 (0x168)> +IP: #196:0x19, type 8, 26[3] +GC: --#238.1.1.num.int +GC: --#242.1.1.num.int +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #248.1.1.num.int <400 (0x190)> + [1] #245.1.1.num.int <360 (0x168)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.1.1.num.int <360 (0x168)> + [1] #248.1.1.num.int <400 (0x190)> +IP: #196:0x22, type 8, 35[6] +GC: --#245.1.1.num.int +GC: --#248.1.1.num.int +== backtrace == + [0] #240.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#240.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xb6, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #249.1.1.num.int <200 (0xc8)> +IP: #186:0xb9, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #250.1.1.num.int <200 (0xc8)> + [1] #249.1.1.num.int <200 (0xc8)> +IP: #186:0xbc, type 8, 189[6] +GC: --#250.1.1.num.int +GC: --#249.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xc3, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #251.1.1.num.int <200 (0xc8)> +IP: #186:0xc6, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #252.1.1.num.int <200 (0xc8)> + [1] #251.1.1.num.int <200 (0xc8)> +IP: #186:0xc9, type 8, 202[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #252.1.1.num.int <200 (0xc8)> + [1] #251.1.1.num.int <200 (0xc8)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.1.1.num.int <200 (0xc8)> + [1] #254.1.1.num.int <200 (0xc8)> + [2] #252.1.1.num.int <200 (0xc8)> + [3] #251.1.1.num.int <200 (0xc8)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.1.1.num.int <4 (0x4)> + [1] #255.1.1.num.int <200 (0xc8)> + [2] #254.1.1.num.int <200 (0xc8)> + [3] #252.1.1.num.int <200 (0xc8)> + [4] #251.1.1.num.int <200 (0xc8)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #257.1.1.num.int <1 (0x1)> + [1] #256.1.1.num.int <4 (0x4)> + [2] #255.1.1.num.int <200 (0xc8)> + [3] #254.1.1.num.int <200 (0xc8)> + [4] #252.1.1.num.int <200 (0xc8)> + [5] #251.1.1.num.int <200 (0xc8)> +IP: #196:0x9, type 8, 10[4] +GC: --#257.1.1.num.int +GC: --#256.1.1.num.int +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #254.1.1.num.int <200 (0xc8)> + [1] #252.1.1.num.int <200 (0xc8)> + [2] #251.1.1.num.int <200 (0xc8)> + [3] #255.1.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#254.1.1.num.int +GC: --#252.1.1.num.int +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.2.1.num.int <400 (0x190)> + [1] #251.1.1.num.int <200 (0xc8)> + [2] #255.1.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.2.1.num.int <3 (0x3)> + [1] #189.2.1.num.int <400 (0x190)> + [2] #251.1.1.num.int <200 (0xc8)> + [3] #255.1.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.2.1.num.int <1 (0x1)> + [1] #190.2.1.num.int <3 (0x3)> + [2] #189.2.1.num.int <400 (0x190)> + [3] #251.1.1.num.int <200 (0xc8)> + [4] #255.1.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#191.2.1.num.int +GC: --#190.2.1.num.int +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #251.1.1.num.int <200 (0xc8)> + [1] #255.1.1.num.int <200 (0xc8)> + [2] #189.2.1.num.int <400 (0x190)> +IP: #196:0x19, type 8, 26[3] +GC: --#251.1.1.num.int +GC: --#255.1.1.num.int +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.2.1.num.int <400 (0x190)> + [1] #189.2.1.num.int <400 (0x190)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.2.1.num.int <400 (0x190)> + [1] #192.2.1.num.int <400 (0x190)> +IP: #196:0x22, type 8, 35[6] +GC: --#189.2.1.num.int +GC: --#192.2.1.num.int +== backtrace == + [0] #253.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#253.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xcb, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.2.1.num.int <200 (0xc8)> +IP: #186:0xce, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.2.1.num.int <200 (0xc8)> + [1] #194.2.1.num.int <200 (0xc8)> +IP: #186:0xd1, type 8, 210[6] +GC: --#197.2.1.num.int +GC: --#194.2.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xd8, type 1, 160 (0xa0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.2.1.num.int <160 (0xa0)> +IP: #186:0xdb, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.2.1.num.int <200 (0xc8)> + [1] #198.2.1.num.int <160 (0xa0)> +IP: #186:0xde, type 8, 223[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.2.1.num.int <200 (0xc8)> + [1] #198.2.1.num.int <160 (0xa0)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.2.1.num.int <200 (0xc8)> + [1] #201.2.1.num.int <200 (0xc8)> + [2] #199.2.1.num.int <200 (0xc8)> + [3] #198.2.1.num.int <160 (0xa0)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.2.1.num.int <4 (0x4)> + [1] #202.2.1.num.int <200 (0xc8)> + [2] #201.2.1.num.int <200 (0xc8)> + [3] #199.2.1.num.int <200 (0xc8)> + [4] #198.2.1.num.int <160 (0xa0)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.2.1.num.int <1 (0x1)> + [1] #203.2.1.num.int <4 (0x4)> + [2] #202.2.1.num.int <200 (0xc8)> + [3] #201.2.1.num.int <200 (0xc8)> + [4] #199.2.1.num.int <200 (0xc8)> + [5] #198.2.1.num.int <160 (0xa0)> +IP: #196:0x9, type 8, 10[4] +GC: --#204.2.1.num.int +GC: --#203.2.1.num.int +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.2.1.num.int <200 (0xc8)> + [1] #199.2.1.num.int <200 (0xc8)> + [2] #198.2.1.num.int <160 (0xa0)> + [3] #202.2.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#201.2.1.num.int +GC: --#199.2.1.num.int +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.2.1.num.int <400 (0x190)> + [1] #198.2.1.num.int <160 (0xa0)> + [2] #202.2.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.2.1.num.int <3 (0x3)> + [1] #205.2.1.num.int <400 (0x190)> + [2] #198.2.1.num.int <160 (0xa0)> + [3] #202.2.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.2.1.num.int <1 (0x1)> + [1] #206.2.1.num.int <3 (0x3)> + [2] #205.2.1.num.int <400 (0x190)> + [3] #198.2.1.num.int <160 (0xa0)> + [4] #202.2.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#207.2.1.num.int +GC: --#206.2.1.num.int +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.2.1.num.int <160 (0xa0)> + [1] #202.2.1.num.int <200 (0xc8)> + [2] #205.2.1.num.int <400 (0x190)> +IP: #196:0x19, type 8, 26[3] +GC: --#198.2.1.num.int +GC: --#202.2.1.num.int +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.2.1.num.int <360 (0x168)> + [1] #205.2.1.num.int <400 (0x190)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.2.1.num.int <400 (0x190)> + [1] #208.2.1.num.int <360 (0x168)> +IP: #196:0x22, type 8, 35[6] +GC: --#205.2.1.num.int +GC: --#208.2.1.num.int +== backtrace == + [0] #200.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#200.2.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xe0, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.2.1.num.int <200 (0xc8)> +IP: #186:0xe3, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.2.1.num.int <200 (0xc8)> + [1] #209.2.1.num.int <200 (0xc8)> +IP: #186:0xe6, type 8, 231[6] +GC: --#210.2.1.num.int +GC: --#209.2.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xed, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.2.1.num.int <100 (0x64)> +IP: #186:0xef, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.2.1.num.int <200 (0xc8)> + [1] #211.2.1.num.int <100 (0x64)> +IP: #186:0xf2, type 8, 243[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.2.1.num.int <200 (0xc8)> + [1] #211.2.1.num.int <100 (0x64)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.2.1.num.int <200 (0xc8)> + [1] #214.2.1.num.int <200 (0xc8)> + [2] #212.2.1.num.int <200 (0xc8)> + [3] #211.2.1.num.int <100 (0x64)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.2.1.num.int <4 (0x4)> + [1] #215.2.1.num.int <200 (0xc8)> + [2] #214.2.1.num.int <200 (0xc8)> + [3] #212.2.1.num.int <200 (0xc8)> + [4] #211.2.1.num.int <100 (0x64)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.2.1.num.int <1 (0x1)> + [1] #216.2.1.num.int <4 (0x4)> + [2] #215.2.1.num.int <200 (0xc8)> + [3] #214.2.1.num.int <200 (0xc8)> + [4] #212.2.1.num.int <200 (0xc8)> + [5] #211.2.1.num.int <100 (0x64)> +IP: #196:0x9, type 8, 10[4] +GC: --#217.2.1.num.int +GC: --#216.2.1.num.int +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.2.1.num.int <200 (0xc8)> + [1] #212.2.1.num.int <200 (0xc8)> + [2] #211.2.1.num.int <100 (0x64)> + [3] #215.2.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#214.2.1.num.int +GC: --#212.2.1.num.int +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.2.1.num.int <400 (0x190)> + [1] #211.2.1.num.int <100 (0x64)> + [2] #215.2.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.2.1.num.int <3 (0x3)> + [1] #218.2.1.num.int <400 (0x190)> + [2] #211.2.1.num.int <100 (0x64)> + [3] #215.2.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.2.1.num.int <1 (0x1)> + [1] #219.2.1.num.int <3 (0x3)> + [2] #218.2.1.num.int <400 (0x190)> + [3] #211.2.1.num.int <100 (0x64)> + [4] #215.2.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#220.2.1.num.int +GC: --#219.2.1.num.int +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.2.1.num.int <100 (0x64)> + [1] #215.2.1.num.int <200 (0xc8)> + [2] #218.2.1.num.int <400 (0x190)> +IP: #196:0x19, type 8, 26[3] +GC: --#211.2.1.num.int +GC: --#215.2.1.num.int +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.2.1.num.int <300 (0x12c)> + [1] #218.2.1.num.int <400 (0x190)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.2.1.num.int <400 (0x190)> + [1] #221.2.1.num.int <300 (0x12c)> +IP: #196:0x22, type 8, 35[6] +GC: --#218.2.1.num.int +GC: --#221.2.1.num.int +== backtrace == + [0] #213.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#213.2.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xf4, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.2.1.num.int <200 (0xc8)> +IP: #186:0xf7, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.2.1.num.int <200 (0xc8)> + [1] #222.2.1.num.int <200 (0xc8)> +IP: #186:0xfa, type 8, 251[6] +GC: --#223.2.1.num.int +GC: --#222.2.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x101, type 1, 60 (0x3c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.2.1.num.int <60 (0x3c)> +IP: #186:0x103, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.2.1.num.int <200 (0xc8)> + [1] #224.2.1.num.int <60 (0x3c)> +IP: #186:0x106, type 8, 263[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.2.1.num.int <200 (0xc8)> + [1] #224.2.1.num.int <60 (0x3c)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.2.1.num.int <200 (0xc8)> + [1] #227.2.1.num.int <200 (0xc8)> + [2] #225.2.1.num.int <200 (0xc8)> + [3] #224.2.1.num.int <60 (0x3c)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.2.1.num.int <4 (0x4)> + [1] #228.2.1.num.int <200 (0xc8)> + [2] #227.2.1.num.int <200 (0xc8)> + [3] #225.2.1.num.int <200 (0xc8)> + [4] #224.2.1.num.int <60 (0x3c)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.2.1.num.int <1 (0x1)> + [1] #229.2.1.num.int <4 (0x4)> + [2] #228.2.1.num.int <200 (0xc8)> + [3] #227.2.1.num.int <200 (0xc8)> + [4] #225.2.1.num.int <200 (0xc8)> + [5] #224.2.1.num.int <60 (0x3c)> +IP: #196:0x9, type 8, 10[4] +GC: --#230.2.1.num.int +GC: --#229.2.1.num.int +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.2.1.num.int <200 (0xc8)> + [1] #225.2.1.num.int <200 (0xc8)> + [2] #224.2.1.num.int <60 (0x3c)> + [3] #228.2.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#227.2.1.num.int +GC: --#225.2.1.num.int +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.2.1.num.int <400 (0x190)> + [1] #224.2.1.num.int <60 (0x3c)> + [2] #228.2.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.2.1.num.int <3 (0x3)> + [1] #231.2.1.num.int <400 (0x190)> + [2] #224.2.1.num.int <60 (0x3c)> + [3] #228.2.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.2.1.num.int <1 (0x1)> + [1] #232.2.1.num.int <3 (0x3)> + [2] #231.2.1.num.int <400 (0x190)> + [3] #224.2.1.num.int <60 (0x3c)> + [4] #228.2.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#233.2.1.num.int +GC: --#232.2.1.num.int +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.2.1.num.int <60 (0x3c)> + [1] #228.2.1.num.int <200 (0xc8)> + [2] #231.2.1.num.int <400 (0x190)> +IP: #196:0x19, type 8, 26[3] +GC: --#224.2.1.num.int +GC: --#228.2.1.num.int +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.2.1.num.int <260 (0x104)> + [1] #231.2.1.num.int <400 (0x190)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.2.1.num.int <400 (0x190)> + [1] #234.2.1.num.int <260 (0x104)> +IP: #196:0x22, type 8, 35[6] +GC: --#231.2.1.num.int +GC: --#234.2.1.num.int +== backtrace == + [0] #226.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#226.2.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x108, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.2.1.num.int <200 (0xc8)> +IP: #186:0x10b, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.2.1.num.int <200 (0xc8)> + [1] #235.2.1.num.int <200 (0xc8)> +IP: #186:0x10e, type 8, 271[6] +GC: --#236.2.1.num.int +GC: --#235.2.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x115, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.2.1.num.int <0 (0x0)> +IP: #186:0x116, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.2.1.num.int <200 (0xc8)> + [1] #237.2.1.num.int <0 (0x0)> +IP: #186:0x119, type 8, 282[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.2.1.num.int <200 (0xc8)> + [1] #237.2.1.num.int <0 (0x0)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.2.1.num.int <200 (0xc8)> + [1] #240.2.1.num.int <200 (0xc8)> + [2] #238.2.1.num.int <200 (0xc8)> + [3] #237.2.1.num.int <0 (0x0)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.2.1.num.int <4 (0x4)> + [1] #241.2.1.num.int <200 (0xc8)> + [2] #240.2.1.num.int <200 (0xc8)> + [3] #238.2.1.num.int <200 (0xc8)> + [4] #237.2.1.num.int <0 (0x0)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.2.1.num.int <1 (0x1)> + [1] #242.2.1.num.int <4 (0x4)> + [2] #241.2.1.num.int <200 (0xc8)> + [3] #240.2.1.num.int <200 (0xc8)> + [4] #238.2.1.num.int <200 (0xc8)> + [5] #237.2.1.num.int <0 (0x0)> +IP: #196:0x9, type 8, 10[4] +GC: --#243.2.1.num.int +GC: --#242.2.1.num.int +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.2.1.num.int <200 (0xc8)> + [1] #238.2.1.num.int <200 (0xc8)> + [2] #237.2.1.num.int <0 (0x0)> + [3] #241.2.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#240.2.1.num.int +GC: --#238.2.1.num.int +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.2.1.num.int <400 (0x190)> + [1] #237.2.1.num.int <0 (0x0)> + [2] #241.2.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.2.1.num.int <3 (0x3)> + [1] #244.2.1.num.int <400 (0x190)> + [2] #237.2.1.num.int <0 (0x0)> + [3] #241.2.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.2.1.num.int <1 (0x1)> + [1] #245.2.1.num.int <3 (0x3)> + [2] #244.2.1.num.int <400 (0x190)> + [3] #237.2.1.num.int <0 (0x0)> + [4] #241.2.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#246.2.1.num.int +GC: --#245.2.1.num.int +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.2.1.num.int <0 (0x0)> + [1] #241.2.1.num.int <200 (0xc8)> + [2] #244.2.1.num.int <400 (0x190)> +IP: #196:0x19, type 8, 26[3] +GC: --#237.2.1.num.int +GC: --#241.2.1.num.int +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.2.1.num.int <200 (0xc8)> + [1] #244.2.1.num.int <400 (0x190)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.2.1.num.int <400 (0x190)> + [1] #247.2.1.num.int <200 (0xc8)> +IP: #196:0x22, type 8, 35[6] +GC: --#244.2.1.num.int +GC: --#247.2.1.num.int +== backtrace == + [0] #239.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#239.2.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x11b, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #248.2.1.num.int <200 (0xc8)> +IP: #186:0x11e, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #249.2.1.num.int <200 (0xc8)> + [1] #248.2.1.num.int <200 (0xc8)> +IP: #186:0x121, type 8, 290[6] +GC: --#249.2.1.num.int +GC: --#248.2.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x128, type 1, -60 (0xffffffffffffffc4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #250.2.1.num.int <-60 (0xffffffffffffffc4)> +IP: #186:0x12a, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #251.2.1.num.int <200 (0xc8)> + [1] #250.2.1.num.int <-60 (0xffffffffffffffc4)> +IP: #186:0x12d, type 8, 302[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #251.2.1.num.int <200 (0xc8)> + [1] #250.2.1.num.int <-60 (0xffffffffffffffc4)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #254.2.1.num.int <200 (0xc8)> + [1] #253.2.1.num.int <200 (0xc8)> + [2] #251.2.1.num.int <200 (0xc8)> + [3] #250.2.1.num.int <-60 (0xffffffffffffffc4)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.2.1.num.int <4 (0x4)> + [1] #254.2.1.num.int <200 (0xc8)> + [2] #253.2.1.num.int <200 (0xc8)> + [3] #251.2.1.num.int <200 (0xc8)> + [4] #250.2.1.num.int <-60 (0xffffffffffffffc4)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.2.1.num.int <1 (0x1)> + [1] #255.2.1.num.int <4 (0x4)> + [2] #254.2.1.num.int <200 (0xc8)> + [3] #253.2.1.num.int <200 (0xc8)> + [4] #251.2.1.num.int <200 (0xc8)> + [5] #250.2.1.num.int <-60 (0xffffffffffffffc4)> +IP: #196:0x9, type 8, 10[4] +GC: --#256.2.1.num.int +GC: --#255.2.1.num.int +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #253.2.1.num.int <200 (0xc8)> + [1] #251.2.1.num.int <200 (0xc8)> + [2] #250.2.1.num.int <-60 (0xffffffffffffffc4)> + [3] #254.2.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#253.2.1.num.int +GC: --#251.2.1.num.int +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #257.2.1.num.int <400 (0x190)> + [1] #250.2.1.num.int <-60 (0xffffffffffffffc4)> + [2] #254.2.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.3.1.num.int <3 (0x3)> + [1] #257.2.1.num.int <400 (0x190)> + [2] #250.2.1.num.int <-60 (0xffffffffffffffc4)> + [3] #254.2.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.3.1.num.int <1 (0x1)> + [1] #189.3.1.num.int <3 (0x3)> + [2] #257.2.1.num.int <400 (0x190)> + [3] #250.2.1.num.int <-60 (0xffffffffffffffc4)> + [4] #254.2.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#190.3.1.num.int +GC: --#189.3.1.num.int +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #250.2.1.num.int <-60 (0xffffffffffffffc4)> + [1] #254.2.1.num.int <200 (0xc8)> + [2] #257.2.1.num.int <400 (0x190)> +IP: #196:0x19, type 8, 26[3] +GC: --#250.2.1.num.int +GC: --#254.2.1.num.int +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.3.1.num.int <140 (0x8c)> + [1] #257.2.1.num.int <400 (0x190)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #257.2.1.num.int <400 (0x190)> + [1] #191.3.1.num.int <140 (0x8c)> +IP: #196:0x22, type 8, 35[6] +GC: --#257.2.1.num.int +GC: --#191.3.1.num.int +== backtrace == + [0] #252.2.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#252.2.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x12f, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.3.1.num.int <200 (0xc8)> +IP: #186:0x132, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.3.1.num.int <200 (0xc8)> + [1] #192.3.1.num.int <200 (0xc8)> +IP: #186:0x135, type 8, 310[6] +GC: --#194.3.1.num.int +GC: --#192.3.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x13c, type 1, -100 (0xffffffffffffff9c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.3.1.num.int <-100 (0xffffffffffffff9c)> +IP: #186:0x13e, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.3.1.num.int <200 (0xc8)> + [1] #197.3.1.num.int <-100 (0xffffffffffffff9c)> +IP: #186:0x141, type 8, 322[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.3.1.num.int <200 (0xc8)> + [1] #197.3.1.num.int <-100 (0xffffffffffffff9c)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.3.1.num.int <200 (0xc8)> + [1] #200.3.1.num.int <200 (0xc8)> + [2] #198.3.1.num.int <200 (0xc8)> + [3] #197.3.1.num.int <-100 (0xffffffffffffff9c)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.3.1.num.int <4 (0x4)> + [1] #201.3.1.num.int <200 (0xc8)> + [2] #200.3.1.num.int <200 (0xc8)> + [3] #198.3.1.num.int <200 (0xc8)> + [4] #197.3.1.num.int <-100 (0xffffffffffffff9c)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.3.1.num.int <1 (0x1)> + [1] #202.3.1.num.int <4 (0x4)> + [2] #201.3.1.num.int <200 (0xc8)> + [3] #200.3.1.num.int <200 (0xc8)> + [4] #198.3.1.num.int <200 (0xc8)> + [5] #197.3.1.num.int <-100 (0xffffffffffffff9c)> +IP: #196:0x9, type 8, 10[4] +GC: --#203.3.1.num.int +GC: --#202.3.1.num.int +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.3.1.num.int <200 (0xc8)> + [1] #198.3.1.num.int <200 (0xc8)> + [2] #197.3.1.num.int <-100 (0xffffffffffffff9c)> + [3] #201.3.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#200.3.1.num.int +GC: --#198.3.1.num.int +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.3.1.num.int <400 (0x190)> + [1] #197.3.1.num.int <-100 (0xffffffffffffff9c)> + [2] #201.3.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.3.1.num.int <3 (0x3)> + [1] #204.3.1.num.int <400 (0x190)> + [2] #197.3.1.num.int <-100 (0xffffffffffffff9c)> + [3] #201.3.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.3.1.num.int <1 (0x1)> + [1] #205.3.1.num.int <3 (0x3)> + [2] #204.3.1.num.int <400 (0x190)> + [3] #197.3.1.num.int <-100 (0xffffffffffffff9c)> + [4] #201.3.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#206.3.1.num.int +GC: --#205.3.1.num.int +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.3.1.num.int <-100 (0xffffffffffffff9c)> + [1] #201.3.1.num.int <200 (0xc8)> + [2] #204.3.1.num.int <400 (0x190)> +IP: #196:0x19, type 8, 26[3] +GC: --#197.3.1.num.int +GC: --#201.3.1.num.int +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.3.1.num.int <100 (0x64)> + [1] #204.3.1.num.int <400 (0x190)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.3.1.num.int <400 (0x190)> + [1] #207.3.1.num.int <100 (0x64)> +IP: #196:0x22, type 8, 35[6] +GC: --#204.3.1.num.int +GC: --#207.3.1.num.int +== backtrace == + [0] #199.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#199.3.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x143, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.3.1.num.int <200 (0xc8)> +IP: #186:0x146, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.3.1.num.int <200 (0xc8)> + [1] #208.3.1.num.int <200 (0xc8)> +IP: #186:0x149, type 8, 330[6] +GC: --#209.3.1.num.int +GC: --#208.3.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x150, type 1, -160 (0xffffffffffffff60) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.3.1.num.int <-160 (0xffffffffffffff60)> +IP: #186:0x153, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.3.1.num.int <200 (0xc8)> + [1] #210.3.1.num.int <-160 (0xffffffffffffff60)> +IP: #186:0x156, type 8, 343[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.3.1.num.int <200 (0xc8)> + [1] #210.3.1.num.int <-160 (0xffffffffffffff60)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.3.1.num.int <200 (0xc8)> + [1] #213.3.1.num.int <200 (0xc8)> + [2] #211.3.1.num.int <200 (0xc8)> + [3] #210.3.1.num.int <-160 (0xffffffffffffff60)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.3.1.num.int <4 (0x4)> + [1] #214.3.1.num.int <200 (0xc8)> + [2] #213.3.1.num.int <200 (0xc8)> + [3] #211.3.1.num.int <200 (0xc8)> + [4] #210.3.1.num.int <-160 (0xffffffffffffff60)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.3.1.num.int <1 (0x1)> + [1] #215.3.1.num.int <4 (0x4)> + [2] #214.3.1.num.int <200 (0xc8)> + [3] #213.3.1.num.int <200 (0xc8)> + [4] #211.3.1.num.int <200 (0xc8)> + [5] #210.3.1.num.int <-160 (0xffffffffffffff60)> +IP: #196:0x9, type 8, 10[4] +GC: --#216.3.1.num.int +GC: --#215.3.1.num.int +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.3.1.num.int <200 (0xc8)> + [1] #211.3.1.num.int <200 (0xc8)> + [2] #210.3.1.num.int <-160 (0xffffffffffffff60)> + [3] #214.3.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#213.3.1.num.int +GC: --#211.3.1.num.int +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.3.1.num.int <400 (0x190)> + [1] #210.3.1.num.int <-160 (0xffffffffffffff60)> + [2] #214.3.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.3.1.num.int <3 (0x3)> + [1] #217.3.1.num.int <400 (0x190)> + [2] #210.3.1.num.int <-160 (0xffffffffffffff60)> + [3] #214.3.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.3.1.num.int <1 (0x1)> + [1] #218.3.1.num.int <3 (0x3)> + [2] #217.3.1.num.int <400 (0x190)> + [3] #210.3.1.num.int <-160 (0xffffffffffffff60)> + [4] #214.3.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#219.3.1.num.int +GC: --#218.3.1.num.int +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.3.1.num.int <-160 (0xffffffffffffff60)> + [1] #214.3.1.num.int <200 (0xc8)> + [2] #217.3.1.num.int <400 (0x190)> +IP: #196:0x19, type 8, 26[3] +GC: --#210.3.1.num.int +GC: --#214.3.1.num.int +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.3.1.num.int <40 (0x28)> + [1] #217.3.1.num.int <400 (0x190)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.3.1.num.int <400 (0x190)> + [1] #220.3.1.num.int <40 (0x28)> +IP: #196:0x22, type 8, 35[6] +GC: --#217.3.1.num.int +GC: --#220.3.1.num.int +== backtrace == + [0] #212.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#212.3.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x158, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.3.1.num.int <200 (0xc8)> +IP: #186:0x15b, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.3.1.num.int <200 (0xc8)> + [1] #221.3.1.num.int <200 (0xc8)> +IP: #186:0x15e, type 8, 351[6] +GC: --#222.3.1.num.int +GC: --#221.3.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x165, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x168, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.3.1.num.int <200 (0xc8)> + [1] #223.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x16b, type 8, 364[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.3.1.num.int <200 (0xc8)> + [1] #223.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.3.1.num.int <200 (0xc8)> + [1] #226.3.1.num.int <200 (0xc8)> + [2] #224.3.1.num.int <200 (0xc8)> + [3] #223.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.3.1.num.int <4 (0x4)> + [1] #227.3.1.num.int <200 (0xc8)> + [2] #226.3.1.num.int <200 (0xc8)> + [3] #224.3.1.num.int <200 (0xc8)> + [4] #223.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.3.1.num.int <1 (0x1)> + [1] #228.3.1.num.int <4 (0x4)> + [2] #227.3.1.num.int <200 (0xc8)> + [3] #226.3.1.num.int <200 (0xc8)> + [4] #224.3.1.num.int <200 (0xc8)> + [5] #223.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x9, type 8, 10[4] +GC: --#229.3.1.num.int +GC: --#228.3.1.num.int +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.3.1.num.int <200 (0xc8)> + [1] #224.3.1.num.int <200 (0xc8)> + [2] #223.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #227.3.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#226.3.1.num.int +GC: --#224.3.1.num.int +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.3.1.num.int <400 (0x190)> + [1] #223.3.1.num.int <-200 (0xffffffffffffff38)> + [2] #227.3.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.3.1.num.int <3 (0x3)> + [1] #230.3.1.num.int <400 (0x190)> + [2] #223.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #227.3.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.3.1.num.int <1 (0x1)> + [1] #231.3.1.num.int <3 (0x3)> + [2] #230.3.1.num.int <400 (0x190)> + [3] #223.3.1.num.int <-200 (0xffffffffffffff38)> + [4] #227.3.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#232.3.1.num.int +GC: --#231.3.1.num.int +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.3.1.num.int <-200 (0xffffffffffffff38)> + [1] #227.3.1.num.int <200 (0xc8)> + [2] #230.3.1.num.int <400 (0x190)> +IP: #196:0x19, type 8, 26[3] +GC: --#223.3.1.num.int +GC: --#227.3.1.num.int +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.3.1.num.int <0 (0x0)> + [1] #230.3.1.num.int <400 (0x190)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.3.1.num.int <400 (0x190)> + [1] #233.3.1.num.int <0 (0x0)> +IP: #196:0x22, type 8, 35[6] +GC: --#230.3.1.num.int +GC: --#233.3.1.num.int +== backtrace == + [0] #225.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#225.3.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x16d, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.3.1.num.int <200 (0xc8)> +IP: #186:0x170, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.3.1.num.int <200 (0xc8)> + [1] #234.3.1.num.int <200 (0xc8)> +IP: #186:0x173, type 8, 372[6] +GC: --#235.3.1.num.int +GC: --#234.3.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x17a, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x17d, type 1, 160 (0xa0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.3.1.num.int <160 (0xa0)> + [1] #236.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x180, type 8, 385[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.3.1.num.int <160 (0xa0)> + [1] #236.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.3.1.num.int <200 (0xc8)> + [1] #239.3.1.num.int <200 (0xc8)> + [2] #237.3.1.num.int <160 (0xa0)> + [3] #236.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.3.1.num.int <4 (0x4)> + [1] #240.3.1.num.int <200 (0xc8)> + [2] #239.3.1.num.int <200 (0xc8)> + [3] #237.3.1.num.int <160 (0xa0)> + [4] #236.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.3.1.num.int <1 (0x1)> + [1] #241.3.1.num.int <4 (0x4)> + [2] #240.3.1.num.int <200 (0xc8)> + [3] #239.3.1.num.int <200 (0xc8)> + [4] #237.3.1.num.int <160 (0xa0)> + [5] #236.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x9, type 8, 10[4] +GC: --#242.3.1.num.int +GC: --#241.3.1.num.int +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.3.1.num.int <200 (0xc8)> + [1] #237.3.1.num.int <160 (0xa0)> + [2] #236.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #240.3.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#239.3.1.num.int +GC: --#237.3.1.num.int +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.3.1.num.int <360 (0x168)> + [1] #236.3.1.num.int <-200 (0xffffffffffffff38)> + [2] #240.3.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.3.1.num.int <3 (0x3)> + [1] #243.3.1.num.int <360 (0x168)> + [2] #236.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #240.3.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.3.1.num.int <1 (0x1)> + [1] #244.3.1.num.int <3 (0x3)> + [2] #243.3.1.num.int <360 (0x168)> + [3] #236.3.1.num.int <-200 (0xffffffffffffff38)> + [4] #240.3.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#245.3.1.num.int +GC: --#244.3.1.num.int +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.3.1.num.int <-200 (0xffffffffffffff38)> + [1] #240.3.1.num.int <200 (0xc8)> + [2] #243.3.1.num.int <360 (0x168)> +IP: #196:0x19, type 8, 26[3] +GC: --#236.3.1.num.int +GC: --#240.3.1.num.int +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.3.1.num.int <0 (0x0)> + [1] #243.3.1.num.int <360 (0x168)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.3.1.num.int <360 (0x168)> + [1] #246.3.1.num.int <0 (0x0)> +IP: #196:0x22, type 8, 35[6] +GC: --#243.3.1.num.int +GC: --#246.3.1.num.int +== backtrace == + [0] #238.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#238.3.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x182, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.3.1.num.int <200 (0xc8)> +IP: #186:0x185, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #248.3.1.num.int <200 (0xc8)> + [1] #247.3.1.num.int <200 (0xc8)> +IP: #186:0x188, type 8, 393[6] +GC: --#248.3.1.num.int +GC: --#247.3.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x18f, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #249.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x192, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #250.3.1.num.int <100 (0x64)> + [1] #249.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x194, type 8, 405[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #250.3.1.num.int <100 (0x64)> + [1] #249.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #253.3.1.num.int <200 (0xc8)> + [1] #252.3.1.num.int <200 (0xc8)> + [2] #250.3.1.num.int <100 (0x64)> + [3] #249.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #254.3.1.num.int <4 (0x4)> + [1] #253.3.1.num.int <200 (0xc8)> + [2] #252.3.1.num.int <200 (0xc8)> + [3] #250.3.1.num.int <100 (0x64)> + [4] #249.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.3.1.num.int <1 (0x1)> + [1] #254.3.1.num.int <4 (0x4)> + [2] #253.3.1.num.int <200 (0xc8)> + [3] #252.3.1.num.int <200 (0xc8)> + [4] #250.3.1.num.int <100 (0x64)> + [5] #249.3.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x9, type 8, 10[4] +GC: --#255.3.1.num.int +GC: --#254.3.1.num.int +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #252.3.1.num.int <200 (0xc8)> + [1] #250.3.1.num.int <100 (0x64)> + [2] #249.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #253.3.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#252.3.1.num.int +GC: --#250.3.1.num.int +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.3.1.num.int <300 (0x12c)> + [1] #249.3.1.num.int <-200 (0xffffffffffffff38)> + [2] #253.3.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #257.3.1.num.int <3 (0x3)> + [1] #256.3.1.num.int <300 (0x12c)> + [2] #249.3.1.num.int <-200 (0xffffffffffffff38)> + [3] #253.3.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.4.1.num.int <1 (0x1)> + [1] #257.3.1.num.int <3 (0x3)> + [2] #256.3.1.num.int <300 (0x12c)> + [3] #249.3.1.num.int <-200 (0xffffffffffffff38)> + [4] #253.3.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#189.4.1.num.int +GC: --#257.3.1.num.int +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #249.3.1.num.int <-200 (0xffffffffffffff38)> + [1] #253.3.1.num.int <200 (0xc8)> + [2] #256.3.1.num.int <300 (0x12c)> +IP: #196:0x19, type 8, 26[3] +GC: --#249.3.1.num.int +GC: --#253.3.1.num.int +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.4.1.num.int <0 (0x0)> + [1] #256.3.1.num.int <300 (0x12c)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.3.1.num.int <300 (0x12c)> + [1] #190.4.1.num.int <0 (0x0)> +IP: #196:0x22, type 8, 35[6] +GC: --#256.3.1.num.int +GC: --#190.4.1.num.int +== backtrace == + [0] #251.3.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#251.3.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x196, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.4.1.num.int <200 (0xc8)> +IP: #186:0x199, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.4.1.num.int <200 (0xc8)> + [1] #191.4.1.num.int <200 (0xc8)> +IP: #186:0x19c, type 8, 413[6] +GC: --#192.4.1.num.int +GC: --#191.4.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1a3, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x1a6, type 1, 60 (0x3c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.4.1.num.int <60 (0x3c)> + [1] #194.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x1a8, type 8, 425[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.4.1.num.int <60 (0x3c)> + [1] #194.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.4.1.num.int <200 (0xc8)> + [1] #199.4.1.num.int <200 (0xc8)> + [2] #197.4.1.num.int <60 (0x3c)> + [3] #194.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.4.1.num.int <4 (0x4)> + [1] #200.4.1.num.int <200 (0xc8)> + [2] #199.4.1.num.int <200 (0xc8)> + [3] #197.4.1.num.int <60 (0x3c)> + [4] #194.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.4.1.num.int <1 (0x1)> + [1] #201.4.1.num.int <4 (0x4)> + [2] #200.4.1.num.int <200 (0xc8)> + [3] #199.4.1.num.int <200 (0xc8)> + [4] #197.4.1.num.int <60 (0x3c)> + [5] #194.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x9, type 8, 10[4] +GC: --#202.4.1.num.int +GC: --#201.4.1.num.int +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.4.1.num.int <200 (0xc8)> + [1] #197.4.1.num.int <60 (0x3c)> + [2] #194.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #200.4.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#199.4.1.num.int +GC: --#197.4.1.num.int +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.4.1.num.int <260 (0x104)> + [1] #194.4.1.num.int <-200 (0xffffffffffffff38)> + [2] #200.4.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.4.1.num.int <3 (0x3)> + [1] #203.4.1.num.int <260 (0x104)> + [2] #194.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #200.4.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.4.1.num.int <1 (0x1)> + [1] #204.4.1.num.int <3 (0x3)> + [2] #203.4.1.num.int <260 (0x104)> + [3] #194.4.1.num.int <-200 (0xffffffffffffff38)> + [4] #200.4.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#205.4.1.num.int +GC: --#204.4.1.num.int +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.4.1.num.int <-200 (0xffffffffffffff38)> + [1] #200.4.1.num.int <200 (0xc8)> + [2] #203.4.1.num.int <260 (0x104)> +IP: #196:0x19, type 8, 26[3] +GC: --#194.4.1.num.int +GC: --#200.4.1.num.int +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.4.1.num.int <0 (0x0)> + [1] #203.4.1.num.int <260 (0x104)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.4.1.num.int <260 (0x104)> + [1] #206.4.1.num.int <0 (0x0)> +IP: #196:0x22, type 8, 35[6] +GC: --#203.4.1.num.int +GC: --#206.4.1.num.int +== backtrace == + [0] #198.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#198.4.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1aa, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.4.1.num.int <200 (0xc8)> +IP: #186:0x1ad, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.4.1.num.int <200 (0xc8)> + [1] #207.4.1.num.int <200 (0xc8)> +IP: #186:0x1b0, type 8, 433[6] +GC: --#208.4.1.num.int +GC: --#207.4.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1b7, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x1ba, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.4.1.num.int <0 (0x0)> + [1] #209.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x1bb, type 8, 444[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.4.1.num.int <0 (0x0)> + [1] #209.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.4.1.num.int <200 (0xc8)> + [1] #212.4.1.num.int <200 (0xc8)> + [2] #210.4.1.num.int <0 (0x0)> + [3] #209.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.4.1.num.int <4 (0x4)> + [1] #213.4.1.num.int <200 (0xc8)> + [2] #212.4.1.num.int <200 (0xc8)> + [3] #210.4.1.num.int <0 (0x0)> + [4] #209.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.4.1.num.int <1 (0x1)> + [1] #214.4.1.num.int <4 (0x4)> + [2] #213.4.1.num.int <200 (0xc8)> + [3] #212.4.1.num.int <200 (0xc8)> + [4] #210.4.1.num.int <0 (0x0)> + [5] #209.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x9, type 8, 10[4] +GC: --#215.4.1.num.int +GC: --#214.4.1.num.int +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.4.1.num.int <200 (0xc8)> + [1] #210.4.1.num.int <0 (0x0)> + [2] #209.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #213.4.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#212.4.1.num.int +GC: --#210.4.1.num.int +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.4.1.num.int <200 (0xc8)> + [1] #209.4.1.num.int <-200 (0xffffffffffffff38)> + [2] #213.4.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.4.1.num.int <3 (0x3)> + [1] #216.4.1.num.int <200 (0xc8)> + [2] #209.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #213.4.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.4.1.num.int <1 (0x1)> + [1] #217.4.1.num.int <3 (0x3)> + [2] #216.4.1.num.int <200 (0xc8)> + [3] #209.4.1.num.int <-200 (0xffffffffffffff38)> + [4] #213.4.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#218.4.1.num.int +GC: --#217.4.1.num.int +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.4.1.num.int <-200 (0xffffffffffffff38)> + [1] #213.4.1.num.int <200 (0xc8)> + [2] #216.4.1.num.int <200 (0xc8)> +IP: #196:0x19, type 8, 26[3] +GC: --#209.4.1.num.int +GC: --#213.4.1.num.int +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.4.1.num.int <0 (0x0)> + [1] #216.4.1.num.int <200 (0xc8)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.4.1.num.int <200 (0xc8)> + [1] #219.4.1.num.int <0 (0x0)> +IP: #196:0x22, type 8, 35[6] +GC: --#216.4.1.num.int +GC: --#219.4.1.num.int +== backtrace == + [0] #211.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#211.4.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1bd, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.4.1.num.int <200 (0xc8)> +IP: #186:0x1c0, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.4.1.num.int <200 (0xc8)> + [1] #220.4.1.num.int <200 (0xc8)> +IP: #186:0x1c3, type 8, 452[6] +GC: --#221.4.1.num.int +GC: --#220.4.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1ca, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x1cd, type 1, -60 (0xffffffffffffffc4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.4.1.num.int <-60 (0xffffffffffffffc4)> + [1] #222.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x1cf, type 8, 464[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.4.1.num.int <-60 (0xffffffffffffffc4)> + [1] #222.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.4.1.num.int <200 (0xc8)> + [1] #225.4.1.num.int <200 (0xc8)> + [2] #223.4.1.num.int <-60 (0xffffffffffffffc4)> + [3] #222.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.4.1.num.int <4 (0x4)> + [1] #226.4.1.num.int <200 (0xc8)> + [2] #225.4.1.num.int <200 (0xc8)> + [3] #223.4.1.num.int <-60 (0xffffffffffffffc4)> + [4] #222.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.4.1.num.int <1 (0x1)> + [1] #227.4.1.num.int <4 (0x4)> + [2] #226.4.1.num.int <200 (0xc8)> + [3] #225.4.1.num.int <200 (0xc8)> + [4] #223.4.1.num.int <-60 (0xffffffffffffffc4)> + [5] #222.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x9, type 8, 10[4] +GC: --#228.4.1.num.int +GC: --#227.4.1.num.int +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.4.1.num.int <200 (0xc8)> + [1] #223.4.1.num.int <-60 (0xffffffffffffffc4)> + [2] #222.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #226.4.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#225.4.1.num.int +GC: --#223.4.1.num.int +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.4.1.num.int <140 (0x8c)> + [1] #222.4.1.num.int <-200 (0xffffffffffffff38)> + [2] #226.4.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.4.1.num.int <3 (0x3)> + [1] #229.4.1.num.int <140 (0x8c)> + [2] #222.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #226.4.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.4.1.num.int <1 (0x1)> + [1] #230.4.1.num.int <3 (0x3)> + [2] #229.4.1.num.int <140 (0x8c)> + [3] #222.4.1.num.int <-200 (0xffffffffffffff38)> + [4] #226.4.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#231.4.1.num.int +GC: --#230.4.1.num.int +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.4.1.num.int <-200 (0xffffffffffffff38)> + [1] #226.4.1.num.int <200 (0xc8)> + [2] #229.4.1.num.int <140 (0x8c)> +IP: #196:0x19, type 8, 26[3] +GC: --#222.4.1.num.int +GC: --#226.4.1.num.int +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.4.1.num.int <0 (0x0)> + [1] #229.4.1.num.int <140 (0x8c)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.4.1.num.int <140 (0x8c)> + [1] #232.4.1.num.int <0 (0x0)> +IP: #196:0x22, type 8, 35[6] +GC: --#229.4.1.num.int +GC: --#232.4.1.num.int +== backtrace == + [0] #224.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#224.4.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1d1, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.4.1.num.int <200 (0xc8)> +IP: #186:0x1d4, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.4.1.num.int <200 (0xc8)> + [1] #233.4.1.num.int <200 (0xc8)> +IP: #186:0x1d7, type 8, 472[6] +GC: --#234.4.1.num.int +GC: --#233.4.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1de, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x1e1, type 1, -100 (0xffffffffffffff9c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.4.1.num.int <-100 (0xffffffffffffff9c)> + [1] #235.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x1e3, type 8, 484[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.4.1.num.int <-100 (0xffffffffffffff9c)> + [1] #235.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.4.1.num.int <200 (0xc8)> + [1] #238.4.1.num.int <200 (0xc8)> + [2] #236.4.1.num.int <-100 (0xffffffffffffff9c)> + [3] #235.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.4.1.num.int <4 (0x4)> + [1] #239.4.1.num.int <200 (0xc8)> + [2] #238.4.1.num.int <200 (0xc8)> + [3] #236.4.1.num.int <-100 (0xffffffffffffff9c)> + [4] #235.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.4.1.num.int <1 (0x1)> + [1] #240.4.1.num.int <4 (0x4)> + [2] #239.4.1.num.int <200 (0xc8)> + [3] #238.4.1.num.int <200 (0xc8)> + [4] #236.4.1.num.int <-100 (0xffffffffffffff9c)> + [5] #235.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x9, type 8, 10[4] +GC: --#241.4.1.num.int +GC: --#240.4.1.num.int +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.4.1.num.int <200 (0xc8)> + [1] #236.4.1.num.int <-100 (0xffffffffffffff9c)> + [2] #235.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #239.4.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#238.4.1.num.int +GC: --#236.4.1.num.int +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.4.1.num.int <100 (0x64)> + [1] #235.4.1.num.int <-200 (0xffffffffffffff38)> + [2] #239.4.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.4.1.num.int <3 (0x3)> + [1] #242.4.1.num.int <100 (0x64)> + [2] #235.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #239.4.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.4.1.num.int <1 (0x1)> + [1] #243.4.1.num.int <3 (0x3)> + [2] #242.4.1.num.int <100 (0x64)> + [3] #235.4.1.num.int <-200 (0xffffffffffffff38)> + [4] #239.4.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#244.4.1.num.int +GC: --#243.4.1.num.int +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.4.1.num.int <-200 (0xffffffffffffff38)> + [1] #239.4.1.num.int <200 (0xc8)> + [2] #242.4.1.num.int <100 (0x64)> +IP: #196:0x19, type 8, 26[3] +GC: --#235.4.1.num.int +GC: --#239.4.1.num.int +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.4.1.num.int <0 (0x0)> + [1] #242.4.1.num.int <100 (0x64)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.4.1.num.int <100 (0x64)> + [1] #245.4.1.num.int <0 (0x0)> +IP: #196:0x22, type 8, 35[6] +GC: --#242.4.1.num.int +GC: --#245.4.1.num.int +== backtrace == + [0] #237.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#237.4.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1e5, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.4.1.num.int <200 (0xc8)> +IP: #186:0x1e8, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.4.1.num.int <200 (0xc8)> + [1] #246.4.1.num.int <200 (0xc8)> +IP: #186:0x1eb, type 8, 492[6] +GC: --#247.4.1.num.int +GC: --#246.4.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1f2, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #248.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x1f5, type 1, -160 (0xffffffffffffff60) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #249.4.1.num.int <-160 (0xffffffffffffff60)> + [1] #248.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x1f8, type 8, 505[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #249.4.1.num.int <-160 (0xffffffffffffff60)> + [1] #248.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #252.4.1.num.int <200 (0xc8)> + [1] #251.4.1.num.int <200 (0xc8)> + [2] #249.4.1.num.int <-160 (0xffffffffffffff60)> + [3] #248.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #253.4.1.num.int <4 (0x4)> + [1] #252.4.1.num.int <200 (0xc8)> + [2] #251.4.1.num.int <200 (0xc8)> + [3] #249.4.1.num.int <-160 (0xffffffffffffff60)> + [4] #248.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #254.4.1.num.int <1 (0x1)> + [1] #253.4.1.num.int <4 (0x4)> + [2] #252.4.1.num.int <200 (0xc8)> + [3] #251.4.1.num.int <200 (0xc8)> + [4] #249.4.1.num.int <-160 (0xffffffffffffff60)> + [5] #248.4.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x9, type 8, 10[4] +GC: --#254.4.1.num.int +GC: --#253.4.1.num.int +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #251.4.1.num.int <200 (0xc8)> + [1] #249.4.1.num.int <-160 (0xffffffffffffff60)> + [2] #248.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #252.4.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#251.4.1.num.int +GC: --#249.4.1.num.int +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.4.1.num.int <40 (0x28)> + [1] #248.4.1.num.int <-200 (0xffffffffffffff38)> + [2] #252.4.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.4.1.num.int <3 (0x3)> + [1] #255.4.1.num.int <40 (0x28)> + [2] #248.4.1.num.int <-200 (0xffffffffffffff38)> + [3] #252.4.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #257.4.1.num.int <1 (0x1)> + [1] #256.4.1.num.int <3 (0x3)> + [2] #255.4.1.num.int <40 (0x28)> + [3] #248.4.1.num.int <-200 (0xffffffffffffff38)> + [4] #252.4.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#257.4.1.num.int +GC: --#256.4.1.num.int +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #248.4.1.num.int <-200 (0xffffffffffffff38)> + [1] #252.4.1.num.int <200 (0xc8)> + [2] #255.4.1.num.int <40 (0x28)> +IP: #196:0x19, type 8, 26[3] +GC: --#248.4.1.num.int +GC: --#252.4.1.num.int +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.5.1.num.int <0 (0x0)> + [1] #255.4.1.num.int <40 (0x28)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.4.1.num.int <40 (0x28)> + [1] #189.5.1.num.int <0 (0x0)> +IP: #196:0x22, type 8, 35[6] +GC: --#255.4.1.num.int +GC: --#189.5.1.num.int +== backtrace == + [0] #250.4.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#250.4.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x1fa, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.5.1.num.int <200 (0xc8)> +IP: #186:0x1fd, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.5.1.num.int <200 (0xc8)> + [1] #190.5.1.num.int <200 (0xc8)> +IP: #186:0x200, type 8, 513[6] +GC: --#191.5.1.num.int +GC: --#190.5.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x207, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.5.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x20a, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #192.5.1.num.int <-200 (0xffffffffffffff38)> +IP: #186:0x20d, type 8, 526[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #192.5.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.5.1.num.int <200 (0xc8)> + [1] #198.5.1.num.int <200 (0xc8)> + [2] #194.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #192.5.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.5.1.num.int <4 (0x4)> + [1] #199.5.1.num.int <200 (0xc8)> + [2] #198.5.1.num.int <200 (0xc8)> + [3] #194.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #192.5.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.5.1.num.int <1 (0x1)> + [1] #200.5.1.num.int <4 (0x4)> + [2] #199.5.1.num.int <200 (0xc8)> + [3] #198.5.1.num.int <200 (0xc8)> + [4] #194.5.1.num.int <-200 (0xffffffffffffff38)> + [5] #192.5.1.num.int <-200 (0xffffffffffffff38)> +IP: #196:0x9, type 8, 10[4] +GC: --#201.5.1.num.int +GC: --#200.5.1.num.int +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.5.1.num.int <200 (0xc8)> + [1] #194.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #192.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #199.5.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#198.5.1.num.int +GC: --#194.5.1.num.int +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.5.1.num.int <0 (0x0)> + [1] #192.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #199.5.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.5.1.num.int <3 (0x3)> + [1] #202.5.1.num.int <0 (0x0)> + [2] #192.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #199.5.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.5.1.num.int <1 (0x1)> + [1] #203.5.1.num.int <3 (0x3)> + [2] #202.5.1.num.int <0 (0x0)> + [3] #192.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #199.5.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#204.5.1.num.int +GC: --#203.5.1.num.int +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #199.5.1.num.int <200 (0xc8)> + [2] #202.5.1.num.int <0 (0x0)> +IP: #196:0x19, type 8, 26[3] +GC: --#192.5.1.num.int +GC: --#199.5.1.num.int +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.5.1.num.int <0 (0x0)> + [1] #202.5.1.num.int <0 (0x0)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.5.1.num.int <0 (0x0)> + [1] #205.5.1.num.int <0 (0x0)> +IP: #196:0x22, type 8, 35[6] +GC: --#202.5.1.num.int +GC: --#205.5.1.num.int +== backtrace == + [0] #197.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#197.5.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x20f, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.5.1.num.int <200 (0xc8)> +IP: #186:0x212, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.5.1.num.int <200 (0xc8)> + [1] #206.5.1.num.int <200 (0xc8)> +IP: #186:0x215, type 8, 534[6] +GC: --#207.5.1.num.int +GC: --#206.5.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x21c, type 1, -160 (0xffffffffffffff60) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.5.1.num.int <-160 (0xffffffffffffff60)> +IP: #186:0x21f, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #208.5.1.num.int <-160 (0xffffffffffffff60)> +IP: #186:0x222, type 8, 547[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #208.5.1.num.int <-160 (0xffffffffffffff60)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.5.1.num.int <200 (0xc8)> + [1] #211.5.1.num.int <200 (0xc8)> + [2] #209.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #208.5.1.num.int <-160 (0xffffffffffffff60)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.5.1.num.int <4 (0x4)> + [1] #212.5.1.num.int <200 (0xc8)> + [2] #211.5.1.num.int <200 (0xc8)> + [3] #209.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #208.5.1.num.int <-160 (0xffffffffffffff60)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.5.1.num.int <1 (0x1)> + [1] #213.5.1.num.int <4 (0x4)> + [2] #212.5.1.num.int <200 (0xc8)> + [3] #211.5.1.num.int <200 (0xc8)> + [4] #209.5.1.num.int <-200 (0xffffffffffffff38)> + [5] #208.5.1.num.int <-160 (0xffffffffffffff60)> +IP: #196:0x9, type 8, 10[4] +GC: --#214.5.1.num.int +GC: --#213.5.1.num.int +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.5.1.num.int <200 (0xc8)> + [1] #209.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #208.5.1.num.int <-160 (0xffffffffffffff60)> + [3] #212.5.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#211.5.1.num.int +GC: --#209.5.1.num.int +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.5.1.num.int <0 (0x0)> + [1] #208.5.1.num.int <-160 (0xffffffffffffff60)> + [2] #212.5.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.5.1.num.int <3 (0x3)> + [1] #215.5.1.num.int <0 (0x0)> + [2] #208.5.1.num.int <-160 (0xffffffffffffff60)> + [3] #212.5.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.5.1.num.int <1 (0x1)> + [1] #216.5.1.num.int <3 (0x3)> + [2] #215.5.1.num.int <0 (0x0)> + [3] #208.5.1.num.int <-160 (0xffffffffffffff60)> + [4] #212.5.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#217.5.1.num.int +GC: --#216.5.1.num.int +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.5.1.num.int <-160 (0xffffffffffffff60)> + [1] #212.5.1.num.int <200 (0xc8)> + [2] #215.5.1.num.int <0 (0x0)> +IP: #196:0x19, type 8, 26[3] +GC: --#208.5.1.num.int +GC: --#212.5.1.num.int +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.5.1.num.int <40 (0x28)> + [1] #215.5.1.num.int <0 (0x0)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.5.1.num.int <0 (0x0)> + [1] #218.5.1.num.int <40 (0x28)> +IP: #196:0x22, type 8, 35[6] +GC: --#215.5.1.num.int +GC: --#218.5.1.num.int +== backtrace == + [0] #210.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#210.5.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x224, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.5.1.num.int <200 (0xc8)> +IP: #186:0x227, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.5.1.num.int <200 (0xc8)> + [1] #219.5.1.num.int <200 (0xc8)> +IP: #186:0x22a, type 8, 555[6] +GC: --#220.5.1.num.int +GC: --#219.5.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x231, type 1, -100 (0xffffffffffffff9c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.5.1.num.int <-100 (0xffffffffffffff9c)> +IP: #186:0x233, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #221.5.1.num.int <-100 (0xffffffffffffff9c)> +IP: #186:0x236, type 8, 567[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #221.5.1.num.int <-100 (0xffffffffffffff9c)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.5.1.num.int <200 (0xc8)> + [1] #224.5.1.num.int <200 (0xc8)> + [2] #222.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #221.5.1.num.int <-100 (0xffffffffffffff9c)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.5.1.num.int <4 (0x4)> + [1] #225.5.1.num.int <200 (0xc8)> + [2] #224.5.1.num.int <200 (0xc8)> + [3] #222.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #221.5.1.num.int <-100 (0xffffffffffffff9c)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.5.1.num.int <1 (0x1)> + [1] #226.5.1.num.int <4 (0x4)> + [2] #225.5.1.num.int <200 (0xc8)> + [3] #224.5.1.num.int <200 (0xc8)> + [4] #222.5.1.num.int <-200 (0xffffffffffffff38)> + [5] #221.5.1.num.int <-100 (0xffffffffffffff9c)> +IP: #196:0x9, type 8, 10[4] +GC: --#227.5.1.num.int +GC: --#226.5.1.num.int +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.5.1.num.int <200 (0xc8)> + [1] #222.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #221.5.1.num.int <-100 (0xffffffffffffff9c)> + [3] #225.5.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#224.5.1.num.int +GC: --#222.5.1.num.int +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.5.1.num.int <0 (0x0)> + [1] #221.5.1.num.int <-100 (0xffffffffffffff9c)> + [2] #225.5.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.5.1.num.int <3 (0x3)> + [1] #228.5.1.num.int <0 (0x0)> + [2] #221.5.1.num.int <-100 (0xffffffffffffff9c)> + [3] #225.5.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.5.1.num.int <1 (0x1)> + [1] #229.5.1.num.int <3 (0x3)> + [2] #228.5.1.num.int <0 (0x0)> + [3] #221.5.1.num.int <-100 (0xffffffffffffff9c)> + [4] #225.5.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#230.5.1.num.int +GC: --#229.5.1.num.int +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.5.1.num.int <-100 (0xffffffffffffff9c)> + [1] #225.5.1.num.int <200 (0xc8)> + [2] #228.5.1.num.int <0 (0x0)> +IP: #196:0x19, type 8, 26[3] +GC: --#221.5.1.num.int +GC: --#225.5.1.num.int +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.5.1.num.int <100 (0x64)> + [1] #228.5.1.num.int <0 (0x0)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.5.1.num.int <0 (0x0)> + [1] #231.5.1.num.int <100 (0x64)> +IP: #196:0x22, type 8, 35[6] +GC: --#228.5.1.num.int +GC: --#231.5.1.num.int +== backtrace == + [0] #223.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#223.5.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x238, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.5.1.num.int <200 (0xc8)> +IP: #186:0x23b, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.5.1.num.int <200 (0xc8)> + [1] #232.5.1.num.int <200 (0xc8)> +IP: #186:0x23e, type 8, 575[6] +GC: --#233.5.1.num.int +GC: --#232.5.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x245, type 1, -60 (0xffffffffffffffc4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.5.1.num.int <-60 (0xffffffffffffffc4)> +IP: #186:0x247, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #234.5.1.num.int <-60 (0xffffffffffffffc4)> +IP: #186:0x24a, type 8, 587[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #234.5.1.num.int <-60 (0xffffffffffffffc4)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.5.1.num.int <200 (0xc8)> + [1] #237.5.1.num.int <200 (0xc8)> + [2] #235.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #234.5.1.num.int <-60 (0xffffffffffffffc4)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.5.1.num.int <4 (0x4)> + [1] #238.5.1.num.int <200 (0xc8)> + [2] #237.5.1.num.int <200 (0xc8)> + [3] #235.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #234.5.1.num.int <-60 (0xffffffffffffffc4)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.5.1.num.int <1 (0x1)> + [1] #239.5.1.num.int <4 (0x4)> + [2] #238.5.1.num.int <200 (0xc8)> + [3] #237.5.1.num.int <200 (0xc8)> + [4] #235.5.1.num.int <-200 (0xffffffffffffff38)> + [5] #234.5.1.num.int <-60 (0xffffffffffffffc4)> +IP: #196:0x9, type 8, 10[4] +GC: --#240.5.1.num.int +GC: --#239.5.1.num.int +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.5.1.num.int <200 (0xc8)> + [1] #235.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #234.5.1.num.int <-60 (0xffffffffffffffc4)> + [3] #238.5.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#237.5.1.num.int +GC: --#235.5.1.num.int +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.5.1.num.int <0 (0x0)> + [1] #234.5.1.num.int <-60 (0xffffffffffffffc4)> + [2] #238.5.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.5.1.num.int <3 (0x3)> + [1] #241.5.1.num.int <0 (0x0)> + [2] #234.5.1.num.int <-60 (0xffffffffffffffc4)> + [3] #238.5.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.5.1.num.int <1 (0x1)> + [1] #242.5.1.num.int <3 (0x3)> + [2] #241.5.1.num.int <0 (0x0)> + [3] #234.5.1.num.int <-60 (0xffffffffffffffc4)> + [4] #238.5.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#243.5.1.num.int +GC: --#242.5.1.num.int +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.5.1.num.int <-60 (0xffffffffffffffc4)> + [1] #238.5.1.num.int <200 (0xc8)> + [2] #241.5.1.num.int <0 (0x0)> +IP: #196:0x19, type 8, 26[3] +GC: --#234.5.1.num.int +GC: --#238.5.1.num.int +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.5.1.num.int <140 (0x8c)> + [1] #241.5.1.num.int <0 (0x0)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.5.1.num.int <0 (0x0)> + [1] #244.5.1.num.int <140 (0x8c)> +IP: #196:0x22, type 8, 35[6] +GC: --#241.5.1.num.int +GC: --#244.5.1.num.int +== backtrace == + [0] #236.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#236.5.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x24c, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.5.1.num.int <200 (0xc8)> +IP: #186:0x24f, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.5.1.num.int <200 (0xc8)> + [1] #245.5.1.num.int <200 (0xc8)> +IP: #186:0x252, type 8, 595[6] +GC: --#246.5.1.num.int +GC: --#245.5.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x259, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.5.1.num.int <0 (0x0)> +IP: #186:0x25a, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #248.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #247.5.1.num.int <0 (0x0)> +IP: #186:0x25d, type 8, 606[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #248.5.1.num.int <-200 (0xffffffffffffff38)> + [1] #247.5.1.num.int <0 (0x0)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #251.5.1.num.int <200 (0xc8)> + [1] #250.5.1.num.int <200 (0xc8)> + [2] #248.5.1.num.int <-200 (0xffffffffffffff38)> + [3] #247.5.1.num.int <0 (0x0)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #252.5.1.num.int <4 (0x4)> + [1] #251.5.1.num.int <200 (0xc8)> + [2] #250.5.1.num.int <200 (0xc8)> + [3] #248.5.1.num.int <-200 (0xffffffffffffff38)> + [4] #247.5.1.num.int <0 (0x0)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #253.5.1.num.int <1 (0x1)> + [1] #252.5.1.num.int <4 (0x4)> + [2] #251.5.1.num.int <200 (0xc8)> + [3] #250.5.1.num.int <200 (0xc8)> + [4] #248.5.1.num.int <-200 (0xffffffffffffff38)> + [5] #247.5.1.num.int <0 (0x0)> +IP: #196:0x9, type 8, 10[4] +GC: --#253.5.1.num.int +GC: --#252.5.1.num.int +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #250.5.1.num.int <200 (0xc8)> + [1] #248.5.1.num.int <-200 (0xffffffffffffff38)> + [2] #247.5.1.num.int <0 (0x0)> + [3] #251.5.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#250.5.1.num.int +GC: --#248.5.1.num.int +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #254.5.1.num.int <0 (0x0)> + [1] #247.5.1.num.int <0 (0x0)> + [2] #251.5.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.5.1.num.int <3 (0x3)> + [1] #254.5.1.num.int <0 (0x0)> + [2] #247.5.1.num.int <0 (0x0)> + [3] #251.5.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.5.1.num.int <1 (0x1)> + [1] #255.5.1.num.int <3 (0x3)> + [2] #254.5.1.num.int <0 (0x0)> + [3] #247.5.1.num.int <0 (0x0)> + [4] #251.5.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#256.5.1.num.int +GC: --#255.5.1.num.int +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.5.1.num.int <0 (0x0)> + [1] #251.5.1.num.int <200 (0xc8)> + [2] #254.5.1.num.int <0 (0x0)> +IP: #196:0x19, type 8, 26[3] +GC: --#247.5.1.num.int +GC: --#251.5.1.num.int +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #257.5.1.num.int <200 (0xc8)> + [1] #254.5.1.num.int <0 (0x0)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #254.5.1.num.int <0 (0x0)> + [1] #257.5.1.num.int <200 (0xc8)> +IP: #196:0x22, type 8, 35[6] +GC: --#254.5.1.num.int +GC: --#257.5.1.num.int +== backtrace == + [0] #249.5.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#249.5.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x25f, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.6.1.num.int <200 (0xc8)> +IP: #186:0x262, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.6.1.num.int <200 (0xc8)> + [1] #189.6.1.num.int <200 (0xc8)> +IP: #186:0x265, type 8, 614[6] +GC: --#190.6.1.num.int +GC: --#189.6.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x26c, type 1, 60 (0x3c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.6.1.num.int <60 (0x3c)> +IP: #186:0x26e, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #191.6.1.num.int <60 (0x3c)> +IP: #186:0x271, type 8, 626[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #191.6.1.num.int <60 (0x3c)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.6.1.num.int <200 (0xc8)> + [1] #197.6.1.num.int <200 (0xc8)> + [2] #192.6.1.num.int <-200 (0xffffffffffffff38)> + [3] #191.6.1.num.int <60 (0x3c)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.6.1.num.int <4 (0x4)> + [1] #198.6.1.num.int <200 (0xc8)> + [2] #197.6.1.num.int <200 (0xc8)> + [3] #192.6.1.num.int <-200 (0xffffffffffffff38)> + [4] #191.6.1.num.int <60 (0x3c)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.6.1.num.int <1 (0x1)> + [1] #199.6.1.num.int <4 (0x4)> + [2] #198.6.1.num.int <200 (0xc8)> + [3] #197.6.1.num.int <200 (0xc8)> + [4] #192.6.1.num.int <-200 (0xffffffffffffff38)> + [5] #191.6.1.num.int <60 (0x3c)> +IP: #196:0x9, type 8, 10[4] +GC: --#200.6.1.num.int +GC: --#199.6.1.num.int +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.6.1.num.int <200 (0xc8)> + [1] #192.6.1.num.int <-200 (0xffffffffffffff38)> + [2] #191.6.1.num.int <60 (0x3c)> + [3] #198.6.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#197.6.1.num.int +GC: --#192.6.1.num.int +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.6.1.num.int <0 (0x0)> + [1] #191.6.1.num.int <60 (0x3c)> + [2] #198.6.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.6.1.num.int <3 (0x3)> + [1] #201.6.1.num.int <0 (0x0)> + [2] #191.6.1.num.int <60 (0x3c)> + [3] #198.6.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.6.1.num.int <1 (0x1)> + [1] #202.6.1.num.int <3 (0x3)> + [2] #201.6.1.num.int <0 (0x0)> + [3] #191.6.1.num.int <60 (0x3c)> + [4] #198.6.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#203.6.1.num.int +GC: --#202.6.1.num.int +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.6.1.num.int <60 (0x3c)> + [1] #198.6.1.num.int <200 (0xc8)> + [2] #201.6.1.num.int <0 (0x0)> +IP: #196:0x19, type 8, 26[3] +GC: --#191.6.1.num.int +GC: --#198.6.1.num.int +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.6.1.num.int <260 (0x104)> + [1] #201.6.1.num.int <0 (0x0)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.6.1.num.int <0 (0x0)> + [1] #204.6.1.num.int <260 (0x104)> +IP: #196:0x22, type 8, 35[6] +GC: --#201.6.1.num.int +GC: --#204.6.1.num.int +== backtrace == + [0] #194.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#194.6.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x273, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.6.1.num.int <200 (0xc8)> +IP: #186:0x276, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.6.1.num.int <200 (0xc8)> + [1] #205.6.1.num.int <200 (0xc8)> +IP: #186:0x279, type 8, 634[6] +GC: --#206.6.1.num.int +GC: --#205.6.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x280, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.6.1.num.int <100 (0x64)> +IP: #186:0x282, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #207.6.1.num.int <100 (0x64)> +IP: #186:0x285, type 8, 646[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #207.6.1.num.int <100 (0x64)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.6.1.num.int <200 (0xc8)> + [1] #210.6.1.num.int <200 (0xc8)> + [2] #208.6.1.num.int <-200 (0xffffffffffffff38)> + [3] #207.6.1.num.int <100 (0x64)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.6.1.num.int <4 (0x4)> + [1] #211.6.1.num.int <200 (0xc8)> + [2] #210.6.1.num.int <200 (0xc8)> + [3] #208.6.1.num.int <-200 (0xffffffffffffff38)> + [4] #207.6.1.num.int <100 (0x64)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.6.1.num.int <1 (0x1)> + [1] #212.6.1.num.int <4 (0x4)> + [2] #211.6.1.num.int <200 (0xc8)> + [3] #210.6.1.num.int <200 (0xc8)> + [4] #208.6.1.num.int <-200 (0xffffffffffffff38)> + [5] #207.6.1.num.int <100 (0x64)> +IP: #196:0x9, type 8, 10[4] +GC: --#213.6.1.num.int +GC: --#212.6.1.num.int +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.6.1.num.int <200 (0xc8)> + [1] #208.6.1.num.int <-200 (0xffffffffffffff38)> + [2] #207.6.1.num.int <100 (0x64)> + [3] #211.6.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#210.6.1.num.int +GC: --#208.6.1.num.int +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.6.1.num.int <0 (0x0)> + [1] #207.6.1.num.int <100 (0x64)> + [2] #211.6.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.6.1.num.int <3 (0x3)> + [1] #214.6.1.num.int <0 (0x0)> + [2] #207.6.1.num.int <100 (0x64)> + [3] #211.6.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.6.1.num.int <1 (0x1)> + [1] #215.6.1.num.int <3 (0x3)> + [2] #214.6.1.num.int <0 (0x0)> + [3] #207.6.1.num.int <100 (0x64)> + [4] #211.6.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#216.6.1.num.int +GC: --#215.6.1.num.int +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.6.1.num.int <100 (0x64)> + [1] #211.6.1.num.int <200 (0xc8)> + [2] #214.6.1.num.int <0 (0x0)> +IP: #196:0x19, type 8, 26[3] +GC: --#207.6.1.num.int +GC: --#211.6.1.num.int +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.6.1.num.int <300 (0x12c)> + [1] #214.6.1.num.int <0 (0x0)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.6.1.num.int <0 (0x0)> + [1] #217.6.1.num.int <300 (0x12c)> +IP: #196:0x22, type 8, 35[6] +GC: --#214.6.1.num.int +GC: --#217.6.1.num.int +== backtrace == + [0] #209.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#209.6.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x287, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.6.1.num.int <200 (0xc8)> +IP: #186:0x28a, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.6.1.num.int <200 (0xc8)> + [1] #218.6.1.num.int <200 (0xc8)> +IP: #186:0x28d, type 8, 654[6] +GC: --#219.6.1.num.int +GC: --#218.6.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x294, type 1, 160 (0xa0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.6.1.num.int <160 (0xa0)> +IP: #186:0x297, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #220.6.1.num.int <160 (0xa0)> +IP: #186:0x29a, type 8, 667[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #220.6.1.num.int <160 (0xa0)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.6.1.num.int <200 (0xc8)> + [1] #223.6.1.num.int <200 (0xc8)> + [2] #221.6.1.num.int <-200 (0xffffffffffffff38)> + [3] #220.6.1.num.int <160 (0xa0)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.6.1.num.int <4 (0x4)> + [1] #224.6.1.num.int <200 (0xc8)> + [2] #223.6.1.num.int <200 (0xc8)> + [3] #221.6.1.num.int <-200 (0xffffffffffffff38)> + [4] #220.6.1.num.int <160 (0xa0)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.6.1.num.int <1 (0x1)> + [1] #225.6.1.num.int <4 (0x4)> + [2] #224.6.1.num.int <200 (0xc8)> + [3] #223.6.1.num.int <200 (0xc8)> + [4] #221.6.1.num.int <-200 (0xffffffffffffff38)> + [5] #220.6.1.num.int <160 (0xa0)> +IP: #196:0x9, type 8, 10[4] +GC: --#226.6.1.num.int +GC: --#225.6.1.num.int +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.6.1.num.int <200 (0xc8)> + [1] #221.6.1.num.int <-200 (0xffffffffffffff38)> + [2] #220.6.1.num.int <160 (0xa0)> + [3] #224.6.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#223.6.1.num.int +GC: --#221.6.1.num.int +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.6.1.num.int <0 (0x0)> + [1] #220.6.1.num.int <160 (0xa0)> + [2] #224.6.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.6.1.num.int <3 (0x3)> + [1] #227.6.1.num.int <0 (0x0)> + [2] #220.6.1.num.int <160 (0xa0)> + [3] #224.6.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.6.1.num.int <1 (0x1)> + [1] #228.6.1.num.int <3 (0x3)> + [2] #227.6.1.num.int <0 (0x0)> + [3] #220.6.1.num.int <160 (0xa0)> + [4] #224.6.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#229.6.1.num.int +GC: --#228.6.1.num.int +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.6.1.num.int <160 (0xa0)> + [1] #224.6.1.num.int <200 (0xc8)> + [2] #227.6.1.num.int <0 (0x0)> +IP: #196:0x19, type 8, 26[3] +GC: --#220.6.1.num.int +GC: --#224.6.1.num.int +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.6.1.num.int <360 (0x168)> + [1] #227.6.1.num.int <0 (0x0)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.6.1.num.int <0 (0x0)> + [1] #230.6.1.num.int <360 (0x168)> +IP: #196:0x22, type 8, 35[6] +GC: --#227.6.1.num.int +GC: --#230.6.1.num.int +== backtrace == + [0] #222.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#222.6.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x29c, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.6.1.num.int <200 (0xc8)> +IP: #186:0x29f, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.6.1.num.int <200 (0xc8)> + [1] #231.6.1.num.int <200 (0xc8)> +IP: #186:0x2a2, type 8, 675[6] +GC: --#232.6.1.num.int +GC: --#231.6.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x2a9, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.6.1.num.int <200 (0xc8)> +IP: #186:0x2ac, type 1, -200 (0xffffffffffffff38) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #233.6.1.num.int <200 (0xc8)> +IP: #186:0x2af, type 8, 688[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #234.6.1.num.int <-200 (0xffffffffffffff38)> + [1] #233.6.1.num.int <200 (0xc8)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #237.6.1.num.int <200 (0xc8)> + [1] #236.6.1.num.int <200 (0xc8)> + [2] #234.6.1.num.int <-200 (0xffffffffffffff38)> + [3] #233.6.1.num.int <200 (0xc8)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #238.6.1.num.int <4 (0x4)> + [1] #237.6.1.num.int <200 (0xc8)> + [2] #236.6.1.num.int <200 (0xc8)> + [3] #234.6.1.num.int <-200 (0xffffffffffffff38)> + [4] #233.6.1.num.int <200 (0xc8)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #239.6.1.num.int <1 (0x1)> + [1] #238.6.1.num.int <4 (0x4)> + [2] #237.6.1.num.int <200 (0xc8)> + [3] #236.6.1.num.int <200 (0xc8)> + [4] #234.6.1.num.int <-200 (0xffffffffffffff38)> + [5] #233.6.1.num.int <200 (0xc8)> +IP: #196:0x9, type 8, 10[4] +GC: --#239.6.1.num.int +GC: --#238.6.1.num.int +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #236.6.1.num.int <200 (0xc8)> + [1] #234.6.1.num.int <-200 (0xffffffffffffff38)> + [2] #233.6.1.num.int <200 (0xc8)> + [3] #237.6.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#236.6.1.num.int +GC: --#234.6.1.num.int +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.6.1.num.int <0 (0x0)> + [1] #233.6.1.num.int <200 (0xc8)> + [2] #237.6.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #241.6.1.num.int <3 (0x3)> + [1] #240.6.1.num.int <0 (0x0)> + [2] #233.6.1.num.int <200 (0xc8)> + [3] #237.6.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #242.6.1.num.int <1 (0x1)> + [1] #241.6.1.num.int <3 (0x3)> + [2] #240.6.1.num.int <0 (0x0)> + [3] #233.6.1.num.int <200 (0xc8)> + [4] #237.6.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#242.6.1.num.int +GC: --#241.6.1.num.int +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #233.6.1.num.int <200 (0xc8)> + [1] #237.6.1.num.int <200 (0xc8)> + [2] #240.6.1.num.int <0 (0x0)> +IP: #196:0x19, type 8, 26[3] +GC: --#233.6.1.num.int +GC: --#237.6.1.num.int +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #243.6.1.num.int <400 (0x190)> + [1] #240.6.1.num.int <0 (0x0)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #240.6.1.num.int <0 (0x0)> + [1] #243.6.1.num.int <400 (0x190)> +IP: #196:0x22, type 8, 35[6] +GC: --#240.6.1.num.int +GC: --#243.6.1.num.int +== backtrace == + [0] #235.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#235.6.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x2b1, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #244.6.1.num.int <200 (0xc8)> +IP: #186:0x2b4, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #245.6.1.num.int <200 (0xc8)> + [1] #244.6.1.num.int <200 (0xc8)> +IP: #186:0x2b7, type 8, 696[6] +GC: --#245.6.1.num.int +GC: --#244.6.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x2be, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.6.1.num.int <200 (0xc8)> +IP: #186:0x2c1, type 1, -160 (0xffffffffffffff60) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.6.1.num.int <-160 (0xffffffffffffff60)> + [1] #246.6.1.num.int <200 (0xc8)> +IP: #186:0x2c4, type 8, 709[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #247.6.1.num.int <-160 (0xffffffffffffff60)> + [1] #246.6.1.num.int <200 (0xc8)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #250.6.1.num.int <200 (0xc8)> + [1] #249.6.1.num.int <200 (0xc8)> + [2] #247.6.1.num.int <-160 (0xffffffffffffff60)> + [3] #246.6.1.num.int <200 (0xc8)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #251.6.1.num.int <4 (0x4)> + [1] #250.6.1.num.int <200 (0xc8)> + [2] #249.6.1.num.int <200 (0xc8)> + [3] #247.6.1.num.int <-160 (0xffffffffffffff60)> + [4] #246.6.1.num.int <200 (0xc8)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #252.6.1.num.int <1 (0x1)> + [1] #251.6.1.num.int <4 (0x4)> + [2] #250.6.1.num.int <200 (0xc8)> + [3] #249.6.1.num.int <200 (0xc8)> + [4] #247.6.1.num.int <-160 (0xffffffffffffff60)> + [5] #246.6.1.num.int <200 (0xc8)> +IP: #196:0x9, type 8, 10[4] +GC: --#252.6.1.num.int +GC: --#251.6.1.num.int +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #249.6.1.num.int <200 (0xc8)> + [1] #247.6.1.num.int <-160 (0xffffffffffffff60)> + [2] #246.6.1.num.int <200 (0xc8)> + [3] #250.6.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#249.6.1.num.int +GC: --#247.6.1.num.int +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #253.6.1.num.int <40 (0x28)> + [1] #246.6.1.num.int <200 (0xc8)> + [2] #250.6.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #254.6.1.num.int <3 (0x3)> + [1] #253.6.1.num.int <40 (0x28)> + [2] #246.6.1.num.int <200 (0xc8)> + [3] #250.6.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #255.6.1.num.int <1 (0x1)> + [1] #254.6.1.num.int <3 (0x3)> + [2] #253.6.1.num.int <40 (0x28)> + [3] #246.6.1.num.int <200 (0xc8)> + [4] #250.6.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#255.6.1.num.int +GC: --#254.6.1.num.int +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #246.6.1.num.int <200 (0xc8)> + [1] #250.6.1.num.int <200 (0xc8)> + [2] #253.6.1.num.int <40 (0x28)> +IP: #196:0x19, type 8, 26[3] +GC: --#246.6.1.num.int +GC: --#250.6.1.num.int +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #256.6.1.num.int <400 (0x190)> + [1] #253.6.1.num.int <40 (0x28)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #253.6.1.num.int <40 (0x28)> + [1] #256.6.1.num.int <400 (0x190)> +IP: #196:0x22, type 8, 35[6] +GC: --#253.6.1.num.int +GC: --#256.6.1.num.int +== backtrace == + [0] #248.6.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#248.6.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x2c6, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #257.6.1.num.int <200 (0xc8)> +IP: #186:0x2c9, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.7.1.num.int <200 (0xc8)> + [1] #257.6.1.num.int <200 (0xc8)> +IP: #186:0x2cc, type 8, 717[6] +GC: --#189.7.1.num.int +GC: --#257.6.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x2d3, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.7.1.num.int <200 (0xc8)> +IP: #186:0x2d6, type 1, -100 (0xffffffffffffff9c) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.7.1.num.int <-100 (0xffffffffffffff9c)> + [1] #190.7.1.num.int <200 (0xc8)> +IP: #186:0x2d8, type 8, 729[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.7.1.num.int <-100 (0xffffffffffffff9c)> + [1] #190.7.1.num.int <200 (0xc8)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.7.1.num.int <200 (0xc8)> + [1] #194.7.1.num.int <200 (0xc8)> + [2] #191.7.1.num.int <-100 (0xffffffffffffff9c)> + [3] #190.7.1.num.int <200 (0xc8)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.7.1.num.int <4 (0x4)> + [1] #197.7.1.num.int <200 (0xc8)> + [2] #194.7.1.num.int <200 (0xc8)> + [3] #191.7.1.num.int <-100 (0xffffffffffffff9c)> + [4] #190.7.1.num.int <200 (0xc8)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.7.1.num.int <1 (0x1)> + [1] #198.7.1.num.int <4 (0x4)> + [2] #197.7.1.num.int <200 (0xc8)> + [3] #194.7.1.num.int <200 (0xc8)> + [4] #191.7.1.num.int <-100 (0xffffffffffffff9c)> + [5] #190.7.1.num.int <200 (0xc8)> +IP: #196:0x9, type 8, 10[4] +GC: --#199.7.1.num.int +GC: --#198.7.1.num.int +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.7.1.num.int <200 (0xc8)> + [1] #191.7.1.num.int <-100 (0xffffffffffffff9c)> + [2] #190.7.1.num.int <200 (0xc8)> + [3] #197.7.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#194.7.1.num.int +GC: --#191.7.1.num.int +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.7.1.num.int <100 (0x64)> + [1] #190.7.1.num.int <200 (0xc8)> + [2] #197.7.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.7.1.num.int <3 (0x3)> + [1] #200.7.1.num.int <100 (0x64)> + [2] #190.7.1.num.int <200 (0xc8)> + [3] #197.7.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.7.1.num.int <1 (0x1)> + [1] #201.7.1.num.int <3 (0x3)> + [2] #200.7.1.num.int <100 (0x64)> + [3] #190.7.1.num.int <200 (0xc8)> + [4] #197.7.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#202.7.1.num.int +GC: --#201.7.1.num.int +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.7.1.num.int <200 (0xc8)> + [1] #197.7.1.num.int <200 (0xc8)> + [2] #200.7.1.num.int <100 (0x64)> +IP: #196:0x19, type 8, 26[3] +GC: --#190.7.1.num.int +GC: --#197.7.1.num.int +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.7.1.num.int <400 (0x190)> + [1] #200.7.1.num.int <100 (0x64)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.7.1.num.int <100 (0x64)> + [1] #203.7.1.num.int <400 (0x190)> +IP: #196:0x22, type 8, 35[6] +GC: --#200.7.1.num.int +GC: --#203.7.1.num.int +== backtrace == + [0] #192.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#192.7.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x2da, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.7.1.num.int <200 (0xc8)> +IP: #186:0x2dd, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.7.1.num.int <200 (0xc8)> + [1] #204.7.1.num.int <200 (0xc8)> +IP: #186:0x2e0, type 8, 737[6] +GC: --#205.7.1.num.int +GC: --#204.7.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x2e7, type 1, 200 (0xc8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.7.1.num.int <200 (0xc8)> +IP: #186:0x2ea, type 1, -60 (0xffffffffffffffc4) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.7.1.num.int <-60 (0xffffffffffffffc4)> + [1] #206.7.1.num.int <200 (0xc8)> +IP: #186:0x2ec, type 8, 749[1] +GC: ++#196.1.1.mem.code.ro +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.7.1.num.int <-60 (0xffffffffffffffc4)> + [1] #206.7.1.num.int <200 (0xc8)> +IP: #196:0x0, type 8, 1[6] +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.7.1.num.int <200 (0xc8)> + [1] #209.7.1.num.int <200 (0xc8)> + [2] #207.7.1.num.int <-60 (0xffffffffffffffc4)> + [3] #206.7.1.num.int <200 (0xc8)> +IP: #196:0x7, type 1, 4 (0x4) +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.7.1.num.int <4 (0x4)> + [1] #210.7.1.num.int <200 (0xc8)> + [2] #209.7.1.num.int <200 (0xc8)> + [3] #207.7.1.num.int <-60 (0xffffffffffffffc4)> + [4] #206.7.1.num.int <200 (0xc8)> +IP: #196:0x8, type 1, 1 (0x1) +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.7.1.num.int <1 (0x1)> + [1] #211.7.1.num.int <4 (0x4)> + [2] #210.7.1.num.int <200 (0xc8)> + [3] #209.7.1.num.int <200 (0xc8)> + [4] #207.7.1.num.int <-60 (0xffffffffffffffc4)> + [5] #206.7.1.num.int <200 (0xc8)> +IP: #196:0x9, type 8, 10[4] +GC: --#212.7.1.num.int +GC: --#211.7.1.num.int +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.7.1.num.int <200 (0xc8)> + [1] #207.7.1.num.int <-60 (0xffffffffffffffc4)> + [2] #206.7.1.num.int <200 (0xc8)> + [3] #210.7.1.num.int <200 (0xc8)> +IP: #196:0xe, type 8, 15[3] +GC: --#209.7.1.num.int +GC: --#207.7.1.num.int +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.7.1.num.int <140 (0x8c)> + [1] #206.7.1.num.int <200 (0xc8)> + [2] #210.7.1.num.int <200 (0xc8)> +IP: #196:0x12, type 1, 3 (0x3) +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.7.1.num.int <3 (0x3)> + [1] #213.7.1.num.int <140 (0x8c)> + [2] #206.7.1.num.int <200 (0xc8)> + [3] #210.7.1.num.int <200 (0xc8)> +IP: #196:0x13, type 1, 1 (0x1) +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.7.1.num.int <1 (0x1)> + [1] #214.7.1.num.int <3 (0x3)> + [2] #213.7.1.num.int <140 (0x8c)> + [3] #206.7.1.num.int <200 (0xc8)> + [4] #210.7.1.num.int <200 (0xc8)> +IP: #196:0x14, type 8, 21[4] +GC: --#215.7.1.num.int +GC: --#214.7.1.num.int +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.7.1.num.int <200 (0xc8)> + [1] #210.7.1.num.int <200 (0xc8)> + [2] #213.7.1.num.int <140 (0x8c)> +IP: #196:0x19, type 8, 26[3] +GC: --#206.7.1.num.int +GC: --#210.7.1.num.int +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.7.1.num.int <400 (0x190)> + [1] #213.7.1.num.int <140 (0x8c)> +IP: #196:0x1d, type 8, 30[4] +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.7.1.num.int <140 (0x8c)> + [1] #216.7.1.num.int <400 (0x190)> +IP: #196:0x22, type 8, 35[6] +GC: --#213.7.1.num.int +GC: --#216.7.1.num.int +== backtrace == + [0] #208.7.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #196:0x29, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#208.7.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#196.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == diff --git a/tests/0060_constants2/basic.log.ref b/tests/0060_constants2/basic.log.ref new file mode 100644 index 0000000..4080905 --- /dev/null +++ b/tests/0060_constants2/basic.log.ref @@ -0,0 +1,1049 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.2.mem.ro, "123"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "123"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "123"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #0.0.nil + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> + [1] #0.0.nil + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <0 (0x0)> + [1] #xxxx.1.1.num.bool <1 (0x1)> + [2] #0.0.nil + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <0 (0x0)> + [1] #xxxx.1.1.num.bool <0 (0x0)> + [2] #xxxx.1.1.num.bool <1 (0x1)> + [3] #0.0.nil + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <1 (0x1)> + [1] #xxxx.1.1.num.int <0 (0x0)> + [2] #xxxx.1.1.num.bool <0 (0x0)> + [3] #xxxx.1.1.num.bool <1 (0x1)> + [4] #0.0.nil + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <5 (0x5)> + [1] #xxxx.1.1.num.int <1 (0x1)> + [2] #xxxx.1.1.num.int <0 (0x0)> + [3] #xxxx.1.1.num.bool <0 (0x0)> + [4] #xxxx.1.1.num.bool <1 (0x1)> + [5] #0.0.nil + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <7 (0x7)> + [1] #xxxx.1.1.num.int <5 (0x5)> + [2] #xxxx.1.1.num.int <1 (0x1)> + [3] #xxxx.1.1.num.int <0 (0x0)> + [4] #xxxx.1.1.num.bool <0 (0x0)> + [5] #xxxx.1.1.num.bool <1 (0x1)> + [6] #0.0.nil + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <8 (0x8)> + [1] #xxxx.1.1.num.int <7 (0x7)> + [2] #xxxx.1.1.num.int <5 (0x5)> + [3] #xxxx.1.1.num.int <1 (0x1)> + [4] #xxxx.1.1.num.int <0 (0x0)> + [5] #xxxx.1.1.num.bool <0 (0x0)> + [6] #xxxx.1.1.num.bool <1 (0x1)> + [7] #0.0.nil + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <9 (0x9)> + [1] #xxxx.1.1.num.int <8 (0x8)> + [2] #xxxx.1.1.num.int <7 (0x7)> + [3] #xxxx.1.1.num.int <5 (0x5)> + [4] #xxxx.1.1.num.int <1 (0x1)> + [5] #xxxx.1.1.num.int <0 (0x0)> + [6] #xxxx.1.1.num.bool <0 (0x0)> + [7] #xxxx.1.1.num.bool <1 (0x1)> + [8] #0.0.nil + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <127 (0x7f)> + [1] #xxxx.1.1.num.int <9 (0x9)> + [2] #xxxx.1.1.num.int <8 (0x8)> + [3] #xxxx.1.1.num.int <7 (0x7)> + [4] #xxxx.1.1.num.int <5 (0x5)> + [5] #xxxx.1.1.num.int <1 (0x1)> + [6] #xxxx.1.1.num.int <0 (0x0)> + [7] #xxxx.1.1.num.bool <0 (0x0)> + [8] #xxxx.1.1.num.bool <1 (0x1)> + [9] #0.0.nil + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <128 (0x80)> + [1] #xxxx.1.1.num.int <127 (0x7f)> + [2] #xxxx.1.1.num.int <9 (0x9)> + [3] #xxxx.1.1.num.int <8 (0x8)> + [4] #xxxx.1.1.num.int <7 (0x7)> + [5] #xxxx.1.1.num.int <5 (0x5)> + [6] #xxxx.1.1.num.int <1 (0x1)> + [7] #xxxx.1.1.num.int <0 (0x0)> + [8] #xxxx.1.1.num.bool <0 (0x0)> + [9] #xxxx.1.1.num.bool <1 (0x1)> + [10] #0.0.nil + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [13] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <255 (0xff)> + [1] #xxxx.1.1.num.int <128 (0x80)> + [2] #xxxx.1.1.num.int <127 (0x7f)> + [3] #xxxx.1.1.num.int <9 (0x9)> + [4] #xxxx.1.1.num.int <8 (0x8)> + [5] #xxxx.1.1.num.int <7 (0x7)> + [6] #xxxx.1.1.num.int <5 (0x5)> + [7] #xxxx.1.1.num.int <1 (0x1)> + [8] #xxxx.1.1.num.int <0 (0x0)> + [9] #xxxx.1.1.num.bool <0 (0x0)> + [10] #xxxx.1.1.num.bool <1 (0x1)> + [11] #0.0.nil + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [13] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [14] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <256 (0x100)> + [1] #xxxx.1.1.num.int <255 (0xff)> + [2] #xxxx.1.1.num.int <128 (0x80)> + [3] #xxxx.1.1.num.int <127 (0x7f)> + [4] #xxxx.1.1.num.int <9 (0x9)> + [5] #xxxx.1.1.num.int <8 (0x8)> + [6] #xxxx.1.1.num.int <7 (0x7)> + [7] #xxxx.1.1.num.int <5 (0x5)> + [8] #xxxx.1.1.num.int <1 (0x1)> + [9] #xxxx.1.1.num.int <0 (0x0)> + [10] #xxxx.1.1.num.bool <0 (0x0)> + [11] #xxxx.1.1.num.bool <1 (0x1)> + [12] #0.0.nil + [13] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [14] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [15] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <257 (0x101)> + [1] #xxxx.1.1.num.int <256 (0x100)> + [2] #xxxx.1.1.num.int <255 (0xff)> + [3] #xxxx.1.1.num.int <128 (0x80)> + [4] #xxxx.1.1.num.int <127 (0x7f)> + [5] #xxxx.1.1.num.int <9 (0x9)> + [6] #xxxx.1.1.num.int <8 (0x8)> + [7] #xxxx.1.1.num.int <7 (0x7)> + [8] #xxxx.1.1.num.int <5 (0x5)> + [9] #xxxx.1.1.num.int <1 (0x1)> + [10] #xxxx.1.1.num.int <0 (0x0)> + [11] #xxxx.1.1.num.bool <0 (0x0)> + [12] #xxxx.1.1.num.bool <1 (0x1)> + [13] #0.0.nil + [14] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [15] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [16] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <257 (0x101)> + [2] #xxxx.1.1.num.int <256 (0x100)> + [3] #xxxx.1.1.num.int <255 (0xff)> + [4] #xxxx.1.1.num.int <128 (0x80)> + [5] #xxxx.1.1.num.int <127 (0x7f)> + [6] #xxxx.1.1.num.int <9 (0x9)> + [7] #xxxx.1.1.num.int <8 (0x8)> + [8] #xxxx.1.1.num.int <7 (0x7)> + [9] #xxxx.1.1.num.int <5 (0x5)> + [10] #xxxx.1.1.num.int <1 (0x1)> + [11] #xxxx.1.1.num.int <0 (0x0)> + [12] #xxxx.1.1.num.bool <0 (0x0)> + [13] #xxxx.1.1.num.bool <1 (0x1)> + [14] #0.0.nil + [15] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [16] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [17] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <257 (0x101)> + [3] #xxxx.1.1.num.int <256 (0x100)> + [4] #xxxx.1.1.num.int <255 (0xff)> + [5] #xxxx.1.1.num.int <128 (0x80)> + [6] #xxxx.1.1.num.int <127 (0x7f)> + [7] #xxxx.1.1.num.int <9 (0x9)> + [8] #xxxx.1.1.num.int <8 (0x8)> + [9] #xxxx.1.1.num.int <7 (0x7)> + [10] #xxxx.1.1.num.int <5 (0x5)> + [11] #xxxx.1.1.num.int <1 (0x1)> + [12] #xxxx.1.1.num.int <0 (0x0)> + [13] #xxxx.1.1.num.bool <0 (0x0)> + [14] #xxxx.1.1.num.bool <1 (0x1)> + [15] #0.0.nil + [16] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [17] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [18] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [1] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <257 (0x101)> + [4] #xxxx.1.1.num.int <256 (0x100)> + [5] #xxxx.1.1.num.int <255 (0xff)> + [6] #xxxx.1.1.num.int <128 (0x80)> + [7] #xxxx.1.1.num.int <127 (0x7f)> + [8] #xxxx.1.1.num.int <9 (0x9)> + [9] #xxxx.1.1.num.int <8 (0x8)> + [10] #xxxx.1.1.num.int <7 (0x7)> + [11] #xxxx.1.1.num.int <5 (0x5)> + [12] #xxxx.1.1.num.int <1 (0x1)> + [13] #xxxx.1.1.num.int <0 (0x0)> + [14] #xxxx.1.1.num.bool <0 (0x0)> + [15] #xxxx.1.1.num.bool <1 (0x1)> + [16] #0.0.nil + [17] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [18] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [19] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [1] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [2] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <257 (0x101)> + [5] #xxxx.1.1.num.int <256 (0x100)> + [6] #xxxx.1.1.num.int <255 (0xff)> + [7] #xxxx.1.1.num.int <128 (0x80)> + [8] #xxxx.1.1.num.int <127 (0x7f)> + [9] #xxxx.1.1.num.int <9 (0x9)> + [10] #xxxx.1.1.num.int <8 (0x8)> + [11] #xxxx.1.1.num.int <7 (0x7)> + [12] #xxxx.1.1.num.int <5 (0x5)> + [13] #xxxx.1.1.num.int <1 (0x1)> + [14] #xxxx.1.1.num.int <0 (0x0)> + [15] #xxxx.1.1.num.bool <0 (0x0)> + [16] #xxxx.1.1.num.bool <1 (0x1)> + [17] #0.0.nil + [18] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [19] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [20] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [1] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [2] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [3] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <257 (0x101)> + [6] #xxxx.1.1.num.int <256 (0x100)> + [7] #xxxx.1.1.num.int <255 (0xff)> + [8] #xxxx.1.1.num.int <128 (0x80)> + [9] #xxxx.1.1.num.int <127 (0x7f)> + [10] #xxxx.1.1.num.int <9 (0x9)> + [11] #xxxx.1.1.num.int <8 (0x8)> + [12] #xxxx.1.1.num.int <7 (0x7)> + [13] #xxxx.1.1.num.int <5 (0x5)> + [14] #xxxx.1.1.num.int <1 (0x1)> + [15] #xxxx.1.1.num.int <0 (0x0)> + [16] #xxxx.1.1.num.bool <0 (0x0)> + [17] #xxxx.1.1.num.bool <1 (0x1)> + [18] #0.0.nil + [19] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [20] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [21] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [1] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [2] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [3] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [4] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <257 (0x101)> + [7] #xxxx.1.1.num.int <256 (0x100)> + [8] #xxxx.1.1.num.int <255 (0xff)> + [9] #xxxx.1.1.num.int <128 (0x80)> + [10] #xxxx.1.1.num.int <127 (0x7f)> + [11] #xxxx.1.1.num.int <9 (0x9)> + [12] #xxxx.1.1.num.int <8 (0x8)> + [13] #xxxx.1.1.num.int <7 (0x7)> + [14] #xxxx.1.1.num.int <5 (0x5)> + [15] #xxxx.1.1.num.int <1 (0x1)> + [16] #xxxx.1.1.num.int <0 (0x0)> + [17] #xxxx.1.1.num.bool <0 (0x0)> + [18] #xxxx.1.1.num.bool <1 (0x1)> + [19] #0.0.nil + [20] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [21] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [22] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [1] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [2] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [3] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [4] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [5] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <257 (0x101)> + [8] #xxxx.1.1.num.int <256 (0x100)> + [9] #xxxx.1.1.num.int <255 (0xff)> + [10] #xxxx.1.1.num.int <128 (0x80)> + [11] #xxxx.1.1.num.int <127 (0x7f)> + [12] #xxxx.1.1.num.int <9 (0x9)> + [13] #xxxx.1.1.num.int <8 (0x8)> + [14] #xxxx.1.1.num.int <7 (0x7)> + [15] #xxxx.1.1.num.int <5 (0x5)> + [16] #xxxx.1.1.num.int <1 (0x1)> + [17] #xxxx.1.1.num.int <0 (0x0)> + [18] #xxxx.1.1.num.bool <0 (0x0)> + [19] #xxxx.1.1.num.bool <1 (0x1)> + [20] #0.0.nil + [21] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [22] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [23] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [1] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [2] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [3] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [4] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [5] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [6] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <257 (0x101)> + [9] #xxxx.1.1.num.int <256 (0x100)> + [10] #xxxx.1.1.num.int <255 (0xff)> + [11] #xxxx.1.1.num.int <128 (0x80)> + [12] #xxxx.1.1.num.int <127 (0x7f)> + [13] #xxxx.1.1.num.int <9 (0x9)> + [14] #xxxx.1.1.num.int <8 (0x8)> + [15] #xxxx.1.1.num.int <7 (0x7)> + [16] #xxxx.1.1.num.int <5 (0x5)> + [17] #xxxx.1.1.num.int <1 (0x1)> + [18] #xxxx.1.1.num.int <0 (0x0)> + [19] #xxxx.1.1.num.bool <0 (0x0)> + [20] #xxxx.1.1.num.bool <1 (0x1)> + [21] #0.0.nil + [22] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [23] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [24] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [2] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [3] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [4] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [5] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [6] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [7] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <257 (0x101)> + [10] #xxxx.1.1.num.int <256 (0x100)> + [11] #xxxx.1.1.num.int <255 (0xff)> + [12] #xxxx.1.1.num.int <128 (0x80)> + [13] #xxxx.1.1.num.int <127 (0x7f)> + [14] #xxxx.1.1.num.int <9 (0x9)> + [15] #xxxx.1.1.num.int <8 (0x8)> + [16] #xxxx.1.1.num.int <7 (0x7)> + [17] #xxxx.1.1.num.int <5 (0x5)> + [18] #xxxx.1.1.num.int <1 (0x1)> + [19] #xxxx.1.1.num.int <0 (0x0)> + [20] #xxxx.1.1.num.bool <0 (0x0)> + [21] #xxxx.1.1.num.bool <1 (0x1)> + [22] #0.0.nil + [23] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [24] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [25] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [3] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [4] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [5] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [6] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [7] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [8] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <257 (0x101)> + [11] #xxxx.1.1.num.int <256 (0x100)> + [12] #xxxx.1.1.num.int <255 (0xff)> + [13] #xxxx.1.1.num.int <128 (0x80)> + [14] #xxxx.1.1.num.int <127 (0x7f)> + [15] #xxxx.1.1.num.int <9 (0x9)> + [16] #xxxx.1.1.num.int <8 (0x8)> + [17] #xxxx.1.1.num.int <7 (0x7)> + [18] #xxxx.1.1.num.int <5 (0x5)> + [19] #xxxx.1.1.num.int <1 (0x1)> + [20] #xxxx.1.1.num.int <0 (0x0)> + [21] #xxxx.1.1.num.bool <0 (0x0)> + [22] #xxxx.1.1.num.bool <1 (0x1)> + [23] #0.0.nil + [24] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [25] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [26] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [3] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [4] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [5] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [6] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [7] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [8] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [9] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <257 (0x101)> + [12] #xxxx.1.1.num.int <256 (0x100)> + [13] #xxxx.1.1.num.int <255 (0xff)> + [14] #xxxx.1.1.num.int <128 (0x80)> + [15] #xxxx.1.1.num.int <127 (0x7f)> + [16] #xxxx.1.1.num.int <9 (0x9)> + [17] #xxxx.1.1.num.int <8 (0x8)> + [18] #xxxx.1.1.num.int <7 (0x7)> + [19] #xxxx.1.1.num.int <5 (0x5)> + [20] #xxxx.1.1.num.int <1 (0x1)> + [21] #xxxx.1.1.num.int <0 (0x0)> + [22] #xxxx.1.1.num.bool <0 (0x0)> + [23] #xxxx.1.1.num.bool <1 (0x1)> + [24] #0.0.nil + [25] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [26] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> + [27] #xxxx.1.1.mem.str.ro <#xxxx.1.4.mem.ro, "123"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, ""> + [1] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [3] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [4] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [5] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [6] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [7] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [8] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [9] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [10] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <257 (0x101)> + [13] #xxxx.1.1.num.int <256 (0x100)> + [14] #xxxx.1.1.num.int <255 (0xff)> + [15] #xxxx.1.1.num.int <128 (0x80)> + [16] #xxxx.1.1.num.int <127 (0x7f)> + [17] #xxxx.1.1.num.int <9 (0x9)> + [18] #xxxx.1.1.num.int <8 (0x8)> + [19] #xxxx.1.1.num.int <7 (0x7)> + [20] #xxxx.1.1.num.int <5 (0x5)> + [21] #xxxx.1.1.num.int <1 (0x1)> + [22] #xxxx.1.1.num.int <0 (0x0)> + [23] #xxxx.1.1.num.bool <0 (0x0)> + [24] #xxxx.1.1.num.bool <1 (0x1)> + [25] #0.0.nil + [26] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "123"> + [27] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "123"> + [28] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "123"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "a"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, ""> + [2] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [4] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [5] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [6] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [7] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [8] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [9] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [10] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [11] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <257 (0x101)> + [14] #xxxx.1.1.num.int <256 (0x100)> + [15] #xxxx.1.1.num.int <255 (0xff)> + [16] #xxxx.1.1.num.int <128 (0x80)> + [17] #xxxx.1.1.num.int <127 (0x7f)> + [18] #xxxx.1.1.num.int <9 (0x9)> + [19] #xxxx.1.1.num.int <8 (0x8)> + [20] #xxxx.1.1.num.int <7 (0x7)> + [21] #xxxx.1.1.num.int <5 (0x5)> + [22] #xxxx.1.1.num.int <1 (0x1)> + [23] #xxxx.1.1.num.int <0 (0x0)> + [24] #xxxx.1.1.num.bool <0 (0x0)> + [25] #xxxx.1.1.num.bool <1 (0x1)> + [26] #0.0.nil + [27] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "123"> + [28] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "123"> + [29] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "123"> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "a"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, ""> + [3] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [5] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [6] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [7] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [8] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [9] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [10] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [11] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [12] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <257 (0x101)> + [15] #xxxx.1.1.num.int <256 (0x100)> + [16] #xxxx.1.1.num.int <255 (0xff)> + [17] #xxxx.1.1.num.int <128 (0x80)> + [18] #xxxx.1.1.num.int <127 (0x7f)> + [19] #xxxx.1.1.num.int <9 (0x9)> + [20] #xxxx.1.1.num.int <8 (0x8)> + [21] #xxxx.1.1.num.int <7 (0x7)> + [22] #xxxx.1.1.num.int <5 (0x5)> + [23] #xxxx.1.1.num.int <1 (0x1)> + [24] #xxxx.1.1.num.int <0 (0x0)> + [25] #xxxx.1.1.num.bool <0 (0x0)> + [26] #xxxx.1.1.num.bool <1 (0x1)> + [27] #0.0.nil + [28] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "123"> + [29] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "123"> + [30] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "123"> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "0123456789a"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "abc"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "a"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, ""> + [4] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [6] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [7] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [8] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [9] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [10] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [11] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [12] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [13] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [14] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #xxxx.1.1.num.int <257 (0x101)> + [16] #xxxx.1.1.num.int <256 (0x100)> + [17] #xxxx.1.1.num.int <255 (0xff)> + [18] #xxxx.1.1.num.int <128 (0x80)> + [19] #xxxx.1.1.num.int <127 (0x7f)> + [20] #xxxx.1.1.num.int <9 (0x9)> + [21] #xxxx.1.1.num.int <8 (0x8)> + [22] #xxxx.1.1.num.int <7 (0x7)> + [23] #xxxx.1.1.num.int <5 (0x5)> + [24] #xxxx.1.1.num.int <1 (0x1)> + [25] #xxxx.1.1.num.int <0 (0x0)> + [26] #xxxx.1.1.num.bool <0 (0x0)> + [27] #xxxx.1.1.num.bool <1 (0x1)> + [28] #0.0.nil + [29] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "123"> + [30] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "123"> + [31] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "123"> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "0123456789ab"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "0123456789a"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "abc"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "a"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, ""> + [5] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [7] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [8] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [9] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [10] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [11] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [12] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [13] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [14] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [15] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #xxxx.1.1.num.int <257 (0x101)> + [17] #xxxx.1.1.num.int <256 (0x100)> + [18] #xxxx.1.1.num.int <255 (0xff)> + [19] #xxxx.1.1.num.int <128 (0x80)> + [20] #xxxx.1.1.num.int <127 (0x7f)> + [21] #xxxx.1.1.num.int <9 (0x9)> + [22] #xxxx.1.1.num.int <8 (0x8)> + [23] #xxxx.1.1.num.int <7 (0x7)> + [24] #xxxx.1.1.num.int <5 (0x5)> + [25] #xxxx.1.1.num.int <1 (0x1)> + [26] #xxxx.1.1.num.int <0 (0x0)> + [27] #xxxx.1.1.num.bool <0 (0x0)> + [28] #xxxx.1.1.num.bool <1 (0x1)> + [29] #0.0.nil + [30] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "123"> + [31] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "123"> + [32] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "123"> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abcdefsghlertert"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "0123456789ab"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "0123456789a"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "abc"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "a"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, ""> + [6] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [8] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [9] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [10] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [11] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [12] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [13] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [14] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [15] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [16] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #xxxx.1.1.num.int <257 (0x101)> + [18] #xxxx.1.1.num.int <256 (0x100)> + [19] #xxxx.1.1.num.int <255 (0xff)> + [20] #xxxx.1.1.num.int <128 (0x80)> + [21] #xxxx.1.1.num.int <127 (0x7f)> + [22] #xxxx.1.1.num.int <9 (0x9)> + [23] #xxxx.1.1.num.int <8 (0x8)> + [24] #xxxx.1.1.num.int <7 (0x7)> + [25] #xxxx.1.1.num.int <5 (0x5)> + [26] #xxxx.1.1.num.int <1 (0x1)> + [27] #xxxx.1.1.num.int <0 (0x0)> + [28] #xxxx.1.1.num.bool <0 (0x0)> + [29] #xxxx.1.1.num.bool <1 (0x1)> + [30] #0.0.nil + [31] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "123"> + [32] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "123"> + [33] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "123"> +GC: ++#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "abcdefsghlertert"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "0123456789ab"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "0123456789a"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "abc"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "a"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, ""> + [7] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [9] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [10] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [11] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [12] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [13] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [14] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [15] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [16] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [17] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #xxxx.1.1.num.int <257 (0x101)> + [19] #xxxx.1.1.num.int <256 (0x100)> + [20] #xxxx.1.1.num.int <255 (0xff)> + [21] #xxxx.1.1.num.int <128 (0x80)> + [22] #xxxx.1.1.num.int <127 (0x7f)> + [23] #xxxx.1.1.num.int <9 (0x9)> + [24] #xxxx.1.1.num.int <8 (0x8)> + [25] #xxxx.1.1.num.int <7 (0x7)> + [26] #xxxx.1.1.num.int <5 (0x5)> + [27] #xxxx.1.1.num.int <1 (0x1)> + [28] #xxxx.1.1.num.int <0 (0x0)> + [29] #xxxx.1.1.num.bool <0 (0x0)> + [30] #xxxx.1.1.num.bool <1 (0x1)> + [31] #0.0.nil + [32] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "123"> + [33] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "123"> + [34] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "123"> +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "abcdefsghlertert"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "0123456789ab"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "0123456789a"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "abc"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "a"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, ""> + [8] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [10] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [11] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [12] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [13] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [14] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [15] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [16] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [17] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [18] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #xxxx.1.1.num.int <257 (0x101)> + [20] #xxxx.1.1.num.int <256 (0x100)> + [21] #xxxx.1.1.num.int <255 (0xff)> + [22] #xxxx.1.1.num.int <128 (0x80)> + [23] #xxxx.1.1.num.int <127 (0x7f)> + [24] #xxxx.1.1.num.int <9 (0x9)> + [25] #xxxx.1.1.num.int <8 (0x8)> + [26] #xxxx.1.1.num.int <7 (0x7)> + [27] #xxxx.1.1.num.int <5 (0x5)> + [28] #xxxx.1.1.num.int <1 (0x1)> + [29] #xxxx.1.1.num.int <0 (0x0)> + [30] #xxxx.1.1.num.bool <0 (0x0)> + [31] #xxxx.1.1.num.bool <1 (0x1)> + [32] #0.0.nil + [33] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "123"> + [34] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "123"> + [35] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "123"> +GC: ++#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "abc"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "abc"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "abcdefsghlertert"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "0123456789ab"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "0123456789a"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "abc"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "a"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, ""> + [9] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [11] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [12] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [13] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [14] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [15] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [16] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [17] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [18] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [19] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #xxxx.1.1.num.int <257 (0x101)> + [21] #xxxx.1.1.num.int <256 (0x100)> + [22] #xxxx.1.1.num.int <255 (0xff)> + [23] #xxxx.1.1.num.int <128 (0x80)> + [24] #xxxx.1.1.num.int <127 (0x7f)> + [25] #xxxx.1.1.num.int <9 (0x9)> + [26] #xxxx.1.1.num.int <8 (0x8)> + [27] #xxxx.1.1.num.int <7 (0x7)> + [28] #xxxx.1.1.num.int <5 (0x5)> + [29] #xxxx.1.1.num.int <1 (0x1)> + [30] #xxxx.1.1.num.int <0 (0x0)> + [31] #xxxx.1.1.num.bool <0 (0x0)> + [32] #xxxx.1.1.num.bool <1 (0x1)> + [33] #0.0.nil + [34] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "123"> + [35] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "123"> + [36] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, "123"> +GC: ++#xxxx.1.13.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.14.mem.ro, "foo"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "abc"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "abc"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "abcdefsghlertert"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "0123456789ab"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "0123456789a"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "abc"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "a"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, ""> + [10] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [12] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [13] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [14] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [15] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [16] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [17] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [18] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [19] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [20] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #xxxx.1.1.num.int <257 (0x101)> + [22] #xxxx.1.1.num.int <256 (0x100)> + [23] #xxxx.1.1.num.int <255 (0xff)> + [24] #xxxx.1.1.num.int <128 (0x80)> + [25] #xxxx.1.1.num.int <127 (0x7f)> + [26] #xxxx.1.1.num.int <9 (0x9)> + [27] #xxxx.1.1.num.int <8 (0x8)> + [28] #xxxx.1.1.num.int <7 (0x7)> + [29] #xxxx.1.1.num.int <5 (0x5)> + [30] #xxxx.1.1.num.int <1 (0x1)> + [31] #xxxx.1.1.num.int <0 (0x0)> + [32] #xxxx.1.1.num.bool <0 (0x0)> + [33] #xxxx.1.1.num.bool <1 (0x1)> + [34] #0.0.nil + [35] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "123"> + [36] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "123"> + [37] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, "123"> +GC: ++#xxxx.1.14.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.15.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.15.mem.ro, "foo"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, "abc"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, "abc"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, "abcdefsghlertert"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, "0123456789ab"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, "0123456789a"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, "abc"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, "a"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, ""> + [11] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [13] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [14] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [15] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [16] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [17] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [18] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [19] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [20] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [21] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #xxxx.1.1.num.int <257 (0x101)> + [23] #xxxx.1.1.num.int <256 (0x100)> + [24] #xxxx.1.1.num.int <255 (0xff)> + [25] #xxxx.1.1.num.int <128 (0x80)> + [26] #xxxx.1.1.num.int <127 (0x7f)> + [27] #xxxx.1.1.num.int <9 (0x9)> + [28] #xxxx.1.1.num.int <8 (0x8)> + [29] #xxxx.1.1.num.int <7 (0x7)> + [30] #xxxx.1.1.num.int <5 (0x5)> + [31] #xxxx.1.1.num.int <1 (0x1)> + [32] #xxxx.1.1.num.int <0 (0x0)> + [33] #xxxx.1.1.num.bool <0 (0x0)> + [34] #xxxx.1.1.num.bool <1 (0x1)> + [35] #0.0.nil + [36] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, "123"> + [37] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, "123"> + [38] #xxxx.1.1.mem.str.ro <#xxxx.1.15.mem.ro, "123"> +GC: ++#xxxx.1.15.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.16.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.16.mem.ro> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.16.mem.ro, "foo"> + [3] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, "abc"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, "abc"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, "abcdefsghlertert"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, "0123456789ab"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, "0123456789a"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, "abc"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, "a"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, ""> + [12] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [14] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [15] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [16] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [17] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [18] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [19] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [20] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [21] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [22] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #xxxx.1.1.num.int <257 (0x101)> + [24] #xxxx.1.1.num.int <256 (0x100)> + [25] #xxxx.1.1.num.int <255 (0xff)> + [26] #xxxx.1.1.num.int <128 (0x80)> + [27] #xxxx.1.1.num.int <127 (0x7f)> + [28] #xxxx.1.1.num.int <9 (0x9)> + [29] #xxxx.1.1.num.int <8 (0x8)> + [30] #xxxx.1.1.num.int <7 (0x7)> + [31] #xxxx.1.1.num.int <5 (0x5)> + [32] #xxxx.1.1.num.int <1 (0x1)> + [33] #xxxx.1.1.num.int <0 (0x0)> + [34] #xxxx.1.1.num.bool <0 (0x0)> + [35] #xxxx.1.1.num.bool <1 (0x1)> + [36] #0.0.nil + [37] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, "123"> + [38] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, "123"> + [39] #xxxx.1.1.mem.str.ro <#xxxx.1.16.mem.ro, "123"> +GC: ++#xxxx.1.16.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.17.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.17.mem.ro> + [2] #xxxx.1.1.mem.code.ro <#xxxx.1.17.mem.ro> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.17.mem.ro, "foo"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "abc"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "abc"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "abcdefsghlertert"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "0123456789ab"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "0123456789a"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "abc"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "a"> + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, ""> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [15] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [16] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [17] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [18] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [19] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [20] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [21] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [22] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <257 (0x101)> + [25] #xxxx.1.1.num.int <256 (0x100)> + [26] #xxxx.1.1.num.int <255 (0xff)> + [27] #xxxx.1.1.num.int <128 (0x80)> + [28] #xxxx.1.1.num.int <127 (0x7f)> + [29] #xxxx.1.1.num.int <9 (0x9)> + [30] #xxxx.1.1.num.int <8 (0x8)> + [31] #xxxx.1.1.num.int <7 (0x7)> + [32] #xxxx.1.1.num.int <5 (0x5)> + [33] #xxxx.1.1.num.int <1 (0x1)> + [34] #xxxx.1.1.num.int <0 (0x0)> + [35] #xxxx.1.1.num.bool <0 (0x0)> + [36] #xxxx.1.1.num.bool <1 (0x1)> + [37] #0.0.nil + [38] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "123"> + [39] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "123"> + [40] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "123"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.17.mem.ro> + [1] #xxxx.1.1.mem.code.ro <#xxxx.1.17.mem.ro> + [2] #xxxx.1.1.mem.code.ro <#xxxx.1.17.mem.ro> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.17.mem.ro, "foo"> + [4] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "abc"> + [5] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "abc"> + [6] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [7] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "abcdefsghlertert"> + [8] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "0123456789ab"> + [9] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "0123456789a"> + [10] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "abc"> + [11] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "a"> + [12] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, ""> + [13] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [15] #xxxx.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [16] #xxxx.1.1.num.int <-257 (0xfffffffffffffeff)> + [17] #xxxx.1.1.num.int <-256 (0xffffffffffffff00)> + [18] #xxxx.1.1.num.int <-255 (0xffffffffffffff01)> + [19] #xxxx.1.1.num.int <-129 (0xffffffffffffff7f)> + [20] #xxxx.1.1.num.int <-128 (0xffffffffffffff80)> + [21] #xxxx.1.1.num.int <-127 (0xffffffffffffff81)> + [22] #xxxx.1.1.num.int <-5 (0xfffffffffffffffb)> + [23] #xxxx.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #xxxx.1.1.num.int <257 (0x101)> + [25] #xxxx.1.1.num.int <256 (0x100)> + [26] #xxxx.1.1.num.int <255 (0xff)> + [27] #xxxx.1.1.num.int <128 (0x80)> + [28] #xxxx.1.1.num.int <127 (0x7f)> + [29] #xxxx.1.1.num.int <9 (0x9)> + [30] #xxxx.1.1.num.int <8 (0x8)> + [31] #xxxx.1.1.num.int <7 (0x7)> + [32] #xxxx.1.1.num.int <5 (0x5)> + [33] #xxxx.1.1.num.int <1 (0x1)> + [34] #xxxx.1.1.num.int <0 (0x0)> + [35] #xxxx.1.1.num.bool <0 (0x0)> + [36] #xxxx.1.1.num.bool <1 (0x1)> + [37] #0.0.nil + [38] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "123"> + [39] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "123"> + [40] #xxxx.1.1.mem.str.ro <#xxxx.1.17.mem.ro, "123"> +error 2 (invalid instruction), ip = #186 diff --git a/tests/0060_constants2/code.log.ref b/tests/0060_constants2/code.log.ref new file mode 100644 index 0000000..58aded6 --- /dev/null +++ b/tests/0060_constants2/code.log.ref @@ -0,0 +1,100 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 56 entries (56 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 str 37 31 32 33 "123" + 2 2 0x0000c str 37 31 32 33 "123" + 3 3 0x00010 str 37 31 32 33 "123" + 4 4 0x00014 nil 00 nil + 5 5 0x00015 bool 12 true + 6 0x00016 bool 02 false + 6 7 0x00017 int 01 0 + 8 0x00018 int 11 1 + 9 0x00019 int 51 5 + 10 0x0001a int 71 7 + 11 0x0001b int 81 08 8 + 12 0x0001d int 81 09 9 + 13 0x0001f int 81 7f 127 + 14 0x00021 int 91 80 00 128 + 15 0x00024 int 91 ff 00 255 + 16 0x00027 int 91 00 01 256 + 17 0x0002a int 91 01 01 257 + 7 18 0x0002d int 81 ff -1 + 19 0x0002f int 81 fb -5 + 20 0x00031 int 81 81 -127 + 21 0x00033 int 81 80 -128 + 22 0x00035 int 91 7f ff -129 + 23 0x00038 int 91 01 ff -255 + 24 0x0003b int 91 00 ff -256 + 25 0x0003e int 91 ff fe -257 + 9 26 0x00041 int f1 00 00 00 00 00 00 00 0x8000000000000000 + 80 + 10 27 0x0004a int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 11 28 0x00053 int 81 ff 0xffffffffffffffff + 12 29 0x00055 str 07 "" + 30 0x00056 str 17 61 "a" + 31 0x00058 str 37 61 62 63 "abc" + 32 0x0005c str b7 30 31 32 33 34 35 36 "0123456789a" + 37 38 39 61 + 33 0x00068 str c7 0c 30 31 32 33 34 35 "0123456789ab" + 36 37 38 39 61 62 + 34 0x00076 str c7 10 61 62 63 64 65 66 "abcdefsghlertert" + 73 67 68 6c 65 72 74 65 + 72 74 + 13 35 0x00088 str d7 00 01 68 6a 67 66 61 "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds" + 68 6a 67 73 64 66 61 68 + 6a 67 73 64 66 61 68 6a + 67 73 66 64 6a 68 61 73 + 66 64 61 64 66 73 6a 68 + 61 6a 73 64 68 66 61 64 + 6a 68 73 64 66 68 61 6a + 73 64 61 6a 68 61 73 64 + 66 67 61 73 64 66 67 61 + 6a 6b 73 64 67 66 6b 6a + 61 73 64 67 66 61 73 64 + 66 6a 6b 61 73 64 67 66 + 61 73 6b 64 66 6b 61 73 + 6a 64 67 66 6b 6a 61 61 + 73 64 66 61 73 64 66 6a + 6b 61 73 64 67 66 6b 6a + 61 73 68 64 67 66 6a 6b + 61 73 64 67 66 6a 68 61 + 73 64 67 66 6a 61 6b 73 + 67 64 66 6b 6a 61 73 64 + 67 66 6b 61 6a 73 64 67 + 66 6b 6a 61 73 64 67 66 + 6b 6a 61 73 64 66 67 6b + 6a 61 73 64 66 68 67 61 + 6b 73 6a 64 66 61 73 64 + 6b 66 6a 61 73 64 67 66 + 6b 73 61 6a 64 68 66 67 + 6b 61 6a 73 64 68 67 66 + 6a 6b 61 73 64 67 66 6a + 6b 61 73 64 67 66 6b 6a + 61 73 6a 6b 61 73 64 67 + 66 6b 6a 61 73 64 66 6b + 64 64 73 + 14 36 0x0018b str 37 61 62 63 "abc" + 15 37 0x0018f str 37 61 62 63 "abc" + 16 38 0x00193 ref 39 66 6f 6f /foo + 39 0x00197 code 56 { + 40 0x00198 int 81 0a 10 + 41 0x0019a int 81 14 20 + 42 0x0019c prim 13 } + 43 0x0019d code a6 { + 44 0x0019e int 81 64 100 + 45 0x001a0 int 91 2c 01 300 + 46 0x001a3 int 91 90 01 400 + 47 0x001a6 int 01 0 + 48 0x001a7 prim 13 } + 49 0x001a8 code b6 { + 50 0x001a9 int 81 64 100 + 51 0x001ab int 91 2c 01 300 + 52 0x001ae int 91 90 01 400 + 53 0x001b1 int 81 0a 10 + 54 0x001b3 prim 13 } + 55 0x001b4 word 38 64 65 66 def diff --git a/tests/0060_constants2/code1.log.ref b/tests/0060_constants2/code1.log.ref new file mode 100644 index 0000000..2425e47 --- /dev/null +++ b/tests/0060_constants2/code1.log.ref @@ -0,0 +1,100 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 56 entries (56 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 str 37 31 32 33 "123" + 2 2 0x0000c xref 44 "123" + 3 3 0x0000d xref 54 "123" + 4 4 0x0000e nil 00 nil + 5 5 0x0000f bool 12 true + 6 0x00010 bool 02 false + 6 7 0x00011 int 01 0 + 8 0x00012 int 11 1 + 9 0x00013 int 51 5 + 10 0x00014 int 71 7 + 11 0x00015 int 81 08 8 + 12 0x00017 int 81 09 9 + 13 0x00019 int 81 7f 127 + 14 0x0001b int 91 80 00 128 + 15 0x0001e int 91 ff 00 255 + 16 0x00021 int 91 00 01 256 + 17 0x00024 int 91 01 01 257 + 7 18 0x00027 int 81 ff -1 + 19 0x00029 int 81 fb -5 + 20 0x0002b int 81 81 -127 + 21 0x0002d int 81 80 -128 + 22 0x0002f int 91 7f ff -129 + 23 0x00032 int 91 01 ff -255 + 24 0x00035 int 91 00 ff -256 + 25 0x00038 int 91 ff fe -257 + 9 26 0x0003b int f1 00 00 00 00 00 00 00 0x8000000000000000 + 80 + 10 27 0x00044 int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 11 28 0x0004d int 81 ff 0xffffffffffffffff + 12 29 0x0004f str 07 "" + 30 0x00050 str 17 61 "a" + 31 0x00052 str 37 61 62 63 "abc" + 32 0x00056 str b7 30 31 32 33 34 35 36 "0123456789a" + 37 38 39 61 + 33 0x00062 str c7 0c 30 31 32 33 34 35 "0123456789ab" + 36 37 38 39 61 62 + 34 0x00070 str c7 10 61 62 63 64 65 66 "abcdefsghlertert" + 73 67 68 6c 65 72 74 65 + 72 74 + 13 35 0x00082 str d7 00 01 68 6a 67 66 61 "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds" + 68 6a 67 73 64 66 61 68 + 6a 67 73 64 66 61 68 6a + 67 73 66 64 6a 68 61 73 + 66 64 61 64 66 73 6a 68 + 61 6a 73 64 68 66 61 64 + 6a 68 73 64 66 68 61 6a + 73 64 61 6a 68 61 73 64 + 66 67 61 73 64 66 67 61 + 6a 6b 73 64 67 66 6b 6a + 61 73 64 67 66 61 73 64 + 66 6a 6b 61 73 64 67 66 + 61 73 6b 64 66 6b 61 73 + 6a 64 67 66 6b 6a 61 61 + 73 64 66 61 73 64 66 6a + 6b 61 73 64 67 66 6b 6a + 61 73 68 64 67 66 6a 6b + 61 73 64 67 66 6a 68 61 + 73 64 67 66 6a 61 6b 73 + 67 64 66 6b 6a 61 73 64 + 67 66 6b 61 6a 73 64 67 + 66 6b 6a 61 73 64 67 66 + 6b 6a 61 73 64 66 67 6b + 6a 61 73 64 66 68 67 61 + 6b 73 6a 64 66 61 73 64 + 6b 66 6a 61 73 64 67 66 + 6b 73 61 6a 64 68 66 67 + 6b 61 6a 73 64 68 67 66 + 6a 6b 61 73 64 67 66 6a + 6b 61 73 64 67 66 6b 6a + 61 73 6a 6b 61 73 64 67 + 66 6b 6a 61 73 64 66 6b + 64 64 73 + 14 36 0x00185 xref 94 33 01 "abc" + 15 37 0x00188 xref 94 36 01 "abc" + 16 38 0x0018b ref 39 66 6f 6f /foo + 39 0x0018f code 56 { + 40 0x00190 int 81 0a 10 + 41 0x00192 int 81 14 20 + 42 0x00194 prim 13 } + 43 0x00195 code a6 { + 44 0x00196 int 81 64 100 + 45 0x00198 int 91 2c 01 300 + 46 0x0019b int 91 90 01 400 + 47 0x0019e int 01 0 + 48 0x0019f prim 13 } + 49 0x001a0 code b6 { + 50 0x001a1 int 81 64 100 + 51 0x001a3 int 91 2c 01 300 + 52 0x001a6 int 91 90 01 400 + 53 0x001a9 int 81 0a 10 + 54 0x001ab prim 13 } + 55 0x001ac word 38 64 65 66 def diff --git a/tests/0060_constants2/code2.log.ref b/tests/0060_constants2/code2.log.ref new file mode 100644 index 0000000..25a0b2b --- /dev/null +++ b/tests/0060_constants2/code2.log.ref @@ -0,0 +1,100 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 56 entries (56 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 str 37 31 32 33 "123" + 2 2 0x0000c xref 44 "123" + 3 3 0x0000d xref 54 "123" + 4 4 0x0000e nil 00 nil + 5 5 0x0000f bool 12 true + 6 0x00010 bool 02 false + 6 7 0x00011 int 01 0 + 8 0x00012 int 11 1 + 9 0x00013 int 51 5 + 10 0x00014 int 71 7 + 11 0x00015 int 81 08 8 + 12 0x00017 int 81 09 9 + 13 0x00019 int 81 7f 127 + 14 0x0001b int 91 80 00 128 + 15 0x0001e int 91 ff 00 255 + 16 0x00021 int 91 00 01 256 + 17 0x00024 int 91 01 01 257 + 7 18 0x00027 int 81 ff -1 + 19 0x00029 int 81 fb -5 + 20 0x0002b int 81 81 -127 + 21 0x0002d int 81 80 -128 + 22 0x0002f int 91 7f ff -129 + 23 0x00032 int 91 01 ff -255 + 24 0x00035 int 91 00 ff -256 + 25 0x00038 int 91 ff fe -257 + 9 26 0x0003b int f1 00 00 00 00 00 00 00 0x8000000000000000 + 80 + 10 27 0x00044 int f1 00 00 00 00 00 00 00 -0x8000000000000000 + 80 + 11 28 0x0004d int 81 ff 0xffffffffffffffff + 12 29 0x0004f str 07 "" + 30 0x00050 str 17 61 "a" + 31 0x00052 str 37 61 62 63 "abc" + 32 0x00056 str b7 30 31 32 33 34 35 36 "0123456789a" + 37 38 39 61 + 33 0x00062 str c7 0c 30 31 32 33 34 35 "0123456789ab" + 36 37 38 39 61 62 + 34 0x00070 str c7 10 61 62 63 64 65 66 "abcdefsghlertert" + 73 67 68 6c 65 72 74 65 + 72 74 + 13 35 0x00082 str d7 00 01 68 6a 67 66 61 "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds" + 68 6a 67 73 64 66 61 68 + 6a 67 73 64 66 61 68 6a + 67 73 66 64 6a 68 61 73 + 66 64 61 64 66 73 6a 68 + 61 6a 73 64 68 66 61 64 + 6a 68 73 64 66 68 61 6a + 73 64 61 6a 68 61 73 64 + 66 67 61 73 64 66 67 61 + 6a 6b 73 64 67 66 6b 6a + 61 73 64 67 66 61 73 64 + 66 6a 6b 61 73 64 67 66 + 61 73 6b 64 66 6b 61 73 + 6a 64 67 66 6b 6a 61 61 + 73 64 66 61 73 64 66 6a + 6b 61 73 64 67 66 6b 6a + 61 73 68 64 67 66 6a 6b + 61 73 64 67 66 6a 68 61 + 73 64 67 66 6a 61 6b 73 + 67 64 66 6b 6a 61 73 64 + 67 66 6b 61 6a 73 64 67 + 66 6b 6a 61 73 64 67 66 + 6b 6a 61 73 64 66 67 6b + 6a 61 73 64 66 68 67 61 + 6b 73 6a 64 66 61 73 64 + 6b 66 6a 61 73 64 67 66 + 6b 73 61 6a 64 68 66 67 + 6b 61 6a 73 64 68 67 66 + 6a 6b 61 73 64 67 66 6a + 6b 61 73 64 67 66 6b 6a + 61 73 6a 6b 61 73 64 67 + 66 6b 6a 61 73 64 66 6b + 64 64 73 + 14 36 0x00185 xref 94 33 01 "abc" + 15 37 0x00188 xref 94 36 01 "abc" + 16 38 0x0018b ref 39 66 6f 6f /foo + 39 0x0018f code 56 { + 40 0x00190 int 81 0a 10 + 41 0x00192 int 81 14 20 + 42 0x00194 prim 13 } + 43 0x00195 code a6 { + 44 0x00196 int 81 64 100 + 45 0x00198 int 91 2c 01 300 + 46 0x0019b int 91 90 01 400 + 47 0x0019e int 01 0 + 48 0x0019f prim 13 } + 49 0x001a0 code b6 { + 50 0x001a1 int 81 64 100 + 51 0x001a3 int 91 2c 01 300 + 52 0x001a6 int 91 90 01 400 + 53 0x001a9 int 81 0a 10 + 54 0x001ab prim 13 } + 55 0x001ac prim 63 def diff --git a/tests/0060_constants2/main.gs b/tests/0060_constants2/main.gs new file mode 100644 index 0000000..e5a7ea2 --- /dev/null +++ b/tests/0060_constants2/main.gs @@ -0,0 +1,16 @@ +"123" +"123" +"123" +nil +true false +0 1 5 7 8 9 127 128 255 256 257 +-1 -5 -127 -128 -129 -255 -256 -257 +# 0123456701234567 + 0x8000000000000000 +-0x8000000000000000 + 0xffffffffffffffff +"" "a" "abc" "0123456789a" "0123456789ab" "abcdefsghlertert" +"hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds" +"abc" +"abc" +/foo { 10 20 } { 100 300 400 0 } { 100 300 400 10 } def diff --git a/tests/0060_constants2/mem.log.ref b/tests/0060_constants2/mem.log.ref new file mode 100644 index 0000000..c1aec94 --- /dev/null +++ b/tests/0060_constants2/mem.log.ref @@ -0,0 +1,890 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 440] + 8: 0.00, 0x001d6c2c[ 72] + 9: 188.01, 0x001d6c7c[ 56] + 10: 0.00, 0x001d6cbc[ 144] + 11: 187.01, 0x001d6d54[ 224] + 12: 0.00, 0x001d6e3c[14848452] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.17.mem.ro + 75 51 12 a9 42 7a ad 60 37 31 32 33 37 31 32 33 uQ..Bz.`71237123 + 37 31 32 33 00 12 02 01 11 51 71 81 08 81 09 81 7123.....Qq..... + 7f 91 80 00 91 ff 00 91 00 01 91 01 01 81 ff 81 ................ + fb 81 81 81 80 91 7f ff 91 01 ff 91 00 ff 91 ff ................ + fe f1 00 00 00 00 00 00 00 80 f1 00 00 00 00 00 ................ + 00 00 80 81 ff 07 17 61 37 61 62 63 b7 30 31 32 .......a7abc.012 + 33 34 35 36 37 38 39 61 c7 0c 30 31 32 33 34 35 3456789a..012345 + 36 37 38 39 61 62 c7 10 61 62 63 64 65 66 73 67 6789ab..abcdefsg + 68 6c 65 72 74 65 72 74 d7 00 01 68 6a 67 66 61 hlertert...hjgfa + 68 6a 67 73 64 66 61 68 6a 67 73 64 66 61 68 6a hjgsdfahjgsdfahj + 67 73 66 64 6a 68 61 73 66 64 61 64 66 73 6a 68 gsfdjhasfdadfsjh + 61 6a 73 64 68 66 61 64 6a 68 73 64 66 68 61 6a ajsdhfadjhsdfhaj + 73 64 61 6a 68 61 73 64 66 67 61 73 64 66 67 61 sdajhasdfgasdfga + 6a 6b 73 64 67 66 6b 6a 61 73 64 67 66 61 73 64 jksdgfkjasdgfasd + 66 6a 6b 61 73 64 67 66 61 73 6b 64 66 6b 61 73 fjkasdgfaskdfkas + 6a 64 67 66 6b 6a 61 61 73 64 66 61 73 64 66 6a jdgfkjaasdfasdfj + 6b 61 73 64 67 66 6b 6a 61 73 68 64 67 66 6a 6b kasdgfkjashdgfjk + 61 73 64 67 66 6a 68 61 73 64 67 66 6a 61 6b 73 asdgfjhasdgfjaks + 67 64 66 6b 6a 61 73 64 67 66 6b 61 6a 73 64 67 gdfkjasdgfkajsdg + 66 6b 6a 61 73 64 67 66 6b 6a 61 73 64 66 67 6b fkjasdgfkjasdfgk + 6a 61 73 64 66 68 67 61 6b 73 6a 64 66 61 73 64 jasdfhgaksjdfasd + 6b 66 6a 61 73 64 67 66 6b 73 61 6a 64 68 66 67 kfjasdgfksajdhfg + 6b 61 6a 73 64 68 67 66 6a 6b 61 73 64 67 66 6a kajsdhgfjkasdgfj + 6b 61 73 64 67 66 6b 6a 61 73 6a 6b 61 73 64 67 kasdgfkjasjkasdg + 66 6b 6a 61 73 64 66 6b 64 64 73 37 61 62 63 37 fkjasdfkdds7abc7 + 61 62 63 39 66 6f 6f 56 81 0a 81 14 13 a6 81 64 abc9fooV.......d + 91 2c 01 91 90 01 01 13 b6 81 64 91 2c 01 91 90 .,........d.,... + 01 81 0a 13 38 64 65 66 ....8def + #187.1.1.array + [ 0] #189.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x9, size 3, "123"> + [ 1] #190.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0xd, size 3, "123"> + [ 2] #191.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x11, size 3, "123"> + [ 3] #0.0.nil + [ 4] #192.1.1.num.bool <1 (0x1)> + [ 5] #193.1.1.num.bool <0 (0x0)> + [ 6] #194.1.1.num.int <0 (0x0)> + [ 7] #195.1.1.num.int <1 (0x1)> + [ 8] #196.1.1.num.int <5 (0x5)> + [ 9] #197.1.1.num.int <7 (0x7)> + [10] #198.1.1.num.int <8 (0x8)> + [11] #199.1.1.num.int <9 (0x9)> + [12] #200.1.1.num.int <127 (0x7f)> + [13] #201.1.1.num.int <128 (0x80)> + [14] #202.1.1.num.int <255 (0xff)> + [15] #203.1.1.num.int <256 (0x100)> + [16] #204.1.1.num.int <257 (0x101)> + [17] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [19] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [20] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [21] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [22] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [23] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [24] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [25] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [26] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [27] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [28] #216.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x56, size 0, ""> + [29] #217.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x57, size 1, "a"> + [30] #218.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x59, size 3, "abc"> + [31] #219.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [32] #220.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + [33] #221.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x78, size 16, "abcdefsghlertert"> + [34] #222.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x8b, size 256, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [35] #223.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x18c, size 3, "abc"> + [36] #224.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x190, size 3, "abc"> + [37] #225.1.1.mem.ref.ro <#186.1.17.mem.ro, ofs 0x194, size 3, "foo"> + [38] #226.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x198, size 5> + [39] #227.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x19e, size 10> + [40] #228.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x1a9, size 11> + #188.1.1.ctx.func + type 17, ip 0x1b8 (0x1b4) + code #186.1.17.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x9, size 3, "123"> + 31 32 33 123 + #190.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0xd, size 3, "123"> + 31 32 33 123 + #191.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x11, size 3, "123"> + 31 32 33 123 + #192.1.1.num.bool <1 (0x1)> + #193.1.1.num.bool <0 (0x0)> + #194.1.1.num.int <0 (0x0)> + #195.1.1.num.int <1 (0x1)> + #196.1.1.num.int <5 (0x5)> + #197.1.1.num.int <7 (0x7)> + #198.1.1.num.int <8 (0x8)> + #199.1.1.num.int <9 (0x9)> + #200.1.1.num.int <127 (0x7f)> + #201.1.1.num.int <128 (0x80)> + #202.1.1.num.int <255 (0xff)> + #203.1.1.num.int <256 (0x100)> + #204.1.1.num.int <257 (0x101)> + #205.1.1.num.int <-1 (0xffffffffffffffff)> + #206.1.1.num.int <-5 (0xfffffffffffffffb)> + #207.1.1.num.int <-127 (0xffffffffffffff81)> + #208.1.1.num.int <-128 (0xffffffffffffff80)> + #209.1.1.num.int <-129 (0xffffffffffffff7f)> + #210.1.1.num.int <-255 (0xffffffffffffff01)> + #211.1.1.num.int <-256 (0xffffffffffffff00)> + #212.1.1.num.int <-257 (0xfffffffffffffeff)> + #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + #215.1.1.num.int <-1 (0xffffffffffffffff)> + #216.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x56, size 0, ""> + + #217.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x57, size 1, "a"> + 61 a + #218.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x59, size 3, "abc"> + 61 62 63 abc + #219.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x5d, size 11, "0123456789a"> + 30 31 32 33 34 35 36 37 38 39 61 0123456789a + #220.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + 30 31 32 33 34 35 36 37 38 39 61 62 0123456789ab + #221.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x78, size 16, "abcdefsghlertert"> + 61 62 63 64 65 66 73 67 68 6c 65 72 74 65 72 74 abcdefsghlertert + #222.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x8b, size 256, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + 68 6a 67 66 61 68 6a 67 73 64 66 61 68 6a 67 73 hjgfahjgsdfahjgs + 64 66 61 68 6a 67 73 66 64 6a 68 61 73 66 64 61 dfahjgsfdjhasfda + 64 66 73 6a 68 61 6a 73 64 68 66 61 64 6a 68 73 dfsjhajsdhfadjhs + 64 66 68 61 6a 73 64 61 6a 68 61 73 64 66 67 61 dfhajsdajhasdfga + 73 64 66 67 61 6a 6b 73 64 67 66 6b 6a 61 73 64 sdfgajksdgfkjasd + 67 66 61 73 64 66 6a 6b 61 73 64 67 66 61 73 6b gfasdfjkasdgfask + 64 66 6b 61 73 6a 64 67 66 6b 6a 61 61 73 64 66 dfkasjdgfkjaasdf + 61 73 64 66 6a 6b 61 73 64 67 66 6b 6a 61 73 68 asdfjkasdgfkjash + 64 67 66 6a 6b 61 73 64 67 66 6a 68 61 73 64 67 dgfjkasdgfjhasdg + 66 6a 61 6b 73 67 64 66 6b 6a 61 73 64 67 66 6b fjaksgdfkjasdgfk + 61 6a 73 64 67 66 6b 6a 61 73 64 67 66 6b 6a 61 ajsdgfkjasdgfkja + 73 64 66 67 6b 6a 61 73 64 66 68 67 61 6b 73 6a sdfgkjasdfhgaksj + 64 66 61 73 64 6b 66 6a 61 73 64 67 66 6b 73 61 dfasdkfjasdgfksa + 6a 64 68 66 67 6b 61 6a 73 64 68 67 66 6a 6b 61 jdhfgkajsdhgfjka + 73 64 67 66 6a 6b 61 73 64 67 66 6b 6a 61 73 6a sdgfjkasdgfkjasj + 6b 61 73 64 67 66 6b 6a 61 73 64 66 6b 64 64 73 kasdgfkjasdfkdds + #223.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x18c, size 3, "abc"> + 61 62 63 abc + #224.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x190, size 3, "abc"> + 61 62 63 abc + #225.1.1.mem.ref.ro <#186.1.17.mem.ro, ofs 0x194, size 3, "foo"> + 66 6f 6f foo + #226.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x198, size 5> + 81 0a 81 14 13 ..... + #227.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x19e, size 10> + 81 64 91 2c 01 91 90 01 01 13 .d.,...... + #228.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x1a9, size 11> + 81 64 91 2c 01 91 90 01 81 0a 13 .d.,....... diff --git a/tests/0060_constants2/screen.log.ref b/tests/0060_constants2/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0060_constants2/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0060_constants2/trace.log.ref b/tests/0060_constants2/trace.log.ref new file mode 100644 index 0000000..cebdebd --- /dev/null +++ b/tests/0060_constants2/trace.log.ref @@ -0,0 +1,1092 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 7, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.str.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0xc, type 7, 13[3] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xd, size 3, "123"> + [1] #189.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x10, type 7, 17[3] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [1] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [2] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x14, type 0, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #0.0.nil + [1] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [2] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [3] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x15, type 2, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.num.bool <1 (0x1)> + [1] #0.0.nil + [2] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [3] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [4] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x16, type 2, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.bool <0 (0x0)> + [1] #192.1.1.num.bool <1 (0x1)> + [2] #0.0.nil + [3] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [4] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [5] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x17, type 1, 0 (0x0) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.num.int <0 (0x0)> + [1] #193.1.1.num.bool <0 (0x0)> + [2] #192.1.1.num.bool <1 (0x1)> + [3] #0.0.nil + [4] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [5] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [6] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x18, type 1, 1 (0x1) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <1 (0x1)> + [1] #194.1.1.num.int <0 (0x0)> + [2] #193.1.1.num.bool <0 (0x0)> + [3] #192.1.1.num.bool <1 (0x1)> + [4] #0.0.nil + [5] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [6] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [7] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x19, type 1, 5 (0x5) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.num.int <5 (0x5)> + [1] #195.1.1.num.int <1 (0x1)> + [2] #194.1.1.num.int <0 (0x0)> + [3] #193.1.1.num.bool <0 (0x0)> + [4] #192.1.1.num.bool <1 (0x1)> + [5] #0.0.nil + [6] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [7] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [8] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x1a, type 1, 7 (0x7) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <7 (0x7)> + [1] #196.1.1.num.int <5 (0x5)> + [2] #195.1.1.num.int <1 (0x1)> + [3] #194.1.1.num.int <0 (0x0)> + [4] #193.1.1.num.bool <0 (0x0)> + [5] #192.1.1.num.bool <1 (0x1)> + [6] #0.0.nil + [7] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [8] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [9] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x1b, type 1, 8 (0x8) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <8 (0x8)> + [1] #197.1.1.num.int <7 (0x7)> + [2] #196.1.1.num.int <5 (0x5)> + [3] #195.1.1.num.int <1 (0x1)> + [4] #194.1.1.num.int <0 (0x0)> + [5] #193.1.1.num.bool <0 (0x0)> + [6] #192.1.1.num.bool <1 (0x1)> + [7] #0.0.nil + [8] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [9] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [10] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x1d, type 1, 9 (0x9) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.num.int <9 (0x9)> + [1] #198.1.1.num.int <8 (0x8)> + [2] #197.1.1.num.int <7 (0x7)> + [3] #196.1.1.num.int <5 (0x5)> + [4] #195.1.1.num.int <1 (0x1)> + [5] #194.1.1.num.int <0 (0x0)> + [6] #193.1.1.num.bool <0 (0x0)> + [7] #192.1.1.num.bool <1 (0x1)> + [8] #0.0.nil + [9] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [10] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [11] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x1f, type 1, 127 (0x7f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.num.int <127 (0x7f)> + [1] #199.1.1.num.int <9 (0x9)> + [2] #198.1.1.num.int <8 (0x8)> + [3] #197.1.1.num.int <7 (0x7)> + [4] #196.1.1.num.int <5 (0x5)> + [5] #195.1.1.num.int <1 (0x1)> + [6] #194.1.1.num.int <0 (0x0)> + [7] #193.1.1.num.bool <0 (0x0)> + [8] #192.1.1.num.bool <1 (0x1)> + [9] #0.0.nil + [10] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [11] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [12] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x21, type 1, 128 (0x80) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <128 (0x80)> + [1] #200.1.1.num.int <127 (0x7f)> + [2] #199.1.1.num.int <9 (0x9)> + [3] #198.1.1.num.int <8 (0x8)> + [4] #197.1.1.num.int <7 (0x7)> + [5] #196.1.1.num.int <5 (0x5)> + [6] #195.1.1.num.int <1 (0x1)> + [7] #194.1.1.num.int <0 (0x0)> + [8] #193.1.1.num.bool <0 (0x0)> + [9] #192.1.1.num.bool <1 (0x1)> + [10] #0.0.nil + [11] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [12] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [13] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x24, type 1, 255 (0xff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.num.int <255 (0xff)> + [1] #201.1.1.num.int <128 (0x80)> + [2] #200.1.1.num.int <127 (0x7f)> + [3] #199.1.1.num.int <9 (0x9)> + [4] #198.1.1.num.int <8 (0x8)> + [5] #197.1.1.num.int <7 (0x7)> + [6] #196.1.1.num.int <5 (0x5)> + [7] #195.1.1.num.int <1 (0x1)> + [8] #194.1.1.num.int <0 (0x0)> + [9] #193.1.1.num.bool <0 (0x0)> + [10] #192.1.1.num.bool <1 (0x1)> + [11] #0.0.nil + [12] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [13] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [14] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x27, type 1, 256 (0x100) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <256 (0x100)> + [1] #202.1.1.num.int <255 (0xff)> + [2] #201.1.1.num.int <128 (0x80)> + [3] #200.1.1.num.int <127 (0x7f)> + [4] #199.1.1.num.int <9 (0x9)> + [5] #198.1.1.num.int <8 (0x8)> + [6] #197.1.1.num.int <7 (0x7)> + [7] #196.1.1.num.int <5 (0x5)> + [8] #195.1.1.num.int <1 (0x1)> + [9] #194.1.1.num.int <0 (0x0)> + [10] #193.1.1.num.bool <0 (0x0)> + [11] #192.1.1.num.bool <1 (0x1)> + [12] #0.0.nil + [13] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [14] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [15] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x2a, type 1, 257 (0x101) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <257 (0x101)> + [1] #203.1.1.num.int <256 (0x100)> + [2] #202.1.1.num.int <255 (0xff)> + [3] #201.1.1.num.int <128 (0x80)> + [4] #200.1.1.num.int <127 (0x7f)> + [5] #199.1.1.num.int <9 (0x9)> + [6] #198.1.1.num.int <8 (0x8)> + [7] #197.1.1.num.int <7 (0x7)> + [8] #196.1.1.num.int <5 (0x5)> + [9] #195.1.1.num.int <1 (0x1)> + [10] #194.1.1.num.int <0 (0x0)> + [11] #193.1.1.num.bool <0 (0x0)> + [12] #192.1.1.num.bool <1 (0x1)> + [13] #0.0.nil + [14] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [15] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [16] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x2d, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #204.1.1.num.int <257 (0x101)> + [2] #203.1.1.num.int <256 (0x100)> + [3] #202.1.1.num.int <255 (0xff)> + [4] #201.1.1.num.int <128 (0x80)> + [5] #200.1.1.num.int <127 (0x7f)> + [6] #199.1.1.num.int <9 (0x9)> + [7] #198.1.1.num.int <8 (0x8)> + [8] #197.1.1.num.int <7 (0x7)> + [9] #196.1.1.num.int <5 (0x5)> + [10] #195.1.1.num.int <1 (0x1)> + [11] #194.1.1.num.int <0 (0x0)> + [12] #193.1.1.num.bool <0 (0x0)> + [13] #192.1.1.num.bool <1 (0x1)> + [14] #0.0.nil + [15] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [16] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [17] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x2f, type 1, -5 (0xfffffffffffffffb) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [1] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #204.1.1.num.int <257 (0x101)> + [3] #203.1.1.num.int <256 (0x100)> + [4] #202.1.1.num.int <255 (0xff)> + [5] #201.1.1.num.int <128 (0x80)> + [6] #200.1.1.num.int <127 (0x7f)> + [7] #199.1.1.num.int <9 (0x9)> + [8] #198.1.1.num.int <8 (0x8)> + [9] #197.1.1.num.int <7 (0x7)> + [10] #196.1.1.num.int <5 (0x5)> + [11] #195.1.1.num.int <1 (0x1)> + [12] #194.1.1.num.int <0 (0x0)> + [13] #193.1.1.num.bool <0 (0x0)> + [14] #192.1.1.num.bool <1 (0x1)> + [15] #0.0.nil + [16] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [17] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [18] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x31, type 1, -127 (0xffffffffffffff81) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [1] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [2] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #204.1.1.num.int <257 (0x101)> + [4] #203.1.1.num.int <256 (0x100)> + [5] #202.1.1.num.int <255 (0xff)> + [6] #201.1.1.num.int <128 (0x80)> + [7] #200.1.1.num.int <127 (0x7f)> + [8] #199.1.1.num.int <9 (0x9)> + [9] #198.1.1.num.int <8 (0x8)> + [10] #197.1.1.num.int <7 (0x7)> + [11] #196.1.1.num.int <5 (0x5)> + [12] #195.1.1.num.int <1 (0x1)> + [13] #194.1.1.num.int <0 (0x0)> + [14] #193.1.1.num.bool <0 (0x0)> + [15] #192.1.1.num.bool <1 (0x1)> + [16] #0.0.nil + [17] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [18] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [19] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x33, type 1, -128 (0xffffffffffffff80) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [1] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [2] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [3] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #204.1.1.num.int <257 (0x101)> + [5] #203.1.1.num.int <256 (0x100)> + [6] #202.1.1.num.int <255 (0xff)> + [7] #201.1.1.num.int <128 (0x80)> + [8] #200.1.1.num.int <127 (0x7f)> + [9] #199.1.1.num.int <9 (0x9)> + [10] #198.1.1.num.int <8 (0x8)> + [11] #197.1.1.num.int <7 (0x7)> + [12] #196.1.1.num.int <5 (0x5)> + [13] #195.1.1.num.int <1 (0x1)> + [14] #194.1.1.num.int <0 (0x0)> + [15] #193.1.1.num.bool <0 (0x0)> + [16] #192.1.1.num.bool <1 (0x1)> + [17] #0.0.nil + [18] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [19] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [20] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x35, type 1, -129 (0xffffffffffffff7f) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [1] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [2] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [3] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [4] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #204.1.1.num.int <257 (0x101)> + [6] #203.1.1.num.int <256 (0x100)> + [7] #202.1.1.num.int <255 (0xff)> + [8] #201.1.1.num.int <128 (0x80)> + [9] #200.1.1.num.int <127 (0x7f)> + [10] #199.1.1.num.int <9 (0x9)> + [11] #198.1.1.num.int <8 (0x8)> + [12] #197.1.1.num.int <7 (0x7)> + [13] #196.1.1.num.int <5 (0x5)> + [14] #195.1.1.num.int <1 (0x1)> + [15] #194.1.1.num.int <0 (0x0)> + [16] #193.1.1.num.bool <0 (0x0)> + [17] #192.1.1.num.bool <1 (0x1)> + [18] #0.0.nil + [19] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [20] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [21] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x38, type 1, -255 (0xffffffffffffff01) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [1] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [2] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [3] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [4] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [5] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #204.1.1.num.int <257 (0x101)> + [7] #203.1.1.num.int <256 (0x100)> + [8] #202.1.1.num.int <255 (0xff)> + [9] #201.1.1.num.int <128 (0x80)> + [10] #200.1.1.num.int <127 (0x7f)> + [11] #199.1.1.num.int <9 (0x9)> + [12] #198.1.1.num.int <8 (0x8)> + [13] #197.1.1.num.int <7 (0x7)> + [14] #196.1.1.num.int <5 (0x5)> + [15] #195.1.1.num.int <1 (0x1)> + [16] #194.1.1.num.int <0 (0x0)> + [17] #193.1.1.num.bool <0 (0x0)> + [18] #192.1.1.num.bool <1 (0x1)> + [19] #0.0.nil + [20] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [21] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [22] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x3b, type 1, -256 (0xffffffffffffff00) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [1] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [2] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [3] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [4] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [5] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [6] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #204.1.1.num.int <257 (0x101)> + [8] #203.1.1.num.int <256 (0x100)> + [9] #202.1.1.num.int <255 (0xff)> + [10] #201.1.1.num.int <128 (0x80)> + [11] #200.1.1.num.int <127 (0x7f)> + [12] #199.1.1.num.int <9 (0x9)> + [13] #198.1.1.num.int <8 (0x8)> + [14] #197.1.1.num.int <7 (0x7)> + [15] #196.1.1.num.int <5 (0x5)> + [16] #195.1.1.num.int <1 (0x1)> + [17] #194.1.1.num.int <0 (0x0)> + [18] #193.1.1.num.bool <0 (0x0)> + [19] #192.1.1.num.bool <1 (0x1)> + [20] #0.0.nil + [21] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [22] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [23] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x3e, type 1, -257 (0xfffffffffffffeff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [1] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [2] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [3] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [4] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [5] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [6] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [7] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #204.1.1.num.int <257 (0x101)> + [9] #203.1.1.num.int <256 (0x100)> + [10] #202.1.1.num.int <255 (0xff)> + [11] #201.1.1.num.int <128 (0x80)> + [12] #200.1.1.num.int <127 (0x7f)> + [13] #199.1.1.num.int <9 (0x9)> + [14] #198.1.1.num.int <8 (0x8)> + [15] #197.1.1.num.int <7 (0x7)> + [16] #196.1.1.num.int <5 (0x5)> + [17] #195.1.1.num.int <1 (0x1)> + [18] #194.1.1.num.int <0 (0x0)> + [19] #193.1.1.num.bool <0 (0x0)> + [20] #192.1.1.num.bool <1 (0x1)> + [21] #0.0.nil + [22] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [23] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [24] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x41, type 1, -9223372036854775808 (0x8000000000000000) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [2] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [3] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [4] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [5] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [6] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [7] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [8] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #204.1.1.num.int <257 (0x101)> + [10] #203.1.1.num.int <256 (0x100)> + [11] #202.1.1.num.int <255 (0xff)> + [12] #201.1.1.num.int <128 (0x80)> + [13] #200.1.1.num.int <127 (0x7f)> + [14] #199.1.1.num.int <9 (0x9)> + [15] #198.1.1.num.int <8 (0x8)> + [16] #197.1.1.num.int <7 (0x7)> + [17] #196.1.1.num.int <5 (0x5)> + [18] #195.1.1.num.int <1 (0x1)> + [19] #194.1.1.num.int <0 (0x0)> + [20] #193.1.1.num.bool <0 (0x0)> + [21] #192.1.1.num.bool <1 (0x1)> + [22] #0.0.nil + [23] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [24] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [25] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x4a, type 1, -9223372036854775808 (0x8000000000000000) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [1] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [3] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [4] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [5] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [6] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [7] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [8] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [9] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #204.1.1.num.int <257 (0x101)> + [11] #203.1.1.num.int <256 (0x100)> + [12] #202.1.1.num.int <255 (0xff)> + [13] #201.1.1.num.int <128 (0x80)> + [14] #200.1.1.num.int <127 (0x7f)> + [15] #199.1.1.num.int <9 (0x9)> + [16] #198.1.1.num.int <8 (0x8)> + [17] #197.1.1.num.int <7 (0x7)> + [18] #196.1.1.num.int <5 (0x5)> + [19] #195.1.1.num.int <1 (0x1)> + [20] #194.1.1.num.int <0 (0x0)> + [21] #193.1.1.num.bool <0 (0x0)> + [22] #192.1.1.num.bool <1 (0x1)> + [23] #0.0.nil + [24] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [25] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [26] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x53, type 1, -1 (0xffffffffffffffff) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [1] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [2] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [3] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [4] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [5] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [6] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [7] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [8] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [9] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [10] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #204.1.1.num.int <257 (0x101)> + [12] #203.1.1.num.int <256 (0x100)> + [13] #202.1.1.num.int <255 (0xff)> + [14] #201.1.1.num.int <128 (0x80)> + [15] #200.1.1.num.int <127 (0x7f)> + [16] #199.1.1.num.int <9 (0x9)> + [17] #198.1.1.num.int <8 (0x8)> + [18] #197.1.1.num.int <7 (0x7)> + [19] #196.1.1.num.int <5 (0x5)> + [20] #195.1.1.num.int <1 (0x1)> + [21] #194.1.1.num.int <0 (0x0)> + [22] #193.1.1.num.bool <0 (0x0)> + [23] #192.1.1.num.bool <1 (0x1)> + [24] #0.0.nil + [25] #191.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x11, size 3, "123"> + [26] #190.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0xd, size 3, "123"> + [27] #189.1.1.mem.str.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x55, type 7, 86[0] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x56, size 0, ""> + [1] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [2] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [3] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [4] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [5] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [6] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [7] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [8] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [9] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [10] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [11] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #204.1.1.num.int <257 (0x101)> + [13] #203.1.1.num.int <256 (0x100)> + [14] #202.1.1.num.int <255 (0xff)> + [15] #201.1.1.num.int <128 (0x80)> + [16] #200.1.1.num.int <127 (0x7f)> + [17] #199.1.1.num.int <9 (0x9)> + [18] #198.1.1.num.int <8 (0x8)> + [19] #197.1.1.num.int <7 (0x7)> + [20] #196.1.1.num.int <5 (0x5)> + [21] #195.1.1.num.int <1 (0x1)> + [22] #194.1.1.num.int <0 (0x0)> + [23] #193.1.1.num.bool <0 (0x0)> + [24] #192.1.1.num.bool <1 (0x1)> + [25] #0.0.nil + [26] #191.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x11, size 3, "123"> + [27] #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xd, size 3, "123"> + [28] #189.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x56, type 7, 87[1] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x57, size 1, "a"> + [1] #216.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x56, size 0, ""> + [2] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [3] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [4] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [5] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [6] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [7] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [8] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [9] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [10] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [11] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [12] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #204.1.1.num.int <257 (0x101)> + [14] #203.1.1.num.int <256 (0x100)> + [15] #202.1.1.num.int <255 (0xff)> + [16] #201.1.1.num.int <128 (0x80)> + [17] #200.1.1.num.int <127 (0x7f)> + [18] #199.1.1.num.int <9 (0x9)> + [19] #198.1.1.num.int <8 (0x8)> + [20] #197.1.1.num.int <7 (0x7)> + [21] #196.1.1.num.int <5 (0x5)> + [22] #195.1.1.num.int <1 (0x1)> + [23] #194.1.1.num.int <0 (0x0)> + [24] #193.1.1.num.bool <0 (0x0)> + [25] #192.1.1.num.bool <1 (0x1)> + [26] #0.0.nil + [27] #191.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x11, size 3, "123"> + [28] #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xd, size 3, "123"> + [29] #189.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x58, type 7, 89[3] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x59, size 3, "abc"> + [1] #217.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x57, size 1, "a"> + [2] #216.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x56, size 0, ""> + [3] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [4] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [5] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [6] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [7] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [8] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [9] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [10] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [11] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [12] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [13] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #204.1.1.num.int <257 (0x101)> + [15] #203.1.1.num.int <256 (0x100)> + [16] #202.1.1.num.int <255 (0xff)> + [17] #201.1.1.num.int <128 (0x80)> + [18] #200.1.1.num.int <127 (0x7f)> + [19] #199.1.1.num.int <9 (0x9)> + [20] #198.1.1.num.int <8 (0x8)> + [21] #197.1.1.num.int <7 (0x7)> + [22] #196.1.1.num.int <5 (0x5)> + [23] #195.1.1.num.int <1 (0x1)> + [24] #194.1.1.num.int <0 (0x0)> + [25] #193.1.1.num.bool <0 (0x0)> + [26] #192.1.1.num.bool <1 (0x1)> + [27] #0.0.nil + [28] #191.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x11, size 3, "123"> + [29] #190.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0xd, size 3, "123"> + [30] #189.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x5c, type 7, 93[11] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [1] #218.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x59, size 3, "abc"> + [2] #217.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x57, size 1, "a"> + [3] #216.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x56, size 0, ""> + [4] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [5] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [6] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [7] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [8] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [9] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [10] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [11] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [12] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [13] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [14] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [15] #204.1.1.num.int <257 (0x101)> + [16] #203.1.1.num.int <256 (0x100)> + [17] #202.1.1.num.int <255 (0xff)> + [18] #201.1.1.num.int <128 (0x80)> + [19] #200.1.1.num.int <127 (0x7f)> + [20] #199.1.1.num.int <9 (0x9)> + [21] #198.1.1.num.int <8 (0x8)> + [22] #197.1.1.num.int <7 (0x7)> + [23] #196.1.1.num.int <5 (0x5)> + [24] #195.1.1.num.int <1 (0x1)> + [25] #194.1.1.num.int <0 (0x0)> + [26] #193.1.1.num.bool <0 (0x0)> + [27] #192.1.1.num.bool <1 (0x1)> + [28] #0.0.nil + [29] #191.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x11, size 3, "123"> + [30] #190.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0xd, size 3, "123"> + [31] #189.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x68, type 7, 106[12] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + [1] #219.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [2] #218.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x59, size 3, "abc"> + [3] #217.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x57, size 1, "a"> + [4] #216.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x56, size 0, ""> + [5] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [6] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [7] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [8] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [9] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [10] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [11] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [12] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [13] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [14] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [15] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [16] #204.1.1.num.int <257 (0x101)> + [17] #203.1.1.num.int <256 (0x100)> + [18] #202.1.1.num.int <255 (0xff)> + [19] #201.1.1.num.int <128 (0x80)> + [20] #200.1.1.num.int <127 (0x7f)> + [21] #199.1.1.num.int <9 (0x9)> + [22] #198.1.1.num.int <8 (0x8)> + [23] #197.1.1.num.int <7 (0x7)> + [24] #196.1.1.num.int <5 (0x5)> + [25] #195.1.1.num.int <1 (0x1)> + [26] #194.1.1.num.int <0 (0x0)> + [27] #193.1.1.num.bool <0 (0x0)> + [28] #192.1.1.num.bool <1 (0x1)> + [29] #0.0.nil + [30] #191.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x11, size 3, "123"> + [31] #190.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0xd, size 3, "123"> + [32] #189.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x76, type 7, 120[16] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x78, size 16, "abcdefsghlertert"> + [1] #220.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + [2] #219.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [3] #218.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x59, size 3, "abc"> + [4] #217.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x57, size 1, "a"> + [5] #216.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x56, size 0, ""> + [6] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [7] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [8] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [9] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [10] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [11] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [12] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [13] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [14] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [15] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [16] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [17] #204.1.1.num.int <257 (0x101)> + [18] #203.1.1.num.int <256 (0x100)> + [19] #202.1.1.num.int <255 (0xff)> + [20] #201.1.1.num.int <128 (0x80)> + [21] #200.1.1.num.int <127 (0x7f)> + [22] #199.1.1.num.int <9 (0x9)> + [23] #198.1.1.num.int <8 (0x8)> + [24] #197.1.1.num.int <7 (0x7)> + [25] #196.1.1.num.int <5 (0x5)> + [26] #195.1.1.num.int <1 (0x1)> + [27] #194.1.1.num.int <0 (0x0)> + [28] #193.1.1.num.bool <0 (0x0)> + [29] #192.1.1.num.bool <1 (0x1)> + [30] #0.0.nil + [31] #191.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x11, size 3, "123"> + [32] #190.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0xd, size 3, "123"> + [33] #189.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x88, type 7, 139[256] +GC: ++#186.1.10.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x8b, size 256, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [1] #221.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x78, size 16, "abcdefsghlertert"> + [2] #220.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + [3] #219.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [4] #218.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x59, size 3, "abc"> + [5] #217.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x57, size 1, "a"> + [6] #216.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x56, size 0, ""> + [7] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [8] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [9] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [10] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [11] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [12] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [13] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [14] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [15] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [16] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [17] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [18] #204.1.1.num.int <257 (0x101)> + [19] #203.1.1.num.int <256 (0x100)> + [20] #202.1.1.num.int <255 (0xff)> + [21] #201.1.1.num.int <128 (0x80)> + [22] #200.1.1.num.int <127 (0x7f)> + [23] #199.1.1.num.int <9 (0x9)> + [24] #198.1.1.num.int <8 (0x8)> + [25] #197.1.1.num.int <7 (0x7)> + [26] #196.1.1.num.int <5 (0x5)> + [27] #195.1.1.num.int <1 (0x1)> + [28] #194.1.1.num.int <0 (0x0)> + [29] #193.1.1.num.bool <0 (0x0)> + [30] #192.1.1.num.bool <1 (0x1)> + [31] #0.0.nil + [32] #191.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x11, size 3, "123"> + [33] #190.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0xd, size 3, "123"> + [34] #189.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x18b, type 7, 396[3] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x18c, size 3, "abc"> + [1] #222.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x8b, size 256, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [2] #221.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x78, size 16, "abcdefsghlertert"> + [3] #220.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + [4] #219.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [5] #218.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x59, size 3, "abc"> + [6] #217.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x57, size 1, "a"> + [7] #216.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x56, size 0, ""> + [8] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [9] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [10] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [11] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [12] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [13] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [14] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [15] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [16] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [17] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [18] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [19] #204.1.1.num.int <257 (0x101)> + [20] #203.1.1.num.int <256 (0x100)> + [21] #202.1.1.num.int <255 (0xff)> + [22] #201.1.1.num.int <128 (0x80)> + [23] #200.1.1.num.int <127 (0x7f)> + [24] #199.1.1.num.int <9 (0x9)> + [25] #198.1.1.num.int <8 (0x8)> + [26] #197.1.1.num.int <7 (0x7)> + [27] #196.1.1.num.int <5 (0x5)> + [28] #195.1.1.num.int <1 (0x1)> + [29] #194.1.1.num.int <0 (0x0)> + [30] #193.1.1.num.bool <0 (0x0)> + [31] #192.1.1.num.bool <1 (0x1)> + [32] #0.0.nil + [33] #191.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x11, size 3, "123"> + [34] #190.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0xd, size 3, "123"> + [35] #189.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x18f, type 7, 400[3] +GC: ++#186.1.12.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x190, size 3, "abc"> + [1] #223.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x18c, size 3, "abc"> + [2] #222.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x8b, size 256, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [3] #221.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x78, size 16, "abcdefsghlertert"> + [4] #220.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + [5] #219.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [6] #218.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x59, size 3, "abc"> + [7] #217.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x57, size 1, "a"> + [8] #216.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x56, size 0, ""> + [9] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [10] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [11] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [12] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [13] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [14] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [15] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [16] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [17] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [18] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [19] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [20] #204.1.1.num.int <257 (0x101)> + [21] #203.1.1.num.int <256 (0x100)> + [22] #202.1.1.num.int <255 (0xff)> + [23] #201.1.1.num.int <128 (0x80)> + [24] #200.1.1.num.int <127 (0x7f)> + [25] #199.1.1.num.int <9 (0x9)> + [26] #198.1.1.num.int <8 (0x8)> + [27] #197.1.1.num.int <7 (0x7)> + [28] #196.1.1.num.int <5 (0x5)> + [29] #195.1.1.num.int <1 (0x1)> + [30] #194.1.1.num.int <0 (0x0)> + [31] #193.1.1.num.bool <0 (0x0)> + [32] #192.1.1.num.bool <1 (0x1)> + [33] #0.0.nil + [34] #191.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x11, size 3, "123"> + [35] #190.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0xd, size 3, "123"> + [36] #189.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x193, type 9, 404[3] +GC: ++#186.1.13.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.mem.ref.ro <#186.1.14.mem.ro, ofs 0x194, size 3, "foo"> + [1] #224.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x190, size 3, "abc"> + [2] #223.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x18c, size 3, "abc"> + [3] #222.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x8b, size 256, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [4] #221.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x78, size 16, "abcdefsghlertert"> + [5] #220.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + [6] #219.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [7] #218.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x59, size 3, "abc"> + [8] #217.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x57, size 1, "a"> + [9] #216.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x56, size 0, ""> + [10] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [11] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [12] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [13] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [14] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [15] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [16] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [17] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [18] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [19] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [20] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [21] #204.1.1.num.int <257 (0x101)> + [22] #203.1.1.num.int <256 (0x100)> + [23] #202.1.1.num.int <255 (0xff)> + [24] #201.1.1.num.int <128 (0x80)> + [25] #200.1.1.num.int <127 (0x7f)> + [26] #199.1.1.num.int <9 (0x9)> + [27] #198.1.1.num.int <8 (0x8)> + [28] #197.1.1.num.int <7 (0x7)> + [29] #196.1.1.num.int <5 (0x5)> + [30] #195.1.1.num.int <1 (0x1)> + [31] #194.1.1.num.int <0 (0x0)> + [32] #193.1.1.num.bool <0 (0x0)> + [33] #192.1.1.num.bool <1 (0x1)> + [34] #0.0.nil + [35] #191.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x11, size 3, "123"> + [36] #190.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0xd, size 3, "123"> + [37] #189.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x197, type 6, 408[5] +GC: ++#186.1.14.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.mem.code.ro <#186.1.15.mem.ro, ofs 0x198, size 5> + [1] #225.1.1.mem.ref.ro <#186.1.15.mem.ro, ofs 0x194, size 3, "foo"> + [2] #224.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0x190, size 3, "abc"> + [3] #223.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0x18c, size 3, "abc"> + [4] #222.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0x8b, size 256, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [5] #221.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0x78, size 16, "abcdefsghlertert"> + [6] #220.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + [7] #219.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [8] #218.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0x59, size 3, "abc"> + [9] #217.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0x57, size 1, "a"> + [10] #216.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0x56, size 0, ""> + [11] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [12] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [13] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [14] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [15] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [16] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [17] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [18] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [19] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [20] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [21] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [22] #204.1.1.num.int <257 (0x101)> + [23] #203.1.1.num.int <256 (0x100)> + [24] #202.1.1.num.int <255 (0xff)> + [25] #201.1.1.num.int <128 (0x80)> + [26] #200.1.1.num.int <127 (0x7f)> + [27] #199.1.1.num.int <9 (0x9)> + [28] #198.1.1.num.int <8 (0x8)> + [29] #197.1.1.num.int <7 (0x7)> + [30] #196.1.1.num.int <5 (0x5)> + [31] #195.1.1.num.int <1 (0x1)> + [32] #194.1.1.num.int <0 (0x0)> + [33] #193.1.1.num.bool <0 (0x0)> + [34] #192.1.1.num.bool <1 (0x1)> + [35] #0.0.nil + [36] #191.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0x11, size 3, "123"> + [37] #190.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0xd, size 3, "123"> + [38] #189.1.1.mem.str.ro <#186.1.15.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x19d, type 6, 414[10] +GC: ++#186.1.15.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.mem.code.ro <#186.1.16.mem.ro, ofs 0x19e, size 10> + [1] #226.1.1.mem.code.ro <#186.1.16.mem.ro, ofs 0x198, size 5> + [2] #225.1.1.mem.ref.ro <#186.1.16.mem.ro, ofs 0x194, size 3, "foo"> + [3] #224.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0x190, size 3, "abc"> + [4] #223.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0x18c, size 3, "abc"> + [5] #222.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0x8b, size 256, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [6] #221.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0x78, size 16, "abcdefsghlertert"> + [7] #220.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + [8] #219.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [9] #218.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0x59, size 3, "abc"> + [10] #217.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0x57, size 1, "a"> + [11] #216.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0x56, size 0, ""> + [12] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [13] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [14] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [15] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [16] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [17] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [18] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [19] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [20] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [21] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [22] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [23] #204.1.1.num.int <257 (0x101)> + [24] #203.1.1.num.int <256 (0x100)> + [25] #202.1.1.num.int <255 (0xff)> + [26] #201.1.1.num.int <128 (0x80)> + [27] #200.1.1.num.int <127 (0x7f)> + [28] #199.1.1.num.int <9 (0x9)> + [29] #198.1.1.num.int <8 (0x8)> + [30] #197.1.1.num.int <7 (0x7)> + [31] #196.1.1.num.int <5 (0x5)> + [32] #195.1.1.num.int <1 (0x1)> + [33] #194.1.1.num.int <0 (0x0)> + [34] #193.1.1.num.bool <0 (0x0)> + [35] #192.1.1.num.bool <1 (0x1)> + [36] #0.0.nil + [37] #191.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0x11, size 3, "123"> + [38] #190.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0xd, size 3, "123"> + [39] #189.1.1.mem.str.ro <#186.1.16.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x1a8, type 6, 425[11] +GC: ++#186.1.16.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x1a9, size 11> + [1] #227.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x19e, size 10> + [2] #226.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x198, size 5> + [3] #225.1.1.mem.ref.ro <#186.1.17.mem.ro, ofs 0x194, size 3, "foo"> + [4] #224.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x190, size 3, "abc"> + [5] #223.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x18c, size 3, "abc"> + [6] #222.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x8b, size 256, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [7] #221.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x78, size 16, "abcdefsghlertert"> + [8] #220.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + [9] #219.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [10] #218.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x59, size 3, "abc"> + [11] #217.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x57, size 1, "a"> + [12] #216.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x56, size 0, ""> + [13] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [15] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [16] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [17] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [18] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [19] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [20] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [21] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [22] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [23] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #204.1.1.num.int <257 (0x101)> + [25] #203.1.1.num.int <256 (0x100)> + [26] #202.1.1.num.int <255 (0xff)> + [27] #201.1.1.num.int <128 (0x80)> + [28] #200.1.1.num.int <127 (0x7f)> + [29] #199.1.1.num.int <9 (0x9)> + [30] #198.1.1.num.int <8 (0x8)> + [31] #197.1.1.num.int <7 (0x7)> + [32] #196.1.1.num.int <5 (0x5)> + [33] #195.1.1.num.int <1 (0x1)> + [34] #194.1.1.num.int <0 (0x0)> + [35] #193.1.1.num.bool <0 (0x0)> + [36] #192.1.1.num.bool <1 (0x1)> + [37] #0.0.nil + [38] #191.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x11, size 3, "123"> + [39] #190.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0xd, size 3, "123"> + [40] #189.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x9, size 3, "123"> +IP: #186:0x1b4, type 8, 437[3] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x1a9, size 11> + [1] #227.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x19e, size 10> + [2] #226.1.1.mem.code.ro <#186.1.17.mem.ro, ofs 0x198, size 5> + [3] #225.1.1.mem.ref.ro <#186.1.17.mem.ro, ofs 0x194, size 3, "foo"> + [4] #224.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x190, size 3, "abc"> + [5] #223.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x18c, size 3, "abc"> + [6] #222.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x8b, size 256, "hjgfahjgsdfahjgsdfahjgsfdjhasfdadfsjhajsdhfadjhsdfhajsdajhasdfgasdfgajksdgfkjasdgfasdfjkasdgfaskdfkasjdgfkjaasdfasdfjkasdgfkjashdgfjkasdgfjhasdgfjaksgdfkjasdgfkajsdgfkjasdgfkjasdfgkjasdfhgaksjdfasdkfjasdgfksajdhfgkajsdhgfjkasdgfjkasdgfkjasjkasdgfkjasdfkdds"> + [7] #221.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x78, size 16, "abcdefsghlertert"> + [8] #220.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x6a, size 12, "0123456789ab"> + [9] #219.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x5d, size 11, "0123456789a"> + [10] #218.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x59, size 3, "abc"> + [11] #217.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x57, size 1, "a"> + [12] #216.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x56, size 0, ""> + [13] #215.1.1.num.int <-1 (0xffffffffffffffff)> + [14] #214.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [15] #213.1.1.num.int <-9223372036854775808 (0x8000000000000000)> + [16] #212.1.1.num.int <-257 (0xfffffffffffffeff)> + [17] #211.1.1.num.int <-256 (0xffffffffffffff00)> + [18] #210.1.1.num.int <-255 (0xffffffffffffff01)> + [19] #209.1.1.num.int <-129 (0xffffffffffffff7f)> + [20] #208.1.1.num.int <-128 (0xffffffffffffff80)> + [21] #207.1.1.num.int <-127 (0xffffffffffffff81)> + [22] #206.1.1.num.int <-5 (0xfffffffffffffffb)> + [23] #205.1.1.num.int <-1 (0xffffffffffffffff)> + [24] #204.1.1.num.int <257 (0x101)> + [25] #203.1.1.num.int <256 (0x100)> + [26] #202.1.1.num.int <255 (0xff)> + [27] #201.1.1.num.int <128 (0x80)> + [28] #200.1.1.num.int <127 (0x7f)> + [29] #199.1.1.num.int <9 (0x9)> + [30] #198.1.1.num.int <8 (0x8)> + [31] #197.1.1.num.int <7 (0x7)> + [32] #196.1.1.num.int <5 (0x5)> + [33] #195.1.1.num.int <1 (0x1)> + [34] #194.1.1.num.int <0 (0x0)> + [35] #193.1.1.num.bool <0 (0x0)> + [36] #192.1.1.num.bool <1 (0x1)> + [37] #0.0.nil + [38] #191.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x11, size 3, "123"> + [39] #190.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0xd, size 3, "123"> + [40] #189.1.1.mem.str.ro <#186.1.17.mem.ro, ofs 0x9, size 3, "123"> +error 2 (invalid instruction), ip = #186:0x1b4 diff --git a/tests/0061_def/basic.log.ref b/tests/0061_def/basic.log.ref new file mode 100644 index 0000000..34c83d1 --- /dev/null +++ b/tests/0061_def/basic.log.ref @@ -0,0 +1,177 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "bar"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "bar"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo1"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo1"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo2"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo2"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> + [1] #xxxx.1.2.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> + [2] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.7.mem.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> + [1] #xxxx.1.2.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> + [2] #xxxx.1.2.num.int <30 (0x1e)> + [3] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.7.mem.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <20 (0x14)> + [1] #xxxx.1.3.num.int <20 (0x14)> + [2] #xxxx.1.1.num.int <30 (0x1e)> + [3] #xxxx.1.1.num.int <10 (0xa)> diff --git a/tests/0061_def/code.log.ref b/tests/0061_def/code.log.ref new file mode 100644 index 0000000..179b7ca --- /dev/null +++ b/tests/0061_def/code.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c int 81 0a 10 + 3 0x0000e word 38 64 65 66 def + 5 4 0x00012 ref 49 66 6f 6f 31 /foo1 + 5 0x00017 code b6 { + 6 6 0x00018 ref 39 62 61 72 /bar + 7 0x0001c int 81 14 20 + 8 0x0001e word 38 64 65 66 def + 7 9 0x00022 prim 13 } + 10 0x00023 word 38 64 65 66 def + 9 11 0x00027 ref 49 66 6f 6f 32 /foo2 + 12 0x0002c code c6 18 { + 10 13 0x0002e ref 39 62 61 72 /bar + 14 0x00032 int 81 1e 30 + 15 0x00034 word 38 64 65 66 def + 11 16 0x00038 word 38 62 61 72 bar + 12 17 0x0003c word 48 66 6f 6f 31 foo1 + 13 18 0x00041 word 38 62 61 72 bar + 14 19 0x00045 prim 13 } + 20 0x00046 word 38 64 65 66 def + 16 21 0x0004a word 38 62 61 72 bar + 22 0x0004e word 48 66 6f 6f 32 foo2 + 23 0x00053 word 38 62 61 72 bar diff --git a/tests/0061_def/code1.log.ref b/tests/0061_def/code1.log.ref new file mode 100644 index 0000000..16eae26 --- /dev/null +++ b/tests/0061_def/code1.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c int 81 0a 10 + 3 0x0000e word 38 64 65 66 def + 5 4 0x00012 ref 49 66 6f 6f 31 /foo1 + 5 0x00017 code 76 { + 6 6 0x00018 xref 84 10 /bar + 7 0x0001a int 81 14 20 + 8 0x0001c xref 84 0e def + 7 9 0x0001e prim 13 } + 10 0x0001f xref 84 11 def + 9 11 0x00021 ref 49 66 6f 6f 32 /foo2 + 12 0x00026 code c6 12 { + 10 13 0x00028 xref 84 20 /bar + 14 0x0002a int 81 1e 30 + 15 0x0002c xref 84 1e def + 11 16 0x0002e word 38 62 61 72 bar + 12 17 0x00032 word 48 66 6f 6f 31 foo1 + 13 18 0x00037 xref 84 09 bar + 14 19 0x00039 prim 13 } + 20 0x0003a xref 84 2c def + 16 21 0x0003c xref 84 0e bar + 22 0x0003e word 48 66 6f 6f 32 foo2 + 23 0x00043 xref 84 15 bar diff --git a/tests/0061_def/code2.log.ref b/tests/0061_def/code2.log.ref new file mode 100644 index 0000000..764d196 --- /dev/null +++ b/tests/0061_def/code2.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c int 81 0a 10 + 3 0x0000e prim 63 def + 5 4 0x0000f ref 49 66 6f 6f 31 /foo1 + 5 0x00014 code 66 { + 6 6 0x00015 xref 84 0d /bar + 7 0x00017 int 81 14 20 + 8 0x00019 prim 63 def + 7 9 0x0001a prim 13 } + 10 0x0001b prim 63 def + 9 11 0x0001c ref 49 66 6f 6f 32 /foo2 + 12 0x00021 code c6 11 { + 10 13 0x00023 xref 84 1b /bar + 14 0x00025 int 81 1e 30 + 15 0x00027 prim 63 def + 11 16 0x00028 word 38 62 61 72 bar + 12 17 0x0002c word 48 66 6f 6f 31 foo1 + 13 18 0x00031 xref 84 09 bar + 14 19 0x00033 prim 13 } + 20 0x00034 prim 63 def + 16 21 0x00035 xref 84 0d bar + 22 0x00037 word 48 66 6f 6f 32 foo2 + 23 0x0003c xref 84 14 bar diff --git a/tests/0061_def/main.gs b/tests/0061_def/main.gs new file mode 100644 index 0000000..730b03d --- /dev/null +++ b/tests/0061_def/main.gs @@ -0,0 +1,16 @@ +# variable definition + +/bar 10 def + +/foo1 { + /bar 20 def +} def + +/foo2 { + /bar 30 def + bar + foo1 + bar +} def + +bar foo2 bar diff --git a/tests/0061_def/mem.log.ref b/tests/0061_def/mem.log.ref new file mode 100644 index 0000000..68e5982 --- /dev/null +++ b/tests/0061_def/mem.log.ref @@ -0,0 +1,778 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 88] + 8: 187.01, 0x001d6acc[ 72] + 9: 188.01, 0x001d6b1c[ 56] + 10: 0.00, 0x001d6b5c[ 56] + 11: 198.01, 0x001d6b9c[ 72] + 12: 0.00, 0x001d6bec[14849044] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #200.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x19, size 3, "bar"> => #201.1.3.num.int <20 (0x14)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #191.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x13, size 4, "foo1"> => #192.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x18, size 11> + #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x28, size 4, "foo2"> => #194.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x2e, size 24> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.6.mem.ro + 75 51 12 a9 42 7a ad 60 39 62 61 72 81 0a 38 64 uQ..Bz.`9bar..8d + 65 66 49 66 6f 6f 31 b6 39 62 61 72 81 14 38 64 efIfoo1.9bar..8d + 65 66 13 38 64 65 66 49 66 6f 6f 32 c6 18 39 62 ef.8defIfoo2..9b + 61 72 81 1e 38 64 65 66 38 62 61 72 48 66 6f 6f ar..8def8barHfoo + 31 38 62 61 72 13 38 64 65 66 38 62 61 72 48 66 18bar.8def8barHf + 6f 6f 32 38 62 61 72 oo28bar + #187.1.1.array + [ 0] #190.1.1.num.int <10 (0xa)> + [ 1] #197.1.1.num.int <30 (0x1e)> + [ 2] #201.1.3.num.int <20 (0x14)> + [ 3] #201.1.3.num.int <20 (0x14)> + #188.1.1.ctx.func + type 17, ip 0x57 (0x57) + code #186.1.6.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #190.1.1.num.int <10 (0xa)> + #191.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x13, size 4, "foo1"> + 66 6f 6f 31 foo1 + #192.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x18, size 11> + 39 62 61 72 81 14 38 64 65 66 13 9bar..8def. + #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x28, size 4, "foo2"> + 66 6f 6f 32 foo2 + #194.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x2e, size 24> + 39 62 61 72 81 1e 38 64 65 66 38 62 61 72 48 66 9bar..8def8barHf + 6f 6f 31 38 62 61 72 13 oo18bar. + #197.1.1.num.int <30 (0x1e)> + #198.1.1.array + #200.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x19, size 3, "bar"> + 62 61 72 bar + #201.1.3.num.int <20 (0x14)> diff --git a/tests/0061_def/screen.log.ref b/tests/0061_def/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0061_def/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0061_def/trace.log.ref b/tests/0061_def/trace.log.ref new file mode 100644 index 0000000..cef4daa --- /dev/null +++ b/tests/0061_def/trace.log.ref @@ -0,0 +1,201 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0xc, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <10 (0xa)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0xe, type 8, 15[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.num.int +GC: --#190.1.2.num.int +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x12, type 9, 19[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x13, size 4, "foo1"> +IP: #186:0x17, type 6, 24[11] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x18, size 11> + [1] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x13, size 4, "foo1"> +IP: #186:0x23, type 8, 36[3] +GC: ++#191.1.1.mem.ref.ro +GC: ++#192.1.1.mem.code.ro +GC: --#192.1.2.mem.code.ro +GC: --#191.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x27, type 9, 40[4] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x28, size 4, "foo2"> +IP: #186:0x2c, type 6, 46[24] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x2e, size 24> + [1] #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x28, size 4, "foo2"> +IP: #186:0x46, type 8, 71[3] +GC: ++#193.1.1.mem.ref.ro +GC: ++#194.1.1.mem.code.ro +GC: --#194.1.2.mem.code.ro +GC: --#193.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x4a, type 8, 75[3] +GC: ++#190.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <10 (0xa)> +IP: #186:0x4e, type 8, 79[4] +GC: ++#194.1.1.mem.code.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <10 (0xa)> +IP: #194:0x0, type 9, 1[3] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x2f, size 3, "bar"> + [1] #190.1.2.num.int <10 (0xa)> +IP: #194:0x4, type 1, 30 (0x1e) +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <30 (0x1e)> + [1] #196.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x2f, size 3, "bar"> + [2] #190.1.2.num.int <10 (0xa)> +IP: #194:0x6, type 8, 7[3] +GC: ++#196.1.1.mem.ref.ro +GC: ++#197.1.1.num.int +GC: --#189.1.1.mem.ref.ro +GC: --#186.1.7.mem.ro +GC: --#190.1.2.num.int +GC: --#197.1.2.num.int +GC: --#196.1.2.mem.ref.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <10 (0xa)> +IP: #194:0xa, type 8, 11[3] +GC: ++#197.1.1.num.int +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #190.1.1.num.int <10 (0xa)> +IP: #194:0xe, type 8, 15[4] +GC: ++#192.1.1.mem.code.ro +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #190.1.1.num.int <10 (0xa)> +IP: #192:0x0, type 9, 1[3] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x19, size 3, "bar"> + [1] #197.1.2.num.int <30 (0x1e)> + [2] #190.1.1.num.int <10 (0xa)> +IP: #192:0x4, type 1, 20 (0x14) +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <20 (0x14)> + [1] #200.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x19, size 3, "bar"> + [2] #197.1.2.num.int <30 (0x1e)> + [3] #190.1.1.num.int <10 (0xa)> +IP: #192:0x6, type 8, 7[3] +GC: ++#200.1.1.mem.ref.ro +GC: ++#201.1.1.num.int +GC: --#196.1.1.mem.ref.ro +GC: --#186.1.7.mem.ro +GC: --#197.1.2.num.int +GC: --#201.1.2.num.int +GC: --#200.1.2.mem.ref.ro +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <30 (0x1e)> + [1] #190.1.1.num.int <10 (0xa)> +IP: #192:0xa, type 3, 1 (0x1) +GC: ++#195.1.1.ctx.func +GC: --#199.1.1.ctx.func +GC: --#195.1.2.ctx.func +GC: --#192.1.2.mem.code.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <30 (0x1e)> + [1] #190.1.1.num.int <10 (0xa)> +IP: #194:0x13, type 8, 20[3] +GC: ++#201.1.1.num.int +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.2.num.int <20 (0x14)> + [1] #197.1.1.num.int <30 (0x1e)> + [2] #190.1.1.num.int <10 (0xa)> +IP: #194:0x17, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#195.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#194.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.2.num.int <20 (0x14)> + [1] #197.1.1.num.int <30 (0x1e)> + [2] #190.1.1.num.int <10 (0xa)> +IP: #186:0x53, type 8, 84[3] +GC: ++#201.1.2.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.3.num.int <20 (0x14)> + [1] #201.1.3.num.int <20 (0x14)> + [2] #197.1.1.num.int <30 (0x1e)> + [3] #190.1.1.num.int <10 (0xa)> diff --git a/tests/0062_ldef/basic.log.ref b/tests/0062_ldef/basic.log.ref new file mode 100644 index 0000000..8cb1911 --- /dev/null +++ b/tests/0062_ldef/basic.log.ref @@ -0,0 +1,179 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "bar"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "bar"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo1"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo1"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo2"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo2"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> + [1] #xxxx.1.2.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> + [2] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "bar"> + [1] #xxxx.1.2.num.int <30 (0x1e)> + [2] #xxxx.1.2.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "bar"> + [2] #xxxx.1.2.num.int <30 (0x1e)> + [3] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <30 (0x1e)> + [1] #xxxx.1.3.num.int <30 (0x1e)> + [2] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.3.num.int +GC: --#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <30 (0x1e)> + [2] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <10 (0xa)> + [1] #xxxx.1.2.num.int <30 (0x1e)> + [2] #xxxx.1.2.num.int <30 (0x1e)> + [3] #xxxx.1.3.num.int <10 (0xa)> diff --git a/tests/0062_ldef/code.log.ref b/tests/0062_ldef/code.log.ref new file mode 100644 index 0000000..c6d0a45 --- /dev/null +++ b/tests/0062_ldef/code.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c int 81 0a 10 + 3 0x0000e word 38 64 65 66 def + 5 4 0x00012 ref 49 66 6f 6f 31 /foo1 + 5 0x00017 code c6 0c { + 6 6 0x00019 ref 39 62 61 72 /bar + 7 0x0001d int 81 14 20 + 8 0x0001f word 48 6c 64 65 66 ldef + 7 9 0x00024 prim 13 } + 10 0x00025 word 38 64 65 66 def + 9 11 0x00029 ref 49 66 6f 6f 32 /foo2 + 12 0x0002e code c6 19 { + 10 13 0x00030 ref 39 62 61 72 /bar + 14 0x00034 int 81 1e 30 + 15 0x00036 word 48 6c 64 65 66 ldef + 11 16 0x0003b word 38 62 61 72 bar + 12 17 0x0003f word 48 66 6f 6f 31 foo1 + 13 18 0x00044 word 38 62 61 72 bar + 14 19 0x00048 prim 13 } + 20 0x00049 word 38 64 65 66 def + 16 21 0x0004d word 38 62 61 72 bar + 22 0x00051 word 48 66 6f 6f 32 foo2 + 23 0x00056 word 38 62 61 72 bar diff --git a/tests/0062_ldef/code1.log.ref b/tests/0062_ldef/code1.log.ref new file mode 100644 index 0000000..5f303b9 --- /dev/null +++ b/tests/0062_ldef/code1.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c int 81 0a 10 + 3 0x0000e word 38 64 65 66 def + 5 4 0x00012 ref 49 66 6f 6f 31 /foo1 + 5 0x00017 code a6 { + 6 6 0x00018 xref 84 10 /bar + 7 0x0001a int 81 14 20 + 8 0x0001c word 48 6c 64 65 66 ldef + 7 9 0x00021 prim 13 } + 10 0x00022 xref 84 14 def + 9 11 0x00024 ref 49 66 6f 6f 32 /foo2 + 12 0x00029 code c6 12 { + 10 13 0x0002b xref 84 23 /bar + 14 0x0002d int 81 1e 30 + 15 0x0002f xref 84 13 ldef + 11 16 0x00031 word 38 62 61 72 bar + 12 17 0x00035 word 48 66 6f 6f 31 foo1 + 13 18 0x0003a xref 84 09 bar + 14 19 0x0003c prim 13 } + 20 0x0003d xref 84 2f def + 16 21 0x0003f xref 84 0e bar + 22 0x00041 word 48 66 6f 6f 32 foo2 + 23 0x00046 xref 84 15 bar diff --git a/tests/0062_ldef/code2.log.ref b/tests/0062_ldef/code2.log.ref new file mode 100644 index 0000000..88e5733 --- /dev/null +++ b/tests/0062_ldef/code2.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c int 81 0a 10 + 3 0x0000e prim 63 def + 5 4 0x0000f ref 49 66 6f 6f 31 /foo1 + 5 0x00014 code 66 { + 6 6 0x00015 xref 84 0d /bar + 7 0x00017 int 81 14 20 + 8 0x00019 prim 73 ldef + 7 9 0x0001a prim 13 } + 10 0x0001b prim 63 def + 9 11 0x0001c ref 49 66 6f 6f 32 /foo2 + 12 0x00021 code c6 11 { + 10 13 0x00023 xref 84 1b /bar + 14 0x00025 int 81 1e 30 + 15 0x00027 prim 73 ldef + 11 16 0x00028 word 38 62 61 72 bar + 12 17 0x0002c word 48 66 6f 6f 31 foo1 + 13 18 0x00031 xref 84 09 bar + 14 19 0x00033 prim 13 } + 20 0x00034 prim 63 def + 16 21 0x00035 xref 84 0d bar + 22 0x00037 word 48 66 6f 6f 32 foo2 + 23 0x0003c xref 84 14 bar diff --git a/tests/0062_ldef/main.gs b/tests/0062_ldef/main.gs new file mode 100644 index 0000000..74d9b9a --- /dev/null +++ b/tests/0062_ldef/main.gs @@ -0,0 +1,16 @@ +# local variable definition + +/bar 10 def + +/foo1 { + /bar 20 ldef +} def + +/foo2 { + /bar 30 ldef + bar + foo1 + bar +} def + +bar foo2 bar diff --git a/tests/0062_ldef/mem.log.ref b/tests/0062_ldef/mem.log.ref new file mode 100644 index 0000000..43345de --- /dev/null +++ b/tests/0062_ldef/mem.log.ref @@ -0,0 +1,777 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 92] + 8: 187.01, 0x001d6ad0[ 72] + 9: 188.01, 0x001d6b20[ 56] + 10: 0.00, 0x001d6b60[ 416] + 11: 203.01, 0x001d6d08[ 72] + 12: 0.00, 0x001d6d58[14848680] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "bar"> => #190.1.3.num.int <10 (0xa)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #191.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x13, size 4, "foo1"> => #192.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x19, size 12> + #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x2a, size 4, "foo2"> => #194.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x30, size 25> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.6.mem.ro + 75 51 12 a9 42 7a ad 60 39 62 61 72 81 0a 38 64 uQ..Bz.`9bar..8d + 65 66 49 66 6f 6f 31 c6 0c 39 62 61 72 81 14 48 efIfoo1..9bar..H + 6c 64 65 66 13 38 64 65 66 49 66 6f 6f 32 c6 19 ldef.8defIfoo2.. + 39 62 61 72 81 1e 48 6c 64 65 66 38 62 61 72 48 9bar..Hldef8barH + 66 6f 6f 31 38 62 61 72 13 38 64 65 66 38 62 61 foo18bar.8def8ba + 72 48 66 6f 6f 32 38 62 61 72 rHfoo28bar + #187.1.1.array + [ 0] #190.1.3.num.int <10 (0xa)> + [ 1] #197.1.2.num.int <30 (0x1e)> + [ 2] #197.1.2.num.int <30 (0x1e)> + [ 3] #190.1.3.num.int <10 (0xa)> + #188.1.1.ctx.func + type 17, ip 0x5a (0x5a) + code #186.1.6.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "bar"> + 62 61 72 bar + #190.1.3.num.int <10 (0xa)> + #191.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x13, size 4, "foo1"> + 66 6f 6f 31 foo1 + #192.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x19, size 12> + 39 62 61 72 81 14 48 6c 64 65 66 13 9bar..Hldef. + #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x2a, size 4, "foo2"> + 66 6f 6f 32 foo2 + #194.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x30, size 25> + 39 62 61 72 81 1e 48 6c 64 65 66 38 62 61 72 48 9bar..Hldef8barH + 66 6f 6f 31 38 62 61 72 13 foo18bar. + #197.1.2.num.int <30 (0x1e)> + #203.1.1.array diff --git a/tests/0062_ldef/screen.log.ref b/tests/0062_ldef/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0062_ldef/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0062_ldef/trace.log.ref b/tests/0062_ldef/trace.log.ref new file mode 100644 index 0000000..7611467 --- /dev/null +++ b/tests/0062_ldef/trace.log.ref @@ -0,0 +1,203 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0xc, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <10 (0xa)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0xe, type 8, 15[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.num.int +GC: --#190.1.2.num.int +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x12, type 9, 19[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x13, size 4, "foo1"> +IP: #186:0x17, type 6, 25[12] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x19, size 12> + [1] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x13, size 4, "foo1"> +IP: #186:0x25, type 8, 38[3] +GC: ++#191.1.1.mem.ref.ro +GC: ++#192.1.1.mem.code.ro +GC: --#192.1.2.mem.code.ro +GC: --#191.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x29, type 9, 42[4] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x2a, size 4, "foo2"> +IP: #186:0x2e, type 6, 48[25] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x30, size 25> + [1] #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x2a, size 4, "foo2"> +IP: #186:0x49, type 8, 74[3] +GC: ++#193.1.1.mem.ref.ro +GC: ++#194.1.1.mem.code.ro +GC: --#194.1.2.mem.code.ro +GC: --#193.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x4d, type 8, 78[3] +GC: ++#190.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <10 (0xa)> +IP: #186:0x51, type 8, 82[4] +GC: ++#194.1.1.mem.code.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <10 (0xa)> +IP: #194:0x0, type 9, 1[3] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x31, size 3, "bar"> + [1] #190.1.2.num.int <10 (0xa)> +IP: #194:0x4, type 1, 30 (0x1e) +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <30 (0x1e)> + [1] #196.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x31, size 3, "bar"> + [2] #190.1.2.num.int <10 (0xa)> +IP: #194:0x6, type 8, 7[4] +GC: ++#196.1.1.mem.ref.ro +GC: ++#197.1.1.num.int +GC: --#197.1.2.num.int +GC: --#196.1.2.mem.ref.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <10 (0xa)> +IP: #194:0xb, type 8, 12[3] +GC: ++#197.1.1.num.int +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #190.1.2.num.int <10 (0xa)> +IP: #194:0xf, type 8, 16[4] +GC: ++#192.1.1.mem.code.ro +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #190.1.2.num.int <10 (0xa)> +IP: #192:0x0, type 9, 1[3] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x1a, size 3, "bar"> + [1] #197.1.2.num.int <30 (0x1e)> + [2] #190.1.2.num.int <10 (0xa)> +IP: #192:0x4, type 1, 20 (0x14) +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <20 (0x14)> + [1] #200.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x1a, size 3, "bar"> + [2] #197.1.2.num.int <30 (0x1e)> + [3] #190.1.2.num.int <10 (0xa)> +IP: #192:0x6, type 8, 7[4] +GC: ++#200.1.1.mem.ref.ro +GC: ++#201.1.1.num.int +GC: --#201.1.2.num.int +GC: --#200.1.2.mem.ref.ro +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #190.1.2.num.int <10 (0xa)> +IP: #192:0xb, type 3, 1 (0x1) +GC: ++#195.1.1.ctx.func +GC: --#199.1.1.ctx.func +GC: --#195.1.2.ctx.func +GC: --#192.1.2.mem.code.ro +GC: --#202.1.1.hash +GC: --#200.1.1.mem.ref.ro +GC: --#201.1.1.num.int +GC: --#186.1.8.mem.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #190.1.2.num.int <10 (0xa)> +IP: #194:0x14, type 8, 21[3] +GC: ++#197.1.2.num.int +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.3.num.int <30 (0x1e)> + [1] #197.1.3.num.int <30 (0x1e)> + [2] #190.1.2.num.int <10 (0xa)> +IP: #194:0x18, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#195.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#194.1.2.mem.code.ro +GC: --#198.1.1.hash +GC: --#196.1.1.mem.ref.ro +GC: --#197.1.3.num.int +GC: --#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #197.1.2.num.int <30 (0x1e)> + [2] #190.1.2.num.int <10 (0xa)> +IP: #186:0x56, type 8, 87[3] +GC: ++#190.1.2.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.3.num.int <10 (0xa)> + [1] #197.1.2.num.int <30 (0x1e)> + [2] #197.1.2.num.int <30 (0x1e)> + [3] #190.1.3.num.int <10 (0xa)> diff --git a/tests/0063_gdef/basic.log.ref b/tests/0063_gdef/basic.log.ref new file mode 100644 index 0000000..4e3d2f1 --- /dev/null +++ b/tests/0063_gdef/basic.log.ref @@ -0,0 +1,178 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "bar"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "bar"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo1"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo1"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo2"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "foo2"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> + [1] #xxxx.1.2.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "bar"> + [2] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "bar"> + [1] #xxxx.1.2.num.int <30 (0x1e)> + [2] #xxxx.1.2.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "bar"> + [2] #xxxx.1.2.num.int <30 (0x1e)> + [3] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.8.mem.ro +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func + [2] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <30 (0x1e)> + [1] #xxxx.1.3.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.3.num.int +GC: --#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <30 (0x1e)> + [2] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <20 (0x14)> + [1] #xxxx.1.2.num.int <30 (0x1e)> + [2] #xxxx.1.2.num.int <30 (0x1e)> + [3] #xxxx.1.1.num.int <10 (0xa)> diff --git a/tests/0063_gdef/code.log.ref b/tests/0063_gdef/code.log.ref new file mode 100644 index 0000000..a6a3d9c --- /dev/null +++ b/tests/0063_gdef/code.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c int 81 0a 10 + 3 0x0000e word 38 64 65 66 def + 5 4 0x00012 ref 49 66 6f 6f 31 /foo1 + 5 0x00017 code c6 0c { + 6 6 0x00019 ref 39 62 61 72 /bar + 7 0x0001d int 81 14 20 + 8 0x0001f word 48 67 64 65 66 gdef + 7 9 0x00024 prim 13 } + 10 0x00025 word 38 64 65 66 def + 9 11 0x00029 ref 49 66 6f 6f 32 /foo2 + 12 0x0002e code c6 19 { + 10 13 0x00030 ref 39 62 61 72 /bar + 14 0x00034 int 81 1e 30 + 15 0x00036 word 48 6c 64 65 66 ldef + 11 16 0x0003b word 38 62 61 72 bar + 12 17 0x0003f word 48 66 6f 6f 31 foo1 + 13 18 0x00044 word 38 62 61 72 bar + 14 19 0x00048 prim 13 } + 20 0x00049 word 38 64 65 66 def + 16 21 0x0004d word 38 62 61 72 bar + 22 0x00051 word 48 66 6f 6f 32 foo2 + 23 0x00056 word 38 62 61 72 bar diff --git a/tests/0063_gdef/code1.log.ref b/tests/0063_gdef/code1.log.ref new file mode 100644 index 0000000..83c142e --- /dev/null +++ b/tests/0063_gdef/code1.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c int 81 0a 10 + 3 0x0000e word 38 64 65 66 def + 5 4 0x00012 ref 49 66 6f 6f 31 /foo1 + 5 0x00017 code a6 { + 6 6 0x00018 xref 84 10 /bar + 7 0x0001a int 81 14 20 + 8 0x0001c word 48 67 64 65 66 gdef + 7 9 0x00021 prim 13 } + 10 0x00022 xref 84 14 def + 9 11 0x00024 ref 49 66 6f 6f 32 /foo2 + 12 0x00029 code c6 15 { + 10 13 0x0002b xref 84 23 /bar + 14 0x0002d int 81 1e 30 + 15 0x0002f word 48 6c 64 65 66 ldef + 11 16 0x00034 word 38 62 61 72 bar + 12 17 0x00038 word 48 66 6f 6f 31 foo1 + 13 18 0x0003d xref 84 09 bar + 14 19 0x0003f prim 13 } + 20 0x00040 xref 84 32 def + 16 21 0x00042 xref 84 0e bar + 22 0x00044 word 48 66 6f 6f 32 foo2 + 23 0x00049 xref 84 15 bar diff --git a/tests/0063_gdef/code2.log.ref b/tests/0063_gdef/code2.log.ref new file mode 100644 index 0000000..1a46909 --- /dev/null +++ b/tests/0063_gdef/code2.log.ref @@ -0,0 +1,30 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 24 entries (24 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 3 1 0x00008 ref 39 62 61 72 /bar + 2 0x0000c int 81 0a 10 + 3 0x0000e prim 63 def + 5 4 0x0000f ref 49 66 6f 6f 31 /foo1 + 5 0x00014 code 76 { + 6 6 0x00015 xref 84 0d /bar + 7 0x00017 int 81 14 20 + 8 0x00019 prim 83 08 gdef + 7 9 0x0001b prim 13 } + 10 0x0001c prim 63 def + 9 11 0x0001d ref 49 66 6f 6f 32 /foo2 + 12 0x00022 code c6 11 { + 10 13 0x00024 xref 84 1c /bar + 14 0x00026 int 81 1e 30 + 15 0x00028 prim 73 ldef + 11 16 0x00029 word 38 62 61 72 bar + 12 17 0x0002d word 48 66 6f 6f 31 foo1 + 13 18 0x00032 xref 84 09 bar + 14 19 0x00034 prim 13 } + 20 0x00035 prim 63 def + 16 21 0x00036 xref 84 0d bar + 22 0x00038 word 48 66 6f 6f 32 foo2 + 23 0x0003d xref 84 14 bar diff --git a/tests/0063_gdef/main.gs b/tests/0063_gdef/main.gs new file mode 100644 index 0000000..69a8c0a --- /dev/null +++ b/tests/0063_gdef/main.gs @@ -0,0 +1,16 @@ +# global variable definition + +/bar 10 def + +/foo1 { + /bar 20 gdef +} def + +/foo2 { + /bar 30 ldef + bar + foo1 + bar +} def + +bar foo2 bar diff --git a/tests/0063_gdef/mem.log.ref b/tests/0063_gdef/mem.log.ref new file mode 100644 index 0000000..8fcd5e8 --- /dev/null +++ b/tests/0063_gdef/mem.log.ref @@ -0,0 +1,778 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 92] + 8: 187.01, 0x001d6ad0[ 72] + 9: 188.01, 0x001d6b20[ 56] + 10: 0.00, 0x001d6b60[ 268] + 11: 202.01, 0x001d6c74[ 72] + 12: 0.00, 0x001d6cc4[14848828] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #200.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x1a, size 3, "bar"> => #201.1.2.num.int <20 (0x14)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #191.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x13, size 4, "foo1"> => #192.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x19, size 12> + #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x2a, size 4, "foo2"> => #194.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x30, size 25> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.6.mem.ro + 75 51 12 a9 42 7a ad 60 39 62 61 72 81 0a 38 64 uQ..Bz.`9bar..8d + 65 66 49 66 6f 6f 31 c6 0c 39 62 61 72 81 14 48 efIfoo1..9bar..H + 67 64 65 66 13 38 64 65 66 49 66 6f 6f 32 c6 19 gdef.8defIfoo2.. + 39 62 61 72 81 1e 48 6c 64 65 66 38 62 61 72 48 9bar..Hldef8barH + 66 6f 6f 31 38 62 61 72 13 38 64 65 66 38 62 61 foo18bar.8def8ba + 72 48 66 6f 6f 32 38 62 61 72 rHfoo28bar + #187.1.1.array + [ 0] #190.1.1.num.int <10 (0xa)> + [ 1] #197.1.2.num.int <30 (0x1e)> + [ 2] #197.1.2.num.int <30 (0x1e)> + [ 3] #201.1.2.num.int <20 (0x14)> + #188.1.1.ctx.func + type 17, ip 0x5a (0x5a) + code #186.1.6.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #190.1.1.num.int <10 (0xa)> + #191.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x13, size 4, "foo1"> + 66 6f 6f 31 foo1 + #192.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x19, size 12> + 39 62 61 72 81 14 48 67 64 65 66 13 9bar..Hgdef. + #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x2a, size 4, "foo2"> + 66 6f 6f 32 foo2 + #194.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x30, size 25> + 39 62 61 72 81 1e 48 6c 64 65 66 38 62 61 72 48 9bar..Hldef8barH + 66 6f 6f 31 38 62 61 72 13 foo18bar. + #197.1.2.num.int <30 (0x1e)> + #200.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x1a, size 3, "bar"> + 62 61 72 bar + #201.1.2.num.int <20 (0x14)> + #202.1.1.array diff --git a/tests/0063_gdef/screen.log.ref b/tests/0063_gdef/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0063_gdef/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0063_gdef/trace.log.ref b/tests/0063_gdef/trace.log.ref new file mode 100644 index 0000000..53b451e --- /dev/null +++ b/tests/0063_gdef/trace.log.ref @@ -0,0 +1,202 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0xc, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.num.int <10 (0xa)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "bar"> +IP: #186:0xe, type 8, 15[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.num.int +GC: --#190.1.2.num.int +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x12, type 9, 19[4] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x13, size 4, "foo1"> +IP: #186:0x17, type 6, 25[12] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x19, size 12> + [1] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x13, size 4, "foo1"> +IP: #186:0x25, type 8, 38[3] +GC: ++#191.1.1.mem.ref.ro +GC: ++#192.1.1.mem.code.ro +GC: --#192.1.2.mem.code.ro +GC: --#191.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x29, type 9, 42[4] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x2a, size 4, "foo2"> +IP: #186:0x2e, type 6, 48[25] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x30, size 25> + [1] #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x2a, size 4, "foo2"> +IP: #186:0x49, type 8, 74[3] +GC: ++#193.1.1.mem.ref.ro +GC: ++#194.1.1.mem.code.ro +GC: --#194.1.2.mem.code.ro +GC: --#193.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x4d, type 8, 78[3] +GC: ++#190.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <10 (0xa)> +IP: #186:0x51, type 8, 82[4] +GC: ++#194.1.1.mem.code.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <10 (0xa)> +IP: #194:0x0, type 9, 1[3] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x31, size 3, "bar"> + [1] #190.1.2.num.int <10 (0xa)> +IP: #194:0x4, type 1, 30 (0x1e) +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <30 (0x1e)> + [1] #196.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x31, size 3, "bar"> + [2] #190.1.2.num.int <10 (0xa)> +IP: #194:0x6, type 8, 7[4] +GC: ++#196.1.1.mem.ref.ro +GC: ++#197.1.1.num.int +GC: --#197.1.2.num.int +GC: --#196.1.2.mem.ref.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.num.int <10 (0xa)> +IP: #194:0xb, type 8, 12[3] +GC: ++#197.1.1.num.int +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #190.1.2.num.int <10 (0xa)> +IP: #194:0xf, type 8, 16[4] +GC: ++#192.1.1.mem.code.ro +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #190.1.2.num.int <10 (0xa)> +IP: #192:0x0, type 9, 1[3] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x1a, size 3, "bar"> + [1] #197.1.2.num.int <30 (0x1e)> + [2] #190.1.2.num.int <10 (0xa)> +IP: #192:0x4, type 1, 20 (0x14) +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.num.int <20 (0x14)> + [1] #200.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x1a, size 3, "bar"> + [2] #197.1.2.num.int <30 (0x1e)> + [3] #190.1.2.num.int <10 (0xa)> +IP: #192:0x6, type 8, 7[4] +GC: ++#200.1.1.mem.ref.ro +GC: ++#201.1.1.num.int +GC: --#189.1.1.mem.ref.ro +GC: --#186.1.8.mem.ro +GC: --#190.1.2.num.int +GC: --#201.1.2.num.int +GC: --#200.1.2.mem.ref.ro +== backtrace == + [0] #199.1.1.ctx.func + [1] #195.1.1.ctx.func + [2] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #190.1.1.num.int <10 (0xa)> +IP: #192:0xb, type 3, 1 (0x1) +GC: ++#195.1.1.ctx.func +GC: --#199.1.1.ctx.func +GC: --#195.1.2.ctx.func +GC: --#192.1.2.mem.code.ro +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #190.1.1.num.int <10 (0xa)> +IP: #194:0x14, type 8, 21[3] +GC: ++#197.1.2.num.int +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.3.num.int <30 (0x1e)> + [1] #197.1.3.num.int <30 (0x1e)> + [2] #190.1.1.num.int <10 (0xa)> +IP: #194:0x18, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#195.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#194.1.2.mem.code.ro +GC: --#198.1.1.hash +GC: --#196.1.1.mem.ref.ro +GC: --#197.1.3.num.int +GC: --#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <30 (0x1e)> + [1] #197.1.2.num.int <30 (0x1e)> + [2] #190.1.1.num.int <10 (0xa)> +IP: #186:0x56, type 8, 87[3] +GC: ++#201.1.1.num.int +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.2.num.int <20 (0x14)> + [1] #197.1.2.num.int <30 (0x1e)> + [2] #197.1.2.num.int <30 (0x1e)> + [3] #190.1.1.num.int <10 (0xa)> diff --git a/tests/0064_method_get/basic.log.ref b/tests/0064_method_get/basic.log.ref new file mode 100644 index 0000000..9ac725a --- /dev/null +++ b/tests/0064_method_get/basic.log.ref @@ -0,0 +1,119 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "x"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "x"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "3x"> + [1] #xxxx.1.1.num.int <10 (0xa)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "x"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.5.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "3x"> + [2] #xxxx.1.1.num.int <10 (0xa)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "x"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <10 (0xa)> + [1] #xxxx.1.3.num.int <10 (0xa)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.3.num.int <10 (0xa)> + [2] #xxxx.1.3.num.int <10 (0xa)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.3.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <10 (0xa)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.2.num.int <10 (0xa)> diff --git a/tests/0064_method_get/code.log.ref b/tests/0064_method_get/code.log.ref new file mode 100644 index 0000000..3123c30 --- /dev/null +++ b/tests/0064_method_get/code.log.ref @@ -0,0 +1,23 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 17 entries (17 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 2 3 0x0000e ref 19 78 /x + 4 0x00010 int 81 0a 10 + 3 5 0x00012 ref 29 33 78 /3x + 6 0x00015 code 86 { + 7 0x00016 word 18 78 x + 8 0x00018 int 31 3 + 9 0x00019 word 38 6d 75 6c mul + 10 0x0001d prim 13 } + 4 11 0x0001e word 18 29 ) + 12 0x00020 word 38 64 65 66 def + 6 13 0x00024 word 38 66 6f 6f foo + 14 0x00028 get 1a 78 .x + 7 15 0x0002a word 38 66 6f 6f foo + 16 0x0002e get 2a 33 78 .3x diff --git a/tests/0064_method_get/code1.log.ref b/tests/0064_method_get/code1.log.ref new file mode 100644 index 0000000..2246acb --- /dev/null +++ b/tests/0064_method_get/code1.log.ref @@ -0,0 +1,23 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 17 entries (17 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 2 3 0x0000e ref 19 78 /x + 4 0x00010 int 81 0a 10 + 3 5 0x00012 ref 29 33 78 /3x + 6 0x00015 code 86 { + 7 0x00016 word 18 78 x + 8 0x00018 int 31 3 + 9 0x00019 word 38 6d 75 6c mul + 10 0x0001d prim 13 } + 4 11 0x0001e word 18 29 ) + 12 0x00020 word 38 64 65 66 def + 6 13 0x00024 word 38 66 6f 6f foo + 14 0x00028 get 1a 78 .x + 7 15 0x0002a xref 64 foo + 16 0x0002b get 2a 33 78 .3x diff --git a/tests/0064_method_get/code2.log.ref b/tests/0064_method_get/code2.log.ref new file mode 100644 index 0000000..fccf64a --- /dev/null +++ b/tests/0064_method_get/code2.log.ref @@ -0,0 +1,23 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 17 entries (17 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c prim 43 ( + 2 3 0x0000d ref 19 78 /x + 4 0x0000f int 81 0a 10 + 3 5 0x00011 ref 29 33 78 /3x + 6 0x00014 code 66 { + 7 0x00015 word 18 78 x + 8 0x00017 int 31 3 + 9 0x00018 prim 83 20 mul + 10 0x0001a prim 13 } + 4 11 0x0001b prim 53 ) + 12 0x0001c prim 63 def + 6 13 0x0001d word 38 66 6f 6f foo + 14 0x00021 get 1a 78 .x + 7 15 0x00023 xref 64 foo + 16 0x00024 get 2a 33 78 .3x diff --git a/tests/0064_method_get/main.gs b/tests/0064_method_get/main.gs new file mode 100644 index 0000000..015a770 --- /dev/null +++ b/tests/0064_method_get/main.gs @@ -0,0 +1,7 @@ +/foo ( + /x 10 + /3x { x 3 mul } +) def + +foo .x +foo .3x diff --git a/tests/0064_method_get/mem.log.ref b/tests/0064_method_get/mem.log.ref new file mode 100644 index 0000000..93551a7 --- /dev/null +++ b/tests/0064_method_get/mem.log.ref @@ -0,0 +1,772 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 52] + 8: 187.01, 0x001d6aa8[ 72] + 9: 188.01, 0x001d6af8[ 56] + 10: 194.01, 0x001d6b38[ 28] + 11: 0.00, 0x001d6b5c[ 204] + 12: 199.01, 0x001d6c30[ 72] + 13: 0.00, 0x001d6c80[14848896] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> => #194.1.1.hash + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.5.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 18 28 19 78 uQ..Bz.`9foo.(.x + 81 0a 29 33 78 86 18 78 31 38 6d 75 6c 13 18 29 ..)3x..x18mul..) + 38 64 65 66 38 66 6f 6f 1a 78 38 66 6f 6f 2a 33 8def8foo.x8foo*3 + 78 x + #187.1.1.array + [ 0] #191.1.2.num.int <10 (0xa)> + [ 1] #198.1.1.num.int <30 (0x1e)> + #188.1.1.ctx.func + type 17, ip 0x31 (0x31) + code #186.1.5.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0xf, size 1, "x"> + 78 x + #191.1.2.num.int <10 (0xa)> + #192.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x13, size 2, "3x"> + 33 78 3x + #193.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x16, size 8> + 18 78 31 38 6d 75 6c 13 .x18mul. + #194.1.1.hash + #192.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x13, size 2, "3x"> => #193.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x16, size 8> + #190.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0xf, size 1, "x"> => #191.1.2.num.int <10 (0xa)> + #198.1.1.num.int <30 (0x1e)> + #199.1.1.array diff --git a/tests/0064_method_get/screen.log.ref b/tests/0064_method_get/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0064_method_get/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0064_method_get/trace.log.ref b/tests/0064_method_get/trace.log.ref new file mode 100644 index 0000000..185ce32 --- /dev/null +++ b/tests/0064_method_get/trace.log.ref @@ -0,0 +1,136 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 8, 13[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 9, 15[1] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0xf, size 1, "x"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x10, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <10 (0xa)> + [1] #190.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0xf, size 1, "x"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x12, type 9, 19[2] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x13, size 2, "3x"> + [1] #191.1.1.num.int <10 (0xa)> + [2] #190.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0xf, size 1, "x"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x15, type 6, 22[8] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x16, size 8> + [1] #192.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x13, size 2, "3x"> + [2] #191.1.1.num.int <10 (0xa)> + [3] #190.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0xf, size 1, "x"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1e, type 8, 31[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.hash + [1] #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x20, type 8, 33[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#194.1.1.hash +GC: --#194.1.2.hash +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x24, type 8, 37[3] +GC: ++#194.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.hash +IP: #186:0x28, type 10, 41[1] +GC: ++#191.1.1.num.int +GC: --#194.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.num.int <10 (0xa)> +IP: #186:0x2a, type 8, 43[3] +GC: ++#194.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.hash + [1] #191.1.2.num.int <10 (0xa)> +IP: #186:0x2e, type 10, 47[2] +GC: ++#193.1.1.mem.code.ro +GC: ++#194.1.2.hash +GC: --#194.1.3.hash +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.2.num.int <10 (0xa)> +IP: #193:0x0, type 8, 1[1] +GC: ++#191.1.2.num.int +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.3.num.int <10 (0xa)> + [1] #191.1.3.num.int <10 (0xa)> +IP: #193:0x2, type 1, 3 (0x3) +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <3 (0x3)> + [1] #191.1.3.num.int <10 (0xa)> + [2] #191.1.3.num.int <10 (0xa)> +IP: #193:0x3, type 8, 4[3] +GC: --#197.1.1.num.int +GC: --#191.1.3.num.int +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <30 (0x1e)> + [1] #191.1.2.num.int <10 (0xa)> +IP: #193:0x7, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#195.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#193.1.2.mem.code.ro +GC: --#196.1.1.hash +GC: --#194.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <30 (0x1e)> + [1] #191.1.2.num.int <10 (0xa)> diff --git a/tests/0065_method_set/basic.log.ref b/tests/0065_method_set/basic.log.ref new file mode 100644 index 0000000..6645db5 --- /dev/null +++ b/tests/0065_method_set/basic.log.ref @@ -0,0 +1,120 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "3x"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "3x"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <100 (0x64)> + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.4.mem.ro +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <100 (0x64)> + [1] #xxxx.1.3.num.int <100 (0x64)> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <3 (0x3)> + [1] #xxxx.1.3.num.int <100 (0x64)> + [2] #xxxx.1.3.num.int <100 (0x64)> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.3.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.2.num.int <100 (0x64)> +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <300 (0x12c)> + [1] #xxxx.1.2.num.int <100 (0x64)> diff --git a/tests/0065_method_set/code.log.ref b/tests/0065_method_set/code.log.ref new file mode 100644 index 0000000..d395683 --- /dev/null +++ b/tests/0065_method_set/code.log.ref @@ -0,0 +1,24 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 18 entries (18 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 2 3 0x0000e ref 29 33 78 /3x + 4 0x00011 code 86 { + 5 0x00012 word 18 78 x + 6 0x00014 int 31 3 + 7 0x00015 word 38 6d 75 6c mul + 8 0x00019 prim 13 } + 3 9 0x0001a word 18 29 ) + 10 0x0001c word 38 64 65 66 def + 5 11 0x00020 word 38 66 6f 6f foo + 12 0x00024 int 81 64 100 + 13 0x00026 set 1b 78 =x + 6 14 0x00028 word 38 66 6f 6f foo + 15 0x0002c get 1a 78 .x + 7 16 0x0002e word 38 66 6f 6f foo + 17 0x00032 get 2a 33 78 .3x diff --git a/tests/0065_method_set/code1.log.ref b/tests/0065_method_set/code1.log.ref new file mode 100644 index 0000000..566a43c --- /dev/null +++ b/tests/0065_method_set/code1.log.ref @@ -0,0 +1,24 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 18 entries (18 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 2 3 0x0000e ref 29 33 78 /3x + 4 0x00011 code 86 { + 5 0x00012 word 18 78 x + 6 0x00014 int 31 3 + 7 0x00015 word 38 6d 75 6c mul + 8 0x00019 prim 13 } + 3 9 0x0001a word 18 29 ) + 10 0x0001c word 38 64 65 66 def + 5 11 0x00020 word 38 66 6f 6f foo + 12 0x00024 int 81 64 100 + 13 0x00026 set 1b 78 =x + 6 14 0x00028 xref 84 08 foo + 15 0x0002a get 1a 78 .x + 7 16 0x0002c xref 84 0c foo + 17 0x0002e get 2a 33 78 .3x diff --git a/tests/0065_method_set/code2.log.ref b/tests/0065_method_set/code2.log.ref new file mode 100644 index 0000000..b4d5946 --- /dev/null +++ b/tests/0065_method_set/code2.log.ref @@ -0,0 +1,24 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 18 entries (18 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c prim 43 ( + 2 3 0x0000d ref 29 33 78 /3x + 4 0x00010 code 66 { + 5 0x00011 word 18 78 x + 6 0x00013 int 31 3 + 7 0x00014 prim 83 20 mul + 8 0x00016 prim 13 } + 3 9 0x00017 prim 53 ) + 10 0x00018 prim 63 def + 5 11 0x00019 word 38 66 6f 6f foo + 12 0x0001d int 81 64 100 + 13 0x0001f set 1b 78 =x + 6 14 0x00021 xref 84 08 foo + 15 0x00023 get 1a 78 .x + 7 16 0x00025 xref 84 0c foo + 17 0x00027 get 2a 33 78 .3x diff --git a/tests/0065_method_set/main.gs b/tests/0065_method_set/main.gs new file mode 100644 index 0000000..905328e --- /dev/null +++ b/tests/0065_method_set/main.gs @@ -0,0 +1,7 @@ +/foo ( + /3x { x 3 mul } +) def + +foo 100 =x +foo .x +foo .3x diff --git a/tests/0065_method_set/mem.log.ref b/tests/0065_method_set/mem.log.ref new file mode 100644 index 0000000..36880f4 --- /dev/null +++ b/tests/0065_method_set/mem.log.ref @@ -0,0 +1,773 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 56] + 8: 187.01, 0x001d6aac[ 72] + 9: 188.01, 0x001d6afc[ 56] + 10: 0.00, 0x001d6b3c[ 20] + 11: 192.01, 0x001d6b58[ 148] + 12: 0.00, 0x001d6bf4[ 204] + 13: 199.01, 0x001d6cc8[ 72] + 14: 0.00, 0x001d6d18[14848744] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> => #192.1.1.hash + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.5.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 18 28 29 33 uQ..Bz.`9foo.()3 + 78 86 18 78 31 38 6d 75 6c 13 18 29 38 64 65 66 x..x18mul..)8def + 38 66 6f 6f 81 64 1b 78 38 66 6f 6f 1a 78 38 66 8foo.d.x8foo.x8f + 6f 6f 2a 33 78 oo*3x + #187.1.1.array + [ 0] #193.1.2.num.int <100 (0x64)> + [ 1] #198.1.1.num.int <300 (0x12c)> + #188.1.1.ctx.func + type 17, ip 0x35 (0x35) + code #186.1.5.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "3x"> + 33 78 3x + #191.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x12, size 8> + 18 78 31 38 6d 75 6c 13 .x18mul. + #192.1.1.hash + #190.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0xf, size 2, "3x"> => #191.1.1.mem.code.ro <#186.1.5.mem.ro, ofs 0x12, size 8> + #194.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x27, size 1, "x"> => #193.1.2.num.int <100 (0x64)> + #193.1.2.num.int <100 (0x64)> + #194.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x27, size 1, "x"> + 78 x + #198.1.1.num.int <300 (0x12c)> + #199.1.1.array diff --git a/tests/0065_method_set/screen.log.ref b/tests/0065_method_set/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0065_method_set/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0065_method_set/trace.log.ref b/tests/0065_method_set/trace.log.ref new file mode 100644 index 0000000..6eb16fa --- /dev/null +++ b/tests/0065_method_set/trace.log.ref @@ -0,0 +1,138 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 8, 13[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 9, 15[2] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0xf, size 2, "3x"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x11, type 6, 18[8] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x12, size 8> + [1] #190.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0xf, size 2, "3x"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1a, type 8, 27[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.hash + [1] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x1c, type 8, 29[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#192.1.1.hash +GC: --#192.1.2.hash +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x20, type 8, 33[3] +GC: ++#192.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.hash +IP: #186:0x24, type 1, 100 (0x64) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.num.int <100 (0x64)> + [1] #192.1.2.hash +IP: #186:0x26, type 11, 39[1] +GC: ++#186.1.4.mem.ro +GC: ++#194.1.1.mem.ref.ro +GC: ++#193.1.1.num.int +GC: --#193.1.2.num.int +GC: --#192.1.2.hash +GC: --#194.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x28, type 8, 41[3] +GC: ++#192.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.hash +IP: #186:0x2c, type 10, 45[1] +GC: ++#193.1.1.num.int +GC: --#192.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.2.num.int <100 (0x64)> +IP: #186:0x2e, type 8, 47[3] +GC: ++#192.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.hash + [1] #193.1.2.num.int <100 (0x64)> +IP: #186:0x32, type 10, 51[2] +GC: ++#191.1.1.mem.code.ro +GC: ++#192.1.2.hash +GC: --#192.1.3.hash +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.2.num.int <100 (0x64)> +IP: #191:0x0, type 8, 1[1] +GC: ++#193.1.2.num.int +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.3.num.int <100 (0x64)> + [1] #193.1.3.num.int <100 (0x64)> +IP: #191:0x2, type 1, 3 (0x3) +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <3 (0x3)> + [1] #193.1.3.num.int <100 (0x64)> + [2] #193.1.3.num.int <100 (0x64)> +IP: #191:0x3, type 8, 4[3] +GC: --#197.1.1.num.int +GC: --#193.1.3.num.int +== backtrace == + [0] #195.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <300 (0x12c)> + [1] #193.1.2.num.int <100 (0x64)> +IP: #191:0x7, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#195.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#191.1.2.mem.code.ro +GC: --#196.1.1.hash +GC: --#192.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <300 (0x12c)> + [1] #193.1.2.num.int <100 (0x64)> diff --git a/tests/0066_inheritance/basic.log.ref b/tests/0066_inheritance/basic.log.ref new file mode 100644 index 0000000..7b4e711 --- /dev/null +++ b/tests/0066_inheritance/basic.log.ref @@ -0,0 +1,605 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.gstate +GC: ++#xxxx.1.1.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.gstate + [1] #xxxx.1.2.gstate +GC: --#xxxx.1.2.gstate +GC: ++#xxxx.1.1.font +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.font + [1] #xxxx.1.2.gstate +GC: ++#xxxx.1.2.font +GC: --#xxxx.1.3.font +GC: --#xxxx.1.2.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "widget"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "widget"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "draw1"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "widget"> +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.4.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "draw1"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "widget"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "widget"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "win"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "win"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "y"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "win"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "y"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "win"> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "text"> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "y"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "win"> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.8.mem.ro, "XX"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "text"> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "y"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "win"> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "draw2"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.9.mem.ro, "XX"> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "text"> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "y"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "win"> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.10.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "draw2"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "XX"> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "text"> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "y"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "win"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "win"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.10.mem.ro, "XX"> +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "y"> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <20 (0x14)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "y"> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.2.num.int <20 (0x14)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "y"> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "y"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.11.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.11.mem.ro, "XX"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "text"> +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, " XX"> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.12.mem.ro, "XX"> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "text"> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.12.mem.ro +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.11.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "y"> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <40 (0x28)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "y"> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.2.num.int <40 (0x28)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "y"> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <60 (0x3c)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "y"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "text"> +GC: ++#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, " XX"> + [1] #xxxx.1.2.mem.str + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "text"> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.11.mem.ro +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.1.mem.str +GC: --#xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <60 (0x3c)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "y"> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <60 (0x3c)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "y"> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.2.num.int <60 (0x3c)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "y"> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <80 (0x50)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "y"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "text"> +GC: ++#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, " XX"> + [1] #xxxx.1.2.mem.str + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "text"> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.11.mem.ro +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.10.mem.ro +GC: --#xxxx.1.1.mem.str +GC: --#xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <80 (0x50)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == diff --git a/tests/0066_inheritance/code.log.ref b/tests/0066_inheritance/code.log.ref new file mode 100644 index 0000000..f1715bf --- /dev/null +++ b/tests/0066_inheritance/code.log.ref @@ -0,0 +1,64 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 54 entries (54 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 word 98 67 65 74 67 73 74 61 getgstate + 74 65 + 2 0x00012 word c8 10 67 65 74 63 6f 6e getconsolegstate + 73 6f 6c 65 67 73 74 61 + 74 65 + 3 0x00024 word 78 67 65 74 66 6f 6e 74 getfont + 4 0x0002c word 78 73 65 74 66 6f 6e 74 setfont + 3 5 0x00034 ref 69 77 69 64 67 65 74 /widget + 6 0x0003b word 18 28 ( + 4 7 0x0003d ref 59 64 72 61 77 31 /draw1 + 8 0x00043 code c6 16 { + 5 9 0x00045 int 81 0a 10 + 10 0x00047 word 18 79 y + 11 0x00049 word 68 73 65 74 70 6f 73 setpos + 6 12 0x00050 word 48 74 65 78 74 text + 13 0x00055 word 48 73 68 6f 77 show + 7 14 0x0005a prim 13 } + 8 15 0x0005b word 18 29 ) + 16 0x0005d word 38 64 65 66 def + 10 17 0x00061 ref 39 77 69 6e /win + 18 0x00065 word 18 28 ( + 11 19 0x00067 ref 19 79 /y + 20 0x00069 int 81 14 20 + 12 21 0x0006b ref 49 74 65 78 74 /text + 22 0x00070 str 27 58 58 "XX" + 13 23 0x00073 ref 59 64 72 61 77 32 /draw2 + 24 0x00079 code c6 3a { + 14 25 0x0007b int 81 0a 10 + 26 0x0007d word 18 79 y + 27 0x0007f word 68 73 65 74 70 6f 73 setpos + 15 28 0x00086 word 48 74 65 78 74 text + 29 0x0008b word 48 73 68 6f 77 show + 16 30 0x00090 ref 19 79 /y + 31 0x00092 word 18 79 y + 32 0x00094 int 81 14 20 + 33 0x00096 word 38 61 64 64 add + 34 0x0009a word 38 64 65 66 def + 17 35 0x0009e ref 49 74 65 78 74 /text + 36 0x000a3 word 48 74 65 78 74 text + 37 0x000a8 str 37 20 58 58 " XX" + 38 0x000ac word 38 61 64 64 add + 39 0x000b0 word 38 64 65 66 def + 18 40 0x000b4 prim 13 } + 19 41 0x000b5 word 18 29 ) + 42 0x000b7 word 38 64 65 66 def + 21 43 0x000bb word 38 77 69 6e win + 44 0x000bf word 68 77 69 64 67 65 74 widget + 45 0x000c6 word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 23 46 0x000d0 word 38 77 69 6e win + 47 0x000d4 get 5a 64 72 61 77 32 .draw2 + 24 48 0x000da word 38 77 69 6e win + 49 0x000de get 5a 64 72 61 77 32 .draw2 + 25 50 0x000e4 word 38 77 69 6e win + 51 0x000e8 get 5a 64 72 61 77 32 .draw2 + 27 52 0x000ee word 38 77 69 6e win + 53 0x000f2 get 5a 64 72 61 77 31 .draw1 diff --git a/tests/0066_inheritance/code1.log.ref b/tests/0066_inheritance/code1.log.ref new file mode 100644 index 0000000..ae6913e --- /dev/null +++ b/tests/0066_inheritance/code1.log.ref @@ -0,0 +1,64 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 54 entries (54 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 word 98 67 65 74 67 73 74 61 getgstate + 74 65 + 2 0x00012 word c8 10 67 65 74 63 6f 6e getconsolegstate + 73 6f 6c 65 67 73 74 61 + 74 65 + 3 0x00024 word 78 67 65 74 66 6f 6e 74 getfont + 4 0x0002c word 78 73 65 74 66 6f 6e 74 setfont + 3 5 0x00034 ref 69 77 69 64 67 65 74 /widget + 6 0x0003b word 18 28 ( + 4 7 0x0003d ref 59 64 72 61 77 31 /draw1 + 8 0x00043 code c6 16 { + 5 9 0x00045 int 81 0a 10 + 10 0x00047 word 18 79 y + 11 0x00049 word 68 73 65 74 70 6f 73 setpos + 6 12 0x00050 word 48 74 65 78 74 text + 13 0x00055 word 48 73 68 6f 77 show + 7 14 0x0005a prim 13 } + 8 15 0x0005b word 18 29 ) + 16 0x0005d word 38 64 65 66 def + 10 17 0x00061 ref 39 77 69 6e /win + 18 0x00065 word 18 28 ( + 11 19 0x00067 ref 19 79 /y + 20 0x00069 int 81 14 20 + 12 21 0x0006b ref 49 74 65 78 74 /text + 22 0x00070 str 27 58 58 "XX" + 13 23 0x00073 ref 59 64 72 61 77 32 /draw2 + 24 0x00079 code c6 23 { + 14 25 0x0007b int 81 0a 10 + 26 0x0007d word 18 79 y + 27 0x0007f xref 84 36 setpos + 15 28 0x00081 xref 84 31 text + 29 0x00083 xref 84 2e show + 16 30 0x00085 ref 19 79 /y + 31 0x00087 word 18 79 y + 32 0x00089 int 81 14 20 + 33 0x0008b word 38 61 64 64 add + 34 0x0008f xref 84 32 def + 17 35 0x00091 xref 84 26 /text + 36 0x00093 xref 84 43 text + 37 0x00095 str 37 20 58 58 " XX" + 38 0x00099 xref 84 0e add + 39 0x0009b xref 84 3e def + 18 40 0x0009d prim 13 } + 19 41 0x0009e word 18 29 ) + 42 0x000a0 xref 84 43 def + 21 43 0x000a2 word 38 77 69 6e win + 44 0x000a6 word 68 77 69 64 67 65 74 widget + 45 0x000ad word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 23 46 0x000b7 xref 84 15 win + 47 0x000b9 get 5a 64 72 61 77 32 .draw2 + 24 48 0x000bf xref 84 1d win + 49 0x000c1 xref 84 08 .draw2 + 25 50 0x000c3 xref 84 21 win + 51 0x000c5 xref 84 0c .draw2 + 27 52 0x000c7 xref 84 25 win + 53 0x000c9 get 5a 64 72 61 77 31 .draw1 diff --git a/tests/0066_inheritance/code2.log.ref b/tests/0066_inheritance/code2.log.ref new file mode 100644 index 0000000..06b356c --- /dev/null +++ b/tests/0066_inheritance/code2.log.ref @@ -0,0 +1,60 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 54 entries (54 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 prim 83 47 getgstate + 2 0x0000a prim 83 4a getconsolegstate + 3 0x0000c prim 83 3f getfont + 4 0x0000e prim 83 40 setfont + 3 5 0x00010 ref 69 77 69 64 67 65 74 /widget + 6 0x00017 prim 43 ( + 4 7 0x00018 ref 59 64 72 61 77 31 /draw1 + 8 0x0001e code c6 0e { + 5 9 0x00020 int 81 0a 10 + 10 0x00022 word 18 79 y + 11 0x00024 prim 83 3e setpos + 6 12 0x00026 word 48 74 65 78 74 text + 13 0x0002b prim 83 4c show + 7 14 0x0002d prim 13 } + 8 15 0x0002e prim 53 ) + 16 0x0002f prim 63 def + 10 17 0x00030 ref 39 77 69 6e /win + 18 0x00034 prim 43 ( + 11 19 0x00035 ref 19 79 /y + 20 0x00037 int 81 14 20 + 12 21 0x00039 ref 49 74 65 78 74 /text + 22 0x0003e str 27 58 58 "XX" + 13 23 0x00041 ref 59 64 72 61 77 32 /draw2 + 24 0x00047 code c6 1f { + 14 25 0x00049 int 81 0a 10 + 26 0x0004b word 18 79 y + 27 0x0004d prim 83 3e setpos + 15 28 0x0004f xref 84 29 text + 29 0x00051 prim 83 4c show + 16 30 0x00053 ref 19 79 /y + 31 0x00055 word 18 79 y + 32 0x00057 int 81 14 20 + 33 0x00059 prim 83 1e add + 34 0x0005b prim 63 def + 17 35 0x0005c xref 84 23 /text + 36 0x0005e xref 84 38 text + 37 0x00060 str 37 20 58 58 " XX" + 38 0x00064 prim 83 1e add + 39 0x00066 prim 63 def + 18 40 0x00067 prim 13 } + 19 41 0x00068 prim 53 ) + 42 0x00069 prim 63 def + 21 43 0x0006a word 38 77 69 6e win + 44 0x0006e word 68 77 69 64 67 65 74 widget + 45 0x00075 prim 83 35 setparent + 23 46 0x00077 xref 84 0d win + 47 0x00079 get 5a 64 72 61 77 32 .draw2 + 24 48 0x0007f xref 84 15 win + 49 0x00081 xref 84 08 .draw2 + 25 50 0x00083 xref 84 19 win + 51 0x00085 xref 84 0c .draw2 + 27 52 0x00087 xref 84 1d win + 53 0x00089 get 5a 64 72 61 77 31 .draw1 diff --git a/tests/0066_inheritance/main.gs b/tests/0066_inheritance/main.gs new file mode 100644 index 0000000..b2e4c89 --- /dev/null +++ b/tests/0066_inheritance/main.gs @@ -0,0 +1,27 @@ +getgstate getconsolegstate getfont setfont + +/widget ( + /draw1 { + 10 y setpos + text show + } +) def + +/win ( + /y 20 + /text "XX" + /draw2 { + 10 y setpos + text show + /y y 20 add def + /text text " XX" add def + } +) def + +win widget setparent + +win .draw2 +win .draw2 +win .draw2 + +win .draw1 diff --git a/tests/0066_inheritance/mem.log.ref b/tests/0066_inheritance/mem.log.ref new file mode 100644 index 0000000..4d5becb --- /dev/null +++ b/tests/0066_inheritance/mem.log.ref @@ -0,0 +1,802 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 248] + 8: 187.01, 0x001d6b6c[ 72] + 9: 188.01, 0x001d6bbc[ 56] + 10: 192.01, 0x001d6bfc[ 20] + 11: 200.01, 0x001d6c18[ 36] + 12: 0.00, 0x001d6c44[ 204] + 13: 204.01, 0x001d6d18[ 72] + 14: 0.00, 0x001d6d68[ 24] + 15: 228.01, 0x001d6d88[ 12] + 16: 0.00, 0x001d6d9c[14848612] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | .. | + | ,... | + | :,,: :... | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 98x80, char size 8x16 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #184.1.2.font + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.2.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #189.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x35, size 6, "widget"> => #192.1.2.hash + #193.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x62, size 3, "win"> => #200.1.1.hash + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.2.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + |@@ @@ | + |@@ @@ | + | @@ @@ | + | @@@@@ | + | @@@ | + | @@@ | + | @@@@@ | + | @@ @@ | + |@@ @@ | + |@@ @@ | + | | + | | + | | + | | + #186.1.9.mem.ro + 75 51 12 a9 42 7a ad 60 98 67 65 74 67 73 74 61 uQ..Bz.`.getgsta + 74 65 c8 10 67 65 74 63 6f 6e 73 6f 6c 65 67 73 te..getconsolegs + 74 61 74 65 78 67 65 74 66 6f 6e 74 78 73 65 74 tatexgetfontxset + 66 6f 6e 74 69 77 69 64 67 65 74 18 28 59 64 72 fontiwidget.(Ydr + 61 77 31 c6 16 81 0a 18 79 68 73 65 74 70 6f 73 aw1.....yhsetpos + 48 74 65 78 74 48 73 68 6f 77 13 18 29 38 64 65 HtextHshow..)8de + 66 39 77 69 6e 18 28 19 79 81 14 49 74 65 78 74 f9win.(.y..Itext + 27 58 58 59 64 72 61 77 32 c6 3a 81 0a 18 79 68 'XXYdraw2.:...yh + 73 65 74 70 6f 73 48 74 65 78 74 48 73 68 6f 77 setposHtextHshow + 19 79 18 79 81 14 38 61 64 64 38 64 65 66 49 74 .y.y..8add8defIt + 65 78 74 48 74 65 78 74 37 20 58 58 38 61 64 64 extHtext7 XX8add + 38 64 65 66 13 18 29 38 64 65 66 38 77 69 6e 68 8def..)8def8winh + 77 69 64 67 65 74 98 73 65 74 70 61 72 65 6e 74 widget.setparent + 38 77 69 6e 5a 64 72 61 77 32 38 77 69 6e 5a 64 8winZdraw28winZd + 72 61 77 32 38 77 69 6e 5a 64 72 61 77 32 38 77 raw28winZdraw28w + 69 6e 5a 64 72 61 77 31 inZdraw1 + #187.1.1.array + #188.1.1.ctx.func + type 17, ip 0xf8 (0xf8) + code #186.1.9.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x35, size 6, "widget"> + 77 69 64 67 65 74 widget + #190.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x3e, size 5, "draw1"> + 64 72 61 77 31 draw1 + #191.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0x45, size 22> + 81 0a 18 79 68 73 65 74 70 6f 73 48 74 65 78 74 ...yhsetposHtext + 48 73 68 6f 77 13 Hshow. + #192.1.2.hash + #190.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x3e, size 5, "draw1"> => #191.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0x45, size 22> + #193.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x62, size 3, "win"> + 77 69 6e win + #198.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x74, size 5, "draw2"> + 64 72 61 77 32 draw2 + #199.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0x7b, size 58> + 81 0a 18 79 68 73 65 74 70 6f 73 48 74 65 78 74 ...yhsetposHtext + 48 73 68 6f 77 19 79 18 79 81 14 38 61 64 64 38 Hshow.y.y..8add8 + 64 65 66 49 74 65 78 74 48 74 65 78 74 37 20 58 defItextHtext7 X + 58 38 61 64 64 38 64 65 66 13 X8add8def. + #200.1.1.hash + #198.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x74, size 5, "draw2"> => #199.1.1.mem.code.ro <#186.1.9.mem.ro, ofs 0x7b, size 58> + #226.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x9f, size 4, "text"> => #228.1.1.mem.str + #223.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x91, size 1, "y"> => #225.1.1.num.int <80 (0x50)> + #204.1.1.array + #223.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x91, size 1, "y"> + 79 y + #225.1.1.num.int <80 (0x50)> + #226.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x9f, size 4, "text"> + 74 65 78 74 text + #228.1.1.mem.str + 58 58 20 58 58 20 58 58 20 58 58 XX XX XX XX diff --git a/tests/0066_inheritance/screen.log.ref b/tests/0066_inheritance/screen.log.ref new file mode 100644 index 0000000..e2c31fb --- /dev/null +++ b/tests/0066_inheritance/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | .. | + | ,... | + | :,,: :... | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0066_inheritance/trace.log.ref b/tests/0066_inheritance/trace.log.ref new file mode 100644 index 0000000..abdd14f --- /dev/null +++ b/tests/0066_inheritance/trace.log.ref @@ -0,0 +1,691 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 8, 9[9] +GC: ++#2.1.1.gstate +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #2.1.2.gstate +IP: #186:0x12, type 8, 20[16] +GC: ++#3.1.1.gstate +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #3.1.2.gstate + [1] #2.1.2.gstate +IP: #186:0x24, type 8, 37[7] +GC: --#3.1.2.gstate +GC: ++#184.1.1.font +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #184.1.2.font + [1] #2.1.2.gstate +IP: #186:0x2c, type 8, 45[7] +GC: ++#184.1.2.font +GC: --#184.1.3.font +GC: --#2.1.2.gstate +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x34, type 9, 53[6] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x35, size 6, "widget"> +IP: #186:0x3b, type 8, 60[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x35, size 6, "widget"> +IP: #186:0x3d, type 9, 62[5] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x3e, size 5, "draw1"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x35, size 6, "widget"> +IP: #186:0x43, type 6, 69[22] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.code.ro <#186.1.4.mem.ro, ofs 0x45, size 22> + [1] #190.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x3e, size 5, "draw1"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x35, size 6, "widget"> +IP: #186:0x5b, type 8, 92[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.hash + [1] #189.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x35, size 6, "widget"> +IP: #186:0x5d, type 8, 94[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#192.1.1.hash +GC: --#192.1.2.hash +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x61, type 9, 98[3] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x62, size 3, "win"> +IP: #186:0x65, type 8, 102[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x62, size 3, "win"> +IP: #186:0x67, type 9, 104[1] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x68, size 1, "y"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x62, size 3, "win"> +IP: #186:0x69, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <20 (0x14)> + [1] #194.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x68, size 1, "y"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x62, size 3, "win"> +IP: #186:0x6b, type 9, 108[4] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x6c, size 4, "text"> + [1] #195.1.1.num.int <20 (0x14)> + [2] #194.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x68, size 1, "y"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #193.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x62, size 3, "win"> +IP: #186:0x70, type 7, 113[2] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.mem.str.ro <#186.1.8.mem.ro, ofs 0x71, size 2, "XX"> + [1] #196.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x6c, size 4, "text"> + [2] #195.1.1.num.int <20 (0x14)> + [3] #194.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x68, size 1, "y"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #193.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x62, size 3, "win"> +IP: #186:0x73, type 9, 116[5] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x74, size 5, "draw2"> + [1] #197.1.1.mem.str.ro <#186.1.9.mem.ro, ofs 0x71, size 2, "XX"> + [2] #196.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x6c, size 4, "text"> + [3] #195.1.1.num.int <20 (0x14)> + [4] #194.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x68, size 1, "y"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #193.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x62, size 3, "win"> +IP: #186:0x79, type 6, 123[58] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.code.ro <#186.1.10.mem.ro, ofs 0x7b, size 58> + [1] #198.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x74, size 5, "draw2"> + [2] #197.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0x71, size 2, "XX"> + [3] #196.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x6c, size 4, "text"> + [4] #195.1.1.num.int <20 (0x14)> + [5] #194.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x68, size 1, "y"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #193.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x62, size 3, "win"> +IP: #186:0xb5, type 8, 182[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.hash + [1] #193.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x62, size 3, "win"> +IP: #186:0xb7, type 8, 184[3] +GC: ++#193.1.1.mem.ref.ro +GC: ++#200.1.1.hash +GC: --#200.1.2.hash +GC: --#193.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xbb, type 8, 188[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash +IP: #186:0xbf, type 8, 192[6] +GC: ++#192.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.hash + [1] #200.1.2.hash +IP: #186:0xc6, type 8, 199[9] +GC: ++#192.1.2.hash +GC: --#192.1.3.hash +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xd0, type 8, 209[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash +IP: #186:0xd4, type 10, 213[5] +GC: ++#199.1.1.mem.code.ro +GC: ++#200.1.2.hash +GC: --#200.1.3.hash +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x0, type 1, 10 (0xa) +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #203.1.1.num.int <10 (0xa)> +IP: #199:0x2, type 8, 3[1] +GC: ++#195.1.1.num.int +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <20 (0x14)> + [1] #203.1.1.num.int <10 (0xa)> +IP: #199:0x4, type 8, 5[6] +GC: --#195.1.2.num.int +GC: --#203.1.1.num.int +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0xb, type 8, 12[4] +GC: ++#197.1.1.mem.str.ro +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.mem.str.ro <#186.1.10.mem.ro, ofs 0x71, size 2, "XX"> +IP: #199:0x10, type 8, 17[4] +GC: --#197.1.2.mem.str.ro +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x15, type 9, 22[1] +GC: ++#186.1.10.mem.ro +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #205.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x17, type 8, 24[1] +GC: ++#195.1.1.num.int +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <20 (0x14)> + [1] #205.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x19, type 1, 20 (0x14) +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #206.1.1.num.int <20 (0x14)> + [1] #195.1.2.num.int <20 (0x14)> + [2] #205.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x1b, type 8, 28[3] +GC: --#206.1.1.num.int +GC: --#195.1.2.num.int +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.1.num.int <40 (0x28)> + [1] #205.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x1f, type 8, 32[3] +GC: ++#205.1.1.mem.ref.ro +GC: ++#207.1.1.num.int +GC: --#194.1.1.mem.ref.ro +GC: --#186.1.11.mem.ro +GC: --#195.1.1.num.int +GC: --#207.1.2.num.int +GC: --#205.1.2.mem.ref.ro +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x23, type 9, 36[4] +GC: ++#186.1.10.mem.ro +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x28, type 8, 41[4] +GC: ++#197.1.1.mem.str.ro +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.mem.str.ro <#186.1.11.mem.ro, ofs 0x71, size 2, "XX"> + [1] #208.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x2d, type 7, 46[3] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0xa9, size 3, " XX"> + [1] #197.1.2.mem.str.ro <#186.1.12.mem.ro, ofs 0x71, size 2, "XX"> + [2] #208.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x31, type 8, 50[3] +GC: --#209.1.1.mem.str.ro +GC: --#186.1.12.mem.ro +GC: --#197.1.2.mem.str.ro +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.mem.str + [1] #208.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x35, type 8, 54[3] +GC: ++#208.1.1.mem.ref.ro +GC: ++#210.1.1.mem.str +GC: --#196.1.1.mem.ref.ro +GC: --#186.1.11.mem.ro +GC: --#197.1.1.mem.str.ro +GC: --#186.1.10.mem.ro +GC: --#210.1.2.mem.str +GC: --#208.1.2.mem.ref.ro +== backtrace == + [0] #201.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x39, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#201.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#199.1.2.mem.code.ro +GC: --#202.1.1.hash +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xda, type 8, 219[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash +IP: #186:0xde, type 10, 223[5] +GC: ++#199.1.1.mem.code.ro +GC: ++#200.1.2.hash +GC: --#200.1.3.hash +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x0, type 1, 10 (0xa) +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.num.int <10 (0xa)> +IP: #199:0x2, type 8, 3[1] +GC: ++#207.1.1.num.int +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.2.num.int <40 (0x28)> + [1] #213.1.1.num.int <10 (0xa)> +IP: #199:0x4, type 8, 5[6] +GC: --#207.1.2.num.int +GC: --#213.1.1.num.int +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0xb, type 8, 12[4] +GC: ++#210.1.1.mem.str +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.2.mem.str +IP: #199:0x10, type 8, 17[4] +GC: --#210.1.2.mem.str +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x15, type 9, 22[1] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x17, type 8, 24[1] +GC: ++#207.1.1.num.int +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #207.1.2.num.int <40 (0x28)> + [1] #214.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x19, type 1, 20 (0x14) +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #215.1.1.num.int <20 (0x14)> + [1] #207.1.2.num.int <40 (0x28)> + [2] #214.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x1b, type 8, 28[3] +GC: --#215.1.1.num.int +GC: --#207.1.2.num.int +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.1.num.int <60 (0x3c)> + [1] #214.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x1f, type 8, 32[3] +GC: ++#214.1.1.mem.ref.ro +GC: ++#216.1.1.num.int +GC: --#205.1.1.mem.ref.ro +GC: --#186.1.10.mem.ro +GC: --#207.1.1.num.int +GC: --#216.1.2.num.int +GC: --#214.1.2.mem.ref.ro +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x23, type 9, 36[4] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x28, type 8, 41[4] +GC: ++#210.1.1.mem.str +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.2.mem.str + [1] #217.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x2d, type 7, 46[3] +GC: ++#186.1.10.mem.ro +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0xa9, size 3, " XX"> + [1] #210.1.2.mem.str + [2] #217.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x31, type 8, 50[3] +GC: --#218.1.1.mem.str.ro +GC: --#186.1.11.mem.ro +GC: --#210.1.2.mem.str +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.mem.str + [1] #217.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x35, type 8, 54[3] +GC: ++#217.1.1.mem.ref.ro +GC: ++#219.1.1.mem.str +GC: --#208.1.1.mem.ref.ro +GC: --#186.1.10.mem.ro +GC: --#210.1.1.mem.str +GC: --#219.1.2.mem.str +GC: --#217.1.2.mem.ref.ro +== backtrace == + [0] #211.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x39, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#211.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#199.1.2.mem.code.ro +GC: --#212.1.1.hash +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xe4, type 8, 229[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash +IP: #186:0xe8, type 10, 233[5] +GC: ++#199.1.1.mem.code.ro +GC: ++#200.1.2.hash +GC: --#200.1.3.hash +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x0, type 1, 10 (0xa) +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.num.int <10 (0xa)> +IP: #199:0x2, type 8, 3[1] +GC: ++#216.1.1.num.int +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.2.num.int <60 (0x3c)> + [1] #222.1.1.num.int <10 (0xa)> +IP: #199:0x4, type 8, 5[6] +GC: --#216.1.2.num.int +GC: --#222.1.1.num.int +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0xb, type 8, 12[4] +GC: ++#219.1.1.mem.str +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.2.mem.str +IP: #199:0x10, type 8, 17[4] +GC: --#219.1.2.mem.str +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x15, type 9, 22[1] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x17, type 8, 24[1] +GC: ++#216.1.1.num.int +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #216.1.2.num.int <60 (0x3c)> + [1] #223.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x19, type 1, 20 (0x14) +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #224.1.1.num.int <20 (0x14)> + [1] #216.1.2.num.int <60 (0x3c)> + [2] #223.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x1b, type 8, 28[3] +GC: --#224.1.1.num.int +GC: --#216.1.2.num.int +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.1.num.int <80 (0x50)> + [1] #223.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x91, size 1, "y"> +IP: #199:0x1f, type 8, 32[3] +GC: ++#223.1.1.mem.ref.ro +GC: ++#225.1.1.num.int +GC: --#214.1.1.mem.ref.ro +GC: --#186.1.10.mem.ro +GC: --#216.1.1.num.int +GC: --#225.1.2.num.int +GC: --#223.1.2.mem.ref.ro +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x23, type 9, 36[4] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x28, type 8, 41[4] +GC: ++#219.1.1.mem.str +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.2.mem.str + [1] #226.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x2d, type 7, 46[3] +GC: ++#186.1.10.mem.ro +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0xa9, size 3, " XX"> + [1] #219.1.2.mem.str + [2] #226.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x31, type 8, 50[3] +GC: --#227.1.1.mem.str.ro +GC: --#186.1.11.mem.ro +GC: --#219.1.2.mem.str +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.mem.str + [1] #226.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x9f, size 4, "text"> +IP: #199:0x35, type 8, 54[3] +GC: ++#226.1.1.mem.ref.ro +GC: ++#228.1.1.mem.str +GC: --#217.1.1.mem.ref.ro +GC: --#186.1.10.mem.ro +GC: --#219.1.1.mem.str +GC: --#228.1.2.mem.str +GC: --#226.1.2.mem.ref.ro +== backtrace == + [0] #220.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #199:0x39, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#220.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#199.1.2.mem.code.ro +GC: --#221.1.1.hash +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xee, type 8, 239[3] +GC: ++#200.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.2.hash +IP: #186:0xf2, type 10, 243[5] +GC: ++#191.1.1.mem.code.ro +GC: ++#200.1.2.hash +GC: --#200.1.3.hash +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #191:0x0, type 1, 10 (0xa) +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.num.int <10 (0xa)> +IP: #191:0x2, type 8, 3[1] +GC: ++#225.1.1.num.int +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #225.1.2.num.int <80 (0x50)> + [1] #231.1.1.num.int <10 (0xa)> +IP: #191:0x4, type 8, 5[6] +GC: --#225.1.2.num.int +GC: --#231.1.1.num.int +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #191:0xb, type 8, 12[4] +GC: ++#228.1.1.mem.str +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.2.mem.str +IP: #191:0x10, type 8, 17[4] +GC: --#228.1.2.mem.str +== backtrace == + [0] #229.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #191:0x15, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#229.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#191.1.2.mem.code.ro +GC: --#230.1.1.hash +GC: --#200.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == diff --git a/tests/0067_class/basic.log.ref b/tests/0067_class/basic.log.ref new file mode 100644 index 0000000..f17069f --- /dev/null +++ b/tests/0067_class/basic.log.ref @@ -0,0 +1,691 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "class"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.3.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "class"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.code.ro +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.gstate +GC: ++#xxxx.1.1.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.gstate + [1] #xxxx.1.2.gstate +GC: --#xxxx.1.2.gstate +GC: ++#xxxx.1.1.font +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.font + [1] #xxxx.1.2.gstate +GC: ++#xxxx.1.2.font +GC: --#xxxx.1.3.font +GC: --#xxxx.1.2.gstate +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "widget"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "widget"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "draw1"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "widget"> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.6.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "draw1"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "widget"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.6.mem.ro, "widget"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "win"> +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "win"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.7.mem.ro, "win"> +GC: ++#xxxx.1.7.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "y"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.2.hash + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "win"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "y"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.2.hash + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.8.mem.ro, "win"> +GC: ++#xxxx.1.8.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "text"> + [1] #xxxx.1.1.num.int <20 (0x14)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "y"> + [3] #xxxx.1.2.num.prim <4 (0x4)> + [4] #xxxx.1.2.hash + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.9.mem.ro, "win"> +GC: ++#xxxx.1.9.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.10.mem.ro, "XX"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "text"> + [2] #xxxx.1.1.num.int <20 (0x14)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "y"> + [4] #xxxx.1.2.num.prim <4 (0x4)> + [5] #xxxx.1.2.hash + [6] #xxxx.1.1.mem.ref.ro <#xxxx.1.10.mem.ro, "win"> +GC: ++#xxxx.1.10.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "draw2"> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.11.mem.ro, "XX"> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "text"> + [3] #xxxx.1.1.num.int <20 (0x14)> + [4] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "y"> + [5] #xxxx.1.2.num.prim <4 (0x4)> + [6] #xxxx.1.2.hash + [7] #xxxx.1.1.mem.ref.ro <#xxxx.1.11.mem.ro, "win"> +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.code.ro <#xxxx.1.12.mem.ro> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "draw2"> + [2] #xxxx.1.1.mem.str.ro <#xxxx.1.12.mem.ro, "XX"> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "text"> + [4] #xxxx.1.1.num.int <20 (0x14)> + [5] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "y"> + [6] #xxxx.1.2.num.prim <4 (0x4)> + [7] #xxxx.1.2.hash + [8] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "win"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "win"> +GC: ++#xxxx.1.1.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.2.hash + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "win"> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <2 (0x2)> + [1] #xxxx.1.1.hash + [2] #xxxx.1.2.hash + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "win"> +GC: --#xxxx.1.1.num.int +GC: ++#xxxx.1.1.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.ref.ro <#xxxx.1.12.mem.ro, "win"> + [1] #xxxx.1.1.hash + [2] #xxxx.1.2.hash + [3] #xxxx.1.2.mem.ref.ro <#xxxx.1.12.mem.ro, "win"> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.2.mem.ref.ro <#xxxx.1.12.mem.ro, "win"> + [2] #xxxx.1.2.hash + [3] #xxxx.1.2.mem.ref.ro <#xxxx.1.12.mem.ro, "win"> +GC: ++#xxxx.1.2.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.3.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.mem.ref.ro <#xxxx.1.12.mem.ro, "win"> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.ref.ro <#xxxx.1.12.mem.ro, "win"> + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <20 (0x14)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.12.mem.ro, "XX"> +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.13.mem.ro, "y"> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <20 (0x14)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.13.mem.ro, "y"> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.2.num.int <20 (0x14)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.13.mem.ro, "y"> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <40 (0x28)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.13.mem.ro, "y"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.13.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.13.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.13.mem.ro, "XX"> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.13.mem.ro, "text"> +GC: ++#xxxx.1.13.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.14.mem.ro, " XX"> + [1] #xxxx.1.2.mem.str.ro <#xxxx.1.14.mem.ro, "XX"> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.14.mem.ro, "text"> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.14.mem.ro +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.13.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.13.mem.ro +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.12.mem.ro +GC: --#xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <40 (0x28)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "y"> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <40 (0x28)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "y"> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.2.num.int <40 (0x28)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "y"> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <60 (0x3c)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "y"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.12.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "text"> +GC: ++#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, " XX"> + [1] #xxxx.1.2.mem.str + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.13.mem.ro, "text"> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.13.mem.ro +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.12.mem.ro +GC: --#xxxx.1.1.mem.str +GC: --#xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <60 (0x3c)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "y"> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <60 (0x3c)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "y"> +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.2.num.int <60 (0x3c)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "y"> +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <80 (0x50)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "y"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.12.mem.ro +GC: --#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.11.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "text"> +GC: ++#xxxx.1.12.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.13.mem.ro, " XX"> + [1] #xxxx.1.2.mem.str + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.13.mem.ro, "text"> +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.13.mem.ro +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.12.mem.ro, "text"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str +GC: --#xxxx.1.1.mem.ref.ro +GC: --#xxxx.1.12.mem.ro +GC: --#xxxx.1.1.mem.str +GC: --#xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.code.ro +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> +GC: ++#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <80 (0x50)> + [1] #xxxx.1.1.num.int <10 (0xa)> +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.1.num.int +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func + [1] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.ctx.func +GC: --#xxxx.1.1.ctx.func +GC: --#xxxx.1.2.ctx.func +GC: --#xxxx.1.2.mem.code.ro +GC: --#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == diff --git a/tests/0067_class/code.log.ref b/tests/0067_class/code.log.ref new file mode 100644 index 0000000..e3af9bc --- /dev/null +++ b/tests/0067_class/code.log.ref @@ -0,0 +1,74 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 64 entries (64 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 8 1 0x00008 ref 59 63 6c 61 73 73 /class + 2 0x0000e code c6 2b { + 9 3 0x00010 int 21 2 + 4 0x00011 word 58 69 6e 64 65 78 index + 5 0x00017 word 48 65 78 63 68 exch + 6 0x0001c word 48 67 64 65 66 gdef + 10 7 0x00021 word 48 65 78 63 68 exch + 8 0x00026 word 48 65 78 65 63 exec + 9 0x0002b word 48 65 78 63 68 exch + 10 0x00030 word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 11 11 0x0003a prim 13 } + 12 0x0003b word 38 64 65 66 def + 14 13 0x0003f word 98 67 65 74 67 73 74 61 getgstate + 74 65 + 14 0x00049 word c8 10 67 65 74 63 6f 6e getconsolegstate + 73 6f 6c 65 67 73 74 61 + 74 65 + 15 0x0005b word 78 67 65 74 66 6f 6e 74 getfont + 16 0x00063 word 78 73 65 74 66 6f 6e 74 setfont + 16 17 0x0006b ref 69 77 69 64 67 65 74 /widget + 18 0x00072 word 18 28 ( + 17 19 0x00074 ref 59 64 72 61 77 31 /draw1 + 20 0x0007a code c6 16 { + 18 21 0x0007c int 81 0a 10 + 22 0x0007e word 18 79 y + 23 0x00080 word 68 73 65 74 70 6f 73 setpos + 19 24 0x00087 word 48 74 65 78 74 text + 25 0x0008c word 48 73 68 6f 77 show + 20 26 0x00091 prim 13 } + 21 27 0x00092 word 18 29 ) + 28 0x00094 word 38 64 65 66 def + 23 29 0x00098 ref 39 77 69 6e /win + 30 0x0009c word 68 77 69 64 67 65 74 widget + 31 0x000a3 word 18 28 ( + 24 32 0x000a5 ref 19 79 /y + 33 0x000a7 int 81 14 20 + 25 34 0x000a9 ref 49 74 65 78 74 /text + 35 0x000ae str 27 58 58 "XX" + 26 36 0x000b1 ref 59 64 72 61 77 32 /draw2 + 37 0x000b7 code c6 3a { + 27 38 0x000b9 int 81 0a 10 + 39 0x000bb word 18 79 y + 40 0x000bd word 68 73 65 74 70 6f 73 setpos + 28 41 0x000c4 word 48 74 65 78 74 text + 42 0x000c9 word 48 73 68 6f 77 show + 29 43 0x000ce ref 19 79 /y + 44 0x000d0 word 18 79 y + 45 0x000d2 int 81 14 20 + 46 0x000d4 word 38 61 64 64 add + 47 0x000d8 word 38 64 65 66 def + 30 48 0x000dc ref 49 74 65 78 74 /text + 49 0x000e1 word 48 74 65 78 74 text + 50 0x000e6 str 37 20 58 58 " XX" + 51 0x000ea word 38 61 64 64 add + 52 0x000ee word 38 64 65 66 def + 31 53 0x000f2 prim 13 } + 32 54 0x000f3 word 18 29 ) + 55 0x000f5 word 58 63 6c 61 73 73 class + 34 56 0x000fb word 38 77 69 6e win + 57 0x000ff get 5a 64 72 61 77 32 .draw2 + 35 58 0x00105 word 38 77 69 6e win + 59 0x00109 get 5a 64 72 61 77 32 .draw2 + 36 60 0x0010f word 38 77 69 6e win + 61 0x00113 get 5a 64 72 61 77 32 .draw2 + 38 62 0x00119 word 38 77 69 6e win + 63 0x0011d get 5a 64 72 61 77 31 .draw1 diff --git a/tests/0067_class/code1.log.ref b/tests/0067_class/code1.log.ref new file mode 100644 index 0000000..0191905 --- /dev/null +++ b/tests/0067_class/code1.log.ref @@ -0,0 +1,74 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 64 entries (64 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 8 1 0x00008 ref 59 63 6c 61 73 73 /class + 2 0x0000e code c6 25 { + 9 3 0x00010 int 21 2 + 4 0x00011 word 58 69 6e 64 65 78 index + 5 0x00017 word 48 65 78 63 68 exch + 6 0x0001c word 48 67 64 65 66 gdef + 10 7 0x00021 xref 84 0a exch + 8 0x00023 word 48 65 78 65 63 exec + 9 0x00028 xref 84 11 exch + 10 0x0002a word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 11 11 0x00034 prim 13 } + 12 0x00035 word 38 64 65 66 def + 14 13 0x00039 word 98 67 65 74 67 73 74 61 getgstate + 74 65 + 14 0x00043 word c8 10 67 65 74 63 6f 6e getconsolegstate + 73 6f 6c 65 67 73 74 61 + 74 65 + 15 0x00055 word 78 67 65 74 66 6f 6e 74 getfont + 16 0x0005d word 78 73 65 74 66 6f 6e 74 setfont + 16 17 0x00065 ref 69 77 69 64 67 65 74 /widget + 18 0x0006c word 18 28 ( + 17 19 0x0006e ref 59 64 72 61 77 31 /draw1 + 20 0x00074 code c6 16 { + 18 21 0x00076 int 81 0a 10 + 22 0x00078 word 18 79 y + 23 0x0007a word 68 73 65 74 70 6f 73 setpos + 19 24 0x00081 word 48 74 65 78 74 text + 25 0x00086 word 48 73 68 6f 77 show + 20 26 0x0008b prim 13 } + 21 27 0x0008c word 18 29 ) + 28 0x0008e xref 84 59 def + 23 29 0x00090 ref 39 77 69 6e /win + 30 0x00094 word 68 77 69 64 67 65 74 widget + 31 0x0009b word 18 28 ( + 24 32 0x0009d ref 19 79 /y + 33 0x0009f int 81 14 20 + 25 34 0x000a1 ref 49 74 65 78 74 /text + 35 0x000a6 str 27 58 58 "XX" + 26 36 0x000a9 ref 59 64 72 61 77 32 /draw2 + 37 0x000af code c6 23 { + 27 38 0x000b1 int 81 0a 10 + 39 0x000b3 word 18 79 y + 40 0x000b5 xref 84 3b setpos + 28 41 0x000b7 xref 84 36 text + 42 0x000b9 xref 84 33 show + 29 43 0x000bb ref 19 79 /y + 44 0x000bd word 18 79 y + 45 0x000bf int 81 14 20 + 46 0x000c1 word 38 61 64 64 add + 47 0x000c5 xref 84 90 def + 30 48 0x000c7 xref 84 26 /text + 49 0x000c9 xref 84 48 text + 50 0x000cb str 37 20 58 58 " XX" + 51 0x000cf xref 84 0e add + 52 0x000d1 xref 84 9c def + 31 53 0x000d3 prim 13 } + 32 54 0x000d4 word 18 29 ) + 55 0x000d6 word 58 63 6c 61 73 73 class + 34 56 0x000dc word 38 77 69 6e win + 57 0x000e0 get 5a 64 72 61 77 32 .draw2 + 35 58 0x000e6 xref 84 0a win + 59 0x000e8 xref 84 08 .draw2 + 36 60 0x000ea xref 84 0e win + 61 0x000ec xref 84 0c .draw2 + 38 62 0x000ee xref 84 12 win + 63 0x000f0 get 5a 64 72 61 77 31 .draw1 diff --git a/tests/0067_class/code2.log.ref b/tests/0067_class/code2.log.ref new file mode 100644 index 0000000..45ae905 --- /dev/null +++ b/tests/0067_class/code2.log.ref @@ -0,0 +1,70 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 64 entries (64 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 8 1 0x00008 ref 59 63 6c 61 73 73 /class + 2 0x0000e code c6 10 { + 9 3 0x00010 int 21 2 + 4 0x00011 prim 83 1c index + 5 0x00013 prim 83 18 exch + 6 0x00015 prim 83 08 gdef + 10 7 0x00017 prim 83 18 exch + 8 0x00019 prim 83 1d exec + 9 0x0001b prim 83 18 exch + 10 0x0001d prim 83 35 setparent + 11 11 0x0001f prim 13 } + 12 0x00020 prim 63 def + 14 13 0x00021 prim 83 47 getgstate + 14 0x00023 prim 83 4a getconsolegstate + 15 0x00025 prim 83 3f getfont + 16 0x00027 prim 83 40 setfont + 16 17 0x00029 ref 69 77 69 64 67 65 74 /widget + 18 0x00030 prim 43 ( + 17 19 0x00031 ref 59 64 72 61 77 31 /draw1 + 20 0x00037 code c6 0e { + 18 21 0x00039 int 81 0a 10 + 22 0x0003b word 18 79 y + 23 0x0003d prim 83 3e setpos + 19 24 0x0003f word 48 74 65 78 74 text + 25 0x00044 prim 83 4c show + 20 26 0x00046 prim 13 } + 21 27 0x00047 prim 53 ) + 28 0x00048 prim 63 def + 23 29 0x00049 ref 39 77 69 6e /win + 30 0x0004d word 68 77 69 64 67 65 74 widget + 31 0x00054 prim 43 ( + 24 32 0x00055 ref 19 79 /y + 33 0x00057 int 81 14 20 + 25 34 0x00059 ref 49 74 65 78 74 /text + 35 0x0005e str 27 58 58 "XX" + 26 36 0x00061 ref 59 64 72 61 77 32 /draw2 + 37 0x00067 code c6 1f { + 27 38 0x00069 int 81 0a 10 + 39 0x0006b word 18 79 y + 40 0x0006d prim 83 3e setpos + 28 41 0x0006f xref 84 30 text + 42 0x00071 prim 83 4c show + 29 43 0x00073 ref 19 79 /y + 44 0x00075 word 18 79 y + 45 0x00077 int 81 14 20 + 46 0x00079 prim 83 1e add + 47 0x0007b prim 63 def + 30 48 0x0007c xref 84 23 /text + 49 0x0007e xref 84 3f text + 50 0x00080 str 37 20 58 58 " XX" + 51 0x00084 prim 83 1e add + 52 0x00086 prim 63 def + 31 53 0x00087 prim 13 } + 32 54 0x00088 prim 53 ) + 55 0x00089 word 58 63 6c 61 73 73 class + 34 56 0x0008f word 38 77 69 6e win + 57 0x00093 get 5a 64 72 61 77 32 .draw2 + 35 58 0x00099 xref 84 0a win + 59 0x0009b xref 84 08 .draw2 + 36 60 0x0009d xref 84 0e win + 61 0x0009f xref 84 0c .draw2 + 38 62 0x000a1 xref 84 12 win + 63 0x000a3 get 5a 64 72 61 77 31 .draw1 diff --git a/tests/0067_class/main.gs b/tests/0067_class/main.gs new file mode 100644 index 0000000..5207ec2 --- /dev/null +++ b/tests/0067_class/main.gs @@ -0,0 +1,38 @@ +# a sample 'class' implementation +# +# ( word_1 hash_1 hash_2 -- ) +# +# Define hash_2 as word_1 and make hash_1 it's parent. word_1 is created in +# the global context. +# +/class { + 2 index exch gdef + exch exec exch setparent +} def + + +getgstate getconsolegstate getfont setfont + +/widget ( + /draw1 { + 10 y setpos + text show + } +) def + +/win widget ( + /y 20 + /text "XX" + /draw2 { + 10 y setpos + text show + /y y 20 add def + /text text " XX" add def + } +) class + +win .draw2 +win .draw2 +win .draw2 + +win .draw1 diff --git a/tests/0067_class/mem.log.ref b/tests/0067_class/mem.log.ref new file mode 100644 index 0000000..cd65cab --- /dev/null +++ b/tests/0067_class/mem.log.ref @@ -0,0 +1,812 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 292] + 8: 187.01, 0x001d6b98[ 72] + 9: 188.01, 0x001d6be8[ 56] + 10: 194.01, 0x001d6c28[ 20] + 11: 202.01, 0x001d6c44[ 36] + 12: 0.00, 0x001d6c70[ 56] + 13: 205.01, 0x001d6cb0[ 72] + 14: 0.00, 0x001d6d00[ 172] + 15: 232.01, 0x001d6db4[ 12] + 16: 0.00, 0x001d6dc8[14848568] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | .. | + | ,... | + | :,,: :... | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 98x80, char size 8x16 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #184.1.2.font + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.2.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #189.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x9, size 5, "class"> => #190.1.1.mem.code.ro <#186.1.11.mem.ro, ofs 0x10, size 43> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #191.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x6c, size 6, "widget"> => #194.1.2.hash + #195.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x99, size 3, "win"> => #202.1.1.hash + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.2.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + |@@ @@ | + |@@ @@ | + | @@ @@ | + | @@@@@ | + | @@@ | + | @@@ | + | @@@@@ | + | @@ @@ | + |@@ @@ | + |@@ @@ | + | | + | | + | | + | | + #186.1.11.mem.ro + 75 51 12 a9 42 7a ad 60 59 63 6c 61 73 73 c6 2b uQ..Bz.`Yclass.+ + 21 58 69 6e 64 65 78 48 65 78 63 68 48 67 64 65 !XindexHexchHgde + 66 48 65 78 63 68 48 65 78 65 63 48 65 78 63 68 fHexchHexecHexch + 98 73 65 74 70 61 72 65 6e 74 13 38 64 65 66 98 .setparent.8def. + 67 65 74 67 73 74 61 74 65 c8 10 67 65 74 63 6f getgstate..getco + 6e 73 6f 6c 65 67 73 74 61 74 65 78 67 65 74 66 nsolegstatexgetf + 6f 6e 74 78 73 65 74 66 6f 6e 74 69 77 69 64 67 ontxsetfontiwidg + 65 74 18 28 59 64 72 61 77 31 c6 16 81 0a 18 79 et.(Ydraw1.....y + 68 73 65 74 70 6f 73 48 74 65 78 74 48 73 68 6f hsetposHtextHsho + 77 13 18 29 38 64 65 66 39 77 69 6e 68 77 69 64 w..)8def9winhwid + 67 65 74 18 28 19 79 81 14 49 74 65 78 74 27 58 get.(.y..Itext'X + 58 59 64 72 61 77 32 c6 3a 81 0a 18 79 68 73 65 XYdraw2.:...yhse + 74 70 6f 73 48 74 65 78 74 48 73 68 6f 77 19 79 tposHtextHshow.y + 18 79 81 14 38 61 64 64 38 64 65 66 49 74 65 78 .y..8add8defItex + 74 48 74 65 78 74 37 20 58 58 38 61 64 64 38 64 tHtext7 XX8add8d + 65 66 13 18 29 58 63 6c 61 73 73 38 77 69 6e 5a ef..)Xclass8winZ + 64 72 61 77 32 38 77 69 6e 5a 64 72 61 77 32 38 draw28winZdraw28 + 77 69 6e 5a 64 72 61 77 32 38 77 69 6e 5a 64 72 winZdraw28winZdr + 61 77 31 aw1 + #187.1.1.array + #188.1.1.ctx.func + type 17, ip 0x123 (0x123) + code #186.1.11.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x9, size 5, "class"> + 63 6c 61 73 73 class + #190.1.1.mem.code.ro <#186.1.11.mem.ro, ofs 0x10, size 43> + 21 58 69 6e 64 65 78 48 65 78 63 68 48 67 64 65 !XindexHexchHgde + 66 48 65 78 63 68 48 65 78 65 63 48 65 78 63 68 fHexchHexecHexch + 98 73 65 74 70 61 72 65 6e 74 13 .setparent. + #191.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x6c, size 6, "widget"> + 77 69 64 67 65 74 widget + #192.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x75, size 5, "draw1"> + 64 72 61 77 31 draw1 + #193.1.1.mem.code.ro <#186.1.11.mem.ro, ofs 0x7c, size 22> + 81 0a 18 79 68 73 65 74 70 6f 73 48 74 65 78 74 ...yhsetposHtext + 48 73 68 6f 77 13 Hshow. + #194.1.2.hash + #192.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x75, size 5, "draw1"> => #193.1.1.mem.code.ro <#186.1.11.mem.ro, ofs 0x7c, size 22> + #195.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x99, size 3, "win"> + 77 69 6e win + #200.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0xb2, size 5, "draw2"> + 64 72 61 77 32 draw2 + #201.1.1.mem.code.ro <#186.1.11.mem.ro, ofs 0xb9, size 58> + 81 0a 18 79 68 73 65 74 70 6f 73 48 74 65 78 74 ...yhsetposHtext + 48 73 68 6f 77 19 79 18 79 81 14 38 61 64 64 38 Hshow.y.y..8add8 + 64 65 66 49 74 65 78 74 48 74 65 78 74 37 20 58 defItextHtext7 X + 58 38 61 64 64 38 64 65 66 13 X8add8def. + #202.1.1.hash + #200.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0xb2, size 5, "draw2"> => #201.1.1.mem.code.ro <#186.1.11.mem.ro, ofs 0xb9, size 58> + #230.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0xdd, size 4, "text"> => #232.1.1.mem.str + #227.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0xcf, size 1, "y"> => #229.1.1.num.int <80 (0x50)> + #205.1.1.array + #227.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0xcf, size 1, "y"> + 79 y + #229.1.1.num.int <80 (0x50)> + #230.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0xdd, size 4, "text"> + 74 65 78 74 text + #232.1.1.mem.str + 58 58 20 58 58 20 58 58 20 58 58 XX XX XX XX diff --git a/tests/0067_class/screen.log.ref b/tests/0067_class/screen.log.ref new file mode 100644 index 0000000..e2c31fb --- /dev/null +++ b/tests/0067_class/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | .. | + | ,... | + | :,,: :... | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0067_class/trace.log.ref b/tests/0067_class/trace.log.ref new file mode 100644 index 0000000..9efaff2 --- /dev/null +++ b/tests/0067_class/trace.log.ref @@ -0,0 +1,787 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[5] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 5, "class"> +IP: #186:0xe, type 6, 16[43] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.code.ro <#186.1.3.mem.ro, ofs 0x10, size 43> + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 5, "class"> +IP: #186:0x3b, type 8, 60[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.mem.code.ro +GC: --#190.1.2.mem.code.ro +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x3f, type 8, 64[9] +GC: ++#2.1.1.gstate +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #2.1.2.gstate +IP: #186:0x49, type 8, 75[16] +GC: ++#3.1.1.gstate +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #3.1.2.gstate + [1] #2.1.2.gstate +IP: #186:0x5b, type 8, 92[7] +GC: --#3.1.2.gstate +GC: ++#184.1.1.font +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #184.1.2.font + [1] #2.1.2.gstate +IP: #186:0x63, type 8, 100[7] +GC: ++#184.1.2.font +GC: --#184.1.3.font +GC: --#2.1.2.gstate +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x6b, type 9, 108[6] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x6c, size 6, "widget"> +IP: #186:0x72, type 8, 115[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x6c, size 6, "widget"> +IP: #186:0x74, type 9, 117[5] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x75, size 5, "draw1"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #191.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x6c, size 6, "widget"> +IP: #186:0x7a, type 6, 124[22] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.code.ro <#186.1.6.mem.ro, ofs 0x7c, size 22> + [1] #192.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x75, size 5, "draw1"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #191.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x6c, size 6, "widget"> +IP: #186:0x92, type 8, 147[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.hash + [1] #191.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x6c, size 6, "widget"> +IP: #186:0x94, type 8, 149[3] +GC: ++#191.1.1.mem.ref.ro +GC: ++#194.1.1.hash +GC: --#194.1.2.hash +GC: --#191.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x98, type 9, 153[3] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x99, size 3, "win"> +IP: #186:0x9c, type 8, 157[6] +GC: ++#194.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.hash + [1] #195.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x99, size 3, "win"> +IP: #186:0xa3, type 8, 164[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #194.1.2.hash + [2] #195.1.1.mem.ref.ro <#186.1.7.mem.ro, ofs 0x99, size 3, "win"> +IP: #186:0xa5, type 9, 166[1] +GC: ++#186.1.7.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0xa6, size 1, "y"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #194.1.2.hash + [3] #195.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x99, size 3, "win"> +IP: #186:0xa7, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.num.int <20 (0x14)> + [1] #196.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0xa6, size 1, "y"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #194.1.2.hash + [4] #195.1.1.mem.ref.ro <#186.1.8.mem.ro, ofs 0x99, size 3, "win"> +IP: #186:0xa9, type 9, 170[4] +GC: ++#186.1.8.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0xaa, size 4, "text"> + [1] #197.1.1.num.int <20 (0x14)> + [2] #196.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0xa6, size 1, "y"> + [3] #13.1.2.num.prim <4 (0x4)> + [4] #194.1.2.hash + [5] #195.1.1.mem.ref.ro <#186.1.9.mem.ro, ofs 0x99, size 3, "win"> +IP: #186:0xae, type 7, 175[2] +GC: ++#186.1.9.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.str.ro <#186.1.10.mem.ro, ofs 0xaf, size 2, "XX"> + [1] #198.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0xaa, size 4, "text"> + [2] #197.1.1.num.int <20 (0x14)> + [3] #196.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0xa6, size 1, "y"> + [4] #13.1.2.num.prim <4 (0x4)> + [5] #194.1.2.hash + [6] #195.1.1.mem.ref.ro <#186.1.10.mem.ro, ofs 0x99, size 3, "win"> +IP: #186:0xb1, type 9, 178[5] +GC: ++#186.1.10.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0xb2, size 5, "draw2"> + [1] #199.1.1.mem.str.ro <#186.1.11.mem.ro, ofs 0xaf, size 2, "XX"> + [2] #198.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0xaa, size 4, "text"> + [3] #197.1.1.num.int <20 (0x14)> + [4] #196.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0xa6, size 1, "y"> + [5] #13.1.2.num.prim <4 (0x4)> + [6] #194.1.2.hash + [7] #195.1.1.mem.ref.ro <#186.1.11.mem.ro, ofs 0x99, size 3, "win"> +IP: #186:0xb7, type 6, 185[58] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.mem.code.ro <#186.1.12.mem.ro, ofs 0xb9, size 58> + [1] #200.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xb2, size 5, "draw2"> + [2] #199.1.1.mem.str.ro <#186.1.12.mem.ro, ofs 0xaf, size 2, "XX"> + [3] #198.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xaa, size 4, "text"> + [4] #197.1.1.num.int <20 (0x14)> + [5] #196.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xa6, size 1, "y"> + [6] #13.1.2.num.prim <4 (0x4)> + [7] #194.1.2.hash + [8] #195.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0x99, size 3, "win"> +IP: #186:0xf3, type 8, 244[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.hash + [1] #194.1.2.hash + [2] #195.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0x99, size 3, "win"> +IP: #186:0xf5, type 8, 246[5] +GC: ++#190.1.1.mem.code.ro +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.hash + [1] #194.1.2.hash + [2] #195.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0x99, size 3, "win"> +IP: #190:0x0, type 1, 2 (0x2) +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #204.1.1.num.int <2 (0x2)> + [1] #202.1.1.hash + [2] #194.1.2.hash + [3] #195.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0x99, size 3, "win"> +IP: #190:0x1, type 8, 2[5] +GC: --#204.1.1.num.int +GC: ++#195.1.1.mem.ref.ro +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.mem.ref.ro <#186.1.12.mem.ro, ofs 0x99, size 3, "win"> + [1] #202.1.1.hash + [2] #194.1.2.hash + [3] #195.1.2.mem.ref.ro <#186.1.12.mem.ro, ofs 0x99, size 3, "win"> +IP: #190:0x7, type 8, 8[4] +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.1.hash + [1] #195.1.2.mem.ref.ro <#186.1.12.mem.ro, ofs 0x99, size 3, "win"> + [2] #194.1.2.hash + [3] #195.1.2.mem.ref.ro <#186.1.12.mem.ro, ofs 0x99, size 3, "win"> +IP: #190:0xc, type 8, 13[4] +GC: ++#195.1.2.mem.ref.ro +GC: ++#202.1.1.hash +GC: --#202.1.2.hash +GC: --#195.1.3.mem.ref.ro +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.hash + [1] #195.1.2.mem.ref.ro <#186.1.12.mem.ro, ofs 0x99, size 3, "win"> +IP: #190:0x11, type 8, 18[4] +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.mem.ref.ro <#186.1.12.mem.ro, ofs 0x99, size 3, "win"> + [1] #194.1.2.hash +IP: #190:0x16, type 8, 23[4] +GC: ++#202.1.1.hash +GC: --#195.1.2.mem.ref.ro +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash + [1] #194.1.2.hash +IP: #190:0x1b, type 8, 28[4] +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.2.hash + [1] #202.1.2.hash +IP: #190:0x20, type 8, 33[9] +GC: ++#194.1.2.hash +GC: --#194.1.3.hash +GC: --#202.1.2.hash +== backtrace == + [0] #203.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #190:0x2a, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#203.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#190.1.2.mem.code.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0xfb, type 8, 252[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash +IP: #186:0xff, type 10, 256[5] +GC: ++#201.1.1.mem.code.ro +GC: ++#202.1.2.hash +GC: --#202.1.3.hash +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x0, type 1, 10 (0xa) +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.num.int <10 (0xa)> +IP: #201:0x2, type 8, 3[1] +GC: ++#197.1.1.num.int +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <20 (0x14)> + [1] #208.1.1.num.int <10 (0xa)> +IP: #201:0x4, type 8, 5[6] +GC: --#197.1.2.num.int +GC: --#208.1.1.num.int +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0xb, type 8, 12[4] +GC: ++#199.1.1.mem.str.ro +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.2.mem.str.ro <#186.1.12.mem.ro, ofs 0xaf, size 2, "XX"> +IP: #201:0x10, type 8, 17[4] +GC: --#199.1.2.mem.str.ro +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x15, type 9, 22[1] +GC: ++#186.1.12.mem.ro +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.ref.ro <#186.1.13.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x17, type 8, 24[1] +GC: ++#197.1.1.num.int +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.2.num.int <20 (0x14)> + [1] #209.1.1.mem.ref.ro <#186.1.13.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x19, type 1, 20 (0x14) +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.int <20 (0x14)> + [1] #197.1.2.num.int <20 (0x14)> + [2] #209.1.1.mem.ref.ro <#186.1.13.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x1b, type 8, 28[3] +GC: --#210.1.1.num.int +GC: --#197.1.2.num.int +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.1.num.int <40 (0x28)> + [1] #209.1.1.mem.ref.ro <#186.1.13.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x1f, type 8, 32[3] +GC: ++#209.1.1.mem.ref.ro +GC: ++#211.1.1.num.int +GC: --#196.1.1.mem.ref.ro +GC: --#186.1.13.mem.ro +GC: --#197.1.1.num.int +GC: --#211.1.2.num.int +GC: --#209.1.2.mem.ref.ro +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x23, type 9, 36[4] +GC: ++#186.1.12.mem.ro +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #212.1.1.mem.ref.ro <#186.1.13.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x28, type 8, 41[4] +GC: ++#199.1.1.mem.str.ro +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.2.mem.str.ro <#186.1.13.mem.ro, ofs 0xaf, size 2, "XX"> + [1] #212.1.1.mem.ref.ro <#186.1.13.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x2d, type 7, 46[3] +GC: ++#186.1.13.mem.ro +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #213.1.1.mem.str.ro <#186.1.14.mem.ro, ofs 0xe7, size 3, " XX"> + [1] #199.1.2.mem.str.ro <#186.1.14.mem.ro, ofs 0xaf, size 2, "XX"> + [2] #212.1.1.mem.ref.ro <#186.1.14.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x31, type 8, 50[3] +GC: --#213.1.1.mem.str.ro +GC: --#186.1.14.mem.ro +GC: --#199.1.2.mem.str.ro +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.1.mem.str + [1] #212.1.1.mem.ref.ro <#186.1.13.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x35, type 8, 54[3] +GC: ++#212.1.1.mem.ref.ro +GC: ++#214.1.1.mem.str +GC: --#198.1.1.mem.ref.ro +GC: --#186.1.13.mem.ro +GC: --#199.1.1.mem.str.ro +GC: --#186.1.12.mem.ro +GC: --#214.1.2.mem.str +GC: --#212.1.2.mem.ref.ro +== backtrace == + [0] #206.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x39, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#206.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#201.1.2.mem.code.ro +GC: --#207.1.1.hash +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x105, type 8, 262[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash +IP: #186:0x109, type 10, 266[5] +GC: ++#201.1.1.mem.code.ro +GC: ++#202.1.2.hash +GC: --#202.1.3.hash +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x0, type 1, 10 (0xa) +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #217.1.1.num.int <10 (0xa)> +IP: #201:0x2, type 8, 3[1] +GC: ++#211.1.1.num.int +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.2.num.int <40 (0x28)> + [1] #217.1.1.num.int <10 (0xa)> +IP: #201:0x4, type 8, 5[6] +GC: --#211.1.2.num.int +GC: --#217.1.1.num.int +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0xb, type 8, 12[4] +GC: ++#214.1.1.mem.str +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.2.mem.str +IP: #201:0x10, type 8, 17[4] +GC: --#214.1.2.mem.str +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x15, type 9, 22[1] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #218.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x17, type 8, 24[1] +GC: ++#211.1.1.num.int +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #211.1.2.num.int <40 (0x28)> + [1] #218.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x19, type 1, 20 (0x14) +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #219.1.1.num.int <20 (0x14)> + [1] #211.1.2.num.int <40 (0x28)> + [2] #218.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x1b, type 8, 28[3] +GC: --#219.1.1.num.int +GC: --#211.1.2.num.int +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.1.num.int <60 (0x3c)> + [1] #218.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x1f, type 8, 32[3] +GC: ++#218.1.1.mem.ref.ro +GC: ++#220.1.1.num.int +GC: --#209.1.1.mem.ref.ro +GC: --#186.1.12.mem.ro +GC: --#211.1.1.num.int +GC: --#220.1.2.num.int +GC: --#218.1.2.mem.ref.ro +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x23, type 9, 36[4] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #221.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x28, type 8, 41[4] +GC: ++#214.1.1.mem.str +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #214.1.2.mem.str + [1] #221.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x2d, type 7, 46[3] +GC: ++#186.1.12.mem.ro +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #222.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0xe7, size 3, " XX"> + [1] #214.1.2.mem.str + [2] #221.1.1.mem.ref.ro <#186.1.13.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x31, type 8, 50[3] +GC: --#222.1.1.mem.str.ro +GC: --#186.1.13.mem.ro +GC: --#214.1.2.mem.str +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.1.mem.str + [1] #221.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x35, type 8, 54[3] +GC: ++#221.1.1.mem.ref.ro +GC: ++#223.1.1.mem.str +GC: --#212.1.1.mem.ref.ro +GC: --#186.1.12.mem.ro +GC: --#214.1.1.mem.str +GC: --#223.1.2.mem.str +GC: --#221.1.2.mem.ref.ro +== backtrace == + [0] #215.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x39, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#215.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#201.1.2.mem.code.ro +GC: --#216.1.1.hash +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x10f, type 8, 272[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash +IP: #186:0x113, type 10, 276[5] +GC: ++#201.1.1.mem.code.ro +GC: ++#202.1.2.hash +GC: --#202.1.3.hash +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x0, type 1, 10 (0xa) +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #226.1.1.num.int <10 (0xa)> +IP: #201:0x2, type 8, 3[1] +GC: ++#220.1.1.num.int +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.2.num.int <60 (0x3c)> + [1] #226.1.1.num.int <10 (0xa)> +IP: #201:0x4, type 8, 5[6] +GC: --#220.1.2.num.int +GC: --#226.1.1.num.int +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0xb, type 8, 12[4] +GC: ++#223.1.1.mem.str +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.2.mem.str +IP: #201:0x10, type 8, 17[4] +GC: --#223.1.2.mem.str +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x15, type 9, 22[1] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #227.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x17, type 8, 24[1] +GC: ++#220.1.1.num.int +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #220.1.2.num.int <60 (0x3c)> + [1] #227.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x19, type 1, 20 (0x14) +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #228.1.1.num.int <20 (0x14)> + [1] #220.1.2.num.int <60 (0x3c)> + [2] #227.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x1b, type 8, 28[3] +GC: --#228.1.1.num.int +GC: --#220.1.2.num.int +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.1.num.int <80 (0x50)> + [1] #227.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xcf, size 1, "y"> +IP: #201:0x1f, type 8, 32[3] +GC: ++#227.1.1.mem.ref.ro +GC: ++#229.1.1.num.int +GC: --#218.1.1.mem.ref.ro +GC: --#186.1.12.mem.ro +GC: --#220.1.1.num.int +GC: --#229.1.2.num.int +GC: --#227.1.2.mem.ref.ro +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x23, type 9, 36[4] +GC: ++#186.1.11.mem.ro +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #230.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x28, type 8, 41[4] +GC: ++#223.1.1.mem.str +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #223.1.2.mem.str + [1] #230.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x2d, type 7, 46[3] +GC: ++#186.1.12.mem.ro +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #231.1.1.mem.str.ro <#186.1.13.mem.ro, ofs 0xe7, size 3, " XX"> + [1] #223.1.2.mem.str + [2] #230.1.1.mem.ref.ro <#186.1.13.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x31, type 8, 50[3] +GC: --#231.1.1.mem.str.ro +GC: --#186.1.13.mem.ro +GC: --#223.1.2.mem.str +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.1.mem.str + [1] #230.1.1.mem.ref.ro <#186.1.12.mem.ro, ofs 0xdd, size 4, "text"> +IP: #201:0x35, type 8, 54[3] +GC: ++#230.1.1.mem.ref.ro +GC: ++#232.1.1.mem.str +GC: --#221.1.1.mem.ref.ro +GC: --#186.1.12.mem.ro +GC: --#223.1.1.mem.str +GC: --#232.1.2.mem.str +GC: --#230.1.2.mem.ref.ro +== backtrace == + [0] #224.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #201:0x39, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#224.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#201.1.2.mem.code.ro +GC: --#225.1.1.hash +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x119, type 8, 282[3] +GC: ++#202.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #202.1.2.hash +IP: #186:0x11d, type 10, 286[5] +GC: ++#193.1.1.mem.code.ro +GC: ++#202.1.2.hash +GC: --#202.1.3.hash +== backtrace == + [0] #233.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #193:0x0, type 1, 10 (0xa) +== backtrace == + [0] #233.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #235.1.1.num.int <10 (0xa)> +IP: #193:0x2, type 8, 3[1] +GC: ++#229.1.1.num.int +== backtrace == + [0] #233.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #229.1.2.num.int <80 (0x50)> + [1] #235.1.1.num.int <10 (0xa)> +IP: #193:0x4, type 8, 5[6] +GC: --#229.1.2.num.int +GC: --#235.1.1.num.int +== backtrace == + [0] #233.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #193:0xb, type 8, 12[4] +GC: ++#232.1.1.mem.str +== backtrace == + [0] #233.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #232.1.2.mem.str +IP: #193:0x10, type 8, 17[4] +GC: --#232.1.2.mem.str +== backtrace == + [0] #233.1.1.ctx.func + [1] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #193:0x15, type 3, 1 (0x1) +GC: ++#188.1.1.ctx.func +GC: --#233.1.1.ctx.func +GC: --#188.1.2.ctx.func +GC: --#193.1.2.mem.code.ro +GC: --#234.1.1.hash +GC: --#202.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == diff --git a/tests/0068_utf8/basic.log.ref b/tests/0068_utf8/basic.log.ref new file mode 100644 index 0000000..b124e74 --- /dev/null +++ b/tests/0068_utf8/basic.log.ref @@ -0,0 +1,87 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "s"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "ab   cd öä € "> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "s"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "a"> +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.4.mem.ro, "ab   cd öä € "> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "a"> +GC: --#xxxx.1.2.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "a"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.array +GC: --#xxxx.1.2.array +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "e"> +GC: ++#xxxx.1.1.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.array + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "e"> +GC: --#xxxx.1.2.array +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "e"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.mem.str +GC: --#xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str +GC: ++#xxxx.1.1.mem.str.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.mem.str.ro <#xxxx.1.5.mem.ro, "ab   cd öä € "> + [1] #xxxx.1.2.mem.str +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.mem.str +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.bool <1 (0x1)> diff --git a/tests/0068_utf8/code.log.ref b/tests/0068_utf8/code.log.ref new file mode 100644 index 0000000..7b515ff --- /dev/null +++ b/tests/0068_utf8/code.log.ref @@ -0,0 +1,25 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 15 entries (15 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 19 73 /s + 2 0x0000a str c7 13 61 62 20 a0 20 63 "ab   cd \x00 öä € " + 64 20 00 20 c3 b6 c3 a4 + 20 e2 82 ac 20 + 3 0x0001f word 38 64 65 66 def + 3 4 0x00023 ref 19 61 /a + 5 0x00025 word 18 73 s + 6 0x00027 word a8 75 74 66 38 64 65 63 utf8decode + 6f 64 65 + 7 0x00032 word 38 64 65 66 def + 5 8 0x00036 ref 19 65 /e + 9 0x00038 word 18 61 a + 10 0x0003a word a8 75 74 66 38 65 6e 63 utf8encode + 6f 64 65 + 11 0x00045 word 38 64 65 66 def + 7 12 0x00049 word 18 65 e + 13 0x0004b word 18 73 s + 14 0x0004d word 28 65 71 eq diff --git a/tests/0068_utf8/code1.log.ref b/tests/0068_utf8/code1.log.ref new file mode 100644 index 0000000..b3362f9 --- /dev/null +++ b/tests/0068_utf8/code1.log.ref @@ -0,0 +1,25 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 15 entries (15 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 19 73 /s + 2 0x0000a str c7 13 61 62 20 a0 20 63 "ab   cd \x00 öä € " + 64 20 00 20 c3 b6 c3 a4 + 20 e2 82 ac 20 + 3 0x0001f word 38 64 65 66 def + 3 4 0x00023 ref 19 61 /a + 5 0x00025 word 18 73 s + 6 0x00027 word a8 75 74 66 38 64 65 63 utf8decode + 6f 64 65 + 7 0x00032 xref 84 13 def + 5 8 0x00034 ref 19 65 /e + 9 0x00036 word 18 61 a + 10 0x00038 word a8 75 74 66 38 65 6e 63 utf8encode + 6f 64 65 + 11 0x00043 xref 84 24 def + 7 12 0x00045 word 18 65 e + 13 0x00047 word 18 73 s + 14 0x00049 word 28 65 71 eq diff --git a/tests/0068_utf8/code2.log.ref b/tests/0068_utf8/code2.log.ref new file mode 100644 index 0000000..c4332c3 --- /dev/null +++ b/tests/0068_utf8/code2.log.ref @@ -0,0 +1,23 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 15 entries (15 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 19 73 /s + 2 0x0000a str c7 13 61 62 20 a0 20 63 "ab   cd \x00 öä € " + 64 20 00 20 c3 b6 c3 a4 + 20 e2 82 ac 20 + 3 0x0001f prim 63 def + 3 4 0x00020 ref 19 61 /a + 5 0x00022 word 18 73 s + 6 0x00024 prim 83 57 utf8decode + 7 0x00026 prim 63 def + 5 8 0x00027 ref 19 65 /e + 9 0x00029 word 18 61 a + 10 0x0002b prim 83 58 utf8encode + 11 0x0002d prim 63 def + 7 12 0x0002e word 18 65 e + 13 0x00030 word 18 73 s + 14 0x00032 prim 83 2d eq diff --git a/tests/0068_utf8/main.gs b/tests/0068_utf8/main.gs new file mode 100644 index 0000000..053afa5 --- /dev/null +++ b/tests/0068_utf8/main.gs @@ -0,0 +1,7 @@ +/s "ab \xa0 cd \x00 öä € " def + +/a s utf8decode def + +/e a utf8encode def + +e s eq diff --git a/tests/0068_utf8/mem.log.ref b/tests/0068_utf8/mem.log.ref new file mode 100644 index 0000000..1b15d6f --- /dev/null +++ b/tests/0068_utf8/mem.log.ref @@ -0,0 +1,804 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 80] + 8: 187.01, 0x001d6ac4[ 72] + 9: 188.01, 0x001d6b14[ 56] + 10: 192.01, 0x001d6b54[ 68] + 11: 0.00, 0x001d6ba0[ 92] + 12: 209.01, 0x001d6c04[ 20] + 13: 0.00, 0x001d6c20[14848992] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #191.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x24, size 1, "a"> => #192.1.1.array + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #208.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x37, size 1, "e"> => #209.1.1.mem.str + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 1, "s"> => #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xc, size 19, "ab   cd öä € "> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.5.mem.ro + 75 51 12 a9 42 7a ad 60 19 73 c7 13 61 62 20 a0 uQ..Bz.`.s..ab . + 20 63 64 20 00 20 c3 b6 c3 a4 20 e2 82 ac 20 38 cd . .... ... 8 + 64 65 66 19 61 18 73 a8 75 74 66 38 64 65 63 6f def.a.s.utf8deco + 64 65 38 64 65 66 19 65 18 61 a8 75 74 66 38 65 de8def.e.a.utf8e + 6e 63 6f 64 65 38 64 65 66 18 65 18 73 28 65 71 ncode8def.e.s(eq + #187.1.1.array + [ 0] #210.1.1.num.bool <1 (0x1)> + #188.1.1.ctx.func + type 17, ip 0x50 (0x50) + code #186.1.5.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 1, "s"> + 73 s + #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xc, size 19, "ab   cd öä € "> + 61 62 20 a0 20 63 64 20 00 20 c3 b6 c3 a4 20 e2 ab . cd . .... . + 82 ac 20 .. + #191.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x24, size 1, "a"> + 61 a + #192.1.1.array + [ 0] #193.1.1.num.int <97 (0x61)> + [ 1] #194.1.1.num.int <98 (0x62)> + [ 2] #195.1.1.num.int <32 (0x20)> + [ 3] #196.1.1.num.int <-160 (0xffffffffffffff60)> + [ 4] #197.1.1.num.int <32 (0x20)> + [ 5] #198.1.1.num.int <99 (0x63)> + [ 6] #199.1.1.num.int <100 (0x64)> + [ 7] #200.1.1.num.int <32 (0x20)> + [ 8] #201.1.1.num.int <0 (0x0)> + [ 9] #202.1.1.num.int <32 (0x20)> + [10] #203.1.1.num.int <246 (0xf6)> + [11] #204.1.1.num.int <228 (0xe4)> + [12] #205.1.1.num.int <32 (0x20)> + [13] #206.1.1.num.int <8364 (0x20ac)> + [14] #207.1.1.num.int <32 (0x20)> + #193.1.1.num.int <97 (0x61)> + #194.1.1.num.int <98 (0x62)> + #195.1.1.num.int <32 (0x20)> + #196.1.1.num.int <-160 (0xffffffffffffff60)> + #197.1.1.num.int <32 (0x20)> + #198.1.1.num.int <99 (0x63)> + #199.1.1.num.int <100 (0x64)> + #200.1.1.num.int <32 (0x20)> + #201.1.1.num.int <0 (0x0)> + #202.1.1.num.int <32 (0x20)> + #203.1.1.num.int <246 (0xf6)> + #204.1.1.num.int <228 (0xe4)> + #205.1.1.num.int <32 (0x20)> + #206.1.1.num.int <8364 (0x20ac)> + #207.1.1.num.int <32 (0x20)> + #208.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x37, size 1, "e"> + 65 e + #209.1.1.mem.str + 61 62 20 a0 20 63 64 20 00 20 c3 b6 c3 a4 20 e2 ab . cd . .... . + 82 ac 20 .. + #210.1.1.num.bool <1 (0x1)> diff --git a/tests/0068_utf8/screen.log.ref b/tests/0068_utf8/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0068_utf8/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0068_utf8/trace.log.ref b/tests/0068_utf8/trace.log.ref new file mode 100644 index 0000000..670dfc1 --- /dev/null +++ b/tests/0068_utf8/trace.log.ref @@ -0,0 +1,102 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[1] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 1, "s"> +IP: #186:0xa, type 7, 12[19] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xc, size 19, "ab   cd öä € "> + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 1, "s"> +IP: #186:0x1f, type 8, 32[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#190.1.1.mem.str.ro +GC: --#190.1.2.mem.str.ro +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x23, type 9, 36[1] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x24, size 1, "a"> +IP: #186:0x25, type 8, 38[1] +GC: ++#190.1.1.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.mem.str.ro <#186.1.4.mem.ro, ofs 0xc, size 19, "ab   cd öä € "> + [1] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x24, size 1, "a"> +IP: #186:0x27, type 8, 40[10] +GC: --#190.1.2.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.array + [1] #191.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x24, size 1, "a"> +IP: #186:0x32, type 8, 51[3] +GC: ++#191.1.1.mem.ref.ro +GC: ++#192.1.1.array +GC: --#192.1.2.array +GC: --#191.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x36, type 9, 55[1] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #208.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x37, size 1, "e"> +IP: #186:0x38, type 8, 57[1] +GC: ++#192.1.1.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.array + [1] #208.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x37, size 1, "e"> +IP: #186:0x3a, type 8, 59[10] +GC: --#192.1.2.array +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.1.mem.str + [1] #208.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x37, size 1, "e"> +IP: #186:0x45, type 8, 70[3] +GC: ++#208.1.1.mem.ref.ro +GC: ++#209.1.1.mem.str +GC: --#209.1.2.mem.str +GC: --#208.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x49, type 8, 74[1] +GC: ++#209.1.1.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #209.1.2.mem.str +IP: #186:0x4b, type 8, 76[1] +GC: ++#190.1.1.mem.str.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.2.mem.str.ro <#186.1.5.mem.ro, ofs 0xc, size 19, "ab   cd öä € "> + [1] #209.1.2.mem.str +IP: #186:0x4d, type 8, 78[2] +GC: --#190.1.2.mem.str.ro +GC: --#209.1.2.mem.str +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #210.1.1.num.bool <1 (0x1)> diff --git a/tests/0069_hash_set_with_parent/basic.log.ref b/tests/0069_hash_set_with_parent/basic.log.ref new file mode 100644 index 0000000..5238799 --- /dev/null +++ b/tests/0069_hash_set_with_parent/basic.log.ref @@ -0,0 +1,163 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "bar"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "bar"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "x"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "bar"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "x"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "bar"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "bar"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "x"> + [1] #xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <30 (0x1e)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "x"> + [2] #xxxx.1.2.hash +GC: ++#xxxx.1.1.mem.str.ro +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.2.num.int +GC: --#xxxx.1.2.mem.str.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "x"> + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.7.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <30 (0x1e)> +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.2.num.int <30 (0x1e)> +GC: ++#xxxx.1.6.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.7.mem.ro, "x"> + [1] #xxxx.1.3.hash + [2] #xxxx.1.2.num.int <30 (0x1e)> +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.7.mem.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <20 (0x14)> + [1] #xxxx.1.2.num.int <30 (0x1e)> diff --git a/tests/0069_hash_set_with_parent/code.log.ref b/tests/0069_hash_set_with_parent/code.log.ref new file mode 100644 index 0000000..9c8442b --- /dev/null +++ b/tests/0069_hash_set_with_parent/code.log.ref @@ -0,0 +1,33 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 26 entries (26 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 17 61 "a" + 4 0x00010 int 81 0a 10 + 5 0x00012 word 18 29 ) + 6 0x00014 word 38 64 65 66 def + 2 7 0x00018 ref 39 62 61 72 /bar + 8 0x0001c word 18 28 ( + 9 0x0001e str 17 78 "x" + 10 0x00020 int 81 14 20 + 11 0x00022 word 18 29 ) + 12 0x00024 word 38 64 65 66 def + 4 13 0x00028 word 38 66 6f 6f foo + 14 0x0002c word 38 62 61 72 bar + 15 0x00030 word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 6 16 0x0003a word 38 66 6f 6f foo + 17 0x0003e str 17 78 "x" + 18 0x00040 int 81 1e 30 + 19 0x00042 word 38 70 75 74 put + 9 20 0x00046 word 38 66 6f 6f foo + 21 0x0004a str 17 78 "x" + 22 0x0004c word 38 67 65 74 get + 10 23 0x00050 word 38 62 61 72 bar + 24 0x00054 str 17 78 "x" + 25 0x00056 word 38 67 65 74 get diff --git a/tests/0069_hash_set_with_parent/code1.log.ref b/tests/0069_hash_set_with_parent/code1.log.ref new file mode 100644 index 0000000..bedd77f --- /dev/null +++ b/tests/0069_hash_set_with_parent/code1.log.ref @@ -0,0 +1,33 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 26 entries (26 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 17 61 "a" + 4 0x00010 int 81 0a 10 + 5 0x00012 word 18 29 ) + 6 0x00014 word 38 64 65 66 def + 2 7 0x00018 ref 39 62 61 72 /bar + 8 0x0001c word 18 28 ( + 9 0x0001e str 17 78 "x" + 10 0x00020 int 81 14 20 + 11 0x00022 word 18 29 ) + 12 0x00024 xref 84 10 def + 4 13 0x00026 word 38 66 6f 6f foo + 14 0x0002a word 38 62 61 72 bar + 15 0x0002e word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 6 16 0x00038 xref 84 12 foo + 17 0x0003a str 17 78 "x" + 18 0x0003c int 81 1e 30 + 19 0x0003e word 38 70 75 74 put + 9 20 0x00042 xref 84 1c foo + 21 0x00044 str 17 78 "x" + 22 0x00046 word 38 67 65 74 get + 10 23 0x0004a xref 84 20 bar + 24 0x0004c str 17 78 "x" + 25 0x0004e xref 84 08 get diff --git a/tests/0069_hash_set_with_parent/code2.log.ref b/tests/0069_hash_set_with_parent/code2.log.ref new file mode 100644 index 0000000..6e04b1f --- /dev/null +++ b/tests/0069_hash_set_with_parent/code2.log.ref @@ -0,0 +1,32 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 26 entries (26 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c prim 43 ( + 3 0x0000d str 17 61 "a" + 4 0x0000f int 81 0a 10 + 5 0x00011 prim 53 ) + 6 0x00012 prim 63 def + 2 7 0x00013 ref 39 62 61 72 /bar + 8 0x00017 prim 43 ( + 9 0x00018 str 17 78 "x" + 10 0x0001a int 81 14 20 + 11 0x0001c prim 53 ) + 12 0x0001d prim 63 def + 4 13 0x0001e word 38 66 6f 6f foo + 14 0x00022 word 38 62 61 72 bar + 15 0x00026 prim 83 35 setparent + 6 16 0x00028 xref 84 0a foo + 17 0x0002a str 17 78 "x" + 18 0x0002c int 81 1e 30 + 19 0x0002e prim 83 13 put + 9 20 0x00030 xref 84 12 foo + 21 0x00032 str 17 78 "x" + 22 0x00034 prim 83 12 get + 10 23 0x00036 xref 84 14 bar + 24 0x00038 str 17 78 "x" + 25 0x0003a prim 83 12 get diff --git a/tests/0069_hash_set_with_parent/main.gs b/tests/0069_hash_set_with_parent/main.gs new file mode 100644 index 0000000..e025792 --- /dev/null +++ b/tests/0069_hash_set_with_parent/main.gs @@ -0,0 +1,10 @@ +/foo ( "a" 10 ) def +/bar ( "x" 20 ) def + +foo bar setparent + +foo "x" 30 put + +# the same or different? +foo "x" get +bar "x" get diff --git a/tests/0069_hash_set_with_parent/mem.log.ref b/tests/0069_hash_set_with_parent/mem.log.ref new file mode 100644 index 0000000..6e9bbc9 --- /dev/null +++ b/tests/0069_hash_set_with_parent/mem.log.ref @@ -0,0 +1,781 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 92] + 8: 187.01, 0x001d6ad0[ 72] + 9: 188.01, 0x001d6b20[ 56] + 10: 0.00, 0x001d6b60[ 20] + 11: 196.01, 0x001d6b7c[ 20] + 12: 192.01, 0x001d6b98[ 148] + 13: 200.01, 0x001d6c34[ 72] + 14: 0.00, 0x001d6c84[14848892] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x19, size 3, "bar"> => #196.1.2.hash + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "foo"> => #192.1.1.hash + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.6.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 18 28 17 61 uQ..Bz.`9foo.(.a + 81 0a 18 29 38 64 65 66 39 62 61 72 18 28 17 78 ...)8def9bar.(.x + 81 14 18 29 38 64 65 66 38 66 6f 6f 38 62 61 72 ...)8def8foo8bar + 98 73 65 74 70 61 72 65 6e 74 38 66 6f 6f 17 78 .setparent8foo.x + 81 1e 38 70 75 74 38 66 6f 6f 17 78 38 67 65 74 ..8put8foo.x8get + 38 62 61 72 17 78 38 67 65 74 8bar.x8get + #187.1.1.array + [ 0] #198.1.2.num.int <30 (0x1e)> + [ 1] #195.1.2.num.int <20 (0x14)> + #188.1.1.ctx.func + type 17, ip 0x5a (0x5a) + code #186.1.6.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 1, "a"> + 61 a + #191.1.1.num.int <10 (0xa)> + #192.1.1.hash + #190.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0xf, size 1, "a"> => #191.1.1.num.int <10 (0xa)> + #197.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x3f, size 1, "x"> => #198.1.2.num.int <30 (0x1e)> + #193.1.1.mem.ref.ro <#186.1.6.mem.ro, ofs 0x19, size 3, "bar"> + 62 61 72 bar + #194.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x1f, size 1, "x"> + 78 x + #195.1.2.num.int <20 (0x14)> + #196.1.2.hash + #194.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x1f, size 1, "x"> => #195.1.2.num.int <20 (0x14)> + #197.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x3f, size 1, "x"> + 78 x + #198.1.2.num.int <30 (0x1e)> + #200.1.1.array diff --git a/tests/0069_hash_set_with_parent/screen.log.ref b/tests/0069_hash_set_with_parent/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0069_hash_set_with_parent/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0069_hash_set_with_parent/trace.log.ref b/tests/0069_hash_set_with_parent/trace.log.ref new file mode 100644 index 0000000..de1b508 --- /dev/null +++ b/tests/0069_hash_set_with_parent/trace.log.ref @@ -0,0 +1,189 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 8, 13[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 7, 15[1] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 1, "a"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x10, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <10 (0xa)> + [1] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 1, "a"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x12, type 8, 19[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.hash + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x14, type 8, 21[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#192.1.1.hash +GC: --#192.1.2.hash +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x18, type 9, 25[3] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x19, size 3, "bar"> +IP: #186:0x1c, type 8, 29[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #193.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x19, size 3, "bar"> +IP: #186:0x1e, type 7, 31[1] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x1f, size 1, "x"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x19, size 3, "bar"> +IP: #186:0x20, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <20 (0x14)> + [1] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x1f, size 1, "x"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x19, size 3, "bar"> +IP: #186:0x22, type 8, 35[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.hash + [1] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x19, size 3, "bar"> +IP: #186:0x24, type 8, 37[3] +GC: ++#193.1.1.mem.ref.ro +GC: ++#196.1.1.hash +GC: --#196.1.2.hash +GC: --#193.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x28, type 8, 41[3] +GC: ++#192.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.hash +IP: #186:0x2c, type 8, 45[3] +GC: ++#196.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.2.hash + [1] #192.1.2.hash +IP: #186:0x30, type 8, 49[9] +GC: ++#196.1.2.hash +GC: --#196.1.3.hash +GC: --#192.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x3a, type 8, 59[3] +GC: ++#192.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.hash +IP: #186:0x3e, type 7, 63[1] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x3f, size 1, "x"> + [1] #192.1.2.hash +IP: #186:0x40, type 1, 30 (0x1e) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.1.num.int <30 (0x1e)> + [1] #197.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x3f, size 1, "x"> + [2] #192.1.2.hash +IP: #186:0x42, type 8, 67[3] +GC: ++#197.1.1.mem.str.ro +GC: ++#198.1.1.num.int +GC: --#198.1.2.num.int +GC: --#197.1.2.mem.str.ro +GC: --#192.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x46, type 8, 71[3] +GC: ++#192.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.hash +IP: #186:0x4a, type 7, 75[1] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x4b, size 1, "x"> + [1] #192.1.2.hash +IP: #186:0x4c, type 8, 77[3] +GC: ++#198.1.1.num.int +GC: --#199.1.1.mem.str.ro +GC: --#186.1.7.mem.ro +GC: --#192.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #198.1.2.num.int <30 (0x1e)> +IP: #186:0x50, type 8, 81[3] +GC: ++#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.3.hash + [1] #198.1.2.num.int <30 (0x1e)> +IP: #186:0x54, type 7, 85[1] +GC: ++#186.1.6.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #201.1.1.mem.str.ro <#186.1.7.mem.ro, ofs 0x55, size 1, "x"> + [1] #196.1.3.hash + [2] #198.1.2.num.int <30 (0x1e)> +IP: #186:0x56, type 8, 87[3] +GC: ++#195.1.1.num.int +GC: --#201.1.1.mem.str.ro +GC: --#186.1.7.mem.ro +GC: --#196.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <20 (0x14)> + [1] #198.1.2.num.int <30 (0x1e)> diff --git a/tests/0070_hash_del_with_parent/basic.log.ref b/tests/0070_hash_del_with_parent/basic.log.ref new file mode 100644 index 0000000..883b988 --- /dev/null +++ b/tests/0070_hash_del_with_parent/basic.log.ref @@ -0,0 +1,155 @@ +# --- trace --- +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.2.mem.ro, "foo"> +GC: ++#xxxx.1.2.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <10 (0xa)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.3.mem.ro, "a"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.3.mem.ro, "foo"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.3.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "bar"> +GC: ++#xxxx.1.1.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.prim <4 (0x4)> + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.4.mem.ro, "bar"> +GC: ++#xxxx.1.4.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "x"> + [1] #xxxx.1.2.num.prim <4 (0x4)> + [2] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "bar"> +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.num.int <20 (0x14)> + [1] #xxxx.1.1.mem.str.ro <#xxxx.1.5.mem.ro, "x"> + [2] #xxxx.1.2.num.prim <4 (0x4)> + [3] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "bar"> +GC: --#xxxx.1.2.num.prim +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.hash + [1] #xxxx.1.1.mem.ref.ro <#xxxx.1.5.mem.ro, "bar"> +GC: ++#xxxx.1.1.mem.ref.ro +GC: ++#xxxx.1.1.hash +GC: --#xxxx.1.2.hash +GC: --#xxxx.1.2.mem.ref.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.2.hash +GC: --#xxxx.1.3.hash +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "x"> + [1] #xxxx.1.2.hash +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == +GC: ++#xxxx.1.1.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.hash +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "x"> + [1] #xxxx.1.2.hash +GC: ++#xxxx.1.1.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.2.num.int <20 (0x14)> +GC: ++#xxxx.1.2.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.hash + [1] #xxxx.1.2.num.int <20 (0x14)> +GC: ++#xxxx.1.5.mem.ro +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.1.mem.str.ro <#xxxx.1.6.mem.ro, "x"> + [1] #xxxx.1.3.hash + [2] #xxxx.1.2.num.int <20 (0x14)> +GC: ++#xxxx.1.2.num.int +GC: --#xxxx.1.1.mem.str.ro +GC: --#xxxx.1.6.mem.ro +GC: --#xxxx.1.3.hash +== backtrace == + [0] #xxxx.1.1.ctx.func +== stack (#xxxx.1.1.array) == + [0] #xxxx.1.3.num.int <20 (0x14)> + [1] #xxxx.1.3.num.int <20 (0x14)> diff --git a/tests/0070_hash_del_with_parent/code.log.ref b/tests/0070_hash_del_with_parent/code.log.ref new file mode 100644 index 0000000..8f634f5 --- /dev/null +++ b/tests/0070_hash_del_with_parent/code.log.ref @@ -0,0 +1,32 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 25 entries (25 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 17 61 "a" + 4 0x00010 int 81 0a 10 + 5 0x00012 word 18 29 ) + 6 0x00014 word 38 64 65 66 def + 2 7 0x00018 ref 39 62 61 72 /bar + 8 0x0001c word 18 28 ( + 9 0x0001e str 17 78 "x" + 10 0x00020 int 81 14 20 + 11 0x00022 word 18 29 ) + 12 0x00024 word 38 64 65 66 def + 4 13 0x00028 word 38 66 6f 6f foo + 14 0x0002c word 38 62 61 72 bar + 15 0x00030 word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 6 16 0x0003a word 38 66 6f 6f foo + 17 0x0003e str 17 78 "x" + 18 0x00040 word 68 64 65 6c 65 74 65 delete + 9 19 0x00047 word 38 66 6f 6f foo + 20 0x0004b str 17 78 "x" + 21 0x0004d word 38 67 65 74 get + 10 22 0x00051 word 38 62 61 72 bar + 23 0x00055 str 17 78 "x" + 24 0x00057 word 38 67 65 74 get diff --git a/tests/0070_hash_del_with_parent/code1.log.ref b/tests/0070_hash_del_with_parent/code1.log.ref new file mode 100644 index 0000000..2317c33 --- /dev/null +++ b/tests/0070_hash_del_with_parent/code1.log.ref @@ -0,0 +1,32 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 25 entries (25 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c word 18 28 ( + 3 0x0000e str 17 61 "a" + 4 0x00010 int 81 0a 10 + 5 0x00012 word 18 29 ) + 6 0x00014 word 38 64 65 66 def + 2 7 0x00018 ref 39 62 61 72 /bar + 8 0x0001c word 18 28 ( + 9 0x0001e str 17 78 "x" + 10 0x00020 int 81 14 20 + 11 0x00022 word 18 29 ) + 12 0x00024 xref 84 10 def + 4 13 0x00026 word 38 66 6f 6f foo + 14 0x0002a word 38 62 61 72 bar + 15 0x0002e word 98 73 65 74 70 61 72 65 setparent + 6e 74 + 6 16 0x00038 xref 84 12 foo + 17 0x0003a str 17 78 "x" + 18 0x0003c word 68 64 65 6c 65 74 65 delete + 9 19 0x00043 xref 84 1d foo + 20 0x00045 str 17 78 "x" + 21 0x00047 word 38 67 65 74 get + 10 22 0x0004b xref 84 21 bar + 23 0x0004d str 17 78 "x" + 24 0x0004f xref 84 08 get diff --git a/tests/0070_hash_del_with_parent/code2.log.ref b/tests/0070_hash_del_with_parent/code2.log.ref new file mode 100644 index 0000000..27daa40 --- /dev/null +++ b/tests/0070_hash_del_with_parent/code2.log.ref @@ -0,0 +1,31 @@ + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# code: 25 entries (25 - 0) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# line i index offset type hex word +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 0x00000 comm 75 51 12 a9 42 7a ad 60 # gfxboot magic + 1 1 0x00008 ref 39 66 6f 6f /foo + 2 0x0000c prim 43 ( + 3 0x0000d str 17 61 "a" + 4 0x0000f int 81 0a 10 + 5 0x00011 prim 53 ) + 6 0x00012 prim 63 def + 2 7 0x00013 ref 39 62 61 72 /bar + 8 0x00017 prim 43 ( + 9 0x00018 str 17 78 "x" + 10 0x0001a int 81 14 20 + 11 0x0001c prim 53 ) + 12 0x0001d prim 63 def + 4 13 0x0001e word 38 66 6f 6f foo + 14 0x00022 word 38 62 61 72 bar + 15 0x00026 prim 83 35 setparent + 6 16 0x00028 xref 84 0a foo + 17 0x0002a str 17 78 "x" + 18 0x0002c prim 83 14 delete + 9 19 0x0002e xref 84 10 foo + 20 0x00030 str 17 78 "x" + 21 0x00032 prim 83 12 get + 10 22 0x00034 xref 84 12 bar + 23 0x00036 str 17 78 "x" + 24 0x00038 prim 83 12 get diff --git a/tests/0070_hash_del_with_parent/main.gs b/tests/0070_hash_del_with_parent/main.gs new file mode 100644 index 0000000..87ee214 --- /dev/null +++ b/tests/0070_hash_del_with_parent/main.gs @@ -0,0 +1,10 @@ +/foo ( "a" 10 ) def +/bar ( "x" 20 ) def + +foo bar setparent + +foo "x" delete + +# 20 or nil? +foo "x" get +bar "x" get diff --git a/tests/0070_hash_del_with_parent/mem.log.ref b/tests/0070_hash_del_with_parent/mem.log.ref new file mode 100644 index 0000000..89e72de --- /dev/null +++ b/tests/0070_hash_del_with_parent/mem.log.ref @@ -0,0 +1,776 @@ +# --- mem --- +=== memory dump === + 0: 2.01, 0x00000008[ 56] + 1: 1.01, 0x00000048[ 1920016] + 2: 0.01, 0x001d4c60[ 6200] + 3: 3.01, 0x001d64a0[ 48] + 4: 4.01, 0x001d64d8[ 820] + 5: 184.01, 0x001d6814[ 56] + 6: 185.01, 0x001d6854[ 528] + 7: 186.01, 0x001d6a6c[ 92] + 8: 187.01, 0x001d6ad0[ 72] + 9: 188.01, 0x001d6b20[ 56] + 10: 192.01, 0x001d6b60[ 20] + 11: 196.01, 0x001d6b7c[ 20] + 12: 198.01, 0x001d6b98[ 72] + 13: 0.00, 0x001d6be8[14849048] +== object dump (id #0.1.*.olist) == + #0.1.*.olist + #0.1.*.olist + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #2.1.1.gstate + pos 0x0 + color #00ffffff, bg_color #ff000000 + canvas #1.1.3.canv (800x600) + font #0.0.nil + #3.1.1.gstate + pos 0x384, char size 8x16 + color #00ffffff, bg_color #00241632 + canvas #1.1.3.canv (800x600) + font #184.1.1.font + #4.1.2.hash + #14.1.1.mem.ref.ro => #13.1.1.num.prim <4 (0x4)> + #16.1.1.mem.ref.ro => #15.1.1.num.prim <5 (0x5)> + #10.1.1.mem.ref.ro => #9.1.1.num.prim <2 (0x2)> + #12.1.1.mem.ref.ro => #11.1.1.num.prim <3 (0x3)> + #78.1.1.mem.ref.ro => #77.1.1.num.prim <36 (0x24)> + #66.1.1.mem.ref.ro => #65.1.1.num.prim <30 (0x1e)> + #84.1.1.mem.ref.ro => #83.1.1.num.prim <39 (0x27)> + #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x19, size 3, "bar"> => #196.1.2.hash + #168.1.1.mem.ref.ro => #167.1.1.num.prim <81 (0x51)> + #142.1.1.mem.ref.ro => #141.1.1.num.prim <68 (0x44)> + #108.1.1.mem.ref.ro => #107.1.1.num.prim <51 (0x33)> + #170.1.1.mem.ref.ro => #169.1.1.num.prim <82 (0x52)> + #18.1.1.mem.ref.ro => #17.1.1.num.prim <6 (0x6)> + #46.1.1.mem.ref.ro => #45.1.1.num.prim <20 (0x14)> + #160.1.1.mem.ref.ro => #159.1.1.num.prim <77 (0x4d)> + #72.1.1.mem.ref.ro => #71.1.1.num.prim <33 (0x21)> + #50.1.1.mem.ref.ro => #49.1.1.num.prim <22 (0x16)> + #96.1.1.mem.ref.ro => #95.1.1.num.prim <45 (0x2d)> + #54.1.1.mem.ref.ro => #53.1.1.num.prim <24 (0x18)> + #64.1.1.mem.ref.ro => #63.1.1.num.prim <29 (0x1d)> + #36.1.1.mem.ref.ro => #35.1.1.num.prim <15 (0xf)> + #178.1.1.mem.ref.ro => #177.1.1.num.prim <86 (0x56)> + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> => #192.1.1.hash + #32.1.1.mem.ref.ro => #31.1.1.num.prim <13 (0xd)> + #34.1.1.mem.ref.ro => #33.1.1.num.prim <14 (0xe)> + #118.1.1.mem.ref.ro => #117.1.1.num.prim <56 (0x38)> + #22.1.1.mem.ref.ro => #21.1.1.num.prim <8 (0x8)> + #102.1.1.mem.ref.ro => #101.1.1.num.prim <48 (0x30)> + #42.1.1.mem.ref.ro => #41.1.1.num.prim <18 (0x12)> + #124.1.1.mem.ref.ro => #123.1.1.num.prim <59 (0x3b)> + #144.1.1.mem.ref.ro => #143.1.1.num.prim <69 (0x45)> + #120.1.1.mem.ref.ro => #119.1.1.num.prim <57 (0x39)> + #154.1.1.mem.ref.ro => #153.1.1.num.prim <74 (0x4a)> + #114.1.1.mem.ref.ro => #113.1.1.num.prim <54 (0x36)> + #132.1.1.mem.ref.ro => #131.1.1.num.prim <63 (0x3f)> + #148.1.1.mem.ref.ro => #147.1.1.num.prim <71 (0x47)> + #110.1.1.mem.ref.ro => #109.1.1.num.prim <52 (0x34)> + #172.1.1.mem.ref.ro => #171.1.1.num.prim <83 (0x53)> + #128.1.1.mem.ref.ro => #127.1.1.num.prim <61 (0x3d)> + #138.1.1.mem.ref.ro => #137.1.1.num.prim <66 (0x42)> + #152.1.1.mem.ref.ro => #151.1.1.num.prim <73 (0x49)> + #100.1.1.mem.ref.ro => #99.1.1.num.prim <47 (0x2f)> + #24.1.1.mem.ref.ro => #23.1.1.num.prim <9 (0x9)> + #26.1.1.mem.ref.ro => #25.1.1.num.prim <10 (0xa)> + #62.1.1.mem.ref.ro => #61.1.1.num.prim <28 (0x1c)> + #20.1.1.mem.ref.ro => #19.1.1.num.prim <7 (0x7)> + #106.1.1.mem.ref.ro => #105.1.1.num.prim <50 (0x32)> + #48.1.1.mem.ref.ro => #47.1.1.num.prim <21 (0x15)> + #176.1.1.mem.ref.ro => #175.1.1.num.prim <85 (0x55)> + #28.1.1.mem.ref.ro => #27.1.1.num.prim <11 (0xb)> + #104.1.1.mem.ref.ro => #103.1.1.num.prim <49 (0x31)> + #82.1.1.mem.ref.ro => #81.1.1.num.prim <38 (0x26)> + #80.1.1.mem.ref.ro => #79.1.1.num.prim <37 (0x25)> + #74.1.1.mem.ref.ro => #73.1.1.num.prim <34 (0x22)> + #70.1.1.mem.ref.ro => #69.1.1.num.prim <32 (0x20)> + #98.1.1.mem.ref.ro => #97.1.1.num.prim <46 (0x2e)> + #76.1.1.mem.ref.ro => #75.1.1.num.prim <35 (0x23)> + #136.1.1.mem.ref.ro => #135.1.1.num.prim <65 (0x41)> + #90.1.1.mem.ref.ro => #89.1.1.num.prim <42 (0x2a)> + #86.1.1.mem.ref.ro => #85.1.1.num.prim <40 (0x28)> + #60.1.1.mem.ref.ro => #59.1.1.num.prim <27 (0x1b)> + #52.1.1.mem.ref.ro => #51.1.1.num.prim <23 (0x17)> + #44.1.1.mem.ref.ro => #43.1.1.num.prim <19 (0x13)> + #174.1.1.mem.ref.ro => #173.1.1.num.prim <84 (0x54)> + #164.1.1.mem.ref.ro => #163.1.1.num.prim <79 (0x4f)> + #30.1.1.mem.ref.ro => #29.1.1.num.prim <12 (0xc)> + #38.1.1.mem.ref.ro => #37.1.1.num.prim <16 (0x10)> + #58.1.1.mem.ref.ro => #57.1.1.num.prim <26 (0x1a)> + #56.1.1.mem.ref.ro => #55.1.1.num.prim <25 (0x19)> + #162.1.1.mem.ref.ro => #161.1.1.num.prim <78 (0x4e)> + #126.1.1.mem.ref.ro => #125.1.1.num.prim <60 (0x3c)> + #146.1.1.mem.ref.ro => #145.1.1.num.prim <70 (0x46)> + #122.1.1.mem.ref.ro => #121.1.1.num.prim <58 (0x3a)> + #156.1.1.mem.ref.ro => #155.1.1.num.prim <75 (0x4b)> + #116.1.1.mem.ref.ro => #115.1.1.num.prim <55 (0x37)> + #134.1.1.mem.ref.ro => #133.1.1.num.prim <64 (0x40)> + #150.1.1.mem.ref.ro => #149.1.1.num.prim <72 (0x48)> + #112.1.1.mem.ref.ro => #111.1.1.num.prim <53 (0x35)> + #130.1.1.mem.ref.ro => #129.1.1.num.prim <62 (0x3e)> + #140.1.1.mem.ref.ro => #139.1.1.num.prim <67 (0x43)> + #92.1.1.mem.ref.ro => #91.1.1.num.prim <43 (0x2b)> + #158.1.1.mem.ref.ro => #157.1.1.num.prim <76 (0x4c)> + #94.1.1.mem.ref.ro => #93.1.1.num.prim <44 (0x2c)> + #40.1.1.mem.ref.ro => #39.1.1.num.prim <17 (0x11)> + #68.1.1.mem.ref.ro => #67.1.1.num.prim <31 (0x1f)> + #166.1.1.mem.ref.ro => #165.1.1.num.prim <80 (0x50)> + #180.1.1.mem.ref.ro => #179.1.1.num.prim <87 (0x57)> + #182.1.1.mem.ref.ro => #181.1.1.num.prim <88 (0x58)> + #88.1.1.mem.ref.ro => #87.1.1.num.prim <41 (0x29)> + #6.1.1.mem.ref.ro => #5.1.1.num.prim <0 (0x0)> + #8.1.1.mem.ref.ro => #7.1.1.num.prim <1 (0x1)> + #5.1.1.num.prim <0 (0x0)> + #6.1.1.mem.ref.ro + 7b { + #7.1.1.num.prim <1 (0x1)> + #8.1.1.mem.ref.ro + 7d } + #9.1.1.num.prim <2 (0x2)> + #10.1.1.mem.ref.ro + 5b [ + #11.1.1.num.prim <3 (0x3)> + #12.1.1.mem.ref.ro + 5d ] + #13.1.1.num.prim <4 (0x4)> + #14.1.1.mem.ref.ro + 28 ( + #15.1.1.num.prim <5 (0x5)> + #16.1.1.mem.ref.ro + 29 ) + #17.1.1.num.prim <6 (0x6)> + #18.1.1.mem.ref.ro + 64 65 66 def + #19.1.1.num.prim <7 (0x7)> + #20.1.1.mem.ref.ro + 6c 64 65 66 ldef + #21.1.1.num.prim <8 (0x8)> + #22.1.1.mem.ref.ro + 67 64 65 66 gdef + #23.1.1.num.prim <9 (0x9)> + #24.1.1.mem.ref.ro + 69 66 if + #25.1.1.num.prim <10 (0xa)> + #26.1.1.mem.ref.ro + 69 66 65 6c 73 65 ifelse + #27.1.1.num.prim <11 (0xb)> + #28.1.1.mem.ref.ro + 6c 6f 6f 70 loop + #29.1.1.num.prim <12 (0xc)> + #30.1.1.mem.ref.ro + 72 65 70 65 61 74 repeat + #31.1.1.num.prim <13 (0xd)> + #32.1.1.mem.ref.ro + 66 6f 72 for + #33.1.1.num.prim <14 (0xe)> + #34.1.1.mem.ref.ro + 66 6f 72 61 6c 6c forall + #35.1.1.num.prim <15 (0xf)> + #36.1.1.mem.ref.ro + 65 78 69 74 exit + #37.1.1.num.prim <16 (0x10)> + #38.1.1.mem.ref.ro + 72 65 74 75 72 6e return + #39.1.1.num.prim <17 (0x11)> + #40.1.1.mem.ref.ro + 73 74 72 69 6e 67 string + #41.1.1.num.prim <18 (0x12)> + #42.1.1.mem.ref.ro + 67 65 74 get + #43.1.1.num.prim <19 (0x13)> + #44.1.1.mem.ref.ro + 70 75 74 put + #45.1.1.num.prim <20 (0x14)> + #46.1.1.mem.ref.ro + 64 65 6c 65 74 65 delete + #47.1.1.num.prim <21 (0x15)> + #48.1.1.mem.ref.ro + 6c 65 6e 67 74 68 length + #49.1.1.num.prim <22 (0x16)> + #50.1.1.mem.ref.ro + 64 75 70 dup + #51.1.1.num.prim <23 (0x17)> + #52.1.1.mem.ref.ro + 70 6f 70 pop + #53.1.1.num.prim <24 (0x18)> + #54.1.1.mem.ref.ro + 65 78 63 68 exch + #55.1.1.num.prim <25 (0x19)> + #56.1.1.mem.ref.ro + 72 6f 74 rot + #57.1.1.num.prim <26 (0x1a)> + #58.1.1.mem.ref.ro + 72 6f 6c 6c roll + #59.1.1.num.prim <27 (0x1b)> + #60.1.1.mem.ref.ro + 6f 76 65 72 over + #61.1.1.num.prim <28 (0x1c)> + #62.1.1.mem.ref.ro + 69 6e 64 65 78 index + #63.1.1.num.prim <29 (0x1d)> + #64.1.1.mem.ref.ro + 65 78 65 63 exec + #65.1.1.num.prim <30 (0x1e)> + #66.1.1.mem.ref.ro + 61 64 64 add + #67.1.1.num.prim <31 (0x1f)> + #68.1.1.mem.ref.ro + 73 75 62 sub + #69.1.1.num.prim <32 (0x20)> + #70.1.1.mem.ref.ro + 6d 75 6c mul + #71.1.1.num.prim <33 (0x21)> + #72.1.1.mem.ref.ro + 64 69 76 div + #73.1.1.num.prim <34 (0x22)> + #74.1.1.mem.ref.ro + 6d 6f 64 mod + #75.1.1.num.prim <35 (0x23)> + #76.1.1.mem.ref.ro + 6e 65 67 neg + #77.1.1.num.prim <36 (0x24)> + #78.1.1.mem.ref.ro + 61 62 73 abs + #79.1.1.num.prim <37 (0x25)> + #80.1.1.mem.ref.ro + 6d 69 6e min + #81.1.1.num.prim <38 (0x26)> + #82.1.1.mem.ref.ro + 6d 61 78 max + #83.1.1.num.prim <39 (0x27)> + #84.1.1.mem.ref.ro + 61 6e 64 and + #85.1.1.num.prim <40 (0x28)> + #86.1.1.mem.ref.ro + 6f 72 or + #87.1.1.num.prim <41 (0x29)> + #88.1.1.mem.ref.ro + 78 6f 72 xor + #89.1.1.num.prim <42 (0x2a)> + #90.1.1.mem.ref.ro + 6e 6f 74 not + #91.1.1.num.prim <43 (0x2b)> + #92.1.1.mem.ref.ro + 73 68 6c shl + #93.1.1.num.prim <44 (0x2c)> + #94.1.1.mem.ref.ro + 73 68 72 shr + #95.1.1.num.prim <45 (0x2d)> + #96.1.1.mem.ref.ro + 65 71 eq + #97.1.1.num.prim <46 (0x2e)> + #98.1.1.mem.ref.ro + 6e 65 ne + #99.1.1.num.prim <47 (0x2f)> + #100.1.1.mem.ref.ro + 67 74 gt + #101.1.1.num.prim <48 (0x30)> + #102.1.1.mem.ref.ro + 67 65 ge + #103.1.1.num.prim <49 (0x31)> + #104.1.1.mem.ref.ro + 6c 74 lt + #105.1.1.num.prim <50 (0x32)> + #106.1.1.mem.ref.ro + 6c 65 le + #107.1.1.num.prim <51 (0x33)> + #108.1.1.mem.ref.ro + 63 6d 70 cmp + #109.1.1.num.prim <52 (0x34)> + #110.1.1.mem.ref.ro + 67 65 74 70 61 72 65 6e 74 getparent + #111.1.1.num.prim <53 (0x35)> + #112.1.1.mem.ref.ro + 73 65 74 70 61 72 65 6e 74 setparent + #113.1.1.num.prim <54 (0x36)> + #114.1.1.mem.ref.ro + 67 65 74 64 69 63 74 getdict + #115.1.1.num.prim <55 (0x37)> + #116.1.1.mem.ref.ro + 73 65 74 64 69 63 74 setdict + #117.1.1.num.prim <56 (0x38)> + #118.1.1.mem.ref.ro + 66 72 65 65 7a 65 freeze + #119.1.1.num.prim <57 (0x39)> + #120.1.1.mem.ref.ro + 67 65 74 63 6f 6c 6f 72 getcolor + #121.1.1.num.prim <58 (0x3a)> + #122.1.1.mem.ref.ro + 73 65 74 63 6f 6c 6f 72 setcolor + #123.1.1.num.prim <59 (0x3b)> + #124.1.1.mem.ref.ro + 67 65 74 62 67 63 6f 6c 6f 72 getbgcolor + #125.1.1.num.prim <60 (0x3c)> + #126.1.1.mem.ref.ro + 73 65 74 62 67 63 6f 6c 6f 72 setbgcolor + #127.1.1.num.prim <61 (0x3d)> + #128.1.1.mem.ref.ro + 67 65 74 70 6f 73 getpos + #129.1.1.num.prim <62 (0x3e)> + #130.1.1.mem.ref.ro + 73 65 74 70 6f 73 setpos + #131.1.1.num.prim <63 (0x3f)> + #132.1.1.mem.ref.ro + 67 65 74 66 6f 6e 74 getfont + #133.1.1.num.prim <64 (0x40)> + #134.1.1.mem.ref.ro + 73 65 74 66 6f 6e 74 setfont + #135.1.1.num.prim <65 (0x41)> + #136.1.1.mem.ref.ro + 6e 65 77 66 6f 6e 74 newfont + #137.1.1.num.prim <66 (0x42)> + #138.1.1.mem.ref.ro + 67 65 74 72 65 67 69 6f 6e getregion + #139.1.1.num.prim <67 (0x43)> + #140.1.1.mem.ref.ro + 73 65 74 72 65 67 69 6f 6e setregion + #141.1.1.num.prim <68 (0x44)> + #142.1.1.mem.ref.ro + 63 61 6e 76 61 73 canvas + #143.1.1.num.prim <69 (0x45)> + #144.1.1.mem.ref.ro + 67 65 74 63 61 6e 76 61 73 getcanvas + #145.1.1.num.prim <70 (0x46)> + #146.1.1.mem.ref.ro + 73 65 74 63 61 6e 76 61 73 setcanvas + #147.1.1.num.prim <71 (0x47)> + #148.1.1.mem.ref.ro + 67 65 74 67 73 74 61 74 65 getgstate + #149.1.1.num.prim <72 (0x48)> + #150.1.1.mem.ref.ro + 73 65 74 67 73 74 61 74 65 setgstate + #151.1.1.num.prim <73 (0x49)> + #152.1.1.mem.ref.ro + 67 73 74 61 74 65 gstate + #153.1.1.num.prim <74 (0x4a)> + #154.1.1.mem.ref.ro + 67 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 getconsolegstate + #155.1.1.num.prim <75 (0x4b)> + #156.1.1.mem.ref.ro + 73 65 74 63 6f 6e 73 6f 6c 65 67 73 74 61 74 65 setconsolegstate + #157.1.1.num.prim <76 (0x4c)> + #158.1.1.mem.ref.ro + 73 68 6f 77 show + #159.1.1.num.prim <77 (0x4d)> + #160.1.1.mem.ref.ro + 64 69 6d dim + #161.1.1.num.prim <78 (0x4e)> + #162.1.1.mem.ref.ro + 72 75 6e run + #163.1.1.num.prim <79 (0x4f)> + #164.1.1.mem.ref.ro + 72 65 61 64 66 69 6c 65 readfile + #165.1.1.num.prim <80 (0x50)> + #166.1.1.mem.ref.ro + 75 6e 70 61 63 6b 69 6d 61 67 65 unpackimage + #167.1.1.num.prim <81 (0x51)> + #168.1.1.mem.ref.ro + 62 6c 74 blt + #169.1.1.num.prim <82 (0x52)> + #170.1.1.mem.ref.ro + 64 65 62 75 67 debug + #171.1.1.num.prim <83 (0x53)> + #172.1.1.mem.ref.ro + 67 65 74 70 69 78 65 6c getpixel + #173.1.1.num.prim <84 (0x54)> + #174.1.1.mem.ref.ro + 70 75 74 70 69 78 65 6c putpixel + #175.1.1.num.prim <85 (0x55)> + #176.1.1.mem.ref.ro + 6c 69 6e 65 74 6f lineto + #177.1.1.num.prim <86 (0x56)> + #178.1.1.mem.ref.ro + 66 69 6c 6c 72 65 63 74 fillrect + #179.1.1.num.prim <87 (0x57)> + #180.1.1.mem.ref.ro + 75 74 66 38 64 65 63 6f 64 65 utf8decode + #181.1.1.num.prim <88 (0x58)> + #182.1.1.mem.ref.ro + 75 74 66 38 65 6e 63 6f 64 65 utf8encode + #183.1.1.mem.ro + 72 b5 4a 86 00 00 00 00 20 00 00 00 01 00 00 00 r.J..... ....... + 00 01 00 00 10 00 00 00 10 00 00 00 08 00 00 00 ................ + 00 00 7e c3 99 99 f3 e7 e7 ff e7 e7 7e 00 00 00 ..~.........~... + 00 00 00 00 00 76 dc 00 76 dc 00 00 00 00 00 00 .....v..v....... + 00 00 6e f8 d8 d8 dc d8 d8 d8 f8 6e 00 00 00 00 ..n........n.... + 00 00 00 00 00 6e db db df d8 db 6e 00 00 00 00 .....n.....n.... + 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00 .....8|.|8...... + 00 88 88 f8 88 88 00 3e 08 08 08 08 00 00 00 00 .......>........ + 00 f8 80 e0 80 80 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 00 70 88 80 88 70 00 3c 22 3c 24 22 00 00 00 00 .p...p.<"<$".... + 00 80 80 80 80 f8 00 3e 20 38 20 20 00 00 00 00 .......> 8 .... + 11 44 11 44 11 44 11 44 11 44 11 44 11 44 11 44 .D.D.D.D.D.D.D.D + 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa U.U.U.U.U.U.U.U. + dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 dd 77 .w.w.w.w.w.w.w.w + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 ................ + f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 ................ + 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f ................ + 00 88 c8 a8 98 88 00 20 20 20 20 3e 00 00 00 00 ....... >.... + 00 88 88 50 50 20 00 3e 08 08 08 08 00 00 00 00 ...PP .>........ + 00 00 00 00 0e 38 e0 38 0e 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 00 e0 38 0e 38 e0 00 fe 00 00 00 00 00 .....8.8........ + 00 00 00 06 0c fe 18 30 fe 60 c0 00 00 00 00 00 .......0.`...... + 00 00 00 00 06 1e 7e fe 7e 1e 06 00 00 00 00 00 ......~.~....... + 00 00 00 00 c0 f0 fc fe fc f0 c0 00 00 00 00 00 ................ + 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00 ...<~........... + 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00 .........~<..... + 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00 ................ + 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00 .....0`.`0...... + 00 00 18 3c 7e 18 18 18 18 7e 3c 18 00 00 00 00 ...<~....~<..... + 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00 .....(l.l(...... + 00 00 00 00 06 36 66 fe 60 30 00 00 00 00 00 00 .....6f.`0...... + 00 00 00 00 00 00 fe 6c 6c 6c 6c 6c 00 00 00 00 .......lllll.... + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ + 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00 ...<<<.......... + 00 66 66 24 00 00 00 00 00 00 00 00 00 00 00 00 .ff$............ + 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00 ...ll.lll.ll.... + 00 10 10 7c d6 d0 d0 7c 16 16 d6 7c 10 10 00 00 ...|...|...|.... + 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00 ........0`...... + 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00 ..8ll8v....v.... + 00 18 18 18 30 00 00 00 00 00 00 00 00 00 00 00 ....0........... + 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00 ....000000...... + 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00 ..0........0.... + 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00 .....f<..~........ + 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00 00 00 .....6l.l6...... + 00 00 00 00 00 00 fe 06 06 06 06 00 00 00 00 00 ................ + 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00 .......~........ + 00 00 3c 42 b9 a5 b9 a5 a5 42 3c 00 00 00 00 00 ..x............ + 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 0c 66 3c 00 .. + ff 3f ff 40 ff 41 ff 42 ff 43 ff 44 ff 45 ff 46 .?.@.A.B.C.D.E.F + ff 47 ff 48 ff 49 ff 4a ff 4b e2 84 aa ff 4c ff .G.H.I.J.K....L. + 4d ff 4e ff 4f ff 50 ff 51 ff 52 ff 53 ff 54 ff M.N.O.P.Q.R.S.T. + 55 ff 56 ff 57 ff 58 ff 59 ff 5a ff 5b ff 5c ff U.V.W.X.Y.Z.[.\. + 5d ff 5e ff 5f ef a0 84 ff 60 ff 61 ff 62 ff 63 ].^._....`.a.b.c + ff 64 ff 65 ff 66 ff 67 ff 68 ff 69 ff 6a ff 6b .d.e.f.g.h.i.j.k + ff 6c ff 6d ff 6e ff 6f ff 70 ff 71 ff 72 ff 73 .l.m.n.o.p.q.r.s + ff 74 ff 75 ff 76 ff 77 ff 78 ff 79 ff 7a ff 7b .t.u.v.w.x.y.z.{ + ff 7c ff 7d ff 7e ff c5 b8 ff ef a0 81 ff e2 95 .|.}.~.......... + b5 ff e2 95 b6 ff e2 94 94 ff e2 95 b7 ff e2 94 ................ + 82 ff e2 94 8c ff e2 94 9c ff e2 95 b4 ff e2 94 ................ + 98 ff e2 94 80 ff e2 94 b4 ff e2 94 90 ff e2 94 ................ + a4 ff e2 94 ac ff e2 94 bc ff ef a0 83 ff e2 95 ................ + b9 ff e2 95 ba ff e2 94 97 e2 95 9a ff e2 95 bb ................ + ff e2 94 83 e2 95 91 ff e2 94 8f e2 95 94 ff e2 ................ + 94 a3 e2 95 a0 ff e2 95 b8 ff e2 94 9b e2 95 9d ................ + ff e2 94 81 e2 95 90 ff e2 94 bb e2 95 a9 ff e2 ................ + 94 93 e2 95 97 ff e2 95 a3 e2 94 ab ff e2 94 b3 ................ + e2 95 a6 ff e2 95 8b e2 95 ac ff e2 90 a3 ff c2 ................ + a1 ff c2 a2 ff c2 a3 ff e2 82 ac ff c2 a5 ff c5 ................ + a0 ff c2 a7 ff c5 a1 ff c2 a9 ff c2 aa ff c2 ab ................ + ff c2 ac ff c2 ad ff c2 ae ff c2 af ef a0 80 ff ................ + c2 b0 ff c2 b1 ff c2 b2 ff c2 b3 ff c5 bd ff c2 ................ + b5 ff c2 b6 ff c2 b7 ff c5 be ff c2 b9 ff c2 ba ................ + ff c2 bb ff c5 92 ff c5 93 ff c5 b8 ff c2 bf ff ................ + c3 80 ff c3 81 ff c3 82 ff c3 83 ff c3 84 ff c3 ................ + 85 e2 84 ab ff c3 86 ff c3 87 ff c3 88 ff c3 89 ................ + ff c3 8a ff c3 8b ff c3 8c ff c3 8d ff c3 8e ff ................ + c3 8f ff c3 90 ff c3 91 ff c3 92 ff c3 93 ff c3 ................ + 94 ff c3 95 ff c3 96 ff c3 97 ff c3 98 ff c3 99 ................ + ff c3 9a ff c3 9b ff c3 9c ff c3 9d ff c3 9e ff ................ + c3 9f ff c3 a0 ff c3 a1 ff c3 a2 ff c3 a3 ff c3 ................ + a4 ff c3 a5 ff c3 a6 ff c3 a7 ff c3 a8 ff c3 a9 ................ + ff c3 aa ff c3 ab ff c3 ac ff c3 ad ff c3 ae ff ................ + c3 af ff c3 b0 ff c3 b1 ff c3 b2 ff c3 b3 ff c3 ................ + b4 ff c3 b5 ff c3 b6 ff c3 b7 ff c3 b8 ff c3 b9 ................ + ff c3 ba ff c3 bb ff c3 bc ff c3 bd ff c3 be ff ................ + c3 bf ff ... + #184.1.1.font + type 1, glyphs 256 + font size 8x16, line height 16, baseline 0 + bitmap size 8x16 + bitmap table: offset 32, size 4096 + char index: offset 4128, size 819 + data_id #183.1.1.mem.ro + glyph_id #185.1.1.canv + #185.1.1.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + #186.1.5.mem.ro + 75 51 12 a9 42 7a ad 60 39 66 6f 6f 18 28 17 61 uQ..Bz.`9foo.(.a + 81 0a 18 29 38 64 65 66 39 62 61 72 18 28 17 78 ...)8def9bar.(.x + 81 14 18 29 38 64 65 66 38 66 6f 6f 38 62 61 72 ...)8def8foo8bar + 98 73 65 74 70 61 72 65 6e 74 38 66 6f 6f 17 78 .setparent8foo.x + 68 64 65 6c 65 74 65 38 66 6f 6f 17 78 38 67 65 hdelete8foo.x8ge + 74 38 62 61 72 17 78 38 67 65 74 t8bar.x8get + #187.1.1.array + [ 0] #195.1.3.num.int <20 (0x14)> + [ 1] #195.1.3.num.int <20 (0x14)> + #188.1.1.ctx.func + type 17, ip 0x5b (0x5b) + code #186.1.5.mem.ro + parent #0.0.nil + dict #4.1.2.hash + iterate #0.0.nil + #189.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x9, size 3, "foo"> + 66 6f 6f foo + #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 1, "a"> + 61 a + #191.1.1.num.int <10 (0xa)> + #192.1.1.hash + #190.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0xf, size 1, "a"> => #191.1.1.num.int <10 (0xa)> + #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x19, size 3, "bar"> + 62 61 72 bar + #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x1f, size 1, "x"> + 78 x + #195.1.3.num.int <20 (0x14)> + #196.1.2.hash + #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x1f, size 1, "x"> => #195.1.3.num.int <20 (0x14)> + #198.1.1.array diff --git a/tests/0070_hash_del_with_parent/screen.log.ref b/tests/0070_hash_del_with_parent/screen.log.ref new file mode 100644 index 0000000..381226a --- /dev/null +++ b/tests/0070_hash_del_with_parent/screen.log.ref @@ -0,0 +1,23 @@ +# --- screen --- +== object dump (id #1.1.3.canv) == + #1.1.3.canv + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | diff --git a/tests/0070_hash_del_with_parent/trace.log.ref b/tests/0070_hash_del_with_parent/trace.log.ref new file mode 100644 index 0000000..0c59ef8 --- /dev/null +++ b/tests/0070_hash_del_with_parent/trace.log.ref @@ -0,0 +1,180 @@ +# --- trace --- +IP: #186:0x0, type 5, 1[7] +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x8, type 9, 9[3] +GC: ++#186.1.1.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xc, type 8, 13[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #189.1.1.mem.ref.ro <#186.1.2.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0xe, type 7, 15[1] +GC: ++#186.1.2.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 1, "a"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x10, type 1, 10 (0xa) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #191.1.1.num.int <10 (0xa)> + [1] #190.1.1.mem.str.ro <#186.1.3.mem.ro, ofs 0xf, size 1, "a"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x12, type 8, 19[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.1.hash + [1] #189.1.1.mem.ref.ro <#186.1.3.mem.ro, ofs 0x9, size 3, "foo"> +IP: #186:0x14, type 8, 21[3] +GC: ++#189.1.1.mem.ref.ro +GC: ++#192.1.1.hash +GC: --#192.1.2.hash +GC: --#189.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x18, type 9, 25[3] +GC: ++#186.1.3.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #193.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x19, size 3, "bar"> +IP: #186:0x1c, type 8, 29[1] +GC: ++#13.1.1.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #13.1.2.num.prim <4 (0x4)> + [1] #193.1.1.mem.ref.ro <#186.1.4.mem.ro, ofs 0x19, size 3, "bar"> +IP: #186:0x1e, type 7, 31[1] +GC: ++#186.1.4.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x1f, size 1, "x"> + [1] #13.1.2.num.prim <4 (0x4)> + [2] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x19, size 3, "bar"> +IP: #186:0x20, type 1, 20 (0x14) +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.1.num.int <20 (0x14)> + [1] #194.1.1.mem.str.ro <#186.1.5.mem.ro, ofs 0x1f, size 1, "x"> + [2] #13.1.2.num.prim <4 (0x4)> + [3] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x19, size 3, "bar"> +IP: #186:0x22, type 8, 35[1] +GC: --#13.1.2.num.prim +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.1.hash + [1] #193.1.1.mem.ref.ro <#186.1.5.mem.ro, ofs 0x19, size 3, "bar"> +IP: #186:0x24, type 8, 37[3] +GC: ++#193.1.1.mem.ref.ro +GC: ++#196.1.1.hash +GC: --#196.1.2.hash +GC: --#193.1.2.mem.ref.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x28, type 8, 41[3] +GC: ++#192.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.hash +IP: #186:0x2c, type 8, 45[3] +GC: ++#196.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.2.hash + [1] #192.1.2.hash +IP: #186:0x30, type 8, 49[9] +GC: ++#196.1.2.hash +GC: --#196.1.3.hash +GC: --#192.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x3a, type 8, 59[3] +GC: ++#192.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.hash +IP: #186:0x3e, type 7, 63[1] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #197.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x3f, size 1, "x"> + [1] #192.1.2.hash +IP: #186:0x40, type 8, 65[6] +GC: --#197.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#192.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == +IP: #186:0x47, type 8, 72[3] +GC: ++#192.1.1.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #192.1.2.hash +IP: #186:0x4b, type 7, 76[1] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #199.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x4c, size 1, "x"> + [1] #192.1.2.hash +IP: #186:0x4d, type 8, 78[3] +GC: ++#195.1.1.num.int +GC: --#199.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#192.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.2.num.int <20 (0x14)> +IP: #186:0x51, type 8, 82[3] +GC: ++#196.1.2.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #196.1.3.hash + [1] #195.1.2.num.int <20 (0x14)> +IP: #186:0x55, type 7, 86[1] +GC: ++#186.1.5.mem.ro +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #200.1.1.mem.str.ro <#186.1.6.mem.ro, ofs 0x56, size 1, "x"> + [1] #196.1.3.hash + [2] #195.1.2.num.int <20 (0x14)> +IP: #186:0x57, type 8, 88[3] +GC: ++#195.1.2.num.int +GC: --#200.1.1.mem.str.ro +GC: --#186.1.6.mem.ro +GC: --#196.1.3.hash +== backtrace == + [0] #188.1.1.ctx.func +== stack (#187.1.1.array) == + [0] #195.1.3.num.int <20 (0x14)> + [1] #195.1.3.num.int <20 (0x14)> diff --git a/tests/test_script b/tests/test_script new file mode 100644 index 0000000..725a9c0 --- /dev/null +++ b/tests/test_script @@ -0,0 +1,26 @@ +log prompt 0 gc stack context ip +# --- trace --- +run +# --- trace_end --- +# --- mem --- +d mem +d * +# --- mem_end --- +# --- screen --- +d screen +# --- screen_end --- +p st +# --- cleanup --- +return +set stack 0 +set context 0 +set gstate 0 +set consolegstate 0 +set screen 0 +set dict 0 +d mem +d 0 +# --- cleanup_end --- +# --- gc --- +i 0 +# --- gc_end --- diff --git a/types.def b/types.def new file mode 100644 index 0000000..16b5697 --- /dev/null +++ b/types.def @@ -0,0 +1,39 @@ +# type definitions +# +# this file is used to generate vocabulary.h +# +# 1st column: printable name, 2nd column (optional): name used in source code + +# --- types < 16 --- +# these types can be encoded in binary program code +# number-like types +nil +int +bool +prim +xref +# string-like types start with t_comment +comm comment +code +str string +word +ref +get +set + res1 + res2 + res3 + res4 + +# --- types >= 16 --- + +# internal type used during code optimization +skip + +# context types +func ctx_func +block ctx_block +loop ctx_loop +repeat ctx_repeat +for ctx_for +forall ctx_forall diff --git a/vocabulary.def b/vocabulary.def new file mode 100644 index 0000000..e17eff5 --- /dev/null +++ b/vocabulary.def @@ -0,0 +1,95 @@ +# list of primitive words +# +# this file is used to generate vocabulary.h +# +# 1st column: printable name, 2nd column (optional): name used in source code + +{ code_start +} code_end +[ array_start +] array_end +( hash_start +) hash_end +def +ldef +gdef +if +ifelse +loop +repeat +for +forall +exit +return +string +get +put +delete +length +dup +pop +exch +rot +roll +over +index +exec +add +sub +mul +div +mod +neg +abs +min +max +and +or +xor +not +shl +shr +eq +ne +gt +ge +lt +le +cmp +getparent +setparent +getdict +setdict +freeze +getcolor +setcolor +getbgcolor +setbgcolor +getpos +setpos +getfont +setfont +newfont +getregion +setregion +canvas +getcanvas +setcanvas +getgstate +setgstate +gstate +getconsolegstate +setconsolegstate +show +dim +run +readfile +unpackimage +blt +debug +getpixel +putpixel +lineto +fillrect +utf8decode +utf8encode